diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 179ebf0bf4ca64898020afa123652348dc292691..9a05b2b0f1227fe9025f287c38685806384755cb 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -68,7 +68,7 @@ test and debug from a git working tree. - `make` is typically sufficient to build zig during development iterations. - `make install` performs a build __and__ install. - `msbuild -p:Configuration=Release INSTALL.vcxproj` on Windows performs a -build and install. To avoid install, pass cmake option `-DZIG_SKIP_INSTALL_LIB_FILES=ON`. +build and install. To avoid install, pass cmake option `-DZIG_NO_LIB=ON`. To test changes, do the following from the build directory: diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 31fb479b56e7410ba186d735447c149883c2e987..5560b2412d708c9b7edba108fad752e6c95bcd83 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -14,27 +14,20 @@ body: attributes: label: Zig Version description: "The output of `zig version`" - placeholder: "0.9.0-dev.1275+ac52e0056" + placeholder: "0.10.0-dev.4583+875e98a57" validations: required: true - type: textarea id: repro attributes: - label: Steps to Reproduce - description: What exactly can someone else do, in order to observe the problem that you observed? + label: Steps to Reproduce and Observed Behavior + description: What exactly can someone else do, in order to observe the problem that you observed? Include the output and all error messages. validations: required: true - type: textarea id: expected attributes: label: Expected Behavior - description: What did you expect to happen? - validations: - required: true - - type: textarea - id: actual - attributes: - label: Actual Behavior - description: What happened instead? Be sure to include all error messages if any. + description: What did you expect to happen instead? validations: required: true diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b540045e539bf9a81fa18f66ba4cd30b00ef8ea..943aae331a38cc59d06abc6d9dd33493171f54a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,13 +81,20 @@ if("${ZIG_VERSION}" STREQUAL "") endif() message(STATUS "Configuring zig version ${ZIG_VERSION}") -set(ZIG_SKIP_INSTALL_LIB_FILES off CACHE BOOL +set(ZIG_NO_LIB off CACHE BOOL "Disable copying lib/ files to install prefix during the build phase") +set(ZIG_SKIP_INSTALL_LIB_FILES off CACHE BOOL "Deprecated. Use ZIG_NO_LIB") +if(ZIG_SKIP_INSTALL_LIB_FILES) + message(WARNING "ZIG_SKIP_INSTALL_LIB_FILES is deprecated. Use ZIG_NO_LIB instead.") + set(ZIG_NO_LIB ON) +endif() + set(ZIG_STATIC off CACHE BOOL "Attempt to build a static zig executable (not compatible with glibc)") set(ZIG_SHARED_LLVM off CACHE BOOL "Prefer linking against shared LLVM libraries") set(ZIG_STATIC_LLVM off CACHE BOOL "Prefer linking against static LLVM libraries") set(ZIG_STATIC_ZLIB off CACHE BOOL "Prefer linking against static zlib") +set(ZIG_STATIC_ZSTD off CACHE BOOL "Prefer linking against static zstd") set(ZIG_USE_CCACHE off CACHE BOOL "Use ccache if available") if(CCACHE_PROGRAM AND ZIG_USE_CCACHE) @@ -97,6 +104,7 @@ endif() if(ZIG_STATIC) set(ZIG_STATIC_LLVM ON) set(ZIG_STATIC_ZLIB ON) + set(ZIG_STATIC_ZSTD ON) endif() if (ZIG_SHARED_LLVM AND ZIG_STATIC_LLVM) @@ -137,6 +145,12 @@ if(ZIG_STATIC_ZLIB) list(APPEND LLVM_LIBRARIES "${ZLIB}") endif() +if(ZIG_STATIC_ZSTD) + list(REMOVE_ITEM LLVM_LIBRARIES "-lzstd") + find_library(ZSTD NAMES libzstd.a libzstdstatic.a zstd NAMES_PER_DIR) + list(APPEND LLVM_LIBRARIES "${ZSTD}") +endif() + if(APPLE AND ZIG_STATIC) list(REMOVE_ITEM LLVM_LIBRARIES "-lcurses") find_library(CURSES NAMES libcurses.a libncurses.a NAMES_PER_DIR @@ -996,10 +1010,10 @@ elseif("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") else() set(ZIG_RELEASE_ARG -Drelease -Dstrip) endif() -if(ZIG_SKIP_INSTALL_LIB_FILES) - set(ZIG_SKIP_INSTALL_LIB_FILES_ARG "-Dskip-install-lib-files") +if(ZIG_NO_LIB) + set(ZIG_NO_LIB_ARG "-Dno-lib") else() - set(ZIG_SKIP_INSTALL_LIB_FILES_ARG "-Dskip-install-lib-files=false") + set(ZIG_NO_LIB_ARG "") endif() if(ZIG_SINGLE_THREADED) set(ZIG_SINGLE_THREADED_ARG "-fsingle-threaded") @@ -1072,7 +1086,7 @@ set(ZIG_BUILD_ARGS "-Denable-stage1" ${ZIG_RELEASE_ARG} ${ZIG_STATIC_ARG} - ${ZIG_SKIP_INSTALL_LIB_FILES_ARG} + ${ZIG_NO_LIB_ARG} ${ZIG_SINGLE_THREADED_ARG} "-Dtarget=${ZIG_TARGET_TRIPLE}" "-Dcpu=${ZIG_TARGET_MCPU}" diff --git a/build.zig b/build.zig index 30508b88e310c91d1eacf56dc5e0536133180f8c..293621e545e558fbdf1af1c3abb9d059090ebf25 100644 --- a/build.zig +++ b/build.zig @@ -61,7 +61,11 @@ pub fn build(b: *Builder) !void { const skip_stage1 = b.option(bool, "skip-stage1", "Main test suite skips stage1 compile error tests") orelse false; const skip_run_translated_c = b.option(bool, "skip-run-translated-c", "Main test suite skips run-translated-c tests") orelse false; const skip_stage2_tests = b.option(bool, "skip-stage2-tests", "Main test suite skips self-hosted compiler tests") orelse false; - const skip_install_lib_files = b.option(bool, "skip-install-lib-files", "Do not copy lib/ files to installation prefix") orelse false; + const deprecated_skip_install_lib_files = b.option(bool, "skip-install-lib-files", "deprecated. see no-lib") orelse false; + if (deprecated_skip_install_lib_files) { + std.log.warn("-Dskip-install-lib-files is deprecated in favor of -Dno-lib", .{}); + } + const skip_install_lib_files = b.option(bool, "no-lib", "skip copying of lib/ files to installation prefix. Useful for development") orelse deprecated_skip_install_lib_files; const only_install_lib_files = b.option(bool, "lib-files-only", "Only install library files") orelse false; @@ -122,8 +126,8 @@ pub fn build(b: *Builder) !void { return; const tracy = b.option([]const u8, "tracy", "Enable Tracy integration. Supply path to Tracy source"); - const tracy_callstack = b.option(bool, "tracy-callstack", "Include callstack information with Tracy data. Does nothing if -Dtracy is not provided") orelse false; - const tracy_allocation = b.option(bool, "tracy-allocation", "Include allocation information with Tracy data. Does nothing if -Dtracy is not provided") orelse false; + const tracy_callstack = b.option(bool, "tracy-callstack", "Include callstack information with Tracy data. Does nothing if -Dtracy is not provided") orelse (tracy != null); + const tracy_allocation = b.option(bool, "tracy-allocation", "Include allocation information with Tracy data. Does nothing if -Dtracy is not provided") orelse (tracy != null); const force_gpa = b.option(bool, "force-gpa", "Force the compiler to use GeneralPurposeAllocator") orelse false; const link_libc = b.option(bool, "force-link-libc", "Force self-hosted compiler to link libc") orelse (enable_llvm or only_c); const sanitize_thread = b.option(bool, "sanitize-thread", "Enable thread-sanitization") orelse false; @@ -378,7 +382,7 @@ pub fn build(b: *Builder) !void { if (tracy) |tracy_path| { const client_cpp = fs.path.join( b.allocator, - &[_][]const u8{ tracy_path, "TracyClient.cpp" }, + &[_][]const u8{ tracy_path, "public", "TracyClient.cpp" }, ) catch unreachable; // On mingw, we need to opt into windows 7+ to get some features required by tracy. @@ -635,6 +639,7 @@ fn addStaticLlvmOptionsToExe(exe: *std.build.LibExeObjStep) !void { } exe.linkSystemLibrary("z"); + exe.linkSystemLibrary("zstd"); // This means we rely on clang-or-zig-built LLVM, Clang, LLD libraries. exe.linkSystemLibrary("c++"); @@ -673,13 +678,12 @@ fn addCxxKnownPath( exe.addObjectFile(path_unpadded); // TODO a way to integrate with system c++ include files here - // cc -E -Wp,-v -xc++ /dev/null + // c++ -E -Wp,-v -xc++ /dev/null if (need_cpp_includes) { // I used these temporarily for testing something but we obviously need a // more general purpose solution here. - //exe.addIncludePath("/nix/store/fvf3qjqa5qpcjjkq37pb6ypnk1mzhf5h-gcc-9.3.0/lib/gcc/x86_64-unknown-linux-gnu/9.3.0/../../../../include/c++/9.3.0"); - //exe.addIncludePath("/nix/store/fvf3qjqa5qpcjjkq37pb6ypnk1mzhf5h-gcc-9.3.0/lib/gcc/x86_64-unknown-linux-gnu/9.3.0/../../../../include/c++/9.3.0/x86_64-unknown-linux-gnu"); - //exe.addIncludePath("/nix/store/fvf3qjqa5qpcjjkq37pb6ypnk1mzhf5h-gcc-9.3.0/lib/gcc/x86_64-unknown-linux-gnu/9.3.0/../../../../include/c++/9.3.0/backward"); + //exe.addIncludePath("/nix/store/2lr0fc0ak8rwj0k8n3shcyz1hz63wzma-gcc-11.3.0/include/c++/11.3.0"); + //exe.addIncludePath("/nix/store/2lr0fc0ak8rwj0k8n3shcyz1hz63wzma-gcc-11.3.0/include/c++/11.3.0/x86_64-unknown-linux-gnu"); } } diff --git a/ci/azure/macos_script b/ci/azure/macos_script index 5b3dfbb341cf3edb2b3b3dc3b116596d72f82ffb..a8abc48678cde8fb30d040c499bbb9155bf896ae 100755 --- a/ci/azure/macos_script +++ b/ci/azure/macos_script @@ -9,7 +9,7 @@ ZIGDIR="$(pwd)" ARCH="x86_64" TARGET="$ARCH-macos-none" MCPU="baseline" -CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4111+5206832a8" +CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0" PREFIX="$HOME/$CACHE_BASENAME" JOBS="-j2" @@ -55,12 +55,26 @@ stage3-release/bin/zig build test docs \ -Dskip-non-native \ --search-prefix "$PREFIX" +# Produce the experimental std lib documentation. +mkdir -p "stage3-release/doc/std" +stage3-release/bin/zig test "$(pwd)/../lib/std/std.zig" \ + --zig-lib-dir "$(pwd)/../lib" \ + -femit-docs="$(pwd)/stage3-release/doc/std" \ + -fno-emit-bin + if [ "${BUILD_REASON}" != "PullRequest" ]; then - mv ../LICENSE stage3-release/ - mv ../zig-cache/langref.html stage3-release/ + # Remove the unnecessary bin dir in stage3-release/bin/zig mv stage3-release/bin/zig stage3-release/ rmdir stage3-release/bin + # Remove the unnecessary zig dir in stage3-release/lib/zig/std/std.zig + mv stage3-release/lib/zig stage3-release/lib2 + rmdir stage3-release/lib + mv stage3-release/lib2 stage3-release/lib + + mv ../LICENSE stage3-release/ + mv ../zig-cache/langref.html stage3-release/doc + VERSION=$(stage3-release/zig version) DIRNAME="zig-macos-$ARCH-$VERSION" TARBALL="$DIRNAME.tar.xz" diff --git a/ci/azure/pipelines.yml b/ci/azure/pipelines.yml index e35ea4f3282b93e6ef0aa643a2039051a07fe285..b0fbf0fb720a66e08c89dd9b5252a4509474cbac 100644 --- a/ci/azure/pipelines.yml +++ b/ci/azure/pipelines.yml @@ -16,7 +16,7 @@ jobs: vmImage: 'windows-2019' variables: TARGET: 'x86_64-windows-gnu' - ZIG_LLVM_CLANG_LLD_NAME: 'zig+llvm+lld+clang-${{ variables.TARGET }}-0.10.0-dev.4459+4f9345d20' + ZIG_LLVM_CLANG_LLD_NAME: 'zig+llvm+lld+clang-${{ variables.TARGET }}-0.10.0-dev.4560+828735ac0' ZIG_LLVM_CLANG_LLD_URL: 'https://ziglang.org/deps/${{ variables.ZIG_LLVM_CLANG_LLD_NAME }}.zip' steps: - pwsh: | @@ -60,6 +60,7 @@ jobs: displayName: 'Build' - pwsh: | + Set-Variable -Name ZIGLIBDIR -Value "$(Get-Location)\lib" Set-Variable -Name ZIGINSTALLDIR -Value "$(Get-Location)\stage3-release" Set-Variable -Name ZIGPREFIXPATH -Value "$(Get-Location)\$(ZIG_LLVM_CLANG_LLD_NAME)" @@ -75,6 +76,14 @@ jobs: -Dstatic-llvm ` -Dskip-non-native CheckLastExitCode + + # Produce the experimental std lib documentation. + mkdir "$ZIGINSTALLDIR\doc\std" -force + & "$ZIGINSTALLDIR\bin\zig.exe" test "$ZIGLIBDIR\std\std.zig" ` + --zig-lib-dir "$ZIGLIBDIR" ` + -femit-docs="$ZIGINSTALLDIR\doc\std" ` + -fno-emit-bin + name: test displayName: 'Test' diff --git a/ci/drone/drone.yml b/ci/drone/drone.yml index 1be912143b880ae8e3237671fbb1a4fce81c1d97..00a5db3cc73419ab551286281f6d956063a93214 100644 --- a/ci/drone/drone.yml +++ b/ci/drone/drone.yml @@ -9,56 +9,56 @@ platform: steps: - name: build - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 commands: - ./ci/drone/linux_script_build - name: behavior depends_on: - build - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 commands: - ./ci/drone/test_linux_behavior - name: std_Debug depends_on: - build - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 commands: - ./ci/drone/test_linux_std_Debug - name: std_ReleaseSafe depends_on: - build - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 commands: - ./ci/drone/test_linux_std_ReleaseSafe - name: std_ReleaseFast depends_on: - build - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 commands: - ./ci/drone/test_linux_std_ReleaseFast - name: std_ReleaseSmall depends_on: - build - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 commands: - ./ci/drone/test_linux_std_ReleaseSmall - name: misc depends_on: - build - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 commands: - ./ci/drone/test_linux_misc - name: cases depends_on: - build - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 commands: - ./ci/drone/test_linux_cases @@ -72,7 +72,7 @@ steps: - std_ReleaseSmall - misc - cases - image: ziglang/static-base:llvm15-aarch64-2 + image: ziglang/static-base:llvm15-aarch64-3 environment: SRHT_OAUTH_TOKEN: from_secret: SRHT_OAUTH_TOKEN diff --git a/ci/drone/linux_script_finalize b/ci/drone/linux_script_finalize index 43ff5f8f0e39d1d0260d52309e2259cd4204e001..4cbff2ddf6f7b7b4e6eb4e8d50def490c13c7555 100755 --- a/ci/drone/linux_script_finalize +++ b/ci/drone/linux_script_finalize @@ -12,18 +12,21 @@ if [ -n "$DRONE_PULL_REQUEST" ]; then exit 0 fi -apk update -apk add py3-pip perl-utils jq curl -pip3 install s3cmd - cd build -mv ../LICENSE "$INSTALL_PREFIX/" -# https://github.com/ziglang/zig/issues/12689 -# mv ../zig-cache/langref.html "$INSTALL_PREFIX/" +# Remove the unnecessary bin dir in $INSTALL_PREFIX/bin/zig mv "$INSTALL_PREFIX/bin/zig" "$INSTALL_PREFIX/" rmdir "$INSTALL_PREFIX/bin" +# Remove the unnecessary zig dir in $INSTALL_PREFIX/lib/zig/std/std.zig +mv "$INSTALL_PREFIX/lib/zig" "$INSTALL_PREFIX/lib2" +rmdir "$INSTALL_PREFIX/lib" +mv "$INSTALL_PREFIX/lib2" "$INSTALL_PREFIX/lib" + +mv ../LICENSE "$INSTALL_PREFIX/" +# https://github.com/ziglang/zig/issues/12689 +# mv ../zig-cache/langref.html "$INSTALL_PREFIX/doc/" + GITBRANCH="$DRONE_BRANCH" VERSION="$("$INSTALL_PREFIX/zig" version)" DIRNAME="zig-linux-$ARCH-$VERSION" diff --git a/ci/drone/test_linux_std_Debug b/ci/drone/test_linux_std_Debug index 39558e19d1b8402e9d07935042968b92f92e9d62..bde270fd15cb82fa34b6e5bf488a508aac77919a 100755 --- a/ci/drone/test_linux_std_Debug +++ b/ci/drone/test_linux_std_Debug @@ -13,3 +13,10 @@ $ZIG build test-std \ -Dskip-release-fast \ -Dskip-release-small \ -Dskip-non-native + +# Produce the experimental std lib documentation. +mkdir -p "$INSTALL_PREFIX/doc/std" +$ZIG test "$DRONE_WORKSPACE/lib/std/std.zig" \ + --zig-lib-dir "$DRONE_WORKSPACE/lib" \ + -femit-docs="$INSTALL_PREFIX/doc/std" \ + -fno-emit-bin diff --git a/ci/srht/freebsd_script b/ci/srht/freebsd_script index 8cdb10c20c3ed74355aa9021e06266f5044a9b37..b70a63f9cbf2970ac4083eb2bc93d2f11c7c1e60 100755 --- a/ci/srht/freebsd_script +++ b/ci/srht/freebsd_script @@ -62,12 +62,26 @@ stage3/bin/zig build test docs \ -Dskip-stage1 \ -Dskip-non-native +# Produce the experimental std lib documentation. +mkdir -p "stage3/doc/std" +stage3/bin/zig test "$(pwd)/../lib/std/std.zig" \ + --zig-lib-dir "$(pwd)/../lib" \ + -femit-docs="$(pwd)/stage3/doc/std/" \ + -fno-emit-bin + if [ -f ~/.s3cfg ]; then - mv ../LICENSE stage3/ - mv ../zig-cache/langref.html stage3/ + # Remove the unnecessary bin dir in stage3/bin/zig mv stage3/bin/zig stage3/ rmdir stage3/bin + # Remove the unnecessary zig dir in stage3/lib/zig/std/std.zig + mv stage3/lib/zig stage3/lib2 + rmdir stage3/lib + mv stage3/lib2 stage3/lib + + mv ../LICENSE stage3/ + mv ../zig-cache/langref.html stage3/doc/ + GITBRANCH=$(basename $GITHUB_REF) VERSION=$(stage3/zig version) DIRNAME="zig-freebsd-x86_64-$VERSION" diff --git a/ci/srht/update_download_page b/ci/srht/update_download_page index b6ff10bbaac95e88a129b2713465d12472277885..bad6c3c52bb4a71dccf038a3ab5db080c5a498e5 100755 --- a/ci/srht/update_download_page +++ b/ci/srht/update_download_page @@ -48,7 +48,7 @@ wget "https://ziglang.org/builds/$NATIVE_TARBALL" tar xf "$NATIVE_TARBALL" ZIGDIR="$(pwd)/$(basename $NATIVE_TARBALL .tar.xz)" ZIG="$ZIGDIR/zig" -LANGREF="$ZIGDIR/docs/langref.html" +LANGREF="$ZIGDIR/doc/langref.html" SRCTARBALLDIR="zig-$VERSION" export SRC_TARBALL="$SRCTARBALLDIR.tar.xz" mv "$SRCDIR" "$SRCTARBALLDIR" @@ -120,20 +120,20 @@ $S3CMD put -P --no-mime-magic \ $S3CMD put -P --no-mime-magic \ --add-header="Cache-Control: max-age=0, must-revalidate" \ - "$ZIGDIR/docs/std/index.html" s3://ziglang.org/documentation/master/std/index.html + "$ZIGDIR/doc/std/index.html" s3://ziglang.org/documentation/master/std/index.html $S3CMD put -P --no-mime-magic \ --add-header="Cache-Control: max-age=0, must-revalidate" \ - "$ZIGDIR/docs/std/main.js" s3://ziglang.org/documentation/master/std/main.js + "$ZIGDIR/doc/std/main.js" s3://ziglang.org/documentation/master/std/main.js $S3CMD put -P --no-mime-magic \ --add-header="Cache-Control: max-age=0, must-revalidate" \ - "$ZIGDIR/docs/std/data.js" s3://ziglang.org/documentation/master/std/data.js + "$ZIGDIR/doc/std/data.js" s3://ziglang.org/documentation/master/std/data.js $S3CMD put -P --no-mime-magic --recursive \ --add-header="Cache-Control: max-age=0, must-revalidate" \ -m "text/html" \ - "$ZIGDIR/docs/std/src/" s3://ziglang.org/documentation/master/std/src/ + "$ZIGDIR/doc/std/src/" s3://ziglang.org/documentation/master/std/src/ $S3CMD put -P --no-mime-magic \ --add-header="cache-control: public, max-age=31536000, immutable" \ diff --git a/ci/zinc/drone.yml b/ci/zinc/drone.yml index 57eadb9eeeae49b2774bde93e12ef753f86c1f15..6f48fe4c13a1474423f0639ffa6052efbd6d544f 100644 --- a/ci/zinc/drone.yml +++ b/ci/zinc/drone.yml @@ -10,28 +10,28 @@ workspace: steps: - name: configure_git - image: ci/debian-amd64:11.1-11 + image: ci/debian-amd64:11.1-12 commands: - ./ci/zinc/configure_git - name: test_stage3_debug depends_on: - configure_git - image: ci/debian-amd64:11.1-11 + image: ci/debian-amd64:11.1-12 commands: - ./ci/zinc/linux_test_stage3_debug - name: test_stage3_release depends_on: - configure_git - image: ci/debian-amd64:11.1-11 + image: ci/debian-amd64:11.1-12 commands: - ./ci/zinc/linux_test_stage3_release - name: build_aarch64_macos depends_on: - test_stage3_release - image: ci/debian-amd64:11.1-11 + image: ci/debian-amd64:11.1-12 commands: - ./ci/zinc/build_aarch64_macos @@ -44,7 +44,7 @@ steps: - master event: - push - image: ci/debian-amd64:11.1-11 + image: ci/debian-amd64:11.1-12 environment: AWS_ACCESS_KEY_ID: from_secret: AWS_ACCESS_KEY_ID @@ -62,7 +62,7 @@ steps: - master event: - push - image: ci/debian-amd64:11.1-11 + image: ci/debian-amd64:11.1-12 environment: AWS_ACCESS_KEY_ID: from_secret: AWS_ACCESS_KEY_ID @@ -80,7 +80,7 @@ steps: - master event: - push - image: ci/debian-amd64:11.1-11 + image: ci/debian-amd64:11.1-12 environment: SRHT_OAUTH_TOKEN: from_secret: SRHT_OAUTH_TOKEN diff --git a/ci/zinc/linux_test_stage3_release b/ci/zinc/linux_test_stage3_release index 63883a39488ff12e38ad22e5367fc09d42f4db84..327c9ab081c9a9319324ca6287f5872890db7663 100755 --- a/ci/zinc/linux_test_stage3_release +++ b/ci/zinc/linux_test_stage3_release @@ -44,17 +44,17 @@ ninja install --zig-lib-dir "$(pwd)/../lib" # Produce the experimental std lib documentation. -mkdir -p "$RELEASE_STAGING/docs/std" +mkdir -p "$RELEASE_STAGING/doc/std" "$RELEASE_STAGING/bin/zig" test ../lib/std/std.zig \ - -femit-docs=$RELEASE_STAGING/docs/std \ + -femit-docs=$RELEASE_STAGING/doc/std \ -fno-emit-bin \ --zig-lib-dir "$(pwd)/../lib" cp ../LICENSE $RELEASE_STAGING/ -cp ../zig-cache/langref.html $RELEASE_STAGING/docs/ +cp ../zig-cache/langref.html $RELEASE_STAGING/doc/ # Look for HTML errors. -tidy --drop-empty-elements no -qe $RELEASE_STAGING/docs/langref.html +tidy --drop-empty-elements no -qe $RELEASE_STAGING/doc/langref.html # Explicit exit helps show last command duration. exit diff --git a/ci/zinc/macos_package b/ci/zinc/macos_package index 6f866d098c32f97dd0f5091cea4f093bb803d153..136dbc91fbf8f06e9d947a6d877e3dbecdbb5417 100755 --- a/ci/zinc/macos_package +++ b/ci/zinc/macos_package @@ -24,7 +24,7 @@ mv $INSTALL_PREFIX/lib/zig $INSTALL_PREFIX/lib2 rmdir $INSTALL_PREFIX/lib mv $INSTALL_PREFIX/lib2 $INSTALL_PREFIX/lib -cp -r "$ZIG_PREFIX/docs" "$INSTALL_PREFIX/" +cp -r "$ZIG_PREFIX/doc" "$INSTALL_PREFIX/" cp "$ZIG_PREFIX/LICENSE" "$INSTALL_PREFIX/" mv "$INSTALL_PREFIX" "$BASENAME" diff --git a/doc/docgen.zig b/doc/docgen.zig index 1f332e1ee085bd27c489e1a612be5379f1d96e0b..3ba9a1442c30465f7ceac16bed90822a7252d6d5 100644 --- a/doc/docgen.zig +++ b/doc/docgen.zig @@ -1168,7 +1168,7 @@ fn printSourceBlock(allocator: Allocator, docgen_tokenizer: *Tokenizer, out: any try out.writeAll(""); } -fn printShell(out: anytype, shell_content: []const u8) !void { +fn printShell(out: anytype, shell_content: []const u8, escape: bool) !void { const trimmed_shell_content = mem.trim(u8, shell_content, " \n"); try out.writeAll("
Shell
");
     var cmd_cont: bool = false;
@@ -1176,15 +1176,41 @@ fn printShell(out: anytype, shell_content: []const u8) !void {
     while (iter.next()) |orig_line| {
         const line = mem.trimRight(u8, orig_line, " ");
         if (!cmd_cont and line.len > 1 and mem.eql(u8, line[0..2], "$ ") and line[line.len - 1] != '\\') {
-            try out.print(start_line ++ "$ {s}" ++ end_line ++ "\n", .{std.mem.trimLeft(u8, line[1..], " ")});
+            try out.writeAll(start_line ++ "$ ");
+            const s = std.mem.trimLeft(u8, line[1..], " ");
+            if (escape) {
+                try writeEscaped(out, s);
+            } else {
+                try out.writeAll(s);
+            }
+            try out.writeAll("" ++ end_line ++ "\n");
         } else if (!cmd_cont and line.len > 1 and mem.eql(u8, line[0..2], "$ ") and line[line.len - 1] == '\\') {
-            try out.print(start_line ++ "$ {s}" ++ end_line ++ "\n", .{std.mem.trimLeft(u8, line[1..], " ")});
+            try out.writeAll(start_line ++ "$ ");
+            const s = std.mem.trimLeft(u8, line[1..], " ");
+            if (escape) {
+                try writeEscaped(out, s);
+            } else {
+                try out.writeAll(s);
+            }
+            try out.writeAll(end_line ++ "\n");
             cmd_cont = true;
         } else if (line.len > 0 and line[line.len - 1] != '\\' and cmd_cont) {
-            try out.print(start_line ++ "{s}" ++ end_line ++ "\n", .{line});
+            try out.writeAll(start_line);
+            if (escape) {
+                try writeEscaped(out, line);
+            } else {
+                try out.writeAll(line);
+            }
+            try out.writeAll("" ++ end_line ++ "\n");
             cmd_cont = false;
         } else {
-            try out.print(start_line ++ "{s}" ++ end_line ++ "\n", .{line});
+            try out.writeAll(start_line);
+            if (escape) {
+                try writeEscaped(out, line);
+            } else {
+                try out.writeAll(line);
+            }
+            try out.writeAll(end_line ++ "\n");
         }
     }
 
@@ -1254,7 +1280,7 @@ fn genHtml(
             },
             .Shell => |content_tok| {
                 const raw_shell_content = tokenizer.buffer[content_tok.start..content_tok.end];
-                try printShell(out, raw_shell_content);
+                try printShell(out, raw_shell_content, true);
             },
             .SyntaxBlock => |syntax_block| {
                 try printSourceBlock(allocator, tokenizer, out, syntax_block);
@@ -1730,7 +1756,7 @@ fn genHtml(
                 }
 
                 if (!code.just_check_syntax) {
-                    try printShell(out, shell_buffer.items);
+                    try printShell(out, shell_buffer.items, false);
                 }
             },
         }
@@ -1788,7 +1814,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         std.log.emerg("{s}", .{buffer.items});
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
@@ -1806,7 +1832,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
     {
@@ -1825,7 +1851,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
     {
@@ -1846,7 +1872,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
     {
@@ -1865,7 +1891,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
     {
@@ -1888,7 +1914,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
     {
@@ -1910,7 +1936,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
     {
@@ -1927,7 +1953,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
     {
@@ -1946,7 +1972,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
     {
@@ -1961,7 +1987,7 @@ test "shell parsed" {
         var buffer = std.ArrayList(u8).init(test_allocator);
         defer buffer.deinit();
 
-        try printShell(buffer.writer(), shell_out);
+        try printShell(buffer.writer(), shell_out, false);
         try testing.expectEqualSlices(u8, expected, buffer.items);
     }
 }
diff --git a/lib/compiler_rt/addtf3.zig b/lib/compiler_rt/addtf3.zig
index 2a22493ded3112cf36180fb92313a29c5e6d134c..15c450e193d5e70e94c79ba4310870c4da14f4b8 100644
--- a/lib/compiler_rt/addtf3.zig
+++ b/lib/compiler_rt/addtf3.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__addkf3, .{ .name = "__addkf3", .linkage = common.linkage });
+        @export(__addtf3, .{ .name = "__addkf3", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_add, .{ .name = "_Qp_add", .linkage = common.linkage });
-    } else {
-        @export(__addtf3, .{ .name = "__addtf3", .linkage = common.linkage });
     }
+    @export(__addtf3, .{ .name = "__addtf3", .linkage = common.linkage });
 }
 
 pub fn __addtf3(a: f128, b: f128) callconv(.C) f128 {
     return addf3(f128, a, b);
 }
 
-fn __addkf3(a: f128, b: f128) callconv(.C) f128 {
-    return addf3(f128, a, b);
-}
-
 fn _Qp_add(c: *f128, a: *f128, b: *f128) callconv(.C) void {
     c.* = addf3(f128, a.*, b.*);
 }
diff --git a/lib/compiler_rt/ceil.zig b/lib/compiler_rt/ceil.zig
index 406f61fbb969f80d695577b58a75fd81f7222dd5..6622546501047775a9594de60f1b592e920b77de 100644
--- a/lib/compiler_rt/ceil.zig
+++ b/lib/compiler_rt/ceil.zig
@@ -18,8 +18,10 @@ comptime {
     @export(ceilf, .{ .name = "ceilf", .linkage = common.linkage });
     @export(ceil, .{ .name = "ceil", .linkage = common.linkage });
     @export(__ceilx, .{ .name = "__ceilx", .linkage = common.linkage });
-    const ceilq_sym_name = if (common.want_ppc_abi) "ceilf128" else "ceilq";
-    @export(ceilq, .{ .name = ceilq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(ceilq, .{ .name = "ceilf128", .linkage = common.linkage });
+    }
+    @export(ceilq, .{ .name = "ceilq", .linkage = common.linkage });
     @export(ceill, .{ .name = "ceill", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/cmptf2.zig b/lib/compiler_rt/cmptf2.zig
index 00263f943a3b44eed3a8d75995bea4888ca38cd2..98137e3dfcdb4a115cf998c61e6936f84b9788c6 100644
--- a/lib/compiler_rt/cmptf2.zig
+++ b/lib/compiler_rt/cmptf2.zig
@@ -7,10 +7,10 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__eqkf2, .{ .name = "__eqkf2", .linkage = common.linkage });
-        @export(__nekf2, .{ .name = "__nekf2", .linkage = common.linkage });
-        @export(__ltkf2, .{ .name = "__ltkf2", .linkage = common.linkage });
-        @export(__lekf2, .{ .name = "__lekf2", .linkage = common.linkage });
+        @export(__eqtf2, .{ .name = "__eqkf2", .linkage = common.linkage });
+        @export(__netf2, .{ .name = "__nekf2", .linkage = common.linkage });
+        @export(__lttf2, .{ .name = "__ltkf2", .linkage = common.linkage });
+        @export(__letf2, .{ .name = "__lekf2", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_cmp, .{ .name = "_Qp_cmp", .linkage = common.linkage });
         @export(_Qp_feq, .{ .name = "_Qp_feq", .linkage = common.linkage });
@@ -19,13 +19,12 @@ comptime {
         @export(_Qp_fle, .{ .name = "_Qp_fle", .linkage = common.linkage });
         @export(_Qp_fgt, .{ .name = "_Qp_fgt", .linkage = common.linkage });
         @export(_Qp_fge, .{ .name = "_Qp_fge", .linkage = common.linkage });
-    } else {
-        @export(__eqtf2, .{ .name = "__eqtf2", .linkage = common.linkage });
-        @export(__netf2, .{ .name = "__netf2", .linkage = common.linkage });
-        @export(__letf2, .{ .name = "__letf2", .linkage = common.linkage });
-        @export(__cmptf2, .{ .name = "__cmptf2", .linkage = common.linkage });
-        @export(__lttf2, .{ .name = "__lttf2", .linkage = common.linkage });
     }
+    @export(__eqtf2, .{ .name = "__eqtf2", .linkage = common.linkage });
+    @export(__netf2, .{ .name = "__netf2", .linkage = common.linkage });
+    @export(__letf2, .{ .name = "__letf2", .linkage = common.linkage });
+    @export(__cmptf2, .{ .name = "__cmptf2", .linkage = common.linkage });
+    @export(__lttf2, .{ .name = "__lttf2", .linkage = common.linkage });
 }
 
 /// "These functions calculate a <=> b. That is, if a is less than b, they return -1;
@@ -64,22 +63,6 @@ fn __lttf2(a: f128, b: f128) callconv(.C) i32 {
     return __cmptf2(a, b);
 }
 
-fn __eqkf2(a: f128, b: f128) callconv(.C) i32 {
-    return __cmptf2(a, b);
-}
-
-fn __nekf2(a: f128, b: f128) callconv(.C) i32 {
-    return __cmptf2(a, b);
-}
-
-fn __ltkf2(a: f128, b: f128) callconv(.C) i32 {
-    return __cmptf2(a, b);
-}
-
-fn __lekf2(a: f128, b: f128) callconv(.C) i32 {
-    return __cmptf2(a, b);
-}
-
 const SparcFCMP = enum(i32) {
     Equal = 0,
     Less = 1,
diff --git a/lib/compiler_rt/cos.zig b/lib/compiler_rt/cos.zig
index 311d9271688fcb5a481acc895d9e44a80ddc1e84..664f6550a4ed431a14c5d17ca5c197c75ac7ca20 100644
--- a/lib/compiler_rt/cos.zig
+++ b/lib/compiler_rt/cos.zig
@@ -16,8 +16,10 @@ comptime {
     @export(cosf, .{ .name = "cosf", .linkage = common.linkage });
     @export(cos, .{ .name = "cos", .linkage = common.linkage });
     @export(__cosx, .{ .name = "__cosx", .linkage = common.linkage });
-    const cosq_sym_name = if (common.want_ppc_abi) "cosf128" else "cosq";
-    @export(cosq, .{ .name = cosq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(cosq, .{ .name = "cosf128", .linkage = common.linkage });
+    }
+    @export(cosq, .{ .name = "cosq", .linkage = common.linkage });
     @export(cosl, .{ .name = "cosl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/divtf3.zig b/lib/compiler_rt/divtf3.zig
index b6cabeab91aaf4dc539f1c0e60f7fa3d47fd33ea..736068e81977c74c5a84997eb4a57b72f783e5a0 100644
--- a/lib/compiler_rt/divtf3.zig
+++ b/lib/compiler_rt/divtf3.zig
@@ -9,22 +9,18 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__divkf3, .{ .name = "__divkf3", .linkage = common.linkage });
+        // TODO: why did this not error?
+        @export(__divtf3, .{ .name = "__divkf3", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_div, .{ .name = "_Qp_div", .linkage = common.linkage });
-    } else {
-        @export(__divtf3, .{ .name = "__divtf3", .linkage = common.linkage });
     }
+    @export(__divtf3, .{ .name = "__divtf3", .linkage = common.linkage });
 }
 
 pub fn __divtf3(a: f128, b: f128) callconv(.C) f128 {
     return div(a, b);
 }
 
-fn __divkf3(a: f128, b: f128) callconv(.C) f128 {
-    return div(a, b);
-}
-
 fn _Qp_div(c: *f128, a: *const f128, b: *const f128) callconv(.C) void {
     c.* = div(a.*, b.*);
 }
diff --git a/lib/compiler_rt/exp.zig b/lib/compiler_rt/exp.zig
index f34f226be4593eeff20e55424149405ab064d1fe..7dfac7328ca817215b421f5714aa1cbaf3e23fe6 100644
--- a/lib/compiler_rt/exp.zig
+++ b/lib/compiler_rt/exp.zig
@@ -18,8 +18,10 @@ comptime {
     @export(expf, .{ .name = "expf", .linkage = common.linkage });
     @export(exp, .{ .name = "exp", .linkage = common.linkage });
     @export(__expx, .{ .name = "__expx", .linkage = common.linkage });
-    const expq_sym_name = if (common.want_ppc_abi) "expf128" else "expq";
-    @export(expq, .{ .name = expq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(expq, .{ .name = "expf128", .linkage = common.linkage });
+    }
+    @export(expq, .{ .name = "expq", .linkage = common.linkage });
     @export(expl, .{ .name = "expl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/exp2.zig b/lib/compiler_rt/exp2.zig
index e89a918501426e0575ab91155becbd86f49d175d..daca339baecc1de078a06f0152274c0a01720110 100644
--- a/lib/compiler_rt/exp2.zig
+++ b/lib/compiler_rt/exp2.zig
@@ -18,8 +18,10 @@ comptime {
     @export(exp2f, .{ .name = "exp2f", .linkage = common.linkage });
     @export(exp2, .{ .name = "exp2", .linkage = common.linkage });
     @export(__exp2x, .{ .name = "__exp2x", .linkage = common.linkage });
-    const exp2q_sym_name = if (common.want_ppc_abi) "exp2f128" else "exp2q";
-    @export(exp2q, .{ .name = exp2q_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(exp2q, .{ .name = "exp2f128", .linkage = common.linkage });
+    }
+    @export(exp2q, .{ .name = "exp2q", .linkage = common.linkage });
     @export(exp2l, .{ .name = "exp2l", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/extenddftf2.zig b/lib/compiler_rt/extenddftf2.zig
index 21e497b3a43f1701d890d2aa332cfd09f0026679..3005987530795d9635a2a58936bc3136701622b5 100644
--- a/lib/compiler_rt/extenddftf2.zig
+++ b/lib/compiler_rt/extenddftf2.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__extenddfkf2, .{ .name = "__extenddfkf2", .linkage = common.linkage });
+        @export(__extenddftf2, .{ .name = "__extenddfkf2", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_dtoq, .{ .name = "_Qp_dtoq", .linkage = common.linkage });
-    } else {
-        @export(__extenddftf2, .{ .name = "__extenddftf2", .linkage = common.linkage });
     }
+    @export(__extenddftf2, .{ .name = "__extenddftf2", .linkage = common.linkage });
 }
 
 pub fn __extenddftf2(a: f64) callconv(.C) f128 {
     return extendf(f128, f64, @bitCast(u64, a));
 }
 
-fn __extenddfkf2(a: f64) callconv(.C) f128 {
-    return extendf(f128, f64, @bitCast(u64, a));
-}
-
 fn _Qp_dtoq(c: *f128, a: f64) callconv(.C) void {
     c.* = extendf(f128, f64, @bitCast(u64, a));
 }
diff --git a/lib/compiler_rt/extendsftf2.zig b/lib/compiler_rt/extendsftf2.zig
index acdc0d586d75f255bbba17a35c9056811ffb9d17..68b07470423a61b5130e20df5bcd0d755bb1c3dc 100644
--- a/lib/compiler_rt/extendsftf2.zig
+++ b/lib/compiler_rt/extendsftf2.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__extendsfkf2, .{ .name = "__extendsfkf2", .linkage = common.linkage });
+        @export(__extendsftf2, .{ .name = "__extendsfkf2", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_stoq, .{ .name = "_Qp_stoq", .linkage = common.linkage });
-    } else {
-        @export(__extendsftf2, .{ .name = "__extendsftf2", .linkage = common.linkage });
     }
+    @export(__extendsftf2, .{ .name = "__extendsftf2", .linkage = common.linkage });
 }
 
 pub fn __extendsftf2(a: f32) callconv(.C) f128 {
     return extendf(f128, f32, @bitCast(u32, a));
 }
 
-fn __extendsfkf2(a: f32) callconv(.C) f128 {
-    return extendf(f128, f32, @bitCast(u32, a));
-}
-
 fn _Qp_stoq(c: *f128, a: f32) callconv(.C) void {
     c.* = extendf(f128, f32, @bitCast(u32, a));
 }
diff --git a/lib/compiler_rt/fabs.zig b/lib/compiler_rt/fabs.zig
index fd3a58a9b756346886101bde063b54c68ff71baf..e9ce98bb7aa292eef3d010a15abe3cb2974f4969 100644
--- a/lib/compiler_rt/fabs.zig
+++ b/lib/compiler_rt/fabs.zig
@@ -10,8 +10,10 @@ comptime {
     @export(fabsf, .{ .name = "fabsf", .linkage = common.linkage });
     @export(fabs, .{ .name = "fabs", .linkage = common.linkage });
     @export(__fabsx, .{ .name = "__fabsx", .linkage = common.linkage });
-    const fabsq_sym_name = if (common.want_ppc_abi) "fabsf128" else "fabsq";
-    @export(fabsq, .{ .name = fabsq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(fabsq, .{ .name = "fabsf128", .linkage = common.linkage });
+    }
+    @export(fabsq, .{ .name = "fabsq", .linkage = common.linkage });
     @export(fabsl, .{ .name = "fabsl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/fixtfdi.zig b/lib/compiler_rt/fixtfdi.zig
index 9cc9835352acee665189c9b4ab11a084754e1890..f9a32828f18c04c6e423eb3ba5937de6afbd033f 100644
--- a/lib/compiler_rt/fixtfdi.zig
+++ b/lib/compiler_rt/fixtfdi.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__fixkfdi, .{ .name = "__fixkfdi", .linkage = common.linkage });
+        @export(__fixtfdi, .{ .name = "__fixkfdi", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_qtox, .{ .name = "_Qp_qtox", .linkage = common.linkage });
-    } else {
-        @export(__fixtfdi, .{ .name = "__fixtfdi", .linkage = common.linkage });
     }
+    @export(__fixtfdi, .{ .name = "__fixtfdi", .linkage = common.linkage });
 }
 
 pub fn __fixtfdi(a: f128) callconv(.C) i64 {
     return floatToInt(i64, a);
 }
 
-fn __fixkfdi(a: f128) callconv(.C) i64 {
-    return floatToInt(i64, a);
-}
-
 fn _Qp_qtox(a: *const f128) callconv(.C) i64 {
     return floatToInt(i64, a.*);
 }
diff --git a/lib/compiler_rt/fixtfsi.zig b/lib/compiler_rt/fixtfsi.zig
index f46208f02b9eff8001cda20445918b5f0620a6b7..0f5e3924ae3d12d0bd41039618e96f85657347b7 100644
--- a/lib/compiler_rt/fixtfsi.zig
+++ b/lib/compiler_rt/fixtfsi.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__fixkfsi, .{ .name = "__fixkfsi", .linkage = common.linkage });
+        @export(__fixtfsi, .{ .name = "__fixkfsi", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_qtoi, .{ .name = "_Qp_qtoi", .linkage = common.linkage });
-    } else {
-        @export(__fixtfsi, .{ .name = "__fixtfsi", .linkage = common.linkage });
     }
+    @export(__fixtfsi, .{ .name = "__fixtfsi", .linkage = common.linkage });
 }
 
 pub fn __fixtfsi(a: f128) callconv(.C) i32 {
     return floatToInt(i32, a);
 }
 
-fn __fixkfsi(a: f128) callconv(.C) i32 {
-    return floatToInt(i32, a);
-}
-
 fn _Qp_qtoi(a: *const f128) callconv(.C) i32 {
     return floatToInt(i32, a.*);
 }
diff --git a/lib/compiler_rt/fixunstfdi.zig b/lib/compiler_rt/fixunstfdi.zig
index 0657bf20c17e06849a30ecfb6abf25fb01aeadb3..fb9ff5b330382d2f7629dcce14c5639d8feda728 100644
--- a/lib/compiler_rt/fixunstfdi.zig
+++ b/lib/compiler_rt/fixunstfdi.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__fixunskfdi, .{ .name = "__fixunskfdi", .linkage = common.linkage });
+        @export(__fixunstfdi, .{ .name = "__fixunskfdi", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_qtoux, .{ .name = "_Qp_qtoux", .linkage = common.linkage });
-    } else {
-        @export(__fixunstfdi, .{ .name = "__fixunstfdi", .linkage = common.linkage });
     }
+    @export(__fixunstfdi, .{ .name = "__fixunstfdi", .linkage = common.linkage });
 }
 
 pub fn __fixunstfdi(a: f128) callconv(.C) u64 {
     return floatToInt(u64, a);
 }
 
-fn __fixunskfdi(a: f128) callconv(.C) u64 {
-    return floatToInt(u64, a);
-}
-
 fn _Qp_qtoux(a: *const f128) callconv(.C) u64 {
     return floatToInt(u64, a.*);
 }
diff --git a/lib/compiler_rt/fixunstfsi.zig b/lib/compiler_rt/fixunstfsi.zig
index 70725ddf3802bea64b6d6f5bcc487efc46b640b1..79cacbe34062a28435c857eb606b272b4d710760 100644
--- a/lib/compiler_rt/fixunstfsi.zig
+++ b/lib/compiler_rt/fixunstfsi.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__fixunskfsi, .{ .name = "__fixunskfsi", .linkage = common.linkage });
+        @export(__fixunstfsi, .{ .name = "__fixunskfsi", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_qtoui, .{ .name = "_Qp_qtoui", .linkage = common.linkage });
-    } else {
-        @export(__fixunstfsi, .{ .name = "__fixunstfsi", .linkage = common.linkage });
     }
+    @export(__fixunstfsi, .{ .name = "__fixunstfsi", .linkage = common.linkage });
 }
 
 pub fn __fixunstfsi(a: f128) callconv(.C) u32 {
     return floatToInt(u32, a);
 }
 
-fn __fixunskfsi(a: f128) callconv(.C) u32 {
-    return floatToInt(u32, a);
-}
-
 fn _Qp_qtoui(a: *const f128) callconv(.C) u32 {
     return floatToInt(u32, a.*);
 }
diff --git a/lib/compiler_rt/floatditf.zig b/lib/compiler_rt/floatditf.zig
index 731c6d8d865276320fac3501cbcd10826bfb86cb..1f651b817b53a381d7b85bb8d3d6911c1135cc26 100644
--- a/lib/compiler_rt/floatditf.zig
+++ b/lib/compiler_rt/floatditf.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__floatdikf, .{ .name = "__floatdikf", .linkage = common.linkage });
+        @export(__floatditf, .{ .name = "__floatdikf", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_xtoq, .{ .name = "_Qp_xtoq", .linkage = common.linkage });
-    } else {
-        @export(__floatditf, .{ .name = "__floatditf", .linkage = common.linkage });
     }
+    @export(__floatditf, .{ .name = "__floatditf", .linkage = common.linkage });
 }
 
 pub fn __floatditf(a: i64) callconv(.C) f128 {
     return intToFloat(f128, a);
 }
 
-fn __floatdikf(a: i64) callconv(.C) f128 {
-    return intToFloat(f128, a);
-}
-
 fn _Qp_xtoq(c: *f128, a: i64) callconv(.C) void {
     c.* = intToFloat(f128, a);
 }
diff --git a/lib/compiler_rt/floatsitf.zig b/lib/compiler_rt/floatsitf.zig
index 0954199170e13673c109aa32cbc608292a9d35d3..20473fa1d03a813c846ca17e1f4cef5b002f6533 100644
--- a/lib/compiler_rt/floatsitf.zig
+++ b/lib/compiler_rt/floatsitf.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__floatsikf, .{ .name = "__floatsikf", .linkage = common.linkage });
+        @export(__floatsitf, .{ .name = "__floatsikf", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_itoq, .{ .name = "_Qp_itoq", .linkage = common.linkage });
-    } else {
-        @export(__floatsitf, .{ .name = "__floatsitf", .linkage = common.linkage });
     }
+    @export(__floatsitf, .{ .name = "__floatsitf", .linkage = common.linkage });
 }
 
 pub fn __floatsitf(a: i32) callconv(.C) f128 {
     return intToFloat(f128, a);
 }
 
-fn __floatsikf(a: i32) callconv(.C) f128 {
-    return intToFloat(f128, a);
-}
-
 fn _Qp_itoq(c: *f128, a: i32) callconv(.C) void {
     c.* = intToFloat(f128, a);
 }
diff --git a/lib/compiler_rt/floatunditf.zig b/lib/compiler_rt/floatunditf.zig
index 1eda21891d07338b71aac798a04eda57a277f842..9236f4705f1fda1805b39240822daa8007ffc60b 100644
--- a/lib/compiler_rt/floatunditf.zig
+++ b/lib/compiler_rt/floatunditf.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__floatundikf, .{ .name = "__floatundikf", .linkage = common.linkage });
+        @export(__floatunditf, .{ .name = "__floatundikf", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_uxtoq, .{ .name = "_Qp_uxtoq", .linkage = common.linkage });
-    } else {
-        @export(__floatunditf, .{ .name = "__floatunditf", .linkage = common.linkage });
     }
+    @export(__floatunditf, .{ .name = "__floatunditf", .linkage = common.linkage });
 }
 
 pub fn __floatunditf(a: u64) callconv(.C) f128 {
     return intToFloat(f128, a);
 }
 
-fn __floatundikf(a: u64) callconv(.C) f128 {
-    return intToFloat(f128, a);
-}
-
 fn _Qp_uxtoq(c: *f128, a: u64) callconv(.C) void {
     c.* = intToFloat(f128, a);
 }
diff --git a/lib/compiler_rt/floatunsitf.zig b/lib/compiler_rt/floatunsitf.zig
index bee656c8016f18d26d84028c728ccef130850c4f..af454e1e028d555ef07a14aa0923648525ba57bf 100644
--- a/lib/compiler_rt/floatunsitf.zig
+++ b/lib/compiler_rt/floatunsitf.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__floatunsikf, .{ .name = "__floatunsikf", .linkage = common.linkage });
+        @export(__floatunsitf, .{ .name = "__floatunsikf", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_uitoq, .{ .name = "_Qp_uitoq", .linkage = common.linkage });
-    } else {
-        @export(__floatunsitf, .{ .name = "__floatunsitf", .linkage = common.linkage });
     }
+    @export(__floatunsitf, .{ .name = "__floatunsitf", .linkage = common.linkage });
 }
 
 pub fn __floatunsitf(a: u32) callconv(.C) f128 {
     return intToFloat(f128, a);
 }
 
-fn __floatunsikf(a: u32) callconv(.C) f128 {
-    return intToFloat(f128, a);
-}
-
 fn _Qp_uitoq(c: *f128, a: u32) callconv(.C) void {
     c.* = intToFloat(f128, a);
 }
diff --git a/lib/compiler_rt/floatuntitf.zig b/lib/compiler_rt/floatuntitf.zig
index eb5d7037e9be26a416055aace21c622e51a1217e..ee386bc96ba520de95df08eee1ac2025eaf4b072 100644
--- a/lib/compiler_rt/floatuntitf.zig
+++ b/lib/compiler_rt/floatuntitf.zig
@@ -5,12 +5,13 @@ const intToFloat = @import("./int_to_float.zig").intToFloat;
 pub const panic = common.panic;
 
 comptime {
-    const symbol_name = if (common.want_ppc_abi) "__floatuntikf" else "__floatuntitf";
-
     if (common.want_windows_v2u64_abi) {
-        @export(__floatuntitf_windows_x86_64, .{ .name = symbol_name, .linkage = common.linkage });
+        @export(__floatuntitf_windows_x86_64, .{ .name = "__floatuntitf", .linkage = common.linkage });
     } else {
-        @export(__floatuntitf, .{ .name = symbol_name, .linkage = common.linkage });
+        if (common.want_ppc_abi) {
+            @export(__floatuntitf, .{ .name = "__floatuntikf", .linkage = common.linkage });
+        }
+        @export(__floatuntitf, .{ .name = "__floatuntitf", .linkage = common.linkage });
     }
 }
 
diff --git a/lib/compiler_rt/floor.zig b/lib/compiler_rt/floor.zig
index ef02786eb47925c54f09a8fc9357fa5ded42a251..afdc825f9f8353d7cfaf22dac6bc9b6ce7fcbcd9 100644
--- a/lib/compiler_rt/floor.zig
+++ b/lib/compiler_rt/floor.zig
@@ -18,8 +18,10 @@ comptime {
     @export(floorf, .{ .name = "floorf", .linkage = common.linkage });
     @export(floor, .{ .name = "floor", .linkage = common.linkage });
     @export(__floorx, .{ .name = "__floorx", .linkage = common.linkage });
-    const floorq_sym_name = if (common.want_ppc_abi) "floorf128" else "floorq";
-    @export(floorq, .{ .name = floorq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(floorq, .{ .name = "floorf128", .linkage = common.linkage });
+    }
+    @export(floorq, .{ .name = "floorq", .linkage = common.linkage });
     @export(floorl, .{ .name = "floorl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/fma.zig b/lib/compiler_rt/fma.zig
index aa37276ac3cacb85507ad19dc62cf5c4ac95f3bd..4bde30f50f16f7ef23799c82d59bdba812305e10 100644
--- a/lib/compiler_rt/fma.zig
+++ b/lib/compiler_rt/fma.zig
@@ -19,8 +19,10 @@ comptime {
     @export(fmaf, .{ .name = "fmaf", .linkage = common.linkage });
     @export(fma, .{ .name = "fma", .linkage = common.linkage });
     @export(__fmax, .{ .name = "__fmax", .linkage = common.linkage });
-    const fmaq_sym_name = if (common.want_ppc_abi) "fmaf128" else "fmaq";
-    @export(fmaq, .{ .name = fmaq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(fmaq, .{ .name = "fmaf128", .linkage = common.linkage });
+    }
+    @export(fmaq, .{ .name = "fmaq", .linkage = common.linkage });
     @export(fmal, .{ .name = "fmal", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/fmax.zig b/lib/compiler_rt/fmax.zig
index 5fb87e0183d89b8fcf60ab5cc5d7ac3162aed809..df7c4a7f2e9e8fa0e2e8480e8a16900092ed24b8 100644
--- a/lib/compiler_rt/fmax.zig
+++ b/lib/compiler_rt/fmax.zig
@@ -11,8 +11,10 @@ comptime {
     @export(fmaxf, .{ .name = "fmaxf", .linkage = common.linkage });
     @export(fmax, .{ .name = "fmax", .linkage = common.linkage });
     @export(__fmaxx, .{ .name = "__fmaxx", .linkage = common.linkage });
-    const fmaxq_sym_name = if (common.want_ppc_abi) "fmaxf128" else "fmaxq";
-    @export(fmaxq, .{ .name = fmaxq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(fmaxq, .{ .name = "fmaxf128", .linkage = common.linkage });
+    }
+    @export(fmaxq, .{ .name = "fmaxq", .linkage = common.linkage });
     @export(fmaxl, .{ .name = "fmaxl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/fmin.zig b/lib/compiler_rt/fmin.zig
index cc2fd7b3ac5bd272bb4633b11afdaffc897f6c19..7565f3a572db967ea1e52c0758da20403c3b4745 100644
--- a/lib/compiler_rt/fmin.zig
+++ b/lib/compiler_rt/fmin.zig
@@ -11,8 +11,10 @@ comptime {
     @export(fminf, .{ .name = "fminf", .linkage = common.linkage });
     @export(fmin, .{ .name = "fmin", .linkage = common.linkage });
     @export(__fminx, .{ .name = "__fminx", .linkage = common.linkage });
-    const fminq_sym_name = if (common.want_ppc_abi) "fminf128" else "fminq";
-    @export(fminq, .{ .name = fminq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(fminq, .{ .name = "fminf128", .linkage = common.linkage });
+    }
+    @export(fminq, .{ .name = "fminq", .linkage = common.linkage });
     @export(fminl, .{ .name = "fminl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/fmod.zig b/lib/compiler_rt/fmod.zig
index 22b20438cc3a4b8317a6e3c4d8f0d26465a53694..e276b9988476699f863eac2dc26ed954ed6a54fc 100644
--- a/lib/compiler_rt/fmod.zig
+++ b/lib/compiler_rt/fmod.zig
@@ -13,8 +13,10 @@ comptime {
     @export(fmodf, .{ .name = "fmodf", .linkage = common.linkage });
     @export(fmod, .{ .name = "fmod", .linkage = common.linkage });
     @export(__fmodx, .{ .name = "__fmodx", .linkage = common.linkage });
-    const fmodq_sym_name = if (common.want_ppc_abi) "fmodf128" else "fmodq";
-    @export(fmodq, .{ .name = fmodq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(fmodq, .{ .name = "fmodf128", .linkage = common.linkage });
+    }
+    @export(fmodq, .{ .name = "fmodq", .linkage = common.linkage });
     @export(fmodl, .{ .name = "fmodl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/getf2.zig b/lib/compiler_rt/getf2.zig
index 8d9d39c1f9b9a2a63c12d77c5d6d07cf4d996030..831736250fd161fe747a1f8e86b77014a7a432cb 100644
--- a/lib/compiler_rt/getf2.zig
+++ b/lib/compiler_rt/getf2.zig
@@ -7,15 +7,14 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__gekf2, .{ .name = "__gekf2", .linkage = common.linkage });
-        @export(__gtkf2, .{ .name = "__gtkf2", .linkage = common.linkage });
+        @export(__getf2, .{ .name = "__gekf2", .linkage = common.linkage });
+        @export(__gttf2, .{ .name = "__gtkf2", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         // These exports are handled in cmptf2.zig because gt and ge on sparc
         // are based on calling _Qp_cmp.
-    } else {
-        @export(__getf2, .{ .name = "__getf2", .linkage = common.linkage });
-        @export(__gttf2, .{ .name = "__gttf2", .linkage = common.linkage });
     }
+    @export(__getf2, .{ .name = "__getf2", .linkage = common.linkage });
+    @export(__gttf2, .{ .name = "__gttf2", .linkage = common.linkage });
 }
 
 /// "These functions return a value greater than or equal to zero if neither
@@ -29,11 +28,3 @@ fn __getf2(a: f128, b: f128) callconv(.C) i32 {
 fn __gttf2(a: f128, b: f128) callconv(.C) i32 {
     return __getf2(a, b);
 }
-
-fn __gekf2(a: f128, b: f128) callconv(.C) i32 {
-    return __getf2(a, b);
-}
-
-fn __gtkf2(a: f128, b: f128) callconv(.C) i32 {
-    return __getf2(a, b);
-}
diff --git a/lib/compiler_rt/log.zig b/lib/compiler_rt/log.zig
index 90a38ba3818c61240138fdebd18cf533478ffe8a..5e7085a41bd81c79ab49cbe5b92b4f68d0a87a1d 100644
--- a/lib/compiler_rt/log.zig
+++ b/lib/compiler_rt/log.zig
@@ -18,8 +18,10 @@ comptime {
     @export(logf, .{ .name = "logf", .linkage = common.linkage });
     @export(log, .{ .name = "log", .linkage = common.linkage });
     @export(__logx, .{ .name = "__logx", .linkage = common.linkage });
-    const logq_sym_name = if (common.want_ppc_abi) "logf128" else "logq";
-    @export(logq, .{ .name = logq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(logq, .{ .name = "logf128", .linkage = common.linkage });
+    }
+    @export(logq, .{ .name = "logq", .linkage = common.linkage });
     @export(logl, .{ .name = "logl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/log10.zig b/lib/compiler_rt/log10.zig
index 406eb8d0c1dd908a0a4a5c8f0d79284ef2496fe6..54638cc6458f27cff16a14d9c67b50a342401bd7 100644
--- a/lib/compiler_rt/log10.zig
+++ b/lib/compiler_rt/log10.zig
@@ -19,8 +19,10 @@ comptime {
     @export(log10f, .{ .name = "log10f", .linkage = common.linkage });
     @export(log10, .{ .name = "log10", .linkage = common.linkage });
     @export(__log10x, .{ .name = "__log10x", .linkage = common.linkage });
-    const log10q_sym_name = if (common.want_ppc_abi) "log10f128" else "log10q";
-    @export(log10q, .{ .name = log10q_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(log10q, .{ .name = "log10f128", .linkage = common.linkage });
+    }
+    @export(log10q, .{ .name = "log10q", .linkage = common.linkage });
     @export(log10l, .{ .name = "log10l", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/log2.zig b/lib/compiler_rt/log2.zig
index 6f6c07212a3f69267a1aebdd01e209f5890e68f2..8298c3dbe3251c520bfe3e0d9c27b2d8398c163b 100644
--- a/lib/compiler_rt/log2.zig
+++ b/lib/compiler_rt/log2.zig
@@ -19,8 +19,10 @@ comptime {
     @export(log2f, .{ .name = "log2f", .linkage = common.linkage });
     @export(log2, .{ .name = "log2", .linkage = common.linkage });
     @export(__log2x, .{ .name = "__log2x", .linkage = common.linkage });
-    const log2q_sym_name = if (common.want_ppc_abi) "log2f128" else "log2q";
-    @export(log2q, .{ .name = log2q_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(log2q, .{ .name = "log2f128", .linkage = common.linkage });
+    }
+    @export(log2q, .{ .name = "log2q", .linkage = common.linkage });
     @export(log2l, .{ .name = "log2l", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/memcmp.zig b/lib/compiler_rt/memcmp.zig
index b0a925438f7b7c2172e410c5f58a4c7c50d78b87..6f7e48135b6b9c2ac0c6c90e0553b6ca912a93ad 100644
--- a/lib/compiler_rt/memcmp.zig
+++ b/lib/compiler_rt/memcmp.zig
@@ -5,27 +5,26 @@ comptime {
     @export(memcmp, .{ .name = "memcmp", .linkage = common.linkage });
 }
 
-pub fn memcmp(vl: ?[*]const u8, vr: ?[*]const u8, n: usize) callconv(.C) c_int {
-    @setRuntimeSafety(false);
-
-    var index: usize = 0;
-    while (index != n) : (index += 1) {
-        const compare_val = @bitCast(i8, vl.?[index] -% vr.?[index]);
-        if (compare_val != 0) {
-            return compare_val;
-        }
+pub fn memcmp(vl: [*]const u8, vr: [*]const u8, n: usize) callconv(.C) c_int {
+    var i: usize = 0;
+    while (i < n) : (i += 1) {
+        const compared = @as(c_int, vl[i]) -% @as(c_int, vr[i]);
+        if (compared != 0) return compared;
     }
-
     return 0;
 }
 
 test "memcmp" {
-    const base_arr = &[_]u8{ 1, 1, 1 };
+    const arr0 = &[_]u8{ 1, 1, 1 };
     const arr1 = &[_]u8{ 1, 1, 1 };
     const arr2 = &[_]u8{ 1, 0, 1 };
     const arr3 = &[_]u8{ 1, 2, 1 };
+    const arr4 = &[_]u8{ 1, 0xff, 1 };
 
-    try std.testing.expect(memcmp(base_arr[0..], arr1[0..], base_arr.len) == 0);
-    try std.testing.expect(memcmp(base_arr[0..], arr2[0..], base_arr.len) > 0);
-    try std.testing.expect(memcmp(base_arr[0..], arr3[0..], base_arr.len) < 0);
+    try std.testing.expect(memcmp(arr0, arr1, 3) == 0);
+    try std.testing.expect(memcmp(arr0, arr2, 3) > 0);
+    try std.testing.expect(memcmp(arr0, arr3, 3) < 0);
+
+    try std.testing.expect(memcmp(arr0, arr4, 3) < 0);
+    try std.testing.expect(memcmp(arr4, arr0, 3) > 0);
 }
diff --git a/lib/compiler_rt/multf3.zig b/lib/compiler_rt/multf3.zig
index d4449ab72e56c9f9f92280c889840aa2068f9910..878cd5c4ac614f6b9fad68e6743334b1c96a3630 100644
--- a/lib/compiler_rt/multf3.zig
+++ b/lib/compiler_rt/multf3.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__mulkf3, .{ .name = "__mulkf3", .linkage = common.linkage });
+        @export(__multf3, .{ .name = "__mulkf3", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_mul, .{ .name = "_Qp_mul", .linkage = common.linkage });
-    } else {
-        @export(__multf3, .{ .name = "__multf3", .linkage = common.linkage });
     }
+    @export(__multf3, .{ .name = "__multf3", .linkage = common.linkage });
 }
 
 pub fn __multf3(a: f128, b: f128) callconv(.C) f128 {
     return mulf3(f128, a, b);
 }
 
-fn __mulkf3(a: f128, b: f128) callconv(.C) f128 {
-    return mulf3(f128, a, b);
-}
-
 fn _Qp_mul(c: *f128, a: *const f128, b: *const f128) callconv(.C) void {
     c.* = mulf3(f128, a.*, b.*);
 }
diff --git a/lib/compiler_rt/round.zig b/lib/compiler_rt/round.zig
index acd26d882328549e7cdcfd7aafd6446d52f8eca7..8f4b3903613eb26973038289df69f48c5a56131a 100644
--- a/lib/compiler_rt/round.zig
+++ b/lib/compiler_rt/round.zig
@@ -18,8 +18,10 @@ comptime {
     @export(roundf, .{ .name = "roundf", .linkage = common.linkage });
     @export(round, .{ .name = "round", .linkage = common.linkage });
     @export(__roundx, .{ .name = "__roundx", .linkage = common.linkage });
-    const roundq_sym_name = if (common.want_ppc_abi) "roundf128" else "roundq";
-    @export(roundq, .{ .name = roundq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(roundq, .{ .name = "roundf128", .linkage = common.linkage });
+    }
+    @export(roundq, .{ .name = "roundq", .linkage = common.linkage });
     @export(roundl, .{ .name = "roundl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/sin.zig b/lib/compiler_rt/sin.zig
index 1b93aab948a2a73f75a5caaf9312a71be6009e33..b6d388bf0adee473f9f5ec149a30ef77d845f3b2 100644
--- a/lib/compiler_rt/sin.zig
+++ b/lib/compiler_rt/sin.zig
@@ -22,8 +22,10 @@ comptime {
     @export(sinf, .{ .name = "sinf", .linkage = common.linkage });
     @export(sin, .{ .name = "sin", .linkage = common.linkage });
     @export(__sinx, .{ .name = "__sinx", .linkage = common.linkage });
-    const sinq_sym_name = if (common.want_ppc_abi) "sinf128" else "sinq";
-    @export(sinq, .{ .name = sinq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(sinq, .{ .name = "sinf128", .linkage = common.linkage });
+    }
+    @export(sinq, .{ .name = "sinq", .linkage = common.linkage });
     @export(sinl, .{ .name = "sinl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/sincos.zig b/lib/compiler_rt/sincos.zig
index c839356a360fb65b21b4450dd779006a661aa7e5..30a2b55d959c2c3b96dcbc1b3743a0ae06f6972b 100644
--- a/lib/compiler_rt/sincos.zig
+++ b/lib/compiler_rt/sincos.zig
@@ -14,8 +14,10 @@ comptime {
     @export(sincosf, .{ .name = "sincosf", .linkage = common.linkage });
     @export(sincos, .{ .name = "sincos", .linkage = common.linkage });
     @export(__sincosx, .{ .name = "__sincosx", .linkage = common.linkage });
-    const sincosq_sym_name = if (common.want_ppc_abi) "sincosf128" else "sincosq";
-    @export(sincosq, .{ .name = sincosq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(sincosq, .{ .name = "sincosf128", .linkage = common.linkage });
+    }
+    @export(sincosq, .{ .name = "sincosq", .linkage = common.linkage });
     @export(sincosl, .{ .name = "sincosl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/sqrt.zig b/lib/compiler_rt/sqrt.zig
index 01b09213fed2e07749c43d56cf3faee2a6f9d351..924a8dc9f95dc2377b77f5bb24d5d59d146bf9cb 100644
--- a/lib/compiler_rt/sqrt.zig
+++ b/lib/compiler_rt/sqrt.zig
@@ -11,8 +11,10 @@ comptime {
     @export(sqrtf, .{ .name = "sqrtf", .linkage = common.linkage });
     @export(sqrt, .{ .name = "sqrt", .linkage = common.linkage });
     @export(__sqrtx, .{ .name = "__sqrtx", .linkage = common.linkage });
-    const sqrtq_sym_name = if (common.want_ppc_abi) "sqrtf128" else "sqrtq";
-    @export(sqrtq, .{ .name = sqrtq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(sqrtq, .{ .name = "sqrtf128", .linkage = common.linkage });
+    }
+    @export(sqrtq, .{ .name = "sqrtq", .linkage = common.linkage });
     @export(sqrtl, .{ .name = "sqrtl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/subtf3.zig b/lib/compiler_rt/subtf3.zig
index 9477f96917a0a2a141fa7fc69dabe54b8548f0d4..4a0d833f57adbd4e6b1519729520537323bf6bed 100644
--- a/lib/compiler_rt/subtf3.zig
+++ b/lib/compiler_rt/subtf3.zig
@@ -4,22 +4,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__subkf3, .{ .name = "__subkf3", .linkage = common.linkage });
+        @export(__subtf3, .{ .name = "__subkf3", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_sub, .{ .name = "_Qp_sub", .linkage = common.linkage });
-    } else {
-        @export(__subtf3, .{ .name = "__subtf3", .linkage = common.linkage });
     }
+    @export(__subtf3, .{ .name = "__subtf3", .linkage = common.linkage });
 }
 
 pub fn __subtf3(a: f128, b: f128) callconv(.C) f128 {
     return sub(a, b);
 }
 
-fn __subkf3(a: f128, b: f128) callconv(.C) f128 {
-    return sub(a, b);
-}
-
 fn _Qp_sub(c: *f128, a: *const f128, b: *const f128) callconv(.C) void {
     c.* = sub(a.*, b.*);
 }
diff --git a/lib/compiler_rt/trunc.zig b/lib/compiler_rt/trunc.zig
index 9ced5bc92cddd2dfbe83771fe959435f99c03457..f600dff61f1942fa18297333677c645a551b5447 100644
--- a/lib/compiler_rt/trunc.zig
+++ b/lib/compiler_rt/trunc.zig
@@ -18,8 +18,10 @@ comptime {
     @export(truncf, .{ .name = "truncf", .linkage = common.linkage });
     @export(trunc, .{ .name = "trunc", .linkage = common.linkage });
     @export(__truncx, .{ .name = "__truncx", .linkage = common.linkage });
-    const truncq_sym_name = if (common.want_ppc_abi) "truncf128" else "truncq";
-    @export(truncq, .{ .name = truncq_sym_name, .linkage = common.linkage });
+    if (common.want_ppc_abi) {
+        @export(truncq, .{ .name = "truncf128", .linkage = common.linkage });
+    }
+    @export(truncq, .{ .name = "truncq", .linkage = common.linkage });
     @export(truncl, .{ .name = "truncl", .linkage = common.linkage });
 }
 
diff --git a/lib/compiler_rt/trunctfdf2.zig b/lib/compiler_rt/trunctfdf2.zig
index e084d63d8836f31adafa8f26ce0116e621e6d049..02be252856a9fcceec29332680d1e2686a9133d9 100644
--- a/lib/compiler_rt/trunctfdf2.zig
+++ b/lib/compiler_rt/trunctfdf2.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__trunckfdf2, .{ .name = "__trunckfdf2", .linkage = common.linkage });
+        @export(__trunctfdf2, .{ .name = "__trunckfdf2", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_qtod, .{ .name = "_Qp_qtod", .linkage = common.linkage });
-    } else {
-        @export(__trunctfdf2, .{ .name = "__trunctfdf2", .linkage = common.linkage });
     }
+    @export(__trunctfdf2, .{ .name = "__trunctfdf2", .linkage = common.linkage });
 }
 
 pub fn __trunctfdf2(a: f128) callconv(.C) f64 {
     return truncf(f64, f128, a);
 }
 
-fn __trunckfdf2(a: f128) callconv(.C) f64 {
-    return truncf(f64, f128, a);
-}
-
 fn _Qp_qtod(a: *const f128) callconv(.C) f64 {
     return truncf(f64, f128, a.*);
 }
diff --git a/lib/compiler_rt/trunctfsf2.zig b/lib/compiler_rt/trunctfsf2.zig
index 0fcd5e1e086819c1768476876ef3cb4c17505526..88a3668a93f48b01e676799806cd7b2161e9cc2d 100644
--- a/lib/compiler_rt/trunctfsf2.zig
+++ b/lib/compiler_rt/trunctfsf2.zig
@@ -5,22 +5,17 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__trunckfsf2, .{ .name = "__trunckfsf2", .linkage = common.linkage });
+        @export(__trunctfsf2, .{ .name = "__trunckfsf2", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         @export(_Qp_qtos, .{ .name = "_Qp_qtos", .linkage = common.linkage });
-    } else {
-        @export(__trunctfsf2, .{ .name = "__trunctfsf2", .linkage = common.linkage });
     }
+    @export(__trunctfsf2, .{ .name = "__trunctfsf2", .linkage = common.linkage });
 }
 
 pub fn __trunctfsf2(a: f128) callconv(.C) f32 {
     return truncf(f32, f128, a);
 }
 
-fn __trunckfsf2(a: f128) callconv(.C) f32 {
-    return truncf(f32, f128, a);
-}
-
 fn _Qp_qtos(a: *const f128) callconv(.C) f32 {
     return truncf(f32, f128, a.*);
 }
diff --git a/lib/compiler_rt/unordtf2.zig b/lib/compiler_rt/unordtf2.zig
index 41d1d7008eb3a482b169d088e1bd7797689dd157..e00d9cc6d14d2d33ca84048bf74c5d039f189b96 100644
--- a/lib/compiler_rt/unordtf2.zig
+++ b/lib/compiler_rt/unordtf2.zig
@@ -5,19 +5,14 @@ pub const panic = common.panic;
 
 comptime {
     if (common.want_ppc_abi) {
-        @export(__unordkf2, .{ .name = "__unordkf2", .linkage = common.linkage });
+        @export(__unordtf2, .{ .name = "__unordkf2", .linkage = common.linkage });
     } else if (common.want_sparc_abi) {
         // These exports are handled in cmptf2.zig because unordered comparisons
         // are based on calling _Qp_cmp.
-    } else {
-        @export(__unordtf2, .{ .name = "__unordtf2", .linkage = common.linkage });
     }
+    @export(__unordtf2, .{ .name = "__unordtf2", .linkage = common.linkage });
 }
 
 fn __unordtf2(a: f128, b: f128) callconv(.C) i32 {
     return comparef.unordcmp(f128, a, b);
 }
-
-fn __unordkf2(a: f128, b: f128) callconv(.C) i32 {
-    return comparef.unordcmp(f128, a, b);
-}
diff --git a/lib/libc/darwin/libSystem.10.tbd b/lib/libc/darwin/libSystem.10.tbd
deleted file mode 100644
index e6c3ca3a04a8db606d48fa46e692d8ebf60b8b81..0000000000000000000000000000000000000000
--- a/lib/libc/darwin/libSystem.10.tbd
+++ /dev/null
@@ -1,3061 +0,0 @@
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           001B3B7F-D02C-31D3-B961-1ED445D5A266
-  - target:          x86_64-maccatalyst
-    value:           001B3B7F-D02C-31D3-B961-1ED445D5A266
-install-name:    '/usr/lib/libSystem.B.dylib'
-current-version: 1281.100.1
-reexported-libraries:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    libraries:       [ '/usr/lib/system/libcache.dylib', '/usr/lib/system/libcommonCrypto.dylib', 
-                       '/usr/lib/system/libcompiler_rt.dylib', '/usr/lib/system/libcopyfile.dylib', 
-                       '/usr/lib/system/libcorecrypto.dylib', '/usr/lib/system/libdispatch.dylib', 
-                       '/usr/lib/system/libdyld.dylib', '/usr/lib/system/libkeymgr.dylib', 
-                       '/usr/lib/system/liblaunch.dylib', '/usr/lib/system/libmacho.dylib', 
-                       '/usr/lib/system/libquarantine.dylib', '/usr/lib/system/libremovefile.dylib', 
-                       '/usr/lib/system/libsystem_asl.dylib', '/usr/lib/system/libsystem_blocks.dylib', 
-                       '/usr/lib/system/libsystem_c.dylib', '/usr/lib/system/libsystem_configuration.dylib', 
-                       '/usr/lib/system/libsystem_coreservices.dylib', '/usr/lib/system/libsystem_darwin.dylib', 
-                       '/usr/lib/system/libsystem_dnssd.dylib', '/usr/lib/system/libsystem_featureflags.dylib', 
-                       '/usr/lib/system/libsystem_info.dylib', '/usr/lib/system/libsystem_kernel.dylib', 
-                       '/usr/lib/system/libsystem_m.dylib', '/usr/lib/system/libsystem_malloc.dylib', 
-                       '/usr/lib/system/libsystem_networkextension.dylib', '/usr/lib/system/libsystem_notify.dylib', 
-                       '/usr/lib/system/libsystem_platform.dylib', '/usr/lib/system/libsystem_pthread.dylib', 
-                       '/usr/lib/system/libsystem_sandbox.dylib', '/usr/lib/system/libsystem_secinit.dylib', 
-                       '/usr/lib/system/libsystem_symptoms.dylib', '/usr/lib/system/libsystem_trace.dylib', 
-                       '/usr/lib/system/libunwind.dylib', '/usr/lib/system/libxpc.dylib' ]
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ 'R8289209$_close', 'R8289209$_fork', 'R8289209$_fsync', 'R8289209$_getattrlist', 
-                       'R8289209$_getrlimit', 'R8289209$_getxattr', 'R8289209$_open', 
-                       'R8289209$_pthread_attr_destroy', 'R8289209$_pthread_attr_init', 
-                       'R8289209$_pthread_attr_setdetachstate', 'R8289209$_pthread_create', 
-                       'R8289209$_pthread_mutex_lock', 'R8289209$_pthread_mutex_unlock', 
-                       'R8289209$_pthread_self', 'R8289209$_ptrace', 'R8289209$_read', 
-                       'R8289209$_setattrlist', 'R8289209$_setrlimit', 'R8289209$_sigaction', 
-                       'R8289209$_stat', 'R8289209$_sysctl', 'R8289209$_time', 'R8289209$_unlink', 
-                       'R8289209$_write', ___crashreporter_info__, _libSystem_atfork_child, 
-                       _libSystem_atfork_parent, _libSystem_atfork_prepare, _mach_init_routine ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           AF488D13-9E89-35E0-B078-BE37CC5B8586
-  - target:          x86_64-maccatalyst
-    value:           AF488D13-9E89-35E0-B078-BE37CC5B8586
-install-name:    '/usr/lib/system/libcache.dylib'
-current-version: 83
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _cache_create, _cache_destroy, _cache_get, _cache_get_and_retain, 
-                       _cache_get_cost_hint, _cache_get_count_hint, _cache_get_info, 
-                       _cache_get_info_for_key, _cache_get_info_for_keys, _cache_get_minimum_values_hint, 
-                       _cache_get_name, _cache_hash_byte_string, _cache_invoke, _cache_key_hash_cb_cstring, 
-                       _cache_key_hash_cb_integer, _cache_key_is_equal_cb_cstring, 
-                       _cache_key_is_equal_cb_integer, _cache_print, _cache_print_stats, 
-                       _cache_release_cb_free, _cache_release_value, _cache_remove, 
-                       _cache_remove_all, _cache_remove_with_block, _cache_set_and_retain, 
-                       _cache_set_cost_hint, _cache_set_count_hint, _cache_set_minimum_values_hint, 
-                       _cache_set_name, _cache_simulate_memory_warning_event, _cache_value_make_nonpurgeable_cb, 
-                       _cache_value_make_purgeable_cb ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           C7912BE5-993E-3581-B2A0-6AABDC8C5562
-  - target:          x86_64-maccatalyst
-    value:           C7912BE5-993E-3581-B2A0-6AABDC8C5562
-install-name:    '/usr/lib/system/libcommonCrypto.dylib'
-current-version: 60165.120.1
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _CCAESCmac, _CCAESCmacCreate, _CCAESCmacDestroy, _CCAESCmacFinal, 
-                       _CCAESCmacOutputSizeFromContext, _CCAESCmacUpdate, _CCBigNumAdd, 
-                       _CCBigNumAddI, _CCBigNumBitCount, _CCBigNumByteCount, _CCBigNumClear, 
-                       _CCBigNumCompare, _CCBigNumCompareI, _CCBigNumCopy, _CCBigNumCreateRandom, 
-                       _CCBigNumDiv, _CCBigNumDiv2, _CCBigNumFree, _CCBigNumFromData, 
-                       _CCBigNumFromDecimalString, _CCBigNumFromHexString, _CCBigNumGCD, 
-                       _CCBigNumGetI, _CCBigNumInverseMod, _CCBigNumIsNegative, _CCBigNumIsOdd, 
-                       _CCBigNumIsPrime, _CCBigNumIsZero, _CCBigNumLCM, _CCBigNumLeftShift, 
-                       _CCBigNumMod, _CCBigNumModExp, _CCBigNumModI, _CCBigNumMontgomeryNormalization, 
-                       _CCBigNumMontgomeryReduce, _CCBigNumMontgomerySetup, _CCBigNumMul, 
-                       _CCBigNumMulI, _CCBigNumMulMod, _CCBigNumRightShift, _CCBigNumSetI, 
-                       _CCBigNumSetNegative, _CCBigNumSquare, _CCBigNumSquareMod, 
-                       _CCBigNumSub, _CCBigNumSubI, _CCBigNumToData, _CCBigNumToDecimalString, 
-                       _CCBigNumToHexString, _CCBigNumZeroLSBCount, _CCCKGContributorCommit, 
-                       _CCCKGContributorCreate, _CCCKGContributorDestroy, _CCCKGContributorFinish, 
-                       _CCCKGGetCommitmentSize, _CCCKGGetOpeningSize, _CCCKGGetShareSize, 
-                       _CCCKGOwnerCreate, _CCCKGOwnerDestroy, _CCCKGOwnerFinish, 
-                       _CCCKGOwnerGenerateShare, _CCCalibratePBKDF, _CCCreateBigNum, 
-                       _CCCrypt, _CCCryptorAddParameter, _CCCryptorCreate, _CCCryptorCreateFromData, 
-                       _CCCryptorCreateFromDataWithMode, _CCCryptorCreateWithMode, 
-                       _CCCryptorDecryptDataBlock, _CCCryptorEncryptDataBlock, _CCCryptorFinal, 
-                       _CCCryptorGCM, _CCCryptorGCMAddAAD, _CCCryptorGCMAddADD, _CCCryptorGCMAddIV, 
-                       _CCCryptorGCMDecrypt, _CCCryptorGCMEncrypt, _CCCryptorGCMFinal, 
-                       _CCCryptorGCMFinalize, _CCCryptorGCMOneshotDecrypt, _CCCryptorGCMOneshotEncrypt, 
-                       _CCCryptorGCMReset, _CCCryptorGCMSetIV, _CCCryptorGCMaddAAD, 
-                       _CCCryptorGetIV, _CCCryptorGetOutputLength, _CCCryptorGetParameter, 
-                       _CCCryptorRelease, _CCCryptorReset, _CCCryptorReset_binary_compatibility, 
-                       _CCCryptorUpdate, _CCDHComputeKey, _CCDHCreate, _CCDHGenerateKey, 
-                       _CCDHParametersCreateFromData, _CCDHParametersCreateFromPKCS3, 
-                       _CCDHParametersPKCS3Encode, _CCDHParametersPKCS3EncodeLength, 
-                       _CCDHParametersRelease, _CCDHRelease, _CCDeriveKey, _CCDesCBCCksum, 
-                       _CCDesIsWeakKey, _CCDesSetOddParity, _CCDigest, _CCDigestBlockSize, 
-                       _CCDigestCreate, _CCDigestCreateByOID, _CCDigestDestroy, _CCDigestFinal, 
-                       _CCDigestGetBlockSize, _CCDigestGetBlockSizeFromRef, _CCDigestGetOutputSize, 
-                       _CCDigestGetOutputSizeFromRef, _CCDigestInit, _CCDigestOID, 
-                       _CCDigestOIDLen, _CCDigestOutputSize, _CCDigestReset, _CCDigestUpdate, 
-                       _CCECCryptorComputeSharedSecret, _CCECCryptorCreateFromData, 
-                       _CCECCryptorExportKey, _CCECCryptorExportPublicKey, _CCECCryptorGeneratePair, 
-                       _CCECCryptorGetKeyComponents, _CCECCryptorGetPublicKeyFromPrivateKey, 
-                       _CCECCryptorImportKey, _CCECCryptorImportPublicKey, _CCECCryptorRelease, 
-                       _CCECCryptorSignHash, _CCECCryptorTwinDiversifyEntropySize, 
-                       _CCECCryptorTwinDiversifyKey, _CCECCryptorUnwrapKey, _CCECCryptorVerifyHash, 
-                       _CCECCryptorWrapKey, _CCECGetKeySize, _CCECGetKeyType, _CCHmac, 
-                       _CCHmacClone, _CCHmacCreate, _CCHmacDestroy, _CCHmacFinal, 
-                       _CCHmacInit, _CCHmacOneShot, _CCHmacOutputSize, _CCHmacOutputSizeFromRef, 
-                       _CCHmacUpdate, _CCKDFParametersCreateAnsiX963, _CCKDFParametersCreateCtrHmac, 
-                       _CCKDFParametersCreateCtrHmacFixed, _CCKDFParametersCreateHkdf, 
-                       _CCKDFParametersCreatePbkdf2, _CCKDFParametersDestroy, _CCKeyDerivationHMac, 
-                       _CCKeyDerivationPBKDF, _CCRSACryptorCreateFromData, _CCRSACryptorCreatePublicKeyFromPrivateKey, 
-                       _CCRSACryptorCrypt, _CCRSACryptorDecrypt, _CCRSACryptorEncrypt, 
-                       _CCRSACryptorExport, _CCRSACryptorGeneratePair, _CCRSACryptorGetPublicKeyFromPrivateKey, 
-                       _CCRSACryptorImport, _CCRSACryptorRelease, _CCRSACryptorSign, 
-                       _CCRSACryptorVerify, _CCRSAGetCRTComponents, _CCRSAGetCRTComponentsSizes, 
-                       _CCRSAGetKeyComponents, _CCRSAGetKeySize, _CCRSAGetKeyType, 
-                       _CCRandomCopyBytes, _CCRandomGenerateBytes, _CCRandomUniform, 
-                       _CCSymmetricKeyUnwrap, _CCSymmetricKeyWrap, _CCSymmetricUnwrappedSize, 
-                       _CCSymmetricWrappedSize, _CC_MD2, _CC_MD2_Final, _CC_MD2_Init, 
-                       _CC_MD2_Update, _CC_MD4, _CC_MD4_Final, _CC_MD4_Init, _CC_MD4_Update, 
-                       _CC_MD5, _CC_MD5_Final, _CC_MD5_Init, _CC_MD5_Update, _CC_RC4, 
-                       _CC_RC4_set_key, _CC_SHA1, _CC_SHA1_Final, _CC_SHA1_Init, 
-                       _CC_SHA1_Update, _CC_SHA224, _CC_SHA224_Final, _CC_SHA224_Init, 
-                       _CC_SHA224_Update, _CC_SHA256, _CC_SHA256_Final, _CC_SHA256_Init, 
-                       _CC_SHA256_Update, _CC_SHA384, _CC_SHA384_Final, _CC_SHA384_Init, 
-                       _CC_SHA384_Update, _CC_SHA512, _CC_SHA512_Final, _CC_SHA512_Init, 
-                       _CC_SHA512_Update, _CCrfc3394_iv, _CCrfc3394_ivLen, _CNCRC, 
-                       _CNCRCDumpTable, _CNCRCFinal, _CNCRCInit, _CNCRCRelease, _CNCRCUpdate, 
-                       _CNCRCWeakTest, _CNEncode, _CNEncoderBlocksize, _CNEncoderBlocksizeFromRef, 
-                       _CNEncoderCreate, _CNEncoderCreateCustom, _CNEncoderFinal, 
-                       _CNEncoderGetOutputLength, _CNEncoderGetOutputLengthFromEncoding, 
-                       _CNEncoderRelease, _CNEncoderUpdate, _MD5Final, _ccDRBGGetRngState, 
-                       _ccDevRandomGetRngState, _kCCDHRFC2409Group2, _kCCDHRFC3526Group5, 
-                       _kCCRandomDefault, _kCCRandomDevRandom ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos ]
-uuids:
-  - target:          x86_64-macos
-    value:           49B8F644-5705-3F16-BBE0-6FFF9B17C36E
-install-name:    '/usr/lib/system/libcompiler_rt.dylib'
-current-version: 101.2
-parent-umbrella:
-  - targets:         [ x86_64-macos ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos ]
-    symbols:         [ '$ld$hide$os10.10$___chkstk_darwin', '$ld$hide$os10.10$___extendhfsf2', 
-                       '$ld$hide$os10.10$___truncdfhf2', '$ld$hide$os10.10$___truncsfhf2', 
-                       '$ld$hide$os10.10$_atomic_flag_clear', '$ld$hide$os10.10$_atomic_flag_clear_explicit', 
-                       '$ld$hide$os10.10$_atomic_flag_test_and_set', '$ld$hide$os10.10$_atomic_flag_test_and_set_explicit', 
-                       '$ld$hide$os10.10$_atomic_signal_fence', '$ld$hide$os10.10$_atomic_thread_fence', 
-                       '$ld$hide$os10.11$___chkstk_darwin', '$ld$hide$os10.12$___chkstk_darwin', 
-                       '$ld$hide$os10.13$___chkstk_darwin', '$ld$hide$os10.14$___chkstk_darwin', 
-                       '$ld$hide$os10.4$___absvdi2', '$ld$hide$os10.4$___absvsi2', 
-                       '$ld$hide$os10.4$___absvti2', '$ld$hide$os10.4$___addvdi3', 
-                       '$ld$hide$os10.4$___addvsi3', '$ld$hide$os10.4$___addvti3', 
-                       '$ld$hide$os10.4$___ashldi3', '$ld$hide$os10.4$___ashlti3', 
-                       '$ld$hide$os10.4$___ashrdi3', '$ld$hide$os10.4$___ashrti3', 
-                       '$ld$hide$os10.4$___clear_cache', '$ld$hide$os10.4$___clzdi2', 
-                       '$ld$hide$os10.4$___clzsi2', '$ld$hide$os10.4$___clzti2', 
-                       '$ld$hide$os10.4$___cmpdi2', '$ld$hide$os10.4$___cmpti2', 
-                       '$ld$hide$os10.4$___ctzdi2', '$ld$hide$os10.4$___ctzsi2', 
-                       '$ld$hide$os10.4$___ctzti2', '$ld$hide$os10.4$___divdc3', 
-                       '$ld$hide$os10.4$___divdi3', '$ld$hide$os10.4$___divsc3', 
-                       '$ld$hide$os10.4$___divti3', '$ld$hide$os10.4$___divxc3', 
-                       '$ld$hide$os10.4$___enable_execute_stack', '$ld$hide$os10.4$___ffsdi2', 
-                       '$ld$hide$os10.4$___ffsti2', '$ld$hide$os10.4$___fixdfdi', 
-                       '$ld$hide$os10.4$___fixdfti', '$ld$hide$os10.4$___fixsfdi', 
-                       '$ld$hide$os10.4$___fixsfti', '$ld$hide$os10.4$___fixunsdfdi', 
-                       '$ld$hide$os10.4$___fixunsdfsi', '$ld$hide$os10.4$___fixunsdfti', 
-                       '$ld$hide$os10.4$___fixunssfdi', '$ld$hide$os10.4$___fixunssfsi', 
-                       '$ld$hide$os10.4$___fixunssfti', '$ld$hide$os10.4$___fixunsxfdi', 
-                       '$ld$hide$os10.4$___fixunsxfsi', '$ld$hide$os10.4$___fixunsxfti', 
-                       '$ld$hide$os10.4$___fixxfdi', '$ld$hide$os10.4$___fixxfti', 
-                       '$ld$hide$os10.4$___floatdidf', '$ld$hide$os10.4$___floatdisf', 
-                       '$ld$hide$os10.4$___floatdixf', '$ld$hide$os10.4$___floattidf', 
-                       '$ld$hide$os10.4$___floattisf', '$ld$hide$os10.4$___floattixf', 
-                       '$ld$hide$os10.4$___floatundidf', '$ld$hide$os10.4$___floatundisf', 
-                       '$ld$hide$os10.4$___floatundixf', '$ld$hide$os10.4$___floatuntidf', 
-                       '$ld$hide$os10.4$___floatuntisf', '$ld$hide$os10.4$___floatuntixf', 
-                       '$ld$hide$os10.4$___gcc_personality_v0', '$ld$hide$os10.4$___lshrdi3', 
-                       '$ld$hide$os10.4$___lshrti3', '$ld$hide$os10.4$___moddi3', 
-                       '$ld$hide$os10.4$___modti3', '$ld$hide$os10.4$___muldc3', 
-                       '$ld$hide$os10.4$___muldi3', '$ld$hide$os10.4$___mulsc3', 
-                       '$ld$hide$os10.4$___multi3', '$ld$hide$os10.4$___mulvdi3', 
-                       '$ld$hide$os10.4$___mulvsi3', '$ld$hide$os10.4$___mulvti3', 
-                       '$ld$hide$os10.4$___mulxc3', '$ld$hide$os10.4$___negdi2', 
-                       '$ld$hide$os10.4$___negti2', '$ld$hide$os10.4$___negvdi2', 
-                       '$ld$hide$os10.4$___negvsi2', '$ld$hide$os10.4$___negvti2', 
-                       '$ld$hide$os10.4$___paritydi2', '$ld$hide$os10.4$___paritysi2', 
-                       '$ld$hide$os10.4$___parityti2', '$ld$hide$os10.4$___popcountdi2', 
-                       '$ld$hide$os10.4$___popcountsi2', '$ld$hide$os10.4$___popcountti2', 
-                       '$ld$hide$os10.4$___powidf2', '$ld$hide$os10.4$___powisf2', 
-                       '$ld$hide$os10.4$___powixf2', '$ld$hide$os10.4$___subvdi3', 
-                       '$ld$hide$os10.4$___subvsi3', '$ld$hide$os10.4$___subvti3', 
-                       '$ld$hide$os10.4$___ucmpdi2', '$ld$hide$os10.4$___ucmpti2', 
-                       '$ld$hide$os10.4$___udivdi3', '$ld$hide$os10.4$___udivmoddi4', 
-                       '$ld$hide$os10.4$___udivmodti4', '$ld$hide$os10.4$___udivti3', 
-                       '$ld$hide$os10.4$___umoddi3', '$ld$hide$os10.4$___umodti3', 
-                       '$ld$hide$os10.5$___absvdi2', '$ld$hide$os10.5$___absvsi2', 
-                       '$ld$hide$os10.5$___absvti2', '$ld$hide$os10.5$___addvdi3', 
-                       '$ld$hide$os10.5$___addvsi3', '$ld$hide$os10.5$___addvti3', 
-                       '$ld$hide$os10.5$___ashldi3', '$ld$hide$os10.5$___ashlti3', 
-                       '$ld$hide$os10.5$___ashrdi3', '$ld$hide$os10.5$___ashrti3', 
-                       '$ld$hide$os10.5$___clear_cache', '$ld$hide$os10.5$___clzdi2', 
-                       '$ld$hide$os10.5$___clzsi2', '$ld$hide$os10.5$___clzti2', 
-                       '$ld$hide$os10.5$___cmpdi2', '$ld$hide$os10.5$___cmpti2', 
-                       '$ld$hide$os10.5$___ctzdi2', '$ld$hide$os10.5$___ctzsi2', 
-                       '$ld$hide$os10.5$___ctzti2', '$ld$hide$os10.5$___divdc3', 
-                       '$ld$hide$os10.5$___divdi3', '$ld$hide$os10.5$___divsc3', 
-                       '$ld$hide$os10.5$___divti3', '$ld$hide$os10.5$___divxc3', 
-                       '$ld$hide$os10.5$___enable_execute_stack', '$ld$hide$os10.5$___ffsdi2', 
-                       '$ld$hide$os10.5$___ffsti2', '$ld$hide$os10.5$___fixdfdi', 
-                       '$ld$hide$os10.5$___fixdfti', '$ld$hide$os10.5$___fixsfdi', 
-                       '$ld$hide$os10.5$___fixsfti', '$ld$hide$os10.5$___fixunsdfdi', 
-                       '$ld$hide$os10.5$___fixunsdfsi', '$ld$hide$os10.5$___fixunsdfti', 
-                       '$ld$hide$os10.5$___fixunssfdi', '$ld$hide$os10.5$___fixunssfsi', 
-                       '$ld$hide$os10.5$___fixunssfti', '$ld$hide$os10.5$___fixunsxfdi', 
-                       '$ld$hide$os10.5$___fixunsxfsi', '$ld$hide$os10.5$___fixunsxfti', 
-                       '$ld$hide$os10.5$___fixxfdi', '$ld$hide$os10.5$___fixxfti', 
-                       '$ld$hide$os10.5$___floatdidf', '$ld$hide$os10.5$___floatdisf', 
-                       '$ld$hide$os10.5$___floatdixf', '$ld$hide$os10.5$___floattidf', 
-                       '$ld$hide$os10.5$___floattisf', '$ld$hide$os10.5$___floattixf', 
-                       '$ld$hide$os10.5$___floatundidf', '$ld$hide$os10.5$___floatundisf', 
-                       '$ld$hide$os10.5$___floatundixf', '$ld$hide$os10.5$___floatuntidf', 
-                       '$ld$hide$os10.5$___floatuntisf', '$ld$hide$os10.5$___floatuntixf', 
-                       '$ld$hide$os10.5$___gcc_personality_v0', '$ld$hide$os10.5$___lshrdi3', 
-                       '$ld$hide$os10.5$___lshrti3', '$ld$hide$os10.5$___moddi3', 
-                       '$ld$hide$os10.5$___modti3', '$ld$hide$os10.5$___muldc3', 
-                       '$ld$hide$os10.5$___muldi3', '$ld$hide$os10.5$___mulsc3', 
-                       '$ld$hide$os10.5$___multi3', '$ld$hide$os10.5$___mulvdi3', 
-                       '$ld$hide$os10.5$___mulvsi3', '$ld$hide$os10.5$___mulvti3', 
-                       '$ld$hide$os10.5$___mulxc3', '$ld$hide$os10.5$___negdi2', 
-                       '$ld$hide$os10.5$___negti2', '$ld$hide$os10.5$___negvdi2', 
-                       '$ld$hide$os10.5$___negvsi2', '$ld$hide$os10.5$___negvti2', 
-                       '$ld$hide$os10.5$___paritydi2', '$ld$hide$os10.5$___paritysi2', 
-                       '$ld$hide$os10.5$___parityti2', '$ld$hide$os10.5$___popcountdi2', 
-                       '$ld$hide$os10.5$___popcountsi2', '$ld$hide$os10.5$___popcountti2', 
-                       '$ld$hide$os10.5$___powidf2', '$ld$hide$os10.5$___powisf2', 
-                       '$ld$hide$os10.5$___powixf2', '$ld$hide$os10.5$___subvdi3', 
-                       '$ld$hide$os10.5$___subvsi3', '$ld$hide$os10.5$___subvti3', 
-                       '$ld$hide$os10.5$___ucmpdi2', '$ld$hide$os10.5$___ucmpti2', 
-                       '$ld$hide$os10.5$___udivdi3', '$ld$hide$os10.5$___udivmoddi4', 
-                       '$ld$hide$os10.5$___udivmodti4', '$ld$hide$os10.5$___udivti3', 
-                       '$ld$hide$os10.5$___umoddi3', '$ld$hide$os10.5$___umodti3', 
-                       '$ld$hide$os10.6$___atomic_compare_exchange', '$ld$hide$os10.6$___atomic_compare_exchange_1', 
-                       '$ld$hide$os10.6$___atomic_compare_exchange_2', '$ld$hide$os10.6$___atomic_compare_exchange_4', 
-                       '$ld$hide$os10.6$___atomic_compare_exchange_8', '$ld$hide$os10.6$___atomic_exchange', 
-                       '$ld$hide$os10.6$___atomic_exchange_1', '$ld$hide$os10.6$___atomic_exchange_2', 
-                       '$ld$hide$os10.6$___atomic_exchange_4', '$ld$hide$os10.6$___atomic_exchange_8', 
-                       '$ld$hide$os10.6$___atomic_fetch_add_1', '$ld$hide$os10.6$___atomic_fetch_add_2', 
-                       '$ld$hide$os10.6$___atomic_fetch_add_4', '$ld$hide$os10.6$___atomic_fetch_add_8', 
-                       '$ld$hide$os10.6$___atomic_fetch_and_1', '$ld$hide$os10.6$___atomic_fetch_and_2', 
-                       '$ld$hide$os10.6$___atomic_fetch_and_4', '$ld$hide$os10.6$___atomic_fetch_and_8', 
-                       '$ld$hide$os10.6$___atomic_fetch_or_1', '$ld$hide$os10.6$___atomic_fetch_or_2', 
-                       '$ld$hide$os10.6$___atomic_fetch_or_4', '$ld$hide$os10.6$___atomic_fetch_or_8', 
-                       '$ld$hide$os10.6$___atomic_fetch_sub_1', '$ld$hide$os10.6$___atomic_fetch_sub_2', 
-                       '$ld$hide$os10.6$___atomic_fetch_sub_4', '$ld$hide$os10.6$___atomic_fetch_sub_8', 
-                       '$ld$hide$os10.6$___atomic_fetch_xor_1', '$ld$hide$os10.6$___atomic_fetch_xor_2', 
-                       '$ld$hide$os10.6$___atomic_fetch_xor_4', '$ld$hide$os10.6$___atomic_fetch_xor_8', 
-                       '$ld$hide$os10.6$___atomic_load', '$ld$hide$os10.6$___atomic_load_1', 
-                       '$ld$hide$os10.6$___atomic_load_2', '$ld$hide$os10.6$___atomic_load_4', 
-                       '$ld$hide$os10.6$___atomic_load_8', '$ld$hide$os10.6$___atomic_store', 
-                       '$ld$hide$os10.6$___atomic_store_1', '$ld$hide$os10.6$___atomic_store_2', 
-                       '$ld$hide$os10.6$___atomic_store_4', '$ld$hide$os10.6$___atomic_store_8', 
-                       '$ld$hide$os10.6$___chkstk_darwin', '$ld$hide$os10.6$___extendhfsf2', 
-                       '$ld$hide$os10.6$___truncdfhf2', '$ld$hide$os10.6$___truncsfhf2', 
-                       '$ld$hide$os10.6$_atomic_flag_clear', '$ld$hide$os10.6$_atomic_flag_clear_explicit', 
-                       '$ld$hide$os10.6$_atomic_flag_test_and_set', '$ld$hide$os10.6$_atomic_flag_test_and_set_explicit', 
-                       '$ld$hide$os10.6$_atomic_signal_fence', '$ld$hide$os10.6$_atomic_thread_fence', 
-                       '$ld$hide$os10.7$___atomic_compare_exchange', '$ld$hide$os10.7$___atomic_compare_exchange_1', 
-                       '$ld$hide$os10.7$___atomic_compare_exchange_2', '$ld$hide$os10.7$___atomic_compare_exchange_4', 
-                       '$ld$hide$os10.7$___atomic_compare_exchange_8', '$ld$hide$os10.7$___atomic_exchange', 
-                       '$ld$hide$os10.7$___atomic_exchange_1', '$ld$hide$os10.7$___atomic_exchange_2', 
-                       '$ld$hide$os10.7$___atomic_exchange_4', '$ld$hide$os10.7$___atomic_exchange_8', 
-                       '$ld$hide$os10.7$___atomic_fetch_add_1', '$ld$hide$os10.7$___atomic_fetch_add_2', 
-                       '$ld$hide$os10.7$___atomic_fetch_add_4', '$ld$hide$os10.7$___atomic_fetch_add_8', 
-                       '$ld$hide$os10.7$___atomic_fetch_and_1', '$ld$hide$os10.7$___atomic_fetch_and_2', 
-                       '$ld$hide$os10.7$___atomic_fetch_and_4', '$ld$hide$os10.7$___atomic_fetch_and_8', 
-                       '$ld$hide$os10.7$___atomic_fetch_or_1', '$ld$hide$os10.7$___atomic_fetch_or_2', 
-                       '$ld$hide$os10.7$___atomic_fetch_or_4', '$ld$hide$os10.7$___atomic_fetch_or_8', 
-                       '$ld$hide$os10.7$___atomic_fetch_sub_1', '$ld$hide$os10.7$___atomic_fetch_sub_2', 
-                       '$ld$hide$os10.7$___atomic_fetch_sub_4', '$ld$hide$os10.7$___atomic_fetch_sub_8', 
-                       '$ld$hide$os10.7$___atomic_fetch_xor_1', '$ld$hide$os10.7$___atomic_fetch_xor_2', 
-                       '$ld$hide$os10.7$___atomic_fetch_xor_4', '$ld$hide$os10.7$___atomic_fetch_xor_8', 
-                       '$ld$hide$os10.7$___atomic_load', '$ld$hide$os10.7$___atomic_load_1', 
-                       '$ld$hide$os10.7$___atomic_load_2', '$ld$hide$os10.7$___atomic_load_4', 
-                       '$ld$hide$os10.7$___atomic_load_8', '$ld$hide$os10.7$___atomic_store', 
-                       '$ld$hide$os10.7$___atomic_store_1', '$ld$hide$os10.7$___atomic_store_2', 
-                       '$ld$hide$os10.7$___atomic_store_4', '$ld$hide$os10.7$___atomic_store_8', 
-                       '$ld$hide$os10.7$___chkstk_darwin', '$ld$hide$os10.7$___extendhfsf2', 
-                       '$ld$hide$os10.7$___truncdfhf2', '$ld$hide$os10.7$___truncsfhf2', 
-                       '$ld$hide$os10.7$_atomic_flag_clear', '$ld$hide$os10.7$_atomic_flag_clear_explicit', 
-                       '$ld$hide$os10.7$_atomic_flag_test_and_set', '$ld$hide$os10.7$_atomic_flag_test_and_set_explicit', 
-                       '$ld$hide$os10.7$_atomic_signal_fence', '$ld$hide$os10.7$_atomic_thread_fence', 
-                       '$ld$hide$os10.8$___atomic_compare_exchange', '$ld$hide$os10.8$___atomic_compare_exchange_1', 
-                       '$ld$hide$os10.8$___atomic_compare_exchange_2', '$ld$hide$os10.8$___atomic_compare_exchange_4', 
-                       '$ld$hide$os10.8$___atomic_compare_exchange_8', '$ld$hide$os10.8$___atomic_exchange', 
-                       '$ld$hide$os10.8$___atomic_exchange_1', '$ld$hide$os10.8$___atomic_exchange_2', 
-                       '$ld$hide$os10.8$___atomic_exchange_4', '$ld$hide$os10.8$___atomic_exchange_8', 
-                       '$ld$hide$os10.8$___atomic_fetch_add_1', '$ld$hide$os10.8$___atomic_fetch_add_2', 
-                       '$ld$hide$os10.8$___atomic_fetch_add_4', '$ld$hide$os10.8$___atomic_fetch_add_8', 
-                       '$ld$hide$os10.8$___atomic_fetch_and_1', '$ld$hide$os10.8$___atomic_fetch_and_2', 
-                       '$ld$hide$os10.8$___atomic_fetch_and_4', '$ld$hide$os10.8$___atomic_fetch_and_8', 
-                       '$ld$hide$os10.8$___atomic_fetch_or_1', '$ld$hide$os10.8$___atomic_fetch_or_2', 
-                       '$ld$hide$os10.8$___atomic_fetch_or_4', '$ld$hide$os10.8$___atomic_fetch_or_8', 
-                       '$ld$hide$os10.8$___atomic_fetch_sub_1', '$ld$hide$os10.8$___atomic_fetch_sub_2', 
-                       '$ld$hide$os10.8$___atomic_fetch_sub_4', '$ld$hide$os10.8$___atomic_fetch_sub_8', 
-                       '$ld$hide$os10.8$___atomic_fetch_xor_1', '$ld$hide$os10.8$___atomic_fetch_xor_2', 
-                       '$ld$hide$os10.8$___atomic_fetch_xor_4', '$ld$hide$os10.8$___atomic_fetch_xor_8', 
-                       '$ld$hide$os10.8$___atomic_load', '$ld$hide$os10.8$___atomic_load_1', 
-                       '$ld$hide$os10.8$___atomic_load_2', '$ld$hide$os10.8$___atomic_load_4', 
-                       '$ld$hide$os10.8$___atomic_load_8', '$ld$hide$os10.8$___atomic_store', 
-                       '$ld$hide$os10.8$___atomic_store_1', '$ld$hide$os10.8$___atomic_store_2', 
-                       '$ld$hide$os10.8$___atomic_store_4', '$ld$hide$os10.8$___atomic_store_8', 
-                       '$ld$hide$os10.8$___chkstk_darwin', '$ld$hide$os10.8$___extendhfsf2', 
-                       '$ld$hide$os10.8$___truncdfhf2', '$ld$hide$os10.8$___truncsfhf2', 
-                       '$ld$hide$os10.8$_atomic_flag_clear', '$ld$hide$os10.8$_atomic_flag_clear_explicit', 
-                       '$ld$hide$os10.8$_atomic_flag_test_and_set', '$ld$hide$os10.8$_atomic_flag_test_and_set_explicit', 
-                       '$ld$hide$os10.8$_atomic_signal_fence', '$ld$hide$os10.8$_atomic_thread_fence', 
-                       '$ld$hide$os10.9$___chkstk_darwin', '$ld$hide$os10.9$___extendhfsf2', 
-                       '$ld$hide$os10.9$___truncdfhf2', '$ld$hide$os10.9$___truncsfhf2', 
-                       '$ld$hide$os10.9$_atomic_flag_clear', '$ld$hide$os10.9$_atomic_flag_clear_explicit', 
-                       '$ld$hide$os10.9$_atomic_flag_test_and_set', '$ld$hide$os10.9$_atomic_flag_test_and_set_explicit', 
-                       '$ld$hide$os10.9$_atomic_signal_fence', '$ld$hide$os10.9$_atomic_thread_fence', 
-                       ___absvdi2, ___absvsi2, ___absvti2, ___addvdi3, ___addvsi3, 
-                       ___addvti3, ___ashldi3, ___ashlti3, ___ashrdi3, ___ashrti3, 
-                       ___atomic_compare_exchange, ___atomic_compare_exchange_1, 
-                       ___atomic_compare_exchange_2, ___atomic_compare_exchange_4, 
-                       ___atomic_compare_exchange_8, ___atomic_exchange, ___atomic_exchange_1, 
-                       ___atomic_exchange_2, ___atomic_exchange_4, ___atomic_exchange_8, 
-                       ___atomic_fetch_add_1, ___atomic_fetch_add_2, ___atomic_fetch_add_4, 
-                       ___atomic_fetch_add_8, ___atomic_fetch_and_1, ___atomic_fetch_and_2, 
-                       ___atomic_fetch_and_4, ___atomic_fetch_and_8, ___atomic_fetch_or_1, 
-                       ___atomic_fetch_or_2, ___atomic_fetch_or_4, ___atomic_fetch_or_8, 
-                       ___atomic_fetch_sub_1, ___atomic_fetch_sub_2, ___atomic_fetch_sub_4, 
-                       ___atomic_fetch_sub_8, ___atomic_fetch_xor_1, ___atomic_fetch_xor_2, 
-                       ___atomic_fetch_xor_4, ___atomic_fetch_xor_8, ___atomic_load, 
-                       ___atomic_load_1, ___atomic_load_2, ___atomic_load_4, ___atomic_load_8, 
-                       ___atomic_store, ___atomic_store_1, ___atomic_store_2, ___atomic_store_4, 
-                       ___atomic_store_8, ___chkstk_darwin, ___clear_cache, ___clzdi2, 
-                       ___clzsi2, ___clzti2, ___cmpdi2, ___cmpti2, ___ctzdi2, ___ctzsi2, 
-                       ___ctzti2, ___divdc3, ___divdi3, ___divsc3, ___divti3, ___divxc3, 
-                       ___enable_execute_stack, ___extendhfsf2, ___ffsdi2, ___ffsti2, 
-                       ___fixdfdi, ___fixdfti, ___fixsfdi, ___fixsfti, ___fixunsdfdi, 
-                       ___fixunsdfsi, ___fixunsdfti, ___fixunssfdi, ___fixunssfsi, 
-                       ___fixunssfti, ___fixunsxfdi, ___fixunsxfsi, ___fixunsxfti, 
-                       ___fixxfdi, ___fixxfti, ___floatdidf, ___floatdisf, ___floatdixf, 
-                       ___floattidf, ___floattisf, ___floattixf, ___floatundidf, 
-                       ___floatundisf, ___floatundixf, ___floatuntidf, ___floatuntisf, 
-                       ___floatuntixf, ___gcc_personality_v0, ___gnu_f2h_ieee, ___gnu_h2f_ieee, 
-                       ___lshrdi3, ___lshrti3, ___moddi3, ___modti3, ___muldc3, ___muldi3, 
-                       ___mulodi4, ___mulosi4, ___muloti4, ___mulsc3, ___multi3, 
-                       ___mulvdi3, ___mulvsi3, ___mulvti3, ___mulxc3, ___negdi2, 
-                       ___negti2, ___negvdi2, ___negvsi2, ___negvti2, ___paritydi2, 
-                       ___paritysi2, ___parityti2, ___popcountdi2, ___popcountsi2, 
-                       ___popcountti2, ___powidf2, ___powisf2, ___powixf2, ___subvdi3, 
-                       ___subvsi3, ___subvti3, ___truncdfhf2, ___truncsfhf2, ___ucmpdi2, 
-                       ___ucmpti2, ___udivdi3, ___udivmoddi4, ___udivmodti4, ___udivti3, 
-                       ___umoddi3, ___umodti3, _atomic_flag_clear, _atomic_flag_clear_explicit, 
-                       _atomic_flag_test_and_set, _atomic_flag_test_and_set_explicit, 
-                       _atomic_signal_fence, _atomic_thread_fence ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           3C481225-21E7-370A-A30E-0CCFDD64A92C
-  - target:          x86_64-maccatalyst
-    value:           3C481225-21E7-370A-A30E-0CCFDD64A92C
-install-name:    '/usr/lib/system/libcopyfile.dylib'
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _copyfile, _copyfile_state_alloc, _copyfile_state_free, _copyfile_state_get, 
-                       _copyfile_state_set, _fcopyfile, _xattr_flags_from_name, _xattr_intent_with_flags, 
-                       _xattr_name_with_flags, _xattr_name_without_flags, _xattr_preserve_for_intent ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           60567BF8-80FA-359A-B2F3-A3BAEFB288FD
-  - target:          x86_64-maccatalyst
-    value:           60567BF8-80FA-359A-B2F3-A3BAEFB288FD
-install-name:    '/usr/lib/system/libcorecrypto.dylib'
-current-version: 866.140.1
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-allowable-clients:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    clients:         [ cc_fips_test, corecrypto_test ]
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _cc_abort, _cc_atfork_child, _cc_atfork_parent, _cc_atfork_prepare, 
-                       _cc_clear, _cc_cmp_safe, _cc_muxp, _ccaes_cbc_decrypt_mode, 
-                       _ccaes_cbc_encrypt_mode, _ccaes_ccm_decrypt_mode, _ccaes_ccm_encrypt_mode, 
-                       _ccaes_cfb8_decrypt_mode, _ccaes_cfb8_encrypt_mode, _ccaes_cfb_decrypt_mode, 
-                       _ccaes_cfb_encrypt_mode, _ccaes_ctr_crypt_mode, _ccaes_ecb_decrypt_mode, 
-                       _ccaes_ecb_encrypt_mode, _ccaes_gcm_decrypt_mode, _ccaes_gcm_encrypt_mode, 
-                       _ccaes_gladman_cbc_decrypt_mode, _ccaes_gladman_cbc_encrypt_mode, 
-                       _ccaes_intel_cbc_decrypt_aesni_mode, _ccaes_intel_cbc_decrypt_opt_mode, 
-                       _ccaes_intel_cbc_encrypt_aesni_mode, _ccaes_intel_cbc_encrypt_opt_mode, 
-                       _ccaes_intel_ecb_decrypt_aesni_mode, _ccaes_intel_ecb_decrypt_opt_mode, 
-                       _ccaes_intel_ecb_encrypt_aesni_mode, _ccaes_intel_ecb_encrypt_opt_mode, 
-                       _ccaes_intel_xts_decrypt_aesni_mode, _ccaes_intel_xts_decrypt_opt_mode, 
-                       _ccaes_intel_xts_encrypt_aesni_mode, _ccaes_intel_xts_encrypt_opt_mode, 
-                       _ccaes_ltc_ecb_decrypt_mode, _ccaes_ltc_ecb_encrypt_mode, 
-                       _ccaes_ofb_crypt_mode, _ccaes_siv_decrypt_mode, _ccaes_siv_encrypt_mode, 
-                       _ccaes_siv_hmac_sha256_decrypt_mode, _ccaes_siv_hmac_sha256_encrypt_mode, 
-                       _ccaes_xts_decrypt_mode, _ccaes_xts_encrypt_mode, _ccansikdf_x963, 
-                       _ccblowfish_cbc_decrypt_mode, _ccblowfish_cbc_encrypt_mode, 
-                       _ccblowfish_cfb8_decrypt_mode, _ccblowfish_cfb8_encrypt_mode, 
-                       _ccblowfish_cfb_decrypt_mode, _ccblowfish_cfb_encrypt_mode, 
-                       _ccblowfish_ctr_crypt_mode, _ccblowfish_ecb_decrypt_mode, 
-                       _ccblowfish_ecb_encrypt_mode, _ccblowfish_ofb_crypt_mode, 
-                       _cccast_cbc_decrypt_mode, _cccast_cbc_encrypt_mode, _cccast_cfb8_decrypt_mode, 
-                       _cccast_cfb8_encrypt_mode, _cccast_cfb_decrypt_mode, _cccast_cfb_encrypt_mode, 
-                       _cccast_ctr_crypt_mode, _cccast_ecb_decrypt_mode, _cccast_ecb_encrypt_mode, 
-                       _cccast_ofb_crypt_mode, _cccbc_one_shot, _ccchacha20, _ccchacha20_final, 
-                       _ccchacha20_init, _ccchacha20_reset, _ccchacha20_setcounter, 
-                       _ccchacha20_setnonce, _ccchacha20_update, _ccchacha20poly1305_aad, 
-                       _ccchacha20poly1305_decrypt, _ccchacha20poly1305_decrypt_oneshot, 
-                       _ccchacha20poly1305_encrypt, _ccchacha20poly1305_encrypt_oneshot, 
-                       _ccchacha20poly1305_finalize, _ccchacha20poly1305_incnonce, 
-                       _ccchacha20poly1305_info, _ccchacha20poly1305_init, _ccchacha20poly1305_reset, 
-                       _ccchacha20poly1305_setnonce, _ccchacha20poly1305_verify, 
-                       _ccckg_contributor_commit, _ccckg_contributor_finish, _ccckg_init, 
-                       _ccckg_owner_finish, _ccckg_owner_generate_share, _ccckg_sizeof_commitment, 
-                       _ccckg_sizeof_ctx, _ccckg_sizeof_opening, _ccckg_sizeof_share, 
-                       _cccmac_final_generate, _cccmac_final_verify, _cccmac_init, 
-                       _cccmac_one_shot_generate, _cccmac_one_shot_verify, _cccmac_update, 
-                       _cccurve25519, _ccder_decode_bitstring, _ccder_decode_constructed_tl, 
-                       _ccder_decode_constructed_tl_strict, _ccder_decode_dhparam_n, 
-                       _ccder_decode_dhparams, _ccder_decode_eckey, _ccder_decode_len, 
-                       _ccder_decode_len_strict, _ccder_decode_oid, _ccder_decode_rsa_priv, 
-                       _ccder_decode_rsa_priv_n, _ccder_decode_rsa_pub, _ccder_decode_rsa_pub_n, 
-                       _ccder_decode_rsa_pub_x509, _ccder_decode_rsa_pub_x509_n, 
-                       _ccder_decode_seqii, _ccder_decode_seqii_strict, _ccder_decode_sequence_tl, 
-                       _ccder_decode_sequence_tl_strict, _ccder_decode_tag, _ccder_decode_tl, 
-                       _ccder_decode_tl_strict, _ccder_decode_uint, _ccder_decode_uint64, 
-                       _ccder_decode_uint_n, _ccder_decode_uint_strict, _ccder_encode_body, 
-                       _ccder_encode_body_nocopy, _ccder_encode_constructed_tl, _ccder_encode_dhparams, 
-                       _ccder_encode_dhparams_size, _ccder_encode_eckey, _ccder_encode_eckey_size, 
-                       _ccder_encode_implicit_integer, _ccder_encode_implicit_octet_string, 
-                       _ccder_encode_implicit_raw_octet_string, _ccder_encode_implicit_uint64, 
-                       _ccder_encode_integer, _ccder_encode_len, _ccder_encode_octet_string, 
-                       _ccder_encode_oid, _ccder_encode_raw_octet_string, _ccder_encode_rsa_priv, 
-                       _ccder_encode_rsa_priv_size, _ccder_encode_rsa_pub, _ccder_encode_rsa_pub_size, 
-                       _ccder_encode_tag, _ccder_encode_tl, _ccder_encode_uint64, 
-                       _ccder_sizeof, _ccder_sizeof_implicit_integer, _ccder_sizeof_implicit_octet_string, 
-                       _ccder_sizeof_implicit_raw_octet_string, _ccder_sizeof_implicit_uint64, 
-                       _ccder_sizeof_integer, _ccder_sizeof_len, _ccder_sizeof_octet_string, 
-                       _ccder_sizeof_oid, _ccder_sizeof_raw_octet_string, _ccder_sizeof_tag, 
-                       _ccder_sizeof_uint64, _ccdes3_cbc_decrypt_mode, _ccdes3_cbc_encrypt_mode, 
-                       _ccdes3_cfb8_decrypt_mode, _ccdes3_cfb8_encrypt_mode, _ccdes3_cfb_decrypt_mode, 
-                       _ccdes3_cfb_encrypt_mode, _ccdes3_ctr_crypt_mode, _ccdes3_ecb_decrypt_mode, 
-                       _ccdes3_ecb_encrypt_mode, _ccdes3_ltc_ecb_decrypt_mode, _ccdes3_ltc_ecb_encrypt_mode, 
-                       _ccdes3_ofb_crypt_mode, _ccdes_cbc_cksum, _ccdes_cbc_decrypt_mode, 
-                       _ccdes_cbc_encrypt_mode, _ccdes_cfb8_decrypt_mode, _ccdes_cfb8_encrypt_mode, 
-                       _ccdes_cfb_decrypt_mode, _ccdes_cfb_encrypt_mode, _ccdes_ctr_crypt_mode, 
-                       _ccdes_ecb_decrypt_mode, _ccdes_ecb_encrypt_mode, _ccdes_key_is_weak, 
-                       _ccdes_key_set_odd_parity, _ccdes_ofb_crypt_mode, _ccdh_compute_key, 
-                       _ccdh_compute_shared_secret, _ccdh_export_pub, _ccdh_generate_key, 
-                       _ccdh_gp_apple768, _ccdh_gp_rfc2409group02, _ccdh_gp_rfc3526group05, 
-                       _ccdh_gp_rfc3526group14, _ccdh_gp_rfc3526group15, _ccdh_gp_rfc3526group16, 
-                       _ccdh_gp_rfc3526group17, _ccdh_gp_rfc3526group18, _ccdh_gp_rfc5114_MODP_1024_160, 
-                       _ccdh_gp_rfc5114_MODP_2048_224, _ccdh_gp_rfc5114_MODP_2048_256, 
-                       _ccdh_import_full, _ccdh_import_priv, _ccdh_import_pub, _ccdh_init_gp, 
-                       _ccdh_init_gp_from_bytes, _ccdh_init_gp_with_order, _ccdh_lookup_gp, 
-                       _ccdigest, _ccdigest_init, _ccdigest_oid_lookup, _ccdigest_update, 
-                       _ccdrbg_factory_nistctr, _ccdrbg_factory_nisthmac, _ccec_compact_export, 
-                       _ccec_compact_export_pub, _ccec_compact_generate_key, _ccec_compact_import_priv, 
-                       _ccec_compact_import_priv_size, _ccec_compact_import_pub, 
-                       _ccec_compact_import_pub_size, _ccec_compact_transform_key, 
-                       _ccec_compute_key, _ccec_cp_192, _ccec_cp_224, _ccec_cp_256, 
-                       _ccec_cp_384, _ccec_cp_521, _ccec_curve_for_length_lookup, 
-                       _ccec_der_export_diversified_pub, _ccec_der_export_diversified_pub_size, 
-                       _ccec_der_export_priv, _ccec_der_export_priv_size, _ccec_der_import_diversified_pub, 
-                       _ccec_der_import_priv, _ccec_der_import_priv_keytype, _ccec_diversify_min_entropy_len, 
-                       _ccec_diversify_priv_twin, _ccec_diversify_pub, _ccec_diversify_pub_twin, 
-                       _ccec_export_pub, _ccec_generate_key, _ccec_generate_key_deterministic, 
-                       _ccec_generate_key_fips, _ccec_generate_key_internal_fips, 
-                       _ccec_generate_key_legacy, _ccec_get_cp, _ccec_get_fullkey_components, 
-                       _ccec_get_pubkey_components, _ccec_import_pub, _ccec_keysize_is_supported, 
-                       _ccec_make_priv, _ccec_make_pub, _ccec_pairwise_consistency_check, 
-                       _ccec_print_full_key, _ccec_print_public_key, _ccec_raw_import_priv_only, 
-                       _ccec_raw_import_pub, _ccec_rfc6637_dh_curve_p256, _ccec_rfc6637_dh_curve_p521, 
-                       _ccec_rfc6637_unwrap_key, _ccec_rfc6637_unwrap_sha256_kek_aes128, 
-                       _ccec_rfc6637_unwrap_sha512_kek_aes256, _ccec_rfc6637_wrap_key, 
-                       _ccec_rfc6637_wrap_key_diversified, _ccec_rfc6637_wrap_key_size, 
-                       _ccec_rfc6637_wrap_sha256_kek_aes128, _ccec_rfc6637_wrap_sha512_kek_aes256, 
-                       _ccec_sign, _ccec_sign_composite, _ccec_signature_r_s_size, 
-                       _ccec_validate_pub, _ccec_verify, _ccec_verify_composite, 
-                       _ccec_x963_export, _ccec_x963_import_priv, _ccec_x963_import_priv_size, 
-                       _ccec_x963_import_pub, _ccec_x963_import_pub_size, _ccecdh_compute_shared_secret, 
-                       _ccecdh_generate_key, _ccecies_decrypt_gcm, _ccecies_decrypt_gcm_composite, 
-                       _ccecies_decrypt_gcm_from_shared_secret, _ccecies_decrypt_gcm_plaintext_size, 
-                       _ccecies_decrypt_gcm_plaintext_size_cp, _ccecies_decrypt_gcm_setup, 
-                       _ccecies_encrypt_gcm, _ccecies_encrypt_gcm_ciphertext_size, 
-                       _ccecies_encrypt_gcm_composite, _ccecies_encrypt_gcm_from_shared_secret, 
-                       _ccecies_encrypt_gcm_setup, _ccecies_import_eph_pub, _ccecies_pub_key_size, 
-                       _ccecies_pub_key_size_cp, _cced25519_make_key_pair, _cced25519_make_pub, 
-                       _cced25519_sign, _cced25519_verify, _ccgcm_inc_iv, _ccgcm_init_with_iv, 
-                       _ccgcm_one_shot, _ccgcm_one_shot_legacy, _ccgcm_set_iv_legacy, 
-                       _cchkdf, _cchkdf_expand, _cchkdf_extract, _cchmac, _cchmac_final, 
-                       _cchmac_init, _cchmac_update, _ccmd2_ltc_di, _ccmd4_ltc_di, 
-                       _ccmd5_di, _ccmd5_ltc_di, _ccmgf, _ccmode_factory_cbc_decrypt, 
-                       _ccmode_factory_cbc_encrypt, _ccmode_factory_ccm_decrypt, 
-                       _ccmode_factory_ccm_encrypt, _ccmode_factory_cfb8_decrypt, 
-                       _ccmode_factory_cfb8_encrypt, _ccmode_factory_cfb_decrypt, 
-                       _ccmode_factory_cfb_encrypt, _ccmode_factory_ctr_crypt, _ccmode_factory_gcm_decrypt, 
-                       _ccmode_factory_gcm_encrypt, _ccmode_factory_ofb_crypt, _ccmode_factory_omac_decrypt, 
-                       _ccmode_factory_omac_encrypt, _ccmode_factory_siv_decrypt, 
-                       _ccmode_factory_siv_encrypt, _ccmode_factory_xts_decrypt, 
-                       _ccmode_factory_xts_encrypt, _ccn_add, _ccn_add1, _ccn_addmul1, 
-                       _ccn_bitlen, _ccn_cmp, _ccn_div_equal_size_ws, _ccn_div_euclid, 
-                       _ccn_div_euclid_ws, _ccn_lprint, _ccn_mul, _ccn_mul1, _ccn_n, 
-                       _ccn_print, _ccn_random_bits, _ccn_read_uint, _ccn_set, _ccn_shift_right, 
-                       _ccn_sub, _ccn_sub1, _ccn_write_int, _ccn_write_int_size, 
-                       _ccn_write_uint, _ccn_write_uint_padded_ct, _ccn_write_uint_size, 
-                       _ccn_zero_multi, _ccnistkdf_ctr_cmac, _ccnistkdf_ctr_cmac_fixed, 
-                       _ccnistkdf_ctr_hmac, _ccnistkdf_ctr_hmac_fixed, _ccnistkdf_fb_hmac, 
-                       _ccnistkdf_fb_hmac_fixed, _ccpad_cts1_decrypt, _ccpad_cts1_encrypt, 
-                       _ccpad_cts2_decrypt, _ccpad_cts2_encrypt, _ccpad_cts3_decrypt, 
-                       _ccpad_cts3_encrypt, _ccpad_pkcs7_decode, _ccpad_pkcs7_decrypt, 
-                       _ccpad_pkcs7_ecb_decrypt, _ccpad_pkcs7_ecb_encrypt, _ccpad_pkcs7_encrypt, 
-                       _ccpad_xts_decrypt, _ccpad_xts_encrypt, _ccpbkdf2_hmac, _ccpoly1305, 
-                       _ccpoly1305_final, _ccpoly1305_init, _ccpoly1305_update, _ccrc2_cbc_decrypt_mode, 
-                       _ccrc2_cbc_encrypt_mode, _ccrc2_cfb8_decrypt_mode, _ccrc2_cfb8_encrypt_mode, 
-                       _ccrc2_cfb_decrypt_mode, _ccrc2_cfb_encrypt_mode, _ccrc2_ctr_crypt_mode, 
-                       _ccrc2_ecb_decrypt_mode, _ccrc2_ecb_encrypt_mode, _ccrc2_ofb_crypt_mode, 
-                       _ccrc4, _ccrc4_eay, _ccrmd160_ltc_di, _ccrng, _ccrng_drbg_done, 
-                       _ccrng_drbg_init, _ccrng_drbg_init_withdrbg, _ccrng_drbg_reseed, 
-                       _ccrng_ecfips_test_init, _ccrng_pbkdf2_prng_init, _ccrng_rsafips_test_init, 
-                       _ccrng_rsafips_test_set_next, _ccrng_sequence_init, _ccrng_system_done, 
-                       _ccrng_system_init, _ccrng_test_done, _ccrng_test_init, _ccrng_uniform, 
-                       _ccrsa_decrypt_eme_pkcs1v15, _ccrsa_decrypt_eme_pkcs1v15_blinded, 
-                       _ccrsa_decrypt_oaep, _ccrsa_decrypt_oaep_blinded, _ccrsa_dump_full_key, 
-                       _ccrsa_dump_public_key, _ccrsa_eme_pkcs1v15_decode, _ccrsa_eme_pkcs1v15_encode, 
-                       _ccrsa_emsa_pkcs1v15_encode, _ccrsa_emsa_pkcs1v15_verify, 
-                       _ccrsa_emsa_pss_decode, _ccrsa_emsa_pss_encode, _ccrsa_encrypt_eme_pkcs1v15, 
-                       _ccrsa_encrypt_oaep, _ccrsa_export_pub, _ccrsa_generate_fips186_key, 
-                       _ccrsa_generate_fips186_key_trace, _ccrsa_generate_key, _ccrsa_get_fullkey_components, 
-                       _ccrsa_get_pubkey_components, _ccrsa_import_pub, _ccrsa_init_pub, 
-                       _ccrsa_make_fips186_key, _ccrsa_make_fips186_key_trace, _ccrsa_make_priv, 
-                       _ccrsa_make_pub, _ccrsa_oaep_decode_parameter, _ccrsa_oaep_encode_parameter, 
-                       _ccrsa_priv_crypt, _ccrsa_priv_crypt_blinded, _ccrsa_pub_crypt, 
-                       _ccrsa_pubkeylength, _ccrsa_sign_pkcs1v15, _ccrsa_sign_pkcs1v15_blinded, 
-                       _ccrsa_sign_pss, _ccrsa_sign_pss_blinded, _ccrsa_verify_pkcs1v15, 
-                       _ccrsa_verify_pkcs1v15_allowshortsigs, _ccrsa_verify_pss, 
-                       _ccscrypt, _ccscrypt_storage_size, _ccsha1_di, _ccsha1_eay_di, 
-                       _ccsha1_ltc_di, _ccsha1_vng_intel_SupplementalSSE3_di, _ccsha224_di, 
-                       _ccsha224_ltc_di, _ccsha224_vng_intel_SupplementalSSE3_di, 
-                       _ccsha256_di, _ccsha256_ltc_di, _ccsha256_vng_intel_SupplementalSSE3_di, 
-                       _ccsha384_di, _ccsha384_ltc_di, _ccsha512_di, _ccsha512_ltc_di, 
-                       _ccsiv_hmac_aad, _ccsiv_hmac_ciphertext_size, _ccsiv_hmac_crypt, 
-                       _ccsiv_hmac_init, _ccsiv_hmac_one_shot, _ccsiv_hmac_plaintext_size, 
-                       _ccsiv_hmac_reset, _ccsiv_hmac_set_nonce, _ccspake_cp_256, 
-                       _ccspake_cp_384, _ccspake_cp_521, _ccspake_generate_L, _ccspake_kex_generate, 
-                       _ccspake_kex_process, _ccspake_mac_compute, _ccspake_mac_hkdf_cmac_aes128_sha256, 
-                       _ccspake_mac_hkdf_hmac_sha256, _ccspake_mac_hkdf_hmac_sha512, 
-                       _ccspake_mac_verify_and_get_session_key, _ccspake_prover_init, 
-                       _ccspake_sizeof_ctx, _ccspake_sizeof_point, _ccspake_sizeof_w, 
-                       _ccspake_verifier_init, _ccsrp_client_process_challenge, _ccsrp_client_start_authentication, 
-                       _ccsrp_client_verify_session, _ccsrp_generate_salt_and_verification, 
-                       _ccsrp_generate_verifier, _ccsrp_gp_rfc5054_1024, _ccsrp_gp_rfc5054_2048, 
-                       _ccsrp_gp_rfc5054_3072, _ccsrp_gp_rfc5054_4096, _ccsrp_gp_rfc5054_8192, 
-                       _ccsrp_server_compute_session, _ccsrp_server_generate_public_key, 
-                       _ccsrp_server_start_authentication, _ccsrp_server_verify_session, 
-                       _ccsrp_test_calculations, _ccss_shamir_parameters_init, _ccss_shamir_parameters_maximum_secret_length, 
-                       _ccss_shamir_share_bag_add_share, _ccss_shamir_share_bag_init, 
-                       _ccss_shamir_share_bag_recover_secret, _ccss_shamir_share_export, 
-                       _ccss_shamir_share_generator_generate_share, _ccss_shamir_share_generator_init, 
-                       _ccss_shamir_share_import, _ccss_shamir_share_init, _ccss_shamir_share_sizeof_y, 
-                       _ccvrf_derive_public_key, _ccvrf_factory_irtfdraft03, _ccvrf_factory_irtfdraft03_default, 
-                       _ccvrf_proof_to_hash, _ccvrf_prove, _ccvrf_sizeof_hash, _ccvrf_sizeof_proof, 
-                       _ccvrf_sizeof_public_key, _ccvrf_sizeof_secret_key, _ccvrf_verify, 
-                       _ccwrap_auth_decrypt, _ccwrap_auth_decrypt_withiv, _ccwrap_auth_encrypt, 
-                       _ccwrap_auth_encrypt_withiv, _ccwrap_unwrapped_size, _ccwrap_wrapped_size, 
-                       _ccxts_one_shot, _ccz_add, _ccz_addi, _ccz_bit, _ccz_bitlen, 
-                       _ccz_cmp, _ccz_cmpi, _ccz_divmod, _ccz_expmod, _ccz_free, 
-                       _ccz_gcd, _ccz_init, _ccz_invmod, _ccz_is_negative, _ccz_is_one, 
-                       _ccz_is_prime, _ccz_is_zero, _ccz_lcm, _ccz_lprint, _ccz_lsl, 
-                       _ccz_lsr, _ccz_mod, _ccz_mul, _ccz_muli, _ccz_mulmod, _ccz_neg, 
-                       _ccz_print, _ccz_random_bits, _ccz_read_radix, _ccz_read_uint, 
-                       _ccz_set, _ccz_set_bit, _ccz_seti, _ccz_size, _ccz_sqr, _ccz_sqrmod, 
-                       _ccz_sub, _ccz_subi, _ccz_trailing_zeros, _ccz_write_int, 
-                       _ccz_write_int_size, _ccz_write_radix, _ccz_write_radix_size, 
-                       _ccz_write_uint, _ccz_write_uint_size, _ccz_zero, _cczp_init, 
-                       _cczp_init_with_recip, _cczp_inv, _cczp_power, _cczp_power_fast, 
-                       _csss_shamir_share_bag_can_recover_secret, _fipspost_post, 
-                       _fipspost_trace_vtable ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           CD9C059C-91D9-30E8-8926-5B9CD0D5D4F5
-  - target:          x86_64-maccatalyst
-    value:           CD9C059C-91D9-30E8-8926-5B9CD0D5D4F5
-install-name:    '/usr/lib/system/libdispatch.dylib'
-current-version: 1173.100.2
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ '$ld$hide$os10.12$_dispatch_assert_queue', '$ld$hide$os10.12$_dispatch_assert_queue_not', 
-                       '$ld$hide$os10.12$_dispatch_queue_create_with_target', __dispatch_begin_NSAutoReleasePool, 
-                       __dispatch_bug, __dispatch_data_destructor_free, __dispatch_data_destructor_munmap, 
-                       __dispatch_data_destructor_none, __dispatch_data_destructor_vm_deallocate, 
-                       __dispatch_data_empty, __dispatch_data_format_type_base32, 
-                       __dispatch_data_format_type_base32hex, __dispatch_data_format_type_base64, 
-                       __dispatch_data_format_type_none, __dispatch_data_format_type_utf16be, 
-                       __dispatch_data_format_type_utf16le, __dispatch_data_format_type_utf8, 
-                       __dispatch_data_format_type_utf_any, __dispatch_end_NSAutoReleasePool, 
-                       __dispatch_get_main_queue_handle_4CF, __dispatch_get_main_queue_port_4CF, 
-                       __dispatch_iocntl, __dispatch_is_fork_of_multithreaded_parent, 
-                       __dispatch_is_multithreaded, __dispatch_log, __dispatch_mach_hooks_install_default, 
-                       __dispatch_main_q, __dispatch_main_queue_callback_4CF, __dispatch_poll_for_events_4launchd, 
-                       __dispatch_prohibit_transition_to_multithreaded, __dispatch_pthread_root_queue_create_with_observer_hooks_4IOHID, 
-                       __dispatch_queue_attr_concurrent, __dispatch_queue_is_exclusively_owned_by_current_thread_4IOHID, 
-                       __dispatch_runloop_root_queue_create_4CF, __dispatch_runloop_root_queue_get_port_4CF, 
-                       __dispatch_runloop_root_queue_perform_4CF, __dispatch_runloop_root_queue_wakeup_4CF, 
-                       __dispatch_source_set_runloop_timer_4CF, __dispatch_source_type_data_add, 
-                       __dispatch_source_type_data_or, __dispatch_source_type_data_replace, 
-                       __dispatch_source_type_interval, __dispatch_source_type_mach_recv, 
-                       __dispatch_source_type_mach_send, __dispatch_source_type_memorypressure, 
-                       __dispatch_source_type_memorystatus, __dispatch_source_type_nw_channel, 
-                       __dispatch_source_type_proc, __dispatch_source_type_read, 
-                       __dispatch_source_type_signal, __dispatch_source_type_sock, 
-                       __dispatch_source_type_timer, __dispatch_source_type_vfs, 
-                       __dispatch_source_type_vm, __dispatch_source_type_vnode, __dispatch_source_type_write, 
-                       __dispatch_source_will_reenable_kevent_4NW, __dispatch_wait_for_enqueuer, 
-                       __dispatch_workloop_set_observer_hooks_4IOHID, __dispatch_workloop_should_yield_4NW, 
-                       __firehose_spi_version, __os_object_alloc, __os_object_alloc_realized, 
-                       __os_object_dealloc, __os_object_release, __os_object_release_internal, 
-                       __os_object_release_internal_n, __os_object_release_without_xref_dispose, 
-                       __os_object_retain, __os_object_retain_internal, __os_object_retain_internal_n, 
-                       __os_object_retain_with_resurrect, _dispatch_activate, _dispatch_after, 
-                       _dispatch_after_f, _dispatch_allocator_layout, _dispatch_apply, 
-                       _dispatch_apply_f, _dispatch_assert_queue, '_dispatch_assert_queue$V2', 
-                       _dispatch_assert_queue_barrier, _dispatch_assert_queue_not, 
-                       '_dispatch_assert_queue_not$V2', _dispatch_async, _dispatch_async_and_wait, 
-                       _dispatch_async_and_wait_f, _dispatch_async_enforce_qos_class_f, 
-                       _dispatch_async_f, _dispatch_atfork_child, _dispatch_atfork_parent, 
-                       _dispatch_atfork_prepare, _dispatch_barrier_async, _dispatch_barrier_async_and_wait, 
-                       _dispatch_barrier_async_and_wait_f, _dispatch_barrier_async_f, 
-                       _dispatch_barrier_sync, _dispatch_barrier_sync_f, _dispatch_benchmark, 
-                       _dispatch_benchmark_f, _dispatch_block_cancel, _dispatch_block_create, 
-                       _dispatch_block_create_with_qos_class, _dispatch_block_create_with_voucher, 
-                       _dispatch_block_create_with_voucher_and_qos_class, _dispatch_block_notify, 
-                       _dispatch_block_perform, _dispatch_block_testcancel, _dispatch_block_wait, 
-                       _dispatch_channel_async, _dispatch_channel_async_f, _dispatch_channel_cancel, 
-                       _dispatch_channel_create, _dispatch_channel_drain, _dispatch_channel_drain_f, 
-                       _dispatch_channel_enqueue, _dispatch_channel_foreach_work_item_peek, 
-                       _dispatch_channel_foreach_work_item_peek_f, _dispatch_channel_testcancel, 
-                       _dispatch_channel_wakeup, _dispatch_data_apply, _dispatch_data_apply_f, 
-                       _dispatch_data_copy_region, _dispatch_data_create, _dispatch_data_create_alloc, 
-                       _dispatch_data_create_concat, _dispatch_data_create_f, _dispatch_data_create_map, 
-                       _dispatch_data_create_subrange, _dispatch_data_create_with_transform, 
-                       _dispatch_data_get_flattened_bytes_4libxpc, _dispatch_data_get_size, 
-                       _dispatch_data_make_memory_entry, _dispatch_debug, _dispatch_debugv, 
-                       _dispatch_get_context, _dispatch_get_current_queue, _dispatch_get_global_queue, 
-                       _dispatch_get_specific, _dispatch_group_async, _dispatch_group_async_f, 
-                       _dispatch_group_create, _dispatch_group_enter, _dispatch_group_leave, 
-                       _dispatch_group_notify, _dispatch_group_notify_f, _dispatch_group_wait, 
-                       _dispatch_io_barrier, _dispatch_io_barrier_f, _dispatch_io_close, 
-                       _dispatch_io_create, _dispatch_io_create_f, _dispatch_io_create_with_io, 
-                       _dispatch_io_create_with_io_f, _dispatch_io_create_with_path, 
-                       _dispatch_io_create_with_path_f, _dispatch_io_get_descriptor, 
-                       _dispatch_io_read, _dispatch_io_read_f, _dispatch_io_set_high_water, 
-                       _dispatch_io_set_interval, _dispatch_io_set_low_water, _dispatch_io_write, 
-                       _dispatch_io_write_f, _dispatch_mach_cancel, _dispatch_mach_connect, 
-                       _dispatch_mach_create, _dispatch_mach_create_4libxpc, _dispatch_mach_create_f, 
-                       _dispatch_mach_get_checkin_port, _dispatch_mach_handoff_reply, 
-                       _dispatch_mach_handoff_reply_f, _dispatch_mach_hooks_install_4libxpc, 
-                       _dispatch_mach_mig_demux, _dispatch_mach_mig_demux_get_context, 
-                       _dispatch_mach_msg_create, _dispatch_mach_msg_get_context, 
-                       _dispatch_mach_msg_get_msg, _dispatch_mach_receive_barrier, 
-                       _dispatch_mach_receive_barrier_f, _dispatch_mach_reconnect, 
-                       _dispatch_mach_request_no_senders, _dispatch_mach_send, _dispatch_mach_send_and_wait_for_reply, 
-                       _dispatch_mach_send_barrier, _dispatch_mach_send_barrier_f, 
-                       _dispatch_mach_send_with_result, _dispatch_mach_send_with_result_and_async_reply_4libxpc, 
-                       _dispatch_mach_send_with_result_and_wait_for_reply, _dispatch_mach_set_flags, 
-                       _dispatch_main, _dispatch_mig_server, _dispatch_once, _dispatch_once_f, 
-                       _dispatch_pthread_root_queue_copy_current, _dispatch_pthread_root_queue_create, 
-                       _dispatch_queue_attr_make_initially_inactive, _dispatch_queue_attr_make_with_autorelease_frequency, 
-                       _dispatch_queue_attr_make_with_overcommit, _dispatch_queue_attr_make_with_qos_class, 
-                       _dispatch_queue_create, _dispatch_queue_create_with_accounting_override_voucher, 
-                       _dispatch_queue_create_with_target, '_dispatch_queue_create_with_target$V2', 
-                       _dispatch_queue_get_label, _dispatch_queue_get_qos_class, 
-                       _dispatch_queue_get_specific, _dispatch_queue_offsets, _dispatch_queue_set_label_nocopy, 
-                       _dispatch_queue_set_specific, _dispatch_queue_set_width, _dispatch_read, 
-                       _dispatch_read_f, _dispatch_release, _dispatch_resume, _dispatch_retain, 
-                       _dispatch_semaphore_create, _dispatch_semaphore_signal, _dispatch_semaphore_wait, 
-                       _dispatch_set_context, _dispatch_set_finalizer_f, _dispatch_set_qos_class, 
-                       _dispatch_set_qos_class_fallback, _dispatch_set_qos_class_floor, 
-                       _dispatch_set_target_queue, _dispatch_source_cancel, _dispatch_source_cancel_and_wait, 
-                       _dispatch_source_create, _dispatch_source_get_data, _dispatch_source_get_extended_data, 
-                       _dispatch_source_get_handle, _dispatch_source_get_mask, _dispatch_source_merge_data, 
-                       _dispatch_source_set_cancel_handler, _dispatch_source_set_cancel_handler_f, 
-                       _dispatch_source_set_event_handler, _dispatch_source_set_event_handler_f, 
-                       _dispatch_source_set_mandatory_cancel_handler, _dispatch_source_set_mandatory_cancel_handler_f, 
-                       _dispatch_source_set_registration_handler, _dispatch_source_set_registration_handler_f, 
-                       _dispatch_source_set_timer, _dispatch_source_testcancel, _dispatch_suspend, 
-                       _dispatch_sync, _dispatch_sync_f, _dispatch_time, _dispatch_tsd_indexes, 
-                       _dispatch_walltime, _dispatch_workloop_copy_current, _dispatch_workloop_create, 
-                       _dispatch_workloop_create_inactive, _dispatch_workloop_is_current, 
-                       _dispatch_workloop_set_autorelease_frequency, _dispatch_workloop_set_cpupercent, 
-                       _dispatch_workloop_set_qos_class, _dispatch_workloop_set_qos_class_floor, 
-                       _dispatch_workloop_set_scheduler_priority, _dispatch_write, 
-                       _dispatch_write_f, _libdispatch_init, _mach_voucher_persona_for_originator, 
-                       _mach_voucher_persona_self, _os_release, _os_retain, _voucher_activity_create_with_data, 
-                       _voucher_activity_create_with_location, _voucher_activity_flush, 
-                       _voucher_activity_get_logging_preferences, _voucher_activity_get_metadata_buffer, 
-                       _voucher_activity_id_allocate, _voucher_activity_initialize_4libtrace, 
-                       _voucher_activity_should_send_strings, _voucher_activity_trace, 
-                       _voucher_activity_trace_v, _voucher_activity_trace_v_2, _voucher_adopt, 
-                       _voucher_copy, _voucher_copy_with_persona_mach_voucher, _voucher_copy_without_importance, 
-                       _voucher_create_with_mach_msg, _voucher_decrement_importance_count4CF, 
-                       _voucher_get_activity_id, _voucher_get_activity_id_and_creator, 
-                       _voucher_get_current_persona, _voucher_get_current_persona_originator_info, 
-                       _voucher_get_current_persona_proximate_info, _voucher_kvoucher_debug, 
-                       _voucher_replace_default_voucher ]
-    objc-classes:    [ OS_dispatch_channel, OS_dispatch_data, OS_dispatch_disk, OS_dispatch_group, 
-                       OS_dispatch_io, OS_dispatch_mach, OS_dispatch_mach_msg, OS_dispatch_object, 
-                       OS_dispatch_operation, OS_dispatch_queue, OS_dispatch_queue_attr, 
-                       OS_dispatch_queue_concurrent, OS_dispatch_queue_global, OS_dispatch_queue_main, 
-                       OS_dispatch_queue_serial, OS_dispatch_semaphore, OS_dispatch_source, 
-                       OS_dispatch_workloop, OS_object, OS_voucher ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           789A18C2-8AC7-3C88-813D-CD674376585D
-  - target:          x86_64-maccatalyst
-    value:           789A18C2-8AC7-3C88-813D-CD674376585D
-install-name:    '/usr/lib/system/libdyld.dylib'
-current-version: 750.6
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _NSAddImage, _NSAddLibrary, _NSAddLibraryWithSearching, _NSAddressOfSymbol, 
-                       _NSCreateObjectFileImageFromFile, _NSCreateObjectFileImageFromMemory, 
-                       _NSDestroyObjectFileImage, _NSGetSectionDataInObjectFileImage, 
-                       _NSInstallLinkEditErrorHandlers, _NSIsSymbolDefinedInObjectFileImage, 
-                       _NSIsSymbolNameDefined, _NSIsSymbolNameDefinedInImage, _NSIsSymbolNameDefinedWithHint, 
-                       _NSLibraryNameForModule, _NSLinkEditError, _NSLinkModule, 
-                       _NSLookupAndBindSymbol, _NSLookupAndBindSymbolWithHint, _NSLookupSymbolInImage, 
-                       _NSLookupSymbolInModule, _NSModuleForSymbol, _NSNameOfModule, 
-                       _NSNameOfSymbol, _NSSymbolDefinitionCountInObjectFileImage, 
-                       _NSSymbolDefinitionNameInObjectFileImage, _NSSymbolReferenceCountInObjectFileImage, 
-                       _NSSymbolReferenceNameInObjectFileImage, _NSUnLinkModule, 
-                       _NSVersionOfLinkTimeLibrary, _NSVersionOfRunTimeLibrary, _NXArgc, 
-                       _NXArgv, __NSGetExecutablePath, __ZN5dyld316compatFuncLookupEPKcPPv, 
-                       __ZN5dyld318entryVectorForDyldE, ___progname, __dyld_all_twolevel_modules_prebound, 
-                       __dyld_atfork_parent, __dyld_atfork_prepare, __dyld_bind_fully_image_containing_address, 
-                       __dyld_find_unwind_sections, __dyld_for_each_objc_class, __dyld_for_each_objc_protocol, 
-                       __dyld_fork_child, __dyld_get_image_header, __dyld_get_image_header_containing_address, 
-                       __dyld_get_image_name, __dyld_get_image_slide, __dyld_get_image_uuid, 
-                       __dyld_get_image_vmaddr_slide, __dyld_get_objc_selector, __dyld_get_shared_cache_range, 
-                       __dyld_get_shared_cache_uuid, __dyld_image_containing_address, 
-                       __dyld_image_count, __dyld_images_for_addresses, __dyld_initializer, 
-                       __dyld_is_memory_immutable, __dyld_launched_prebound, __dyld_lookup_and_bind, 
-                       __dyld_lookup_and_bind_fully, __dyld_lookup_and_bind_with_hint, 
-                       __dyld_missing_symbol_abort, __dyld_objc_notify_register, 
-                       __dyld_present, __dyld_process_info_create, __dyld_process_info_for_each_image, 
-                       __dyld_process_info_for_each_segment, __dyld_process_info_get_cache, 
-                       __dyld_process_info_get_platform, __dyld_process_info_get_state, 
-                       __dyld_process_info_notify, __dyld_process_info_notify_main, 
-                       __dyld_process_info_notify_release, __dyld_process_info_notify_retain, 
-                       __dyld_process_info_release, __dyld_process_info_retain, __dyld_register_driverkit_main, 
-                       __dyld_register_for_bulk_image_loads, __dyld_register_for_image_loads, 
-                       __dyld_register_func_for_add_image, __dyld_register_func_for_remove_image, 
-                       __dyld_shared_cache_is_locally_built, __dyld_shared_cache_optimized, 
-                       __tlv_atexit, __tlv_bootstrap, __tlv_exit, _dladdr, _dlclose, 
-                       _dlerror, _dlopen, _dlopen_preflight, _dlsym, _dyldVersionNumber, 
-                       _dyldVersionString, _dyld_dynamic_interpose, _dyld_get_active_platform, 
-                       _dyld_get_base_platform, _dyld_get_image_versions, _dyld_get_min_os_version, 
-                       _dyld_get_program_min_os_version, _dyld_get_program_sdk_version, 
-                       _dyld_get_sdk_version, _dyld_has_inserted_or_interposing_libraries, 
-                       _dyld_image_header_containing_address, _dyld_image_path_containing_address, 
-                       _dyld_is_simulator_platform, _dyld_minos_at_least, _dyld_need_closure, 
-                       _dyld_process_is_restricted, _dyld_program_minos_at_least, 
-                       _dyld_program_sdk_at_least, _dyld_sdk_at_least, _dyld_shared_cache_file_path, 
-                       _dyld_shared_cache_find_iterate_text, _dyld_shared_cache_iterate_text, 
-                       _dyld_shared_cache_some_image_overridden, _environ, dyld_stub_binder ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           DB3337BE-01CA-3425-BD0C-87774FC0CDC0
-  - target:          x86_64-maccatalyst
-    value:           DB3337BE-01CA-3425-BD0C-87774FC0CDC0
-install-name:    '/usr/lib/system/libkeymgr.dylib'
-current-version: 30
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ ___keymgr_dwarf2_register_sections, ___keymgr_initializer, 
-                       __keymgr_get_and_lock_processwide_ptr, __keymgr_get_and_lock_processwide_ptr_2, 
-                       __keymgr_get_lock_count_processwide_ptr, __keymgr_get_lockmode_processwide_ptr, 
-                       __keymgr_set_and_unlock_processwide_ptr, __keymgr_set_lockmode_processwide_ptr, 
-                       __keymgr_unlock_processwide_ptr, _keymgrVersionNumber, _keymgrVersionString ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           AFBCBDD3-0B55-3ECD-8E04-A73A3A57356B
-  - target:          x86_64-maccatalyst
-    value:           AFBCBDD3-0B55-3ECD-8E04-A73A3A57356B
-install-name:    '/usr/lib/system/liblaunch.dylib'
-current-version: 1738.140.1
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ __spawn_via_launchd, __vproc_get_last_exit_status, __vproc_grab_subset, 
-                       __vproc_kickstart_by_label, __vproc_log, __vproc_log_error, 
-                       __vproc_logv, __vproc_pid_is_managed, __vproc_post_fork_ping, 
-                       __vproc_send_signal_by_label, __vproc_set_global_on_demand, 
-                       __vproc_standby_begin, __vproc_standby_count, __vproc_standby_end, 
-                       __vproc_standby_timeout, __vproc_transaction_begin, __vproc_transaction_count, 
-                       __vproc_transaction_count_for_pid, __vproc_transaction_end, 
-                       __vproc_transaction_set_clean_callback, __vproc_transaction_try_exit, 
-                       __vproc_transactions_enable, __vprocmgr_detach_from_console, 
-                       __vprocmgr_getsocket, __vprocmgr_init, __vprocmgr_log_drain, 
-                       __vprocmgr_log_forward, __vprocmgr_move_subset_to_user, __vprocmgr_switch_to_session, 
-                       _bootstrap_check_in, _bootstrap_check_in2, _bootstrap_check_in3, 
-                       _bootstrap_create_server, _bootstrap_create_service, _bootstrap_get_root, 
-                       _bootstrap_info, _bootstrap_init, _bootstrap_look_up, _bootstrap_look_up2, 
-                       _bootstrap_look_up3, _bootstrap_look_up_per_user, _bootstrap_lookup_children, 
-                       _bootstrap_parent, _bootstrap_register, _bootstrap_register2, 
-                       _bootstrap_status, _bootstrap_strerror, _bootstrap_subset, 
-                       _bootstrap_unprivileged, _create_and_switch_to_per_session_launchd, 
-                       _launch_data_alloc, _launch_data_array_get_count, _launch_data_array_get_index, 
-                       _launch_data_array_set_index, _launch_data_copy, _launch_data_dict_get_count, 
-                       _launch_data_dict_insert, _launch_data_dict_iterate, _launch_data_dict_lookup, 
-                       _launch_data_dict_remove, _launch_data_free, _launch_data_get_bool, 
-                       _launch_data_get_errno, _launch_data_get_fd, _launch_data_get_integer, 
-                       _launch_data_get_machport, _launch_data_get_opaque, _launch_data_get_opaque_size, 
-                       _launch_data_get_real, _launch_data_get_string, _launch_data_get_type, 
-                       _launch_data_new_bool, _launch_data_new_errno, _launch_data_new_fd, 
-                       _launch_data_new_integer, _launch_data_new_machport, _launch_data_new_opaque, 
-                       _launch_data_new_real, _launch_data_new_string, _launch_data_pack, 
-                       _launch_data_set_bool, _launch_data_set_errno, _launch_data_set_fd, 
-                       _launch_data_set_integer, _launch_data_set_machport, _launch_data_set_opaque, 
-                       _launch_data_set_real, _launch_data_set_string, _launch_data_unpack, 
-                       _launch_get_fd, _launch_msg, _launch_socket_service_check_in, 
-                       _launch_wait, _launchd_close, _launchd_fdopen, _launchd_getfd, 
-                       _launchd_msg_recv, _launchd_msg_send, _load_launchd_jobs_at_loginwindow_prompt, 
-                       _mpm_uncork_fork, _mpm_wait, _reboot2, _vproc_release, _vproc_retain, 
-                       _vproc_standby_begin, _vproc_standby_end, _vproc_swap_complex, 
-                       _vproc_swap_integer, _vproc_swap_string, _vproc_transaction_begin, 
-                       _vproc_transaction_end, _vprocmgr_lookup_vproc ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           AA613A9C-961A-3B67-B696-4622FA59FC4E
-  - target:          x86_64-maccatalyst
-    value:           AA613A9C-961A-3B67-B696-4622FA59FC4E
-install-name:    '/usr/lib/system/libmacho.dylib'
-current-version: 959.0.1
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _NXCombineCpuSubtypes, _NXFindBestFatArch, _NXFindBestFatArch_64, 
-                       _NXFreeArchInfo, _NXGetAllArchInfos, _NXGetArchInfoFromCpuType, 
-                       _NXGetArchInfoFromName, _NXGetLocalArchInfo, _get_edata, _get_end, 
-                       _get_etext, _getsectbyname, _getsectbynamefromheader, _getsectbynamefromheader_64, 
-                       _getsectbynamefromheaderwithswap, _getsectbynamefromheaderwithswap_64, 
-                       _getsectdata, _getsectdatafromFramework, _getsectdatafromheader, 
-                       _getsectdatafromheader_64, _getsectiondata, _getsegbyname, 
-                       _getsegmentdata, _slot_name, _swap_build_tool_version, _swap_build_version_command, 
-                       _swap_dyld_info_command, _swap_dylib_command, _swap_dylib_module, 
-                       _swap_dylib_module_64, _swap_dylib_reference, _swap_dylib_table_of_contents, 
-                       _swap_dylinker_command, _swap_dysymtab_command, _swap_encryption_command, 
-                       _swap_encryption_command_64, _swap_entry_point_command, _swap_fat_arch, 
-                       _swap_fat_arch_64, _swap_fat_header, _swap_fvmfile_command, 
-                       _swap_fvmlib_command, _swap_hppa_fp_thread_state, _swap_hppa_frame_thread_state, 
-                       _swap_hppa_integer_thread_state, _swap_i386_exception_state, 
-                       _swap_i386_float_state, _swap_i386_thread_state, _swap_i860_thread_state_regs, 
-                       _swap_ident_command, _swap_indirect_symbols, _swap_linkedit_data_command, 
-                       _swap_linker_option_command, _swap_load_command, _swap_m68k_thread_state_68882, 
-                       _swap_m68k_thread_state_regs, _swap_m68k_thread_state_user_reg, 
-                       _swap_m88110_thread_state_impl_t, _swap_m88k_thread_state_grf_t, 
-                       _swap_m88k_thread_state_user_t, _swap_m88k_thread_state_xrf_t, 
-                       _swap_mach_header, _swap_mach_header_64, _swap_nlist, _swap_nlist_64, 
-                       _swap_note_command, _swap_ppc_exception_state_t, _swap_ppc_float_state_t, 
-                       _swap_ppc_thread_state_t, _swap_prebind_cksum_command, _swap_prebound_dylib_command, 
-                       _swap_ranlib, _swap_ranlib_64, _swap_relocation_info, _swap_routines_command, 
-                       _swap_routines_command_64, _swap_rpath_command, _swap_section, 
-                       _swap_section_64, _swap_segment_command, _swap_segment_command_64, 
-                       _swap_source_version_command, _swap_sparc_thread_state_fpu, 
-                       _swap_sparc_thread_state_regs, _swap_sub_client_command, _swap_sub_framework_command, 
-                       _swap_sub_library_command, _swap_sub_umbrella_command, _swap_symseg_command, 
-                       _swap_symtab_command, _swap_thread_command, _swap_twolevel_hint, 
-                       _swap_twolevel_hints_command, _swap_uuid_command, _swap_version_min_command, 
-                       _swap_x86_debug_state, _swap_x86_debug_state32, _swap_x86_debug_state64, 
-                       _swap_x86_exception_state, _swap_x86_exception_state64, _swap_x86_float_state, 
-                       _swap_x86_float_state64, _swap_x86_state_hdr, _swap_x86_thread_state, 
-                       _swap_x86_thread_state64 ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           F234E51D-FD0B-3EE4-B679-AE3EE9C536C3
-  - target:          x86_64-maccatalyst
-    value:           F234E51D-FD0B-3EE4-B679-AE3EE9C536C3
-install-name:    '/usr/lib/system/libquarantine.dylib'
-current-version: 110.40.3
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ ___esp_check, ___esp_check_ns, ___esp_enabled, ___esp_notify, 
-                       ___esp_notify_ns, ___libquarantineVersionNumber, ___libquarantineVersionString, 
-                       ___qtn_syscall_quarantine_getinfo_fd, ___qtn_syscall_quarantine_getinfo_mount_point, 
-                       ___qtn_syscall_quarantine_getinfo_path, ___qtn_syscall_quarantine_getprocinfo, 
-                       ___qtn_syscall_quarantine_setinfo_fd, ___qtn_syscall_quarantine_setinfo_mount_point, 
-                       ___qtn_syscall_quarantine_setinfo_path, ___qtn_syscall_quarantine_setprocinfo, 
-                       ___qtn_syscall_responsibility_get, ___qtn_syscall_responsibility_get2, 
-                       ___qtn_syscall_responsibility_get3, ___qtn_syscall_responsibility_set, 
-                       ___qtn_syscall_responsibility_set_audittoken_for_caller, ___qtn_syscall_responsibility_set_audittoken_for_self, 
-                       ___qtn_syscall_responsibility_set_caller_for_caller, ___qtn_syscall_responsibility_set_hosted_path, 
-                       __qtn_error, __qtn_file_alloc, __qtn_file_apply_to_fd, __qtn_file_apply_to_mount_point, 
-                       __qtn_file_apply_to_path, __qtn_file_clone, __qtn_file_free, 
-                       __qtn_file_get_flags, __qtn_file_get_identifier, __qtn_file_get_metadata, 
-                       __qtn_file_get_metadata_size, __qtn_file_get_timestamp, __qtn_file_init, 
-                       __qtn_file_init_with_data, __qtn_file_init_with_fd, __qtn_file_init_with_mount_point, 
-                       __qtn_file_init_with_path, __qtn_file_set_flags, __qtn_file_set_identifier, 
-                       __qtn_file_set_metadata, __qtn_file_set_timestamp, __qtn_file_to_data, 
-                       __qtn_label_name, __qtn_proc_alloc, __qtn_proc_apply_to_self, 
-                       __qtn_proc_clone, __qtn_proc_free, __qtn_proc_get_flags, __qtn_proc_get_identifier, 
-                       __qtn_proc_get_metadata, __qtn_proc_get_metadata_size, __qtn_proc_get_path_exclusion_pattern, 
-                       __qtn_proc_init, __qtn_proc_init_with_data, __qtn_proc_init_with_self, 
-                       __qtn_proc_set_flags, __qtn_proc_set_identifier, __qtn_proc_set_metadata, 
-                       __qtn_proc_set_path_exclusion_pattern, __qtn_proc_to_data, 
-                       __qtn_xattr_name, _qtn_proc_init_with_pid, _responsibility_get_attribution_for_audittoken, 
-                       _responsibility_get_pid_responsible_for_pid, _responsibility_get_responsible_audit_token_for_audit_token, 
-                       _responsibility_get_responsible_for_pid, _responsibility_get_uniqueid_responsible_for_pid, 
-                       _responsibility_identity_get_binary_entitlement_data, _responsibility_identity_get_binary_is_platform, 
-                       _responsibility_identity_get_binary_offset, _responsibility_identity_get_binary_path, 
-                       _responsibility_identity_get_binary_signing_id, _responsibility_identity_get_binary_team_id, 
-                       _responsibility_identity_get_hosted_path, _responsibility_identity_get_persistent_identifier, 
-                       _responsibility_identity_get_user_uuid, _responsibility_identity_release, 
-                       _responsibility_init, _responsibility_set_audittoken_responsible_for_caller, 
-                       _responsibility_set_audittoken_responsible_for_self, _responsibility_set_caller_responsible_for_self, 
-                       _responsibility_set_hosted_path, _responsibility_set_pid_responsible_for_pid, 
-                       _responsibility_spawnattrs_getdisclaim, _responsibility_spawnattrs_setdisclaim ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           7C7EFC79-BD24-33EF-B073-06AED234593E
-  - target:          x86_64-maccatalyst
-    value:           7C7EFC79-BD24-33EF-B073-06AED234593E
-install-name:    '/usr/lib/system/libremovefile.dylib'
-current-version: 48
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ ___removefile_init_random, ___removefile_random_char, ___removefile_randomize_buffer, 
-                       ___removefile_rename_unlink, ___removefile_sunlink, ___removefile_tree_walker, 
-                       _removefile, _removefile_cancel, _removefile_state_alloc, 
-                       _removefile_state_free, _removefile_state_get, _removefile_state_set ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           1563EE02-0657-3B78-99BE-A947C24122EF
-  - target:          x86_64-maccatalyst
-    value:           1563EE02-0657-3B78-99BE-A947C24122EF
-install-name:    '/usr/lib/system/libsystem_asl.dylib'
-current-version: 377.60.2
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _ASL_LEVEL_TO_STRING, __asl_evaluate_send, __asl_fork_child, 
-                       __asl_lib_log, __asl_log_args_to_xpc, __asl_msg_dump, __asl_mt_shim_fork_child, 
-                       __asl_mt_shim_send_message, __asl_server_cancel_direct_watch, 
-                       __asl_server_control_query, __asl_server_create_aux_link, 
-                       __asl_server_match, __asl_server_message, __asl_server_query_2, 
-                       __asl_server_register_direct_watch, _asl_add_log_file, _asl_add_output, 
-                       _asl_add_output_file, _asl_append, _asl_base_msg, _asl_client_add_output_file, 
-                       _asl_client_get_control, _asl_client_kvdict, _asl_client_match, 
-                       _asl_client_open, _asl_client_open_from_file, _asl_client_release, 
-                       _asl_client_remove_output_file, _asl_client_retain, _asl_client_search, 
-                       _asl_client_send, _asl_client_set_control, _asl_client_set_filter, 
-                       _asl_client_set_output_file_filter, _asl_close, _asl_close_auxiliary_file, 
-                       _asl_core_check_access, _asl_core_decode_buffer, _asl_core_encode_buffer, 
-                       _asl_core_error, _asl_core_get_service_port, _asl_core_htonq, 
-                       _asl_core_level_to_string, _asl_core_new_msg_id, _asl_core_ntohq, 
-                       _asl_core_parse_time, _asl_core_str_match, _asl_core_str_match_c_time, 
-                       _asl_core_str_match_char, _asl_core_str_to_size, _asl_core_str_to_time, 
-                       _asl_core_str_to_uint32, _asl_core_string_hash, _asl_core_time_to_str, 
-                       _asl_count, _asl_create_auxiliary_file, _asl_fetch_key_val_op, 
-                       _asl_file_close, _asl_file_compact, _asl_file_ctime, _asl_file_fetch, 
-                       _asl_file_fetch_next, _asl_file_fetch_previous, _asl_file_filter, 
-                       _asl_file_filter_level, _asl_file_list_add, _asl_file_list_close, 
-                       _asl_file_list_match, _asl_file_list_match_end, _asl_file_list_match_next, 
-                       _asl_file_list_match_start, _asl_file_match, _asl_file_open_read, 
-                       _asl_file_open_write, _asl_file_read_set_position, _asl_file_release, 
-                       _asl_file_retain, _asl_file_save, _asl_file_size, _asl_filesystem_path, 
-                       _asl_format, _asl_format_message, _asl_free, _asl_get, _asl_get_filter, 
-                       _asl_get_index, _asl_get_local_control, _asl_get_type, _asl_get_value_for_key, 
-                       _asl_key, _asl_legacy1_close, _asl_legacy1_fetch, _asl_legacy1_match, 
-                       _asl_legacy1_open, _asl_list_from_string, _asl_log, _asl_log_auxiliary_location, 
-                       _asl_log_descriptor, _asl_log_message, _asl_match, _asl_msg_cmp, 
-                       _asl_msg_cmp_list, _asl_msg_copy, _asl_msg_count, _asl_msg_fetch, 
-                       _asl_msg_from_string, _asl_msg_get_val_for_key, _asl_msg_key, 
-                       _asl_msg_list_append, _asl_msg_list_count, _asl_msg_list_from_string, 
-                       _asl_msg_list_get_index, _asl_msg_list_insert, _asl_msg_list_match, 
-                       _asl_msg_list_new, _asl_msg_list_new_count, _asl_msg_list_next, 
-                       _asl_msg_list_prepend, _asl_msg_list_prev, _asl_msg_list_release, 
-                       _asl_msg_list_remove_index, _asl_msg_list_reset_iteration, 
-                       _asl_msg_list_retain, _asl_msg_list_search, _asl_msg_list_to_asl_string, 
-                       _asl_msg_list_to_string, _asl_msg_lookup, _asl_msg_merge, 
-                       _asl_msg_new, _asl_msg_release, _asl_msg_retain, _asl_msg_set_key_val, 
-                       _asl_msg_set_key_val_op, _asl_msg_to_string, _asl_msg_type, 
-                       _asl_msg_unset, _asl_msg_unset_index, _asl_new, _asl_next, 
-                       _asl_object_append, _asl_object_count, _asl_object_get_key_val_op_at_index, 
-                       _asl_object_get_object_at_index, _asl_object_get_val_op_for_key, 
-                       _asl_object_match, _asl_object_next, _asl_object_prepend, 
-                       _asl_object_prev, _asl_object_remove_object_at_index, _asl_object_search, 
-                       _asl_object_set_iteration_index, _asl_object_set_key_val_op, 
-                       _asl_object_unset_key, _asl_open, _asl_open_from_file, _asl_open_path, 
-                       _asl_parse_time, _asl_prepend, _asl_prev, _asl_release, _asl_remote_notify_name, 
-                       _asl_remove_log_file, _asl_remove_output, _asl_remove_output_file, 
-                       _asl_reset_iteration, _asl_retain, _asl_search, _asl_send, 
-                       _asl_set, _asl_set_filter, _asl_set_key_val_op, _asl_set_local_control, 
-                       _asl_set_output_file_filter, _asl_set_query, _asl_store_close, 
-                       _asl_store_location, _asl_store_match, _asl_store_match_next, 
-                       _asl_store_match_start, _asl_store_match_timeout, _asl_store_max_file_size, 
-                       _asl_store_open_aux, _asl_store_open_read, _asl_store_open_write, 
-                       _asl_store_release, _asl_store_retain, _asl_store_save, _asl_store_set_flags, 
-                       _asl_store_statistics, _asl_store_sweep_file_cache, _asl_string_allocated_size, 
-                       _asl_string_append, _asl_string_append_asl_key, _asl_string_append_asl_msg, 
-                       _asl_string_append_char_no_encoding, _asl_string_append_no_encoding, 
-                       _asl_string_append_no_encoding_len, _asl_string_append_op, 
-                       _asl_string_append_xml_tag, _asl_string_bytes, _asl_string_length, 
-                       _asl_string_new, _asl_string_release, _asl_string_release_return_bytes, 
-                       _asl_string_retain, _asl_syslog_faciliy_name_to_num, _asl_syslog_faciliy_num_to_name, 
-                       _asl_trigger_aslmanager, _asl_unset, _asl_unset_key, _asl_vlog, 
-                       _aslresponse_free, _aslresponse_next, _closelog, _openlog, 
-                       _setlogmask, _syslog, '_syslog$DARWIN_EXTSN', _vsyslog ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           0D53847E-AF5F-3ACF-B51F-A15DEA4DEC58
-  - target:          x86_64-maccatalyst
-    value:           0D53847E-AF5F-3ACF-B51F-A15DEA4DEC58
-install-name:    '/usr/lib/system/libsystem_blocks.dylib'
-current-version: 74
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _Block_size, __Block_copy, __Block_extended_layout, __Block_has_signature, 
-                       __Block_isDeallocating, __Block_layout, __Block_object_assign, 
-                       __Block_object_dispose, __Block_release, __Block_signature, 
-                       __Block_tryRetain, __Block_use_RR2, __Block_use_stret, __NSConcreteAutoBlock, 
-                       __NSConcreteFinalizingBlock, __NSConcreteGlobalBlock, __NSConcreteMallocBlock, 
-                       __NSConcreteStackBlock, __NSConcreteWeakBlockVariable ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           BBDED5E6-A646-3EED-B33A-91E4331EA063
-  - target:          x86_64-maccatalyst
-    value:           BBDED5E6-A646-3EED-B33A-91E4331EA063
-install-name:    '/usr/lib/system/libsystem_c.dylib'
-current-version: 1353.100.2
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ '$ld$weak$os10.11$_basename_r', '$ld$weak$os10.11$_clock_getres', 
-                       '$ld$weak$os10.11$_clock_gettime', '$ld$weak$os10.11$_clock_settime', 
-                       '$ld$weak$os10.11$_dirname_r', '$ld$weak$os10.11$_getentropy', 
-                       '$ld$weak$os10.11$_mkostemp', '$ld$weak$os10.11$_mkostemps', 
-                       '$ld$weak$os10.11$_timingsafe_bcmp', '$ld$weak$os10.12$_utimensat', 
-                       __CurrentRuneLocale, __DefaultRuneLocale, __Exit, __NSGetArgc, 
-                       __NSGetArgv, __NSGetEnviron, __NSGetMachExecuteHeader, __NSGetProgname, 
-                       __PathLocale, __Read_RuneMagi, ___Balloc_D2A, ___Bfree_D2A, 
-                       ___ULtod_D2A, ____mb_cur_max, ____mb_cur_max_l, ____runetype, 
-                       ____runetype_l, ____tolower, ____tolower_l, ____toupper, ____toupper_l, 
-                       ___add_ovflpage, ___addel, ___any_on_D2A, ___assert_rtn, ___b2d_D2A, 
-                       ___big_delete, ___big_insert, ___big_keydata, ___big_return, 
-                       ___big_split, ___bigtens_D2A, ___bt_close, ___bt_cmp, ___bt_defcmp, 
-                       ___bt_defpfx, ___bt_delete, ___bt_dleaf, ___bt_fd, ___bt_free, 
-                       ___bt_get, ___bt_new, ___bt_open, ___bt_pgin, ___bt_pgout, 
-                       ___bt_put, ___bt_ret, ___bt_search, ___bt_seq, ___bt_setcur, 
-                       ___bt_split, ___bt_sync, ___buf_free, ___call_hash, ___cleanup, 
-                       ___cmp_D2A, ___collate_equiv_match, ___collate_load_error, 
-                       ___collate_lookup, ___copybits_D2A, ___cxa_atexit, ___cxa_finalize, 
-                       ___cxa_finalize_ranges, ___cxa_thread_atexit, ___d2b_D2A, 
-                       ___dbpanic, ___decrement_D2A, ___default_hash, ___default_utx, 
-                       ___delpair, ___diff_D2A, ___dtoa, ___expand_table, ___fflush, 
-                       ___fgetwc, ___find_bigpair, ___find_last_page, ___fix_locale_grouping_str, 
-                       ___fread, ___free_ovflpage, ___freedtoa, ___gdtoa, ___gdtoa_locks, 
-                       ___get_buf, ___get_page, ___gethex_D2A, ___getonlyClocaleconv, 
-                       ___hash_open, ___hdtoa, ___hexdig_D2A, ___hexdig_init_D2A, 
-                       ___hexnan_D2A, ___hi0bits_D2A, ___hldtoa, ___i2b_D2A, ___ibitmap, 
-                       ___increment_D2A, ___isctype, ___istype, ___istype_l, ___ldtoa, 
-                       ___libc_init, ___lo0bits_D2A, ___log2, ___lshift_D2A, ___maskrune, 
-                       ___maskrune_l, ___match_D2A, ___mb_cur_max, ___mb_sb_limit, 
-                       ___memccpy_chk, ___memcpy_chk, ___memmove_chk, ___memset_chk, 
-                       ___mult_D2A, ___multadd_D2A, ___nrv_alloc_D2A, ___opendir2, 
-                       '___opendir2$INODE64', ___ovfl_delete, ___ovfl_get, ___ovfl_put, 
-                       ___pow5mult_D2A, ___put_page, ___quorem_D2A, ___ratio_D2A, 
-                       ___rec_close, ___rec_delete, ___rec_dleaf, ___rec_fd, ___rec_fmap, 
-                       ___rec_fpipe, ___rec_get, ___rec_iput, ___rec_open, ___rec_put, 
-                       ___rec_ret, ___rec_search, ___rec_seq, ___rec_sync, ___rec_vmap, 
-                       ___rec_vpipe, ___reclaim_buf, ___rshift_D2A, ___rv_alloc_D2A, 
-                       ___s2b_D2A, ___sF, ___sclose, ___sdidinit, ___set_ones_D2A, 
-                       ___setonlyClocaleconv, ___sflags, ___sflush, ___sfp, ___sfvwrite, 
-                       ___sglue, ___sinit, ___slbexpand, ___smakebuf, ___snprintf_chk, 
-                       ___snprintf_object_size_chk, ___split_page, ___sprintf_chk, 
-                       ___sprintf_object_size_chk, ___sread, ___srefill, ___srget, 
-                       ___sseek, ___stack_chk_fail, ___stack_chk_guard, ___stderrp, 
-                       ___stdinp, ___stdoutp, ___stpcpy_chk, ___stpncpy_chk, ___strcat_chk, 
-                       ___strcp_D2A, ___strcpy_chk, ___strlcat_chk, ___strlcpy_chk, 
-                       ___strncat_chk, ___strncpy_chk, ___strtodg, ___strtopdd, ___strtopx, 
-                       ___sum_D2A, ___svfscanf, ___swbuf, ___swhatbuf, ___swrite, 
-                       ___swsetup, ___tens_D2A, ___tinytens_D2A, ___tolower, ___tolower_l, 
-                       ___toupper, ___toupper_l, ___trailz_D2A, ___ulp_D2A, ___ungetc, 
-                       ___ungetwc, ___vsnprintf_chk, ___vsprintf_chk, ___wcwidth, 
-                       ___wcwidth_l, __allocenvstate, __atexit_receipt, __c_locale, 
-                       __cleanup, __closeutx, __copyenv, __cthread_init_routine, 
-                       __deallocenvstate, __endutxent, __flockfile_debug_stub, __fseeko, 
-                       __ftello, __fwalk, __getenvp, __getutxent, __getutxid, __getutxline, 
-                       __inet_aton_check, __init_clock_port, __int_to_time, __libc_fork_child, 
-                       __libc_initializer, __long_to_time, __mkpath_np, __mktemp, 
-                       __openutx, __os_assert_log, __os_assert_log_ctx, __os_assumes_log, 
-                       __os_assumes_log_ctx, __os_avoid_tail_call, __os_crash, __os_crash_callback, 
-                       __os_crash_fmt, __os_debug_log, __os_debug_log_error_str, 
-                       __putenvp, __pututxline, __rand48_add, __rand48_mult, __rand48_seed, 
-                       __readdir_unlocked, '__readdir_unlocked$INODE64', __reclaim_telldir, 
-                       __seekdir, '__seekdir$INODE64', __setenvp, __setutxent, __sigaction_nobind, 
-                       __sigintr, __signal_nobind, __sigvec_nobind, __sread, __sseek, 
-                       __swrite, __time32_to_time, __time64_to_time, __time_to_int, 
-                       __time_to_long, __time_to_time32, __time_to_time64, __unsetenvp, 
-                       __utmpxname, _a64l, _abort, _abort_report_np, _abs, _acl_add_flag_np, 
-                       _acl_add_perm, _acl_calc_mask, _acl_clear_flags_np, _acl_clear_perms, 
-                       _acl_copy_entry, _acl_copy_ext, _acl_copy_ext_native, _acl_copy_int, 
-                       _acl_copy_int_native, _acl_create_entry, _acl_create_entry_np, 
-                       _acl_delete_def_file, _acl_delete_entry, _acl_delete_fd_np, 
-                       _acl_delete_file_np, _acl_delete_flag_np, _acl_delete_link_np, 
-                       _acl_delete_perm, _acl_dup, _acl_free, _acl_from_text, _acl_get_entry, 
-                       _acl_get_fd, _acl_get_fd_np, _acl_get_file, _acl_get_flag_np, 
-                       _acl_get_flagset_np, _acl_get_link_np, _acl_get_perm_np, _acl_get_permset, 
-                       _acl_get_permset_mask_np, _acl_get_qualifier, _acl_get_tag_type, 
-                       _acl_init, _acl_maximal_permset_mask_np, _acl_set_fd, _acl_set_fd_np, 
-                       _acl_set_file, _acl_set_flagset_np, _acl_set_link_np, _acl_set_permset, 
-                       _acl_set_permset_mask_np, _acl_set_qualifier, _acl_set_tag_type, 
-                       _acl_size, _acl_to_text, _acl_valid, _acl_valid_fd_np, _acl_valid_file_np, 
-                       _acl_valid_link, _addr2ascii, _alarm, _alphasort, '_alphasort$INODE64', 
-                       _arc4random, _arc4random_addrandom, _arc4random_buf, _arc4random_stir, 
-                       _arc4random_uniform, _ascii2addr, _asctime, _asctime_r, _asprintf, 
-                       _asprintf_l, _asxprintf, _asxprintf_exec, _atexit, _atexit_b, 
-                       _atof, _atof_l, _atoi, _atoi_l, _atol, _atol_l, _atoll, _atoll_l, 
-                       _backtrace, _backtrace_from_fp, _backtrace_image_offsets, 
-                       _backtrace_symbols, _backtrace_symbols_fd, _basename, _basename_r, 
-                       _bcmp, _bcopy, _brk, _bsd_signal, _bsearch, _bsearch_b, _btowc, 
-                       _btowc_l, _bzero, _catclose, _catgets, _catopen, _cfgetispeed, 
-                       _cfgetospeed, _cfmakeraw, _cfsetispeed, _cfsetospeed, _cfsetspeed, 
-                       _cgetcap, _cgetclose, _cgetent, _cgetfirst, _cgetmatch, _cgetnext, 
-                       _cgetnum, _cgetset, _cgetstr, _cgetustr, _chmodx_np, _clearerr, 
-                       _clearerr_unlocked, _clock, _clock_getres, _clock_gettime, 
-                       _clock_gettime_nsec_np, _clock_port, _clock_sem, _clock_settime, 
-                       _closedir, _compat_mode, _confstr, _copy_printf_domain, _creat, 
-                       '_creat$NOCANCEL', _crypt, _ctermid, _ctermid_r, _ctime, _ctime_r, 
-                       _daemon, '_daemon$1050', _daylight, _dbm_clearerr, _dbm_close, 
-                       _dbm_delete, _dbm_dirfno, _dbm_error, _dbm_fetch, _dbm_firstkey, 
-                       _dbm_nextkey, _dbm_open, _dbm_store, _dbopen, _devname, _devname_r, 
-                       _difftime, _digittoint, _digittoint_l, _dirfd, _dirname, _dirname_r, 
-                       _div, _dprintf, _dprintf_l, _drand48, _duplocale, _dxprintf, 
-                       _dxprintf_exec, _ecvt, _encrypt, _endttyent, _endusershell, 
-                       _endutxent, _endutxent_wtmp, _erand48, _err, _err_set_exit, 
-                       _err_set_exit_b, _err_set_file, _errc, _errx, _execl, _execle, 
-                       _execlp, _execv, _execvP, _execvp, _exit, _f_prealloc, _fchmodx_np, 
-                       _fclose, _fcvt, _fdopen, '_fdopen$DARWIN_EXTSN', _fdopendir, 
-                       '_fdopendir$INODE64', _feof, _feof_unlocked, _ferror, _ferror_unlocked, 
-                       _fflagstostr, _fflush, _fgetc, _fgetln, _fgetpos, _fgetrune, 
-                       _fgets, _fgetwc, _fgetwc_l, _fgetwln, _fgetwln_l, _fgetws, 
-                       _fgetws_l, _fileno, _fileno_unlocked, _filesec_dup, _filesec_free, 
-                       _filesec_get_property, _filesec_init, _filesec_query_property, 
-                       _filesec_set_property, _filesec_unset_property, _flockfile, 
-                       _fmemopen, _fmtcheck, _fmtmsg, _fnmatch, _fopen, '_fopen$DARWIN_EXTSN', 
-                       _fork, _forkpty, _fparseln, _fprintf, _fprintf_l, _fpurge, 
-                       _fputc, _fputrune, _fputs, _fputwc, _fputwc_l, _fputws, _fputws_l, 
-                       _fread, _free_printf_comp, _free_printf_domain, _freelocale, 
-                       _freopen, _fscanf, _fscanf_l, _fseek, _fseeko, _fsetpos, _fstatvfs, 
-                       _fstatx64_np, _fstatx_np, '_fstatx_np$INODE64', _fsync_volume_np, 
-                       _ftell, _ftello, _ftime, _ftok, _ftrylockfile, _fts_children, 
-                       '_fts_children$INODE64', _fts_close, '_fts_close$INODE64', 
-                       _fts_open, '_fts_open$INODE64', _fts_open_b, '_fts_open_b$INODE64', 
-                       _fts_read, '_fts_read$INODE64', _fts_set, '_fts_set$INODE64', 
-                       _ftw, '_ftw$INODE64', _fungetrune, _funlockfile, _funopen, 
-                       _fwide, _fwprintf, _fwprintf_l, _fwrite, _fwscanf, _fwscanf_l, 
-                       _fxprintf, _fxprintf_exec, _gcvt, _getbsize, _getc, _getc_unlocked, 
-                       _getchar, _getchar_unlocked, _getcwd, _getdate, _getdate_err, 
-                       _getdelim, _getdiskbyname, _getenv, '_getgroups$DARWIN_EXTSN', 
-                       _gethostid, _gethostname, _getipv4sourcefilter, _getlastlogx, 
-                       _getlastlogxbyname, _getline, _getloadavg, _getlogin, _getlogin_r, 
-                       _getmntinfo, '_getmntinfo$INODE64', _getmntinfo64, _getmntinfo_r_np, 
-                       '_getmntinfo_r_np$INODE64', _getmode, _getopt, _getopt_long, 
-                       _getopt_long_only, _getpagesize, _getpass, _getpeereid, _getprogname, 
-                       _gets, _getsourcefilter, _getsubopt, _gettimeofday, _getttyent, 
-                       _getttynam, _getusershell, _getutmp, _getutmpx, _getutxent, 
-                       _getutxent_wtmp, _getutxid, _getutxline, _getvfsbyname, _getw, 
-                       _getwc, _getwc_l, _getwchar, _getwchar_l, _getwd, _glob, '_glob$INODE64', 
-                       _glob_b, '_glob_b$INODE64', _globfree, _gmtime, _gmtime_r, 
-                       _grantpt, _hash_create, _hash_destroy, _hash_purge, _hash_search, 
-                       _hash_stats, _hash_traverse, _hcreate, _hdestroy, _heapsort, 
-                       _heapsort_b, _hsearch, _imaxabs, _imaxdiv, _index, _inet_addr, 
-                       _inet_aton, _inet_lnaof, _inet_makeaddr, _inet_net_ntop, _inet_net_pton, 
-                       _inet_neta, _inet_netof, _inet_network, _inet_nsap_addr, _inet_nsap_ntoa, 
-                       _inet_ntoa, _inet_ntop, _inet_ntop4, _inet_ntop6, _inet_pton, 
-                       _initstate, _insque, _isalnum, _isalnum_l, _isalpha, _isalpha_l, 
-                       _isascii, _isatty, _isblank, _isblank_l, _iscntrl, _iscntrl_l, 
-                       _isdigit, _isdigit_l, _isgraph, _isgraph_l, _ishexnumber, 
-                       _ishexnumber_l, _isideogram, _isideogram_l, _islower, _islower_l, 
-                       _isnumber, _isnumber_l, _isphonogram, _isphonogram_l, _isprint, 
-                       _isprint_l, _ispunct, _ispunct_l, _isrune, _isrune_l, _isspace, 
-                       _isspace_l, _isspecial, _isspecial_l, _isupper, _isupper_l, 
-                       _iswalnum, _iswalnum_l, _iswalpha, _iswalpha_l, _iswascii, 
-                       _iswblank, _iswblank_l, _iswcntrl, _iswcntrl_l, _iswctype, 
-                       _iswctype_l, _iswdigit, _iswdigit_l, _iswgraph, _iswgraph_l, 
-                       _iswhexnumber, _iswhexnumber_l, _iswideogram, _iswideogram_l, 
-                       _iswlower, _iswlower_l, _iswnumber, _iswnumber_l, _iswphonogram, 
-                       _iswphonogram_l, _iswprint, _iswprint_l, _iswpunct, _iswpunct_l, 
-                       _iswrune, _iswrune_l, _iswspace, _iswspace_l, _iswspecial, 
-                       _iswspecial_l, _iswupper, _iswupper_l, _iswxdigit, _iswxdigit_l, 
-                       _isxdigit, _isxdigit_l, _jrand48, _kOSThermalNotificationPressureLevelName, 
-                       _killpg, _l64a, _labs, _lchflags, _lchmod, _lcong48, _ldiv, 
-                       _lfind, _link_addr, _link_ntoa, _llabs, _lldiv, _localeconv, 
-                       _localeconv_l, _localtime, _localtime_r, _lockf, '_lockf$NOCANCEL', 
-                       _login, _login_tty, _logout, _logwtmp, _lrand48, _lsearch, 
-                       _lstatx64_np, _lstatx_np, '_lstatx_np$INODE64', _lutimes, 
-                       _mblen, _mblen_l, _mbmb, _mbrlen, _mbrlen_l, _mbrrune, _mbrtowc, 
-                       _mbrtowc_l, _mbrune, _mbsinit, _mbsinit_l, _mbsnrtowcs, _mbsnrtowcs_l, 
-                       _mbsrtowcs, _mbsrtowcs_l, _mbstowcs, _mbstowcs_l, _mbtowc, 
-                       _mbtowc_l, _memccpy, _memchr, _memcmp, _memcpy, _memmem, _memmove, 
-                       _memset, _memset_pattern16, _memset_pattern4, _memset_pattern8, 
-                       _memset_s, _mergesort, _mergesort_b, _mkdirx_np, _mkdtemp, 
-                       _mkdtempat_np, _mkfifox_np, _mkostemp, _mkostemps, _mkostempsat_np, 
-                       _mkpath_np, _mkpathat_np, _mkstemp, _mkstemp_dprotected_np, 
-                       _mkstemps, _mkstempsat_np, _mktemp, _mktime, _monaddition, 
-                       _moncontrol, _moncount, _moninit, _monitor, _monoutput, _monreset, 
-                       _monstartup, _mpool_close, _mpool_filter, _mpool_get, _mpool_new, 
-                       _mpool_open, _mpool_put, _mpool_sync, _mrand48, _nanosleep, 
-                       '_nanosleep$NOCANCEL', _new_printf_comp, _new_printf_domain, 
-                       _newlocale, _nextwctype, _nextwctype_l, _nftw, '_nftw$INODE64', 
-                       _nice, _nl_langinfo, _nl_langinfo_l, _nrand48, _nvis, _off32, 
-                       _off64, _offtime, _open_memstream, _open_wmemstream, _opendev, 
-                       _opendir, '_opendir$INODE64', _openpty, _openx_np, _optarg, 
-                       _opterr, _optind, _optopt, _optreset, _pause, '_pause$NOCANCEL', 
-                       _pclose, _perror, _popen, '_popen$DARWIN_EXTSN', _posix2time, 
-                       _posix_openpt, _posix_spawnp, _printf, _printf_l, _psignal, 
-                       _psort, _psort_b, _psort_r, _ptsname, _ptsname_r, _putc, _putc_unlocked, 
-                       _putchar, _putchar_unlocked, _putenv, _puts, _pututxline, 
-                       _putw, _putwc, _putwc_l, _putwchar, _putwchar_l, _qsort, _qsort_b, 
-                       _qsort_r, _querylocale, _radixsort, _raise, _rand, _rand_r, 
-                       _random, _rb_tree_count, _rb_tree_find_node, _rb_tree_find_node_geq, 
-                       _rb_tree_find_node_leq, _rb_tree_init, _rb_tree_insert_node, 
-                       _rb_tree_iterate, _rb_tree_remove_node, _readdir, '_readdir$INODE64', 
-                       _readdir_r, '_readdir_r$INODE64', _readpassphrase, _reallocf, 
-                       _realpath, '_realpath$DARWIN_EXTSN', _recv, '_recv$NOCANCEL', 
-                       _regcomp, _regcomp_l, _regerror, _regexec, _regfree, _register_printf_domain_function, 
-                       _register_printf_domain_render_std, _regncomp, _regncomp_l, 
-                       _regnexec, _regwcomp, _regwcomp_l, _regwexec, _regwncomp, 
-                       _regwncomp_l, _regwnexec, _remove, _remque, _rewind, _rewinddir, 
-                       '_rewinddir$INODE64', _rindex, _rpmatch, _sbrk, _scandir, 
-                       '_scandir$INODE64', _scandir_b, '_scandir_b$INODE64', _scanf, 
-                       _scanf_l, _seed48, _seekdir, '_seekdir$INODE64', _send, '_send$NOCANCEL', 
-                       _setbuf, _setbuffer, _setenv, _sethostid, _sethostname, _setinvalidrune, 
-                       _setipv4sourcefilter, _setkey, _setlinebuf, _setlocale, _setlogin, 
-                       _setmode, _setpgrp, _setprogname, _setrgid, _setruid, _setrunelocale, 
-                       _setsourcefilter, _setstate, _settimeofday, _setttyent, _setusershell, 
-                       _setutxent, _setutxent_wtmp, _setvbuf, _sigaction, _sigaddset, 
-                       _sigaltstack, _sigblock, _sigdelset, _sigemptyset, _sigfillset, 
-                       _sighold, _sigignore, _siginterrupt, _sigismember, _signal, 
-                       _sigpause, '_sigpause$NOCANCEL', _sigrelse, _sigset, _sigsetmask, 
-                       _sigvec, _skip, _sl_add, _sl_find, _sl_free, _sl_init, _sleep, 
-                       '_sleep$NOCANCEL', _snprintf, _snprintf_l, _snvis, _sockatmark, 
-                       _sprintf, _sprintf_l, _sradixsort, _srand, _srand48, _sranddev, 
-                       _srandom, _srandomdev, _sscanf, _sscanf_l, _statvfs, _statx64_np, 
-                       _statx_np, '_statx_np$INODE64', _stpcpy, _stpncpy, _strcasecmp, 
-                       _strcasecmp_l, _strcasestr, _strcasestr_l, _strcat, _strchr, 
-                       _strcmp, _strcoll, _strcoll_l, _strcpy, _strcspn, _strdup, 
-                       _strenvisx, _strerror, _strerror_r, _strfmon, _strfmon_l, 
-                       _strftime, _strftime_l, _strlcat, _strlcpy, _strlen, _strmode, 
-                       _strncasecmp, _strncasecmp_l, _strncat, _strncmp, _strncpy, 
-                       _strndup, _strnlen, _strnstr, _strnunvis, _strnunvisx, _strnvis, 
-                       _strnvisx, _strpbrk, _strptime, _strptime_l, _strrchr, _strsenvisx, 
-                       _strsep, _strsignal, _strsnvis, _strsnvisx, _strspn, _strstr, 
-                       _strsvis, _strsvisx, _strtod, _strtod_l, _strtof, _strtof_l, 
-                       _strtofflags, _strtoimax, _strtoimax_l, _strtok, _strtok_r, 
-                       _strtol, _strtol_l, _strtold, _strtold_l, _strtoll, _strtoll_l, 
-                       _strtoq, _strtoq_l, _strtoul, _strtoul_l, _strtoull, _strtoull_l, 
-                       _strtoumax, _strtoumax_l, _strtouq, _strtouq_l, _strunvis, 
-                       _strunvisx, _strvis, _strvisx, _strxfrm, _strxfrm_l, _suboptarg, 
-                       _svis, _swab, _swprintf, _swprintf_l, _swscanf, _swscanf_l, 
-                       _sxprintf, _sxprintf_exec, _sync_volume_np, _sys_errlist, 
-                       _sys_nerr, _sys_siglist, _sys_signame, _sysconf, _sysctl, 
-                       _sysctlbyname, _sysctlnametomib, _system, '_system$NOCANCEL', 
-                       _tcdrain, '_tcdrain$NOCANCEL', _tcflow, _tcflush, _tcgetattr, 
-                       _tcgetpgrp, _tcgetsid, _tcsendbreak, _tcsetattr, _tcsetpgrp, 
-                       _tdelete, _telldir, '_telldir$INODE64', _tempnam, _tfind, 
-                       _thread_stack_pcs, _time, _time2posix, _timegm, _timelocal, 
-                       _timeoff, _times, _timespec_get, _timezone, _timingsafe_bcmp, 
-                       _tmpfile, _tmpnam, _toascii, _tolower, _tolower_l, _toupper, 
-                       _toupper_l, _towctrans, _towctrans_l, _towlower, _towlower_l, 
-                       _towupper, _towupper_l, _tre_ast_new_catenation, _tre_ast_new_iter, 
-                       _tre_ast_new_literal, _tre_ast_new_node, _tre_ast_new_union, 
-                       _tre_compile, _tre_fill_pmatch, _tre_free, _tre_mem_alloc_impl, 
-                       _tre_mem_destroy, _tre_mem_new_impl, _tre_parse, _tre_stack_destroy, 
-                       _tre_stack_new, _tre_stack_num_objects, _tre_tnfa_run_backtrack, 
-                       _tre_tnfa_run_parallel, _tsearch, _ttyname, _ttyname_r, _ttyslot, 
-                       _twalk, _tzname, _tzset, _tzsetwall, _ualarm, _ulimit, _umaskx_np, 
-                       _uname, _ungetc, _ungetwc, _ungetwc_l, _unlockpt, _unsetenv, 
-                       _unvis, _uselocale, _usleep, '_usleep$NOCANCEL', _utime, _utmpxname, 
-                       _uuid_clear, _uuid_compare, _uuid_copy, _uuid_generate, _uuid_generate_random, 
-                       _uuid_generate_time, _uuid_is_null, _uuid_pack, _uuid_parse, 
-                       _uuid_unpack, _uuid_unparse, _uuid_unparse_lower, _uuid_unparse_upper, 
-                       _vasprintf, _vasprintf_l, _vasxprintf, _vasxprintf_exec, _vdprintf, 
-                       _vdprintf_l, _vdxprintf, _vdxprintf_exec, _verr, _verrc, _verrx, 
-                       _vfprintf, _vfprintf_l, _vfscanf, _vfscanf_l, _vfwprintf, 
-                       _vfwprintf_l, _vfwscanf, _vfwscanf_l, _vfxprintf, _vfxprintf_exec, 
-                       _vis, _vprintf, _vprintf_l, _vscanf, _vscanf_l, _vsnprintf, 
-                       _vsnprintf_l, _vsprintf, _vsprintf_l, _vsscanf, _vsscanf_l, 
-                       _vswprintf, _vswprintf_l, _vswscanf, _vswscanf_l, _vsxprintf, 
-                       _vsxprintf_exec, _vwarn, _vwarnc, _vwarnx, _vwprintf, _vwprintf_l, 
-                       _vwscanf, _vwscanf_l, _vxprintf, _vxprintf_exec, _wait, '_wait$NOCANCEL', 
-                       _wait3, _waitpid, '_waitpid$NOCANCEL', _warn, _warnc, _warnx, 
-                       _wcpcpy, _wcpncpy, _wcrtomb, _wcrtomb_l, _wcscasecmp, _wcscasecmp_l, 
-                       _wcscat, _wcschr, _wcscmp, _wcscoll, _wcscoll_l, _wcscpy, 
-                       _wcscspn, _wcsdup, _wcsftime, _wcsftime_l, _wcslcat, _wcslcpy, 
-                       _wcslen, _wcsncasecmp, _wcsncasecmp_l, _wcsncat, _wcsncmp, 
-                       _wcsncpy, _wcsnlen, _wcsnrtombs, _wcsnrtombs_l, _wcspbrk, 
-                       _wcsrchr, _wcsrtombs, _wcsrtombs_l, _wcsspn, _wcsstr, _wcstod, 
-                       _wcstod_l, _wcstof, _wcstof_l, _wcstoimax, _wcstoimax_l, _wcstok, 
-                       _wcstol, _wcstol_l, _wcstold, _wcstold_l, _wcstoll, _wcstoll_l, 
-                       _wcstombs, _wcstombs_l, _wcstoul, _wcstoul_l, _wcstoull, _wcstoull_l, 
-                       _wcstoumax, _wcstoumax_l, _wcswidth, _wcswidth_l, _wcsxfrm, 
-                       _wcsxfrm_l, _wctob, _wctob_l, _wctomb, _wctomb_l, _wctrans, 
-                       _wctrans_l, _wctype, _wctype_l, _wcwidth, _wcwidth_l, _wmemchr, 
-                       _wmemcmp, _wmemcpy, _wmemmove, _wmemset, _wordexp, _wordfree, 
-                       _wprintf, _wprintf_l, _wscanf, _wscanf_l, _wtmpxname, _xprintf, 
-                       _xprintf_exec, mcount ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           0EE84C33-64FD-372B-974A-AF7A136F2068
-  - target:          x86_64-maccatalyst
-    value:           0EE84C33-64FD-372B-974A-AF7A136F2068
-install-name:    '/usr/lib/system/libsystem_configuration.dylib'
-current-version: 1061.141.1
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ __dns_configuration_ack, __libSC_info_fork_child, __libSC_info_fork_parent, 
-                       __libSC_info_fork_prepare, __nwi_config_agent_copy_data, __nwi_state_ack, 
-                       __nwi_state_force_refresh, _config_agent_copy_dns_information, 
-                       _config_agent_copy_proxy_information, _config_agent_free_dns_information, 
-                       _config_agent_free_proxy_information, _config_agent_get_dns_nameservers, 
-                       _config_agent_get_dns_searchdomains, _config_agent_update_proxy_information, 
-                       _dns_configuration_copy, _dns_configuration_free, _dns_configuration_notify_key, 
-                       _is_config_agent_type_dns, _is_config_agent_type_proxy, _nwi_ifstate_compare_rank, 
-                       _nwi_ifstate_get_dns_signature, _nwi_ifstate_get_flags, _nwi_ifstate_get_generation, 
-                       _nwi_ifstate_get_ifname, _nwi_ifstate_get_next, _nwi_ifstate_get_reachability_flags, 
-                       _nwi_ifstate_get_signature, _nwi_ifstate_get_vpn_server, _nwi_state_copy, 
-                       _nwi_state_get_first_ifstate, _nwi_state_get_generation, _nwi_state_get_ifstate, 
-                       _nwi_state_get_interface_names, _nwi_state_get_notify_key, 
-                       _nwi_state_get_reachability_flags, _nwi_state_release ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           A199156E-058D-3ABB-BCE9-4B9F20DCED0F
-  - target:          x86_64-maccatalyst
-    value:           A199156E-058D-3ABB-BCE9-4B9F20DCED0F
-install-name:    '/usr/lib/system/libsystem_coreservices.dylib'
-current-version: 114
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _NSGetNextSearchPathEnumeration, _NSStartSearchPathEnumeration, 
-                       _NSStartSearchPathEnumerationPrivate, ___user_local_dirname, 
-                       ___user_relative_dirname, __append_relative_path_component, 
-                       __dirhelper, __dirhelper_relative, __get_user_dir_suffix, 
-                       __libcoreservices_fork_child, __set_user_dir_suffix, _sysdir_get_next_search_path_enumeration, 
-                       _sysdir_start_search_path_enumeration, _sysdir_start_search_path_enumeration_private ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           5B12B5DB-3F30-37C1-8ECC-49A66B1F2864
-  - target:          x86_64-maccatalyst
-    value:           5B12B5DB-3F30-37C1-8ECC-49A66B1F2864
-install-name:    '/usr/lib/system/libsystem_darwin.dylib'
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ ___libdarwin_init, ___os_temporary_resource_shortage, _claimfd_np, 
-                       _close_drop_np, _close_drop_optional_np, _crfprintf_np, _dirstat_np, 
-                       _dirstatat_np, _dup_np, _err_np, _errc_np, _fcheck_np, _memdup2_np, 
-                       _memdup_np, _os_assert_mach, _os_assert_mach_port_status, 
-                       _os_crash_get_reporter_port_array, _os_crash_port_array_deallocate, 
-                       _os_crash_set_reporter_port, _os_crash_spawnattr_set_reporter_port, 
-                       _os_flagset_copy_string, _os_localtime_file, _os_mach_msg_copy_description, 
-                       _os_mach_msg_get_audit_trailer, _os_mach_msg_get_context_trailer, 
-                       _os_mach_msg_get_trailer, _os_mach_msg_trailer_copy_description, 
-                       _os_mach_port_copy_description, _os_parse_boot_arg_int, _os_parse_boot_arg_string, 
-                       _os_simple_hash, _os_simple_hash_string, _os_simple_hash_string_with_seed, 
-                       _os_simple_hash_with_seed, _os_subcommand_fprintf, _os_subcommand_main, 
-                       _os_subcommand_vfprintf, _os_variant_allows_internal_security_policies, 
-                       _os_variant_check, _os_variant_has_factory_content, _os_variant_has_internal_content, 
-                       _os_variant_has_internal_diagnostics, _os_variant_has_internal_ui, 
-                       _os_variant_is_darwinos, _os_variant_is_recovery, _os_variant_uses_ephemeral_storage, 
-                       _realpath_np, _strerror_np, _strexit_np, _symerror_np, _symexit_np, 
-                       _sysctl_get_data_np, _sysctlbyname_get_data_np, _sysexit_np, 
-                       _vcrfprintf_np, _verr_np, _verrc_np, _vwarn_np, _vwfprintf_np, 
-                       _warn_np, _wfprintf_np, _xferfd_np, _zsnprintf_np ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           EBB4C2C2-E031-3094-B40A-E67BF261D295
-  - target:          x86_64-maccatalyst
-    value:           EBB4C2C2-E031-3094-B40A-E67BF261D295
-install-name:    '/usr/lib/system/libsystem_dnssd.dylib'
-current-version: 1096.100.3
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _DNSServiceAddRecord, _DNSServiceBrowse, _DNSServiceBrowserCreate, 
-                       _DNSServiceConstructFullName, _DNSServiceCreateConnection, 
-                       _DNSServiceCreateDelegateConnection, _DNSServiceDiscoveryDeallocate, 
-                       _DNSServiceDiscoveryMachPort, _DNSServiceDiscovery_handleReply, 
-                       _DNSServiceEnumerateDomains, _DNSServiceGetAddrInfo, _DNSServiceGetPID, 
-                       _DNSServiceGetProperty, _DNSServiceNATPortMappingCreate, _DNSServiceProcessResult, 
-                       _DNSServiceQueryRecord, _DNSServiceReconfirmRecord, _DNSServiceRefDeallocate, 
-                       _DNSServiceRefSockFD, _DNSServiceRegister, _DNSServiceRegisterRecord, 
-                       _DNSServiceRemoveRecord, _DNSServiceResolve, _DNSServiceResolverResolve, 
-                       _DNSServiceSetDefaultDomainForUser, _DNSServiceSetDispatchQueue, 
-                       _DNSServiceSleepKeepalive, _DNSServiceSleepKeepalive_sockaddr, 
-                       _DNSServiceUpdateRecord, _PeerConnectionRelease, _TXTRecordContainsKey, 
-                       _TXTRecordCreate, _TXTRecordDeallocate, _TXTRecordGetBytesPtr, 
-                       _TXTRecordGetCount, _TXTRecordGetItemAtIndex, _TXTRecordGetLength, 
-                       _TXTRecordGetValuePtr, _TXTRecordRemoveValue, _TXTRecordSetValue ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           29FD922A-EC2C-3F25-BCCC-B58D716E60EC
-  - target:          x86_64-maccatalyst
-    value:           29FD922A-EC2C-3F25-BCCC-B58D716E60EC
-install-name:    '/usr/lib/system/libsystem_featureflags.dylib'
-current-version: 17
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ __os_feature_enabled_impl ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           8A321605-5480-330B-AF9E-64E65DE61747
-  - target:          x86_64-maccatalyst
-    value:           8A321605-5480-330B-AF9E-64E65DE61747
-install-name:    '/usr/lib/system/libsystem_info.dylib'
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _LI_get_thread_item, _LI_get_thread_list, _LI_ils_create, 
-                       _LI_set_thread_item, _LI_set_thread_list, ___dn_skipname, 
-                       __authenticate, __ds_running, __gai_nat64_can_v4_address_be_synthesized, 
-                       __gai_serv_to_port, __gai_simple, __getaddrinfo_interface_async_call, 
-                       __getlong, __getnameinfo_interface_async_call, __getshort, 
-                       __null_auth, __res, __seterr_reply, __si_disable_opendirectory, 
-                       __yp_dobind, _alias_endent, _alias_getbyname, _alias_getent, 
-                       _alias_setent, _authnone_create, _authunix_create, _authunix_create_default, 
-                       _bindresvport, _bindresvport_sa, _bootparams_endent, _bootparams_getbyname, 
-                       _bootparams_getent, _bootparams_setent, _clnt_broadcast, _clnt_create, 
-                       _clnt_pcreateerror, _clnt_perrno, _clnt_perror, _clnt_spcreateerror, 
-                       _clnt_sperrno, _clnt_sperror, _clntraw_create, _clnttcp_create, 
-                       _clntudp_bufcreate, _clntudp_create, _configuration_profile_copy_property_list, 
-                       _configuration_profile_create_notification_key, _dn_expand, 
-                       _endfsent, _endgrent, _endhostent, _endnetent, _endnetgrent, 
-                       _endprotoent, _endpwent, _endrpcent, _endservent, _ether_aton, 
-                       _ether_hostton, _ether_line, _ether_ntoa, _ether_ntohost, 
-                       _freeaddrinfo, _freehostent, _freeifaddrs, _freeifmaddrs, 
-                       _gL1CacheEnabled, _gai_strerror, _getaddrinfo, _getaddrinfo_async_cancel, 
-                       _getaddrinfo_async_handle_reply, _getaddrinfo_async_receive, 
-                       _getaddrinfo_async_send, _getaddrinfo_async_start, _getdomainname, 
-                       _getfsent, _getfsfile, _getfsspec, _getgrent, _getgrgid, _getgrgid_r, 
-                       _getgrnam, _getgrnam_r, _getgroupcount, _getgrouplist, _getgrouplist_2, 
-                       _getgruuid, _getgruuid_r, _gethostbyaddr, _gethostbyaddr_async_cancel, 
-                       _gethostbyaddr_async_handleReply, _gethostbyaddr_async_start, 
-                       _gethostbyname, _gethostbyname2, _gethostbyname_async_cancel, 
-                       _gethostbyname_async_handleReply, _gethostbyname_async_start, 
-                       _gethostent, _getifaddrs, _getifmaddrs, _getipnodebyaddr, 
-                       _getipnodebyname, _getnameinfo, _getnameinfo_async_cancel, 
-                       _getnameinfo_async_handle_reply, _getnameinfo_async_send, 
-                       _getnameinfo_async_start, _getnetbyaddr, _getnetbyname, _getnetent, 
-                       _getnetgrent, _getprotobyname, _getprotobynumber, _getprotoent, 
-                       _getpwent, _getpwnam, _getpwnam_r, _getpwuid, _getpwuid_r, 
-                       _getpwuuid, _getpwuuid_r, _getrpcbyname, _getrpcbynumber, 
-                       _getrpcent, _getrpcport, _getservbyname, _getservbyport, _getservent, 
-                       _group_from_gid, _h_errno, _herror, _hstrerror, _htonl, _htons, 
-                       _if_freenameindex, _if_indextoname, _if_nameindex, _if_nametoindex, 
-                       _in6addr_any, _in6addr_linklocal_allnodes, _in6addr_linklocal_allrouters, 
-                       _in6addr_linklocal_allv2routers, _in6addr_loopback, _in6addr_nodelocal_allnodes, 
-                       _inet6_opt_append, _inet6_opt_find, _inet6_opt_finish, _inet6_opt_get_val, 
-                       _inet6_opt_init, _inet6_opt_next, _inet6_opt_set_val, _inet6_option_alloc, 
-                       _inet6_option_append, _inet6_option_find, _inet6_option_init, 
-                       _inet6_option_next, _inet6_option_space, _inet6_rth_add, _inet6_rth_getaddr, 
-                       _inet6_rth_init, _inet6_rth_reverse, _inet6_rth_segments, 
-                       _inet6_rth_space, _inet6_rthdr_add, _inet6_rthdr_getaddr, 
-                       _inet6_rthdr_getflags, _inet6_rthdr_init, _inet6_rthdr_lasthop, 
-                       _inet6_rthdr_segments, _inet6_rthdr_space, _initgroups, _innetgr, 
-                       _iruserok, _iruserok_sa, _kvarray_free, _kvbuf_add_dict, _kvbuf_add_key, 
-                       _kvbuf_add_val, _kvbuf_add_val_len, _kvbuf_append_kvbuf, _kvbuf_decode, 
-                       _kvbuf_free, _kvbuf_get_len, _kvbuf_init, _kvbuf_init_zone, 
-                       _kvbuf_make_nonpurgeable, _kvbuf_make_purgeable, _kvbuf_new, 
-                       _kvbuf_new_zone, _kvbuf_next_dict, _kvbuf_next_key, _kvbuf_next_val, 
-                       _kvbuf_next_val_len, _kvbuf_query, _kvbuf_query_key_int, _kvbuf_query_key_uint, 
-                       _kvbuf_query_key_val, _kvbuf_reset, _mbr_check_membership, 
-                       _mbr_check_membership_by_id, _mbr_check_membership_ext, _mbr_check_membership_refresh, 
-                       _mbr_check_service_membership, _mbr_gid_to_uuid, _mbr_group_name_to_uuid, 
-                       _mbr_identifier_to_uuid, _mbr_identifier_translate, _mbr_reset_cache, 
-                       _mbr_set_identifier_ttl, _mbr_sid_to_string, _mbr_sid_to_uuid, 
-                       _mbr_string_to_sid, _mbr_string_to_uuid, _mbr_uid_to_uuid, 
-                       _mbr_user_name_to_uuid, _mbr_uuid_to_id, _mbr_uuid_to_sid, 
-                       _mbr_uuid_to_sid_type, _mbr_uuid_to_string, _ntohl, _ntohs, 
-                       _pmap_getmaps, _pmap_getport, _pmap_rmtcall, _pmap_set, _pmap_unset, 
-                       _prdb_end, _prdb_get, _prdb_getbyname, _prdb_set, _rcmd, _rcmd_af, 
-                       _res_init, _res_query, _res_search, _rpc_createerr, _rresvport, 
-                       _rresvport_af, _ruserok, _setdomainname, _setfsent, _setgrent, 
-                       _setgroupent, _sethostent, _setnetent, _setnetgrent, _setpassent, 
-                       _setprotoent, _setpwent, _setrpcent, _setservent, _si_addrinfo, 
-                       _si_addrinfo_list, _si_addrinfo_list_from_hostent, _si_addrinfo_v4, 
-                       _si_addrinfo_v4_mapped, _si_addrinfo_v6, _si_alias_all, _si_alias_byname, 
-                       _si_async_call, _si_async_cancel, _si_async_handle_reply, 
-                       _si_destination_compare, _si_destination_compare_no_dependencies, 
-                       _si_fs_all, _si_fs_byfile, _si_fs_byspec, _si_group_all, _si_group_bygid, 
-                       _si_group_byname, _si_group_byuuid, _si_grouplist, _si_host_all, 
-                       _si_host_byaddr, _si_host_byname, _si_in_netgroup, _si_ipnode_byname, 
-                       _si_item_call, _si_item_is_valid, _si_item_match, _si_item_release, 
-                       _si_item_retain, _si_list_add, _si_list_call, _si_list_concat, 
-                       _si_list_next, _si_list_release, _si_list_reset, _si_list_retain, 
-                       _si_mac_all, _si_mac_bymac, _si_mac_byname, _si_module_name, 
-                       _si_module_release, _si_module_retain, _si_module_vers, _si_module_with_name, 
-                       _si_nameinfo, _si_netgroup_byname, _si_network_all, _si_network_byaddr, 
-                       _si_network_byname, _si_protocol_all, _si_protocol_byname, 
-                       _si_protocol_bynumber, _si_rpc_all, _si_rpc_byname, _si_rpc_bynumber, 
-                       _si_search, _si_search_module_set_flags, _si_service_all, 
-                       _si_service_byname, _si_service_byport, _si_set_nat64_v4_requires_synthesis, 
-                       _si_set_nat64_v4_synthesize, _si_srv_byname, _si_standardize_mac_address, 
-                       _si_user_all, _si_user_byname, _si_user_byuid, _si_user_byuuid, 
-                       _si_wants_addrinfo, _svc_fdset, _svc_getreq, _svc_getreqset, 
-                       _svc_register, _svc_run, _svc_sendreply, _svc_unregister, 
-                       _svcerr_auth, _svcerr_decode, _svcerr_noproc, _svcerr_noprog, 
-                       _svcerr_progvers, _svcerr_systemerr, _svcerr_weakauth, _svcfd_create, 
-                       _svcraw_create, _svctcp_create, _svcudp_bufcreate, _svcudp_create, 
-                       _user_from_uid, _xdr_array, _xdr_authunix_parms, _xdr_bool, 
-                       _xdr_bytes, _xdr_callhdr, _xdr_callmsg, _xdr_char, _xdr_des_block, 
-                       _xdr_domainname, _xdr_double, _xdr_enum, _xdr_float, _xdr_free, 
-                       _xdr_hyper, _xdr_int, _xdr_int16_t, _xdr_int32_t, _xdr_int64_t, 
-                       _xdr_keydat, _xdr_long, _xdr_longlong_t, _xdr_mapname, _xdr_netobj, 
-                       _xdr_opaque, _xdr_peername, _xdr_pmap, _xdr_pmaplist, _xdr_pointer, 
-                       _xdr_reference, _xdr_replymsg, _xdr_rmtcall_args, _xdr_rmtcallres, 
-                       _xdr_short, _xdr_string, _xdr_u_char, _xdr_u_hyper, _xdr_u_int, 
-                       _xdr_u_int16_t, _xdr_u_int32_t, _xdr_u_int64_t, _xdr_u_long, 
-                       _xdr_u_longlong_t, _xdr_u_short, _xdr_union, _xdr_valdat, 
-                       _xdr_vector, _xdr_void, _xdr_wrapstring, _xdr_x_passwd, _xdr_ypbind_binding, 
-                       _xdr_ypbind_resp, _xdr_ypbind_resptype, _xdr_ypbind_setdom, 
-                       _xdr_ypmaplist, _xdr_yppasswd, _xdr_ypreq_key, _xdr_ypreq_nokey, 
-                       _xdr_ypresp_all, _xdr_ypresp_all_seq, _xdr_ypresp_key_val, 
-                       _xdr_ypresp_maplist, _xdr_ypresp_master, _xdr_ypresp_order, 
-                       _xdr_ypresp_val, _xdr_ypstat, _xdrmem_create, _xdrrec_create, 
-                       _xdrrec_endofrecord, _xdrrec_eof, _xdrrec_skiprecord, _xdrstdio_create, 
-                       _xprt_register, _xprt_unregister, _yp_all, _yp_bind, _yp_first, 
-                       _yp_get_default_domain, _yp_maplist, _yp_master, _yp_match, 
-                       _yp_next, _yp_order, _yp_unbind, _yperr_string, _ypprot_err ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           2B6311E6-6240-3EF7-8C87-475B66F7452C
-  - target:          x86_64-maccatalyst
-    value:           2B6311E6-6240-3EF7-8C87-475B66F7452C
-install-name:    '/usr/lib/system/libsystem_kernel.dylib'
-current-version: 6153.141.1
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _NDR_record, _____old_semwait_signal_nocancel, _____sigwait_nocancel, 
-                       ____kernelVersionNumber, ____kernelVersionString, ___abort_with_payload, 
-                       ___accept, ___accept_nocancel, ___access_extended, ___aio_suspend_nocancel, 
-                       ___bind, ___bsdthread_create, ___bsdthread_ctl, ___bsdthread_register, 
-                       ___bsdthread_terminate, ___carbon_delete, ___channel_get_info, 
-                       ___channel_get_opt, ___channel_open, ___channel_set_opt, ___channel_sync, 
-                       ___chmod, ___chmod_extended, ___close_nocancel, ___coalition, 
-                       ___coalition_info, ___coalition_ledger, ___commpage_gettimeofday, 
-                       ___connect, ___connect_nocancel, ___copyfile, ___csrctl, ___darwin_check_fd_set_overflow, 
-                       ___delete, ___disable_threadsignal, ___error, ___exit, ___fchmod, 
-                       ___fchmod_extended, ___fcntl, ___fcntl_nocancel, ___fork, 
-                       ___fs_snapshot, ___fstat64_extended, ___fstat_extended, ___fsync_nocancel, 
-                       ___get_remove_counter, ___getattrlist, ___getdirentries64, 
-                       ___gethostuuid, ___getlogin, ___getpeername, ___getpid, ___getrlimit, 
-                       ___getsgroups, ___getsockname, ___gettid, ___gettimeofday, 
-                       ___getwgroups, ___guarded_open_dprotected_np, ___guarded_open_np, 
-                       ___identitysvc, ___inc_remove_counter, ___initgroups, ___ioctl, 
-                       ___iopolicysys, ___kdebug_trace, ___kdebug_trace64, ___kdebug_trace_string, 
-                       ___kdebug_typefilter, ___kill, ___kqueue_workloop_ctl, ___lchown, 
-                       ___libkernel_init, ___libkernel_platform_init, ___libkernel_voucher_init, 
-                       ___listen, ___log_data, ___lseek, ___lstat64_extended, ___lstat_extended, 
-                       ___mac_execve, ___mac_get_fd, ___mac_get_file, ___mac_get_link, 
-                       ___mac_get_mount, ___mac_get_pid, ___mac_get_proc, ___mac_getfsstat, 
-                       ___mac_mount, ___mac_set_fd, ___mac_set_file, ___mac_set_link, 
-                       ___mac_set_proc, ___mac_syscall, ___mach_bridge_remote_time, 
-                       ___memorystatus_available_memory, ___microstackshot, ___mkdir_extended, 
-                       ___mkfifo_extended, ___mmap, ___mprotect, ___msgctl, ___msgrcv_nocancel, 
-                       ___msgsnd_nocancel, ___msgsys, ___msync, ___msync_nocancel, 
-                       ___munmap, ___nexus_create, ___nexus_deregister, ___nexus_destroy, 
-                       ___nexus_get_opt, ___nexus_open, ___nexus_register, ___nexus_set_opt, 
-                       ___old_semwait_signal, ___open, ___open_dprotected_np, ___open_extended, 
-                       ___open_nocancel, ___openat, ___openat_nocancel, ___os_nexus_flow_add, 
-                       ___os_nexus_flow_del, ___os_nexus_ifattach, ___os_nexus_ifdetach, 
-                       ___persona, ___pipe, ___poll_nocancel, ___posix_spawn, ___pread_nocancel, 
-                       ___proc_info, ___process_policy, ___pselect, ___pselect_nocancel, 
-                       ___psynch_cvbroad, ___psynch_cvclrprepost, ___psynch_cvsignal, 
-                       ___psynch_cvwait, ___psynch_mutexdrop, ___psynch_mutexwait, 
-                       ___psynch_rw_downgrade, ___psynch_rw_longrdlock, ___psynch_rw_rdlock, 
-                       ___psynch_rw_unlock, ___psynch_rw_unlock2, ___psynch_rw_upgrade, 
-                       ___psynch_rw_wrlock, ___psynch_rw_yieldwrlock, ___pthread_canceled, 
-                       ___pthread_chdir, ___pthread_fchdir, ___pthread_kill, ___pthread_markcancel, 
-                       ___pthread_sigmask, ___ptrace, ___pwrite_nocancel, ___read_nocancel, 
-                       ___readv_nocancel, ___reboot, ___recvfrom, ___recvfrom_nocancel, 
-                       ___recvmsg, ___recvmsg_nocancel, ___rename, ___renameat, ___renameatx_np, 
-                       ___rmdir, ___sandbox_me, ___sandbox_mm, ___sandbox_ms, ___sandbox_msp, 
-                       ___select, ___select_nocancel, ___sem_open, ___sem_wait_nocancel, 
-                       ___semctl, ___semsys, ___semwait_signal, ___semwait_signal_nocancel, 
-                       ___sendmsg, ___sendmsg_nocancel, ___sendto, ___sendto_nocancel, 
-                       ___setattrlist, ___setlogin, ___setpriority, ___setregid, 
-                       ___setreuid, ___setrlimit, ___setsgroups, ___settid, ___settid_with_pid, 
-                       ___settimeofday, ___setwgroups, ___sfi_ctl, ___sfi_pidctl, 
-                       ___shared_region_check_np, ___shared_region_map_and_slide_np, 
-                       ___shm_open, ___shmctl, ___shmsys, ___sigaction, ___sigaltstack, 
-                       ___sigreturn, ___sigsuspend, ___sigsuspend_nocancel, ___sigwait, 
-                       ___socketpair, ___stack_snapshot_with_config, ___stat64_extended, 
-                       ___stat_extended, ___syscall, ___syscall_logger, ___sysctl, 
-                       ___sysctlbyname, ___telemetry, ___terminate_with_payload, 
-                       ___thread_selfid, ___thread_selfusage, ___ulock_wait, ___ulock_wake, 
-                       ___umask_extended, ___unlink, ___unlinkat, ___vfork, ___wait4, 
-                       ___wait4_nocancel, ___waitid_nocancel, ___work_interval_ctl, 
-                       ___workq_kernreturn, ___workq_open, ___write_nocancel, ___writev_nocancel, 
-                       __cpu_capabilities, __cpu_has_altivec, __exit, __get_cpu_capabilities, 
-                       __getprivatesystemidentifier, __host_page_size, __init_cpu_capabilities, 
-                       __kernelrpc_host_create_mach_voucher, __kernelrpc_mach_port_allocate, 
-                       __kernelrpc_mach_port_allocate_full, __kernelrpc_mach_port_allocate_name, 
-                       __kernelrpc_mach_port_allocate_qos, __kernelrpc_mach_port_allocate_trap, 
-                       __kernelrpc_mach_port_construct, __kernelrpc_mach_port_construct_trap, 
-                       __kernelrpc_mach_port_deallocate, __kernelrpc_mach_port_deallocate_trap, 
-                       __kernelrpc_mach_port_destroy, __kernelrpc_mach_port_destroy_trap, 
-                       __kernelrpc_mach_port_destruct, __kernelrpc_mach_port_destruct_trap, 
-                       __kernelrpc_mach_port_dnrequest_info, __kernelrpc_mach_port_extract_member, 
-                       __kernelrpc_mach_port_extract_member_trap, __kernelrpc_mach_port_extract_right, 
-                       __kernelrpc_mach_port_get_attributes, __kernelrpc_mach_port_get_attributes_trap, 
-                       __kernelrpc_mach_port_get_context, __kernelrpc_mach_port_get_refs, 
-                       __kernelrpc_mach_port_get_set_status, __kernelrpc_mach_port_get_srights, 
-                       __kernelrpc_mach_port_guard, __kernelrpc_mach_port_guard_trap, 
-                       __kernelrpc_mach_port_guard_with_flags, __kernelrpc_mach_port_insert_member, 
-                       __kernelrpc_mach_port_insert_member_trap, __kernelrpc_mach_port_insert_right, 
-                       __kernelrpc_mach_port_insert_right_trap, __kernelrpc_mach_port_kernel_object, 
-                       __kernelrpc_mach_port_kobject, __kernelrpc_mach_port_kobject_description, 
-                       __kernelrpc_mach_port_mod_refs, __kernelrpc_mach_port_mod_refs_trap, 
-                       __kernelrpc_mach_port_move_member, __kernelrpc_mach_port_move_member_trap, 
-                       __kernelrpc_mach_port_names, __kernelrpc_mach_port_peek, __kernelrpc_mach_port_rename, 
-                       __kernelrpc_mach_port_request_notification, __kernelrpc_mach_port_request_notification_trap, 
-                       __kernelrpc_mach_port_set_attributes, __kernelrpc_mach_port_set_context, 
-                       __kernelrpc_mach_port_set_mscount, __kernelrpc_mach_port_set_seqno, 
-                       __kernelrpc_mach_port_space_basic_info, __kernelrpc_mach_port_space_info, 
-                       __kernelrpc_mach_port_special_reply_port_reset_link, __kernelrpc_mach_port_swap_guard, 
-                       __kernelrpc_mach_port_type, __kernelrpc_mach_port_type_trap, 
-                       __kernelrpc_mach_port_unguard, __kernelrpc_mach_port_unguard_trap, 
-                       __kernelrpc_mach_vm_allocate, __kernelrpc_mach_vm_allocate_trap, 
-                       __kernelrpc_mach_vm_deallocate, __kernelrpc_mach_vm_deallocate_trap, 
-                       __kernelrpc_mach_vm_map, __kernelrpc_mach_vm_map_trap, __kernelrpc_mach_vm_protect, 
-                       __kernelrpc_mach_vm_protect_trap, __kernelrpc_mach_vm_purgable_control, 
-                       __kernelrpc_mach_vm_purgable_control_trap, __kernelrpc_mach_vm_read, 
-                       __kernelrpc_mach_vm_remap, __kernelrpc_mach_voucher_extract_attr_recipe, 
-                       __kernelrpc_task_set_port_space, __kernelrpc_thread_policy, 
-                       __kernelrpc_thread_policy_set, __kernelrpc_thread_set_policy, 
-                       __kernelrpc_vm_map, __kernelrpc_vm_purgable_control, __kernelrpc_vm_read, 
-                       __kernelrpc_vm_remap, __mach_errors, __mach_fork_child, __mach_snprintf, 
-                       __mach_vsnprintf, __os_alloc_once_table, __os_xbs_chrooted, 
-                       __register_gethostuuid_callback, __thread_set_tsd_base, _abort_with_payload, 
-                       _abort_with_reason, _accept, '_accept$NOCANCEL', _access, 
-                       _accessx_np, _acct, _act_get_state, _act_set_state, _adjtime, 
-                       _aio_cancel, _aio_error, _aio_fsync, _aio_read, _aio_return, 
-                       _aio_suspend, '_aio_suspend$NOCANCEL', _aio_write, _audit, 
-                       _audit_session_join, _audit_session_port, _audit_session_self, 
-                       _auditctl, _auditon, _bind, _bootstrap_port, _cerror, _cerror_nocancel, 
-                       _change_fdguard_np, _chdir, _chflags, _chmod, _chown, _chroot, 
-                       _clock_alarm, _clock_alarm_reply, _clock_get_attributes, _clock_get_time, 
-                       _clock_set_attributes, _clock_set_time, _clock_sleep, _clock_sleep_trap, 
-                       _clonefile, _clonefileat, _close, '_close$NOCANCEL', _coalition_create, 
-                       _coalition_info_resource_usage, _coalition_info_set_efficiency, 
-                       _coalition_info_set_name, _coalition_ledger_set_logical_writes_limit, 
-                       _coalition_reap, _coalition_terminate, _connect, '_connect$NOCANCEL', 
-                       _connectx, _csops, _csops_audittoken, _csr_check, _csr_get_active_config, 
-                       _debug_control_port_for_pid, _denap_boost_assertion_token, 
-                       _disconnectx, _dup, _dup2, _errno, _etap_trace_thread, _exc_server, 
-                       _exc_server_routine, _exception_raise, _exception_raise_state, 
-                       _exception_raise_state_identity, _exchangedata, _execve, _faccessat, 
-                       _fchdir, _fchflags, _fchmod, _fchmodat, _fchown, _fchownat, 
-                       _fclonefileat, _fcntl, '_fcntl$NOCANCEL', _fdatasync, _ffsctl, 
-                       _fgetattrlist, _fgetxattr, _fhopen, _fileport_makefd, _fileport_makeport, 
-                       _flistxattr, _flock, _fmount, _fpathconf, _fremovexattr, _fs_snapshot_create, 
-                       _fs_snapshot_delete, _fs_snapshot_list, _fs_snapshot_mount, 
-                       _fs_snapshot_rename, _fs_snapshot_revert, _fs_snapshot_root, 
-                       _fsctl, _fsetattrlist, _fsetxattr, _fsgetpath, _fsgetpath_ext, 
-                       _fstat, '_fstat$INODE64', _fstat64, _fstatat, '_fstatat$INODE64', 
-                       _fstatat64, _fstatfs, '_fstatfs$INODE64', _fstatfs64, _fsync, 
-                       '_fsync$NOCANCEL', _ftruncate, _futimens, _futimes, _getattrlist, 
-                       _getattrlistat, _getattrlistbulk, _getaudit, _getaudit_addr, 
-                       _getauid, _getdirentries, _getdirentriesattr, _getdtablesize, 
-                       _getegid, _getentropy, _geteuid, _getfh, _getfsstat, '_getfsstat$INODE64', 
-                       _getfsstat64, _getgid, _getgroups, _gethostuuid, _getiopolicy_np, 
-                       _getitimer, _getpeername, _getpgid, _getpgrp, _getpid, _getppid, 
-                       _getpriority, _getrlimit, _getrusage, _getsgroups_np, _getsid, 
-                       _getsockname, _getsockopt, _getuid, _getwgroups_np, _getxattr, 
-                       _grab_pgo_data, _guarded_close_np, _guarded_kqueue_np, _guarded_open_dprotected_np, 
-                       _guarded_open_np, _guarded_pwrite_np, _guarded_write_np, _guarded_writev_np, 
-                       _host_check_multiuser_mode, _host_create_mach_voucher, _host_create_mach_voucher_trap, 
-                       _host_default_memory_manager, _host_get_UNDServer, _host_get_atm_diagnostic_flag, 
-                       _host_get_boot_info, _host_get_clock_control, _host_get_clock_service, 
-                       _host_get_exception_ports, _host_get_io_master, _host_get_multiuser_config_flags, 
-                       _host_get_special_port, _host_info, _host_kernel_version, 
-                       _host_lockgroup_info, _host_page_size, _host_priv_statistics, 
-                       _host_processor_info, _host_processor_set_priv, _host_processor_sets, 
-                       _host_processors, _host_reboot, _host_register_mach_voucher_attr_manager, 
-                       _host_register_well_known_mach_voucher_attr_manager, _host_request_notification, 
-                       _host_security_create_task_token, _host_security_set_task_token, 
-                       _host_self, _host_self_trap, _host_set_UNDServer, _host_set_atm_diagnostic_flag, 
-                       _host_set_exception_ports, _host_set_multiuser_config_flags, 
-                       _host_set_special_port, _host_statistics, _host_statistics64, 
-                       _host_swap_exception_ports, _host_virtual_physical_table_info, 
-                       _i386_get_ldt, _i386_set_ldt, _important_boost_assertion_token, 
-                       _internal_catch_exc_subsystem, _ioctl, _issetugid, _kas_info, 
-                       _kdebug_is_enabled, _kdebug_signpost, _kdebug_signpost_end, 
-                       _kdebug_signpost_start, _kdebug_trace, _kdebug_trace_string, 
-                       _kdebug_typefilter, _kdebug_using_continuous_time, _kevent, 
-                       _kevent64, _kevent_id, _kevent_qos, _kext_request, _kill, 
-                       _kmod_control, _kmod_create, _kmod_destroy, _kmod_get_info, 
-                       _kpersona_alloc, _kpersona_dealloc, _kpersona_find, _kpersona_find_by_type, 
-                       _kpersona_get, _kpersona_getpath, _kpersona_info, _kpersona_palloc, 
-                       _kpersona_pidinfo, _kqueue, _lchown, _ledger, _link, _linkat, 
-                       _lio_listio, _listen, _listxattr, _lock_acquire, _lock_handoff, 
-                       _lock_handoff_accept, _lock_make_stable, _lock_release, _lock_set_create, 
-                       _lock_set_destroy, _lock_try, _log_data_as_kernel, _lseek, 
-                       _lstat, '_lstat$INODE64', _lstat64, _mach_absolute_time, _mach_approximate_time, 
-                       _mach_boottime_usec, _mach_continuous_approximate_time, _mach_continuous_time, 
-                       _mach_error, _mach_error_full_diag, _mach_error_string, _mach_error_type, 
-                       _mach_generate_activity_id, _mach_get_times, _mach_host_self, 
-                       _mach_host_special_port_description, _mach_host_special_port_for_id, 
-                       _mach_init, _mach_make_memory_entry, _mach_make_memory_entry_64, 
-                       _mach_memory_entry_access_tracking, _mach_memory_entry_ownership, 
-                       _mach_memory_entry_purgable_control, _mach_memory_info, _mach_memory_object_memory_entry, 
-                       _mach_memory_object_memory_entry_64, _mach_msg, _mach_msg_destroy, 
-                       _mach_msg_overwrite, _mach_msg_overwrite_trap, _mach_msg_receive, 
-                       _mach_msg_send, _mach_msg_server, _mach_msg_server_importance, 
-                       _mach_msg_server_once, _mach_msg_trap, _mach_notify_dead_name, 
-                       _mach_notify_no_senders, _mach_notify_port_deleted, _mach_notify_port_destroyed, 
-                       _mach_notify_send_once, _mach_port_allocate, _mach_port_allocate_full, 
-                       _mach_port_allocate_name, _mach_port_allocate_qos, _mach_port_construct, 
-                       _mach_port_deallocate, _mach_port_destroy, _mach_port_destruct, 
-                       _mach_port_dnrequest_info, _mach_port_extract_member, _mach_port_extract_right, 
-                       _mach_port_get_attributes, _mach_port_get_context, _mach_port_get_refs, 
-                       _mach_port_get_set_status, _mach_port_get_srights, _mach_port_guard, 
-                       _mach_port_guard_with_flags, _mach_port_insert_member, _mach_port_insert_right, 
-                       _mach_port_kernel_object, _mach_port_kobject, _mach_port_kobject_description, 
-                       _mach_port_mod_refs, _mach_port_move_member, _mach_port_names, 
-                       _mach_port_peek, _mach_port_rename, _mach_port_request_notification, 
-                       _mach_port_set_attributes, _mach_port_set_context, _mach_port_set_mscount, 
-                       _mach_port_set_seqno, _mach_port_space_basic_info, _mach_port_space_info, 
-                       _mach_port_swap_guard, _mach_port_type, _mach_port_unguard, 
-                       _mach_ports_lookup, _mach_ports_register, _mach_reply_port, 
-                       _mach_right_recv_construct, _mach_right_recv_destruct, _mach_right_send_create, 
-                       _mach_right_send_once_consume, _mach_right_send_once_create, 
-                       _mach_right_send_release, _mach_right_send_retain, _mach_sync_ipc_link_monitoring_start, 
-                       _mach_sync_ipc_link_monitoring_stop, _mach_task_self, _mach_task_self_, 
-                       _mach_task_special_port_description, _mach_task_special_port_for_id, 
-                       _mach_thread_self, _mach_timebase_info, _mach_timebase_info_trap, 
-                       _mach_vm_allocate, _mach_vm_behavior_set, _mach_vm_copy, _mach_vm_deallocate, 
-                       _mach_vm_inherit, _mach_vm_machine_attribute, _mach_vm_map, 
-                       _mach_vm_msync, _mach_vm_page_info, _mach_vm_page_query, _mach_vm_page_range_query, 
-                       _mach_vm_protect, _mach_vm_purgable_control, _mach_vm_read, 
-                       _mach_vm_read_list, _mach_vm_read_overwrite, _mach_vm_region, 
-                       _mach_vm_region_recurse, _mach_vm_remap, _mach_vm_wire, _mach_vm_write, 
-                       _mach_voucher_attr_command, _mach_voucher_deallocate, _mach_voucher_debug_info, 
-                       _mach_voucher_extract_all_attr_recipes, _mach_voucher_extract_attr_content, 
-                       _mach_voucher_extract_attr_recipe, _mach_voucher_extract_attr_recipe_trap, 
-                       _mach_wait_until, _mach_zone_force_gc, _mach_zone_get_btlog_records, 
-                       _mach_zone_get_zlog_zones, _mach_zone_info, _mach_zone_info_for_largest_zone, 
-                       _mach_zone_info_for_zone, _macx_backing_store_recovery, _macx_backing_store_suspend, 
-                       _macx_swapoff, _macx_swapon, _macx_triggers, _madvise, _memorystatus_control, 
-                       _memorystatus_get_level, _mig_allocate, _mig_dealloc_reply_port, 
-                       _mig_dealloc_special_reply_port, _mig_deallocate, _mig_get_reply_port, 
-                       _mig_get_special_reply_port, _mig_put_reply_port, _mig_reply_setup, 
-                       _mig_strncpy, _mig_strncpy_zerofill, _mincore, _minherit, 
-                       _mk_timer_arm, _mk_timer_arm_leeway, _mk_timer_cancel, _mk_timer_create, 
-                       _mk_timer_destroy, _mkdir, _mkdirat, _mkfifo, _mknod, _mlock, 
-                       _mlockall, _mmap, _modwatch, _mount, _mprotect, _mremap_encrypted, 
-                       _msg_receive, _msg_rpc, _msg_send, _msgctl, _msgget, _msgrcv, 
-                       '_msgrcv$NOCANCEL', _msgsnd, '_msgsnd$NOCANCEL', _msgsys, 
-                       _msync, '_msync$NOCANCEL', _munlock, _munlockall, _munmap, 
-                       _necp_client_action, _necp_match_policy, _necp_open, _necp_session_action, 
-                       _necp_session_open, _net_qos_guideline, _netagent_trigger, 
-                       _netname_check_in, _netname_check_out, _netname_look_up, _netname_version, 
-                       _nfsclnt, _nfssvc, _non_boost_assertion_token, _normal_boost_assertion_token, 
-                       _ntp_adjtime, _ntp_gettime, _open, '_open$NOCANCEL', _open_dprotected_np, 
-                       _openat, '_openat$NOCANCEL', _openbyid_np, _os_buflet_get_data_length, 
-                       _os_buflet_get_data_limit, _os_buflet_get_data_offset, _os_buflet_get_object_address, 
-                       _os_buflet_set_data_length, _os_buflet_set_data_offset, _os_channel_advance_slot, 
-                       _os_channel_attr_clone, _os_channel_attr_create, _os_channel_attr_destroy, 
-                       _os_channel_attr_get, _os_channel_attr_get_key, _os_channel_attr_set, 
-                       _os_channel_attr_set_key, _os_channel_available_slot_count, 
-                       _os_channel_configure_interface_advisory, _os_channel_create, 
-                       _os_channel_create_extended, _os_channel_destroy, _os_channel_event_free, 
-                       _os_channel_event_get_event_data, _os_channel_event_get_next_event, 
-                       _os_channel_flow_admissible, _os_channel_get_advisory_region, 
-                       _os_channel_get_fd, _os_channel_get_interface_advisory, _os_channel_get_next_event_handle, 
-                       _os_channel_get_next_slot, _os_channel_get_stats_region, _os_channel_is_defunct, 
-                       _os_channel_packet_alloc, _os_channel_packet_free, _os_channel_packet_pool_purge, 
-                       _os_channel_pending, _os_channel_read_attr, _os_channel_read_nexus_extension_info, 
-                       _os_channel_ring_id, _os_channel_ring_notify_time, _os_channel_ring_sync_time, 
-                       _os_channel_rx_ring, _os_channel_set_slot_properties, _os_channel_slot_attach_packet, 
-                       _os_channel_slot_detach_packet, _os_channel_slot_get_packet, 
-                       _os_channel_sync, _os_channel_tx_ring, _os_channel_write_attr, 
-                       _os_copy_and_inet_checksum, _os_cpu_copy_in_cksum, _os_cpu_in_cksum, 
-                       _os_cpu_in_cksum_mbuf, _os_fault_with_payload, _os_inet_checksum, 
-                       _os_nexus_attr_clone, _os_nexus_attr_create, _os_nexus_attr_destroy, 
-                       _os_nexus_attr_get, _os_nexus_attr_set, _os_nexus_controller_alloc_provider_instance, 
-                       _os_nexus_controller_bind_provider_instance, _os_nexus_controller_create, 
-                       _os_nexus_controller_deregister_provider, _os_nexus_controller_destroy, 
-                       _os_nexus_controller_free_provider_instance, _os_nexus_controller_get_fd, 
-                       _os_nexus_controller_read_provider_attr, _os_nexus_controller_register_provider, 
-                       _os_nexus_controller_unbind_provider_instance, _os_packet_clear_flow_uuid, 
-                       _os_packet_finalize, _os_packet_get_buflet_count, _os_packet_get_data_length, 
-                       _os_packet_get_expire_time, _os_packet_get_flow_uuid, _os_packet_get_group_end, 
-                       _os_packet_get_group_start, _os_packet_get_headroom, _os_packet_get_inet_checksum, 
-                       _os_packet_get_link_broadcast, _os_packet_get_link_ethfcs, 
-                       _os_packet_get_link_header_length, _os_packet_get_link_multicast, 
-                       _os_packet_get_next_buflet, _os_packet_get_packetid, _os_packet_get_service_class, 
-                       _os_packet_get_token, _os_packet_get_traffic_class, _os_packet_get_transport_retransmit, 
-                       _os_packet_get_transport_traffic_background, _os_packet_get_transport_traffic_realtime, 
-                       _os_packet_get_truncated, _os_packet_get_vlan_id, _os_packet_get_vlan_priority, 
-                       _os_packet_get_vlan_tag, _os_packet_set_expire_time, _os_packet_set_flow_uuid, 
-                       _os_packet_set_group_end, _os_packet_set_group_start, _os_packet_set_headroom, 
-                       _os_packet_set_inet_checksum, _os_packet_set_link_broadcast, 
-                       _os_packet_set_link_ethfcs, _os_packet_set_link_header_length, 
-                       _os_packet_set_link_multicast, _os_packet_set_packetid, _os_packet_set_service_class, 
-                       _os_packet_set_token, _os_packet_set_traffic_class, _os_packet_set_transport_last_packet, 
-                       _os_packet_set_transport_retransmit, _os_packet_set_transport_traffic_background, 
-                       _os_packet_set_transport_traffic_realtime, _os_packet_set_vlan_tag, 
-                       _panic, _panic_init, _pathconf, _peeloff, _pid_for_task, _pid_hibernate, 
-                       _pid_resume, _pid_shutdown_networking, _pid_shutdown_sockets, 
-                       _pid_suspend, _pipe, _pkt_subtype_assert_fail, _pkt_type_assert_fail, 
-                       _poll, '_poll$NOCANCEL', _port_obj_init, _port_obj_table, 
-                       _port_obj_table_size, _posix_madvise, _posix_spawn, _posix_spawn_file_actions_add_fileportdup2_np, 
-                       _posix_spawn_file_actions_addchdir_np, _posix_spawn_file_actions_addclose, 
-                       _posix_spawn_file_actions_adddup2, _posix_spawn_file_actions_addfchdir_np, 
-                       _posix_spawn_file_actions_addinherit_np, _posix_spawn_file_actions_addopen, 
-                       _posix_spawn_file_actions_destroy, _posix_spawn_file_actions_init, 
-                       _posix_spawnattr_destroy, _posix_spawnattr_get_darwin_role_np, 
-                       _posix_spawnattr_get_qos_clamp_np, _posix_spawnattr_getbinpref_np, 
-                       _posix_spawnattr_getcpumonitor, _posix_spawnattr_getflags, 
-                       _posix_spawnattr_getmacpolicyinfo_np, _posix_spawnattr_getpcontrol_np, 
-                       _posix_spawnattr_getpgroup, _posix_spawnattr_getprocesstype_np, 
-                       _posix_spawnattr_getsigdefault, _posix_spawnattr_getsigmask, 
-                       _posix_spawnattr_init, _posix_spawnattr_set_darwin_role_np, 
-                       _posix_spawnattr_set_gid_np, _posix_spawnattr_set_groups_np, 
-                       _posix_spawnattr_set_importancewatch_port_np, _posix_spawnattr_set_jetsam_ttr_np, 
-                       _posix_spawnattr_set_login_np, _posix_spawnattr_set_max_addr_np, 
-                       _posix_spawnattr_set_persona_gid_np, _posix_spawnattr_set_persona_groups_np, 
-                       _posix_spawnattr_set_persona_np, _posix_spawnattr_set_persona_uid_np, 
-                       _posix_spawnattr_set_qos_clamp_np, _posix_spawnattr_set_registered_ports_np, 
-                       _posix_spawnattr_set_threadlimit_ext, _posix_spawnattr_set_uid_np, 
-                       _posix_spawnattr_setauditsessionport_np, _posix_spawnattr_setbinpref_np, 
-                       _posix_spawnattr_setcoalition_np, _posix_spawnattr_setcpumonitor, 
-                       _posix_spawnattr_setcpumonitor_default, _posix_spawnattr_setexceptionports_np, 
-                       _posix_spawnattr_setflags, _posix_spawnattr_setjetsam_ext, 
-                       _posix_spawnattr_setmacpolicyinfo_np, _posix_spawnattr_setpcontrol_np, 
-                       _posix_spawnattr_setpgroup, _posix_spawnattr_setprocesstype_np, 
-                       _posix_spawnattr_setsigdefault, _posix_spawnattr_setsigmask, 
-                       _posix_spawnattr_setspecialport_np, _posix_spawnattr_setsuidcredport_np, 
-                       _pread, '_pread$NOCANCEL', _proc_clear_cpulimits, _proc_clear_delayidlesleep, 
-                       _proc_clear_dirty, _proc_clear_vmpressure, _proc_denap_assertion_begin_with_msg, 
-                       _proc_denap_assertion_complete, _proc_disable_apptype, _proc_disable_cpumon, 
-                       _proc_disable_wakemon, _proc_donate_importance_boost, _proc_enable_apptype, 
-                       _proc_get_cpumon_params, _proc_get_dirty, _proc_get_wakemon_params, 
-                       _proc_importance_assertion_begin_with_msg, _proc_importance_assertion_complete, 
-                       _proc_kmsgbuf, _proc_libversion, _proc_list_dynkqueueids, 
-                       _proc_list_uptrs, _proc_listallpids, _proc_listchildpids, 
-                       _proc_listcoalitions, _proc_listpgrppids, _proc_listpids, 
-                       _proc_listpidspath, _proc_name, _proc_pid_rusage, _proc_piddynkqueueinfo, 
-                       _proc_pidfdinfo, _proc_pidfileportinfo, _proc_pidinfo, _proc_pidoriginatorinfo, 
-                       _proc_pidpath, _proc_regionfilename, _proc_reset_footprint_interval, 
-                       _proc_resume_cpumon, _proc_rlimit_control, _proc_set_cpumon_defaults, 
-                       _proc_set_cpumon_params, _proc_set_cpumon_params_fatal, _proc_set_delayidlesleep, 
-                       _proc_set_dirty, _proc_set_owner_vmpressure, _proc_set_wakemon_defaults, 
-                       _proc_set_wakemon_params, _proc_setcpu_percentage, _proc_setpcontrol, 
-                       _proc_setthread_cpupercent, _proc_suppress, _proc_terminate, 
-                       _proc_trace_log, _proc_track_dirty, _proc_udata_info, _proc_uuid_policy, 
-                       _processor_assign, _processor_control, _processor_exit, _processor_get_assignment, 
-                       _processor_info, _processor_set_create, _processor_set_default, 
-                       _processor_set_destroy, _processor_set_info, _processor_set_max_priority, 
-                       _processor_set_policy_control, _processor_set_policy_disable, 
-                       _processor_set_policy_enable, _processor_set_stack_usage, 
-                       _processor_set_statistics, _processor_set_tasks, _processor_set_threads, 
-                       _processor_start, _pselect, '_pselect$1050', '_pselect$DARWIN_EXTSN', 
-                       '_pselect$DARWIN_EXTSN$NOCANCEL', '_pselect$NOCANCEL', _pthread_getugid_np, 
-                       _pthread_setugid_np, _ptrace, _pwrite, '_pwrite$NOCANCEL', 
-                       _quota, _quotactl, _read, '_read$NOCANCEL', _readlink, _readlinkat, 
-                       _readv, '_readv$NOCANCEL', _reboot, _reboot_np, _recvfrom, 
-                       '_recvfrom$NOCANCEL', _recvmsg, '_recvmsg$NOCANCEL', _recvmsg_x, 
-                       _removexattr, _rename, _rename_ext, _renameat, _renameatx_np, 
-                       _renamex_np, _revoke, _rmdir, _searchfs, _select, '_select$1050', 
-                       '_select$DARWIN_EXTSN', '_select$DARWIN_EXTSN$NOCANCEL', '_select$NOCANCEL', 
-                       _sem_close, _sem_destroy, _sem_getvalue, _sem_init, _sem_open, 
-                       _sem_post, _sem_trywait, _sem_unlink, _sem_wait, '_sem_wait$NOCANCEL', 
-                       _semaphore_create, _semaphore_destroy, _semaphore_signal, 
-                       _semaphore_signal_all, _semaphore_signal_all_trap, _semaphore_signal_thread, 
-                       _semaphore_signal_thread_trap, _semaphore_signal_trap, _semaphore_timedwait, 
-                       _semaphore_timedwait_signal, _semaphore_timedwait_signal_trap, 
-                       _semaphore_timedwait_trap, _semaphore_wait, _semaphore_wait_signal, 
-                       _semaphore_wait_signal_trap, _semaphore_wait_trap, _semctl, 
-                       _semget, _semop, _semsys, _sendfile, _sendmsg, '_sendmsg$NOCANCEL', 
-                       _sendmsg_x, _sendto, '_sendto$NOCANCEL', _setattrlist, _setattrlistat, 
-                       _setaudit, _setaudit_addr, _setauid, _setegid, _seteuid, _setgid, 
-                       _setgroups, _setiopolicy_np, _setitimer, _setpgid, _setpriority, 
-                       _setprivexec, _setquota, _setregid, _setreuid, _setrlimit, 
-                       _setsgroups_np, _setsid, _setsockopt, _setuid, _setwgroups_np, 
-                       _setxattr, _sfi_get_class_offtime, _sfi_process_get_flags, 
-                       _sfi_process_set_flags, _sfi_set_class_offtime, _shm_open, 
-                       _shm_unlink, _shmat, _shmctl, _shmdt, _shmget, _shmsys, _shutdown, 
-                       _sigpending, _sigprocmask, _sigsuspend, '_sigsuspend$NOCANCEL', 
-                       _socket, _socket_delegate, _socketpair, _stackshot_capture_with_config, 
-                       _stackshot_config_create, _stackshot_config_dealloc, _stackshot_config_dealloc_buffer, 
-                       _stackshot_config_get_stackshot_buffer, _stackshot_config_get_stackshot_size, 
-                       _stackshot_config_set_delta_timestamp, _stackshot_config_set_flags, 
-                       _stackshot_config_set_pid, _stackshot_config_set_size_hint, 
-                       _stat, '_stat$INODE64', _stat64, _statfs, '_statfs$INODE64', 
-                       _statfs64, _swapon, _swtch, _swtch_pri, _symlink, _symlinkat, 
-                       _sync, _syscall, _syscall_thread_switch, _system_get_sfi_window, 
-                       _system_override, _system_set_sfi_window, _task_assign, _task_assign_default, 
-                       _task_create, _task_create_suid_cred, _task_for_pid, _task_generate_corpse, 
-                       _task_get_assignment, _task_get_dyld_image_infos, _task_get_emulation_vector, 
-                       _task_get_exc_guard_behavior, _task_get_exception_ports, _task_get_mach_voucher, 
-                       _task_get_special_port, _task_get_state, _task_info, _task_inspect, 
-                       _task_map_corpse_info, _task_map_corpse_info_64, _task_name_for_pid, 
-                       _task_policy, _task_policy_get, _task_policy_set, _task_purgable_info, 
-                       _task_register_dyld_get_process_state, _task_register_dyld_image_infos, 
-                       _task_register_dyld_set_dyld_state, _task_register_dyld_shared_cache_image_info, 
-                       _task_restartable_ranges_register, _task_restartable_ranges_synchronize, 
-                       _task_resume, _task_resume2, _task_sample, _task_self_, _task_self_trap, 
-                       _task_set_emulation, _task_set_emulation_vector, _task_set_exc_guard_behavior, 
-                       _task_set_exception_ports, _task_set_info, _task_set_mach_voucher, 
-                       _task_set_phys_footprint_limit, _task_set_policy, _task_set_port_space, 
-                       _task_set_ras_pc, _task_set_special_port, _task_set_state, 
-                       _task_suspend, _task_suspend2, _task_swap_exception_ports, 
-                       _task_swap_mach_voucher, _task_terminate, _task_threads, _task_unregister_dyld_image_infos, 
-                       _task_zone_info, _terminate_with_payload, _terminate_with_reason, 
-                       _thread_abort, _thread_abort_safely, _thread_assign, _thread_assign_default, 
-                       _thread_create, _thread_create_running, _thread_depress_abort, 
-                       _thread_destruct_special_reply_port, _thread_get_assignment, 
-                       _thread_get_exception_ports, _thread_get_mach_voucher, _thread_get_register_pointer_values, 
-                       _thread_get_special_port, _thread_get_special_reply_port, 
-                       _thread_get_state, _thread_info, _thread_policy, _thread_policy_get, 
-                       _thread_policy_set, _thread_resume, _thread_sample, _thread_self_trap, 
-                       _thread_selfcounts, _thread_set_exception_ports, _thread_set_mach_voucher, 
-                       _thread_set_policy, _thread_set_special_port, _thread_set_state, 
-                       _thread_suspend, _thread_swap_exception_ports, _thread_swap_mach_voucher, 
-                       _thread_switch, _thread_terminate, _thread_wire, _truncate, 
-                       _umask, _undelete, _unlink, _unlinkat, _unmount, _usrctl, 
-                       _utimensat, _utimes, _vfork, _vfs_purge, _vm_allocate, _vm_allocate_cpm, 
-                       _vm_behavior_set, _vm_copy, _vm_deallocate, _vm_inherit, _vm_kernel_page_mask, 
-                       _vm_kernel_page_shift, _vm_kernel_page_size, _vm_machine_attribute, 
-                       _vm_map, _vm_map_page_query, _vm_msync, _vm_page_mask, _vm_page_shift, 
-                       _vm_page_size, _vm_pressure_monitor, _vm_protect, _vm_purgable_control, 
-                       _vm_read, _vm_read_list, _vm_read_overwrite, _vm_region_64, 
-                       _vm_region_recurse_64, _vm_remap, _vm_wire, _vm_write, _voucher_mach_msg_adopt, 
-                       _voucher_mach_msg_clear, _voucher_mach_msg_revert, _voucher_mach_msg_set, 
-                       _vprintf_stderr_func, _wait4, _waitevent, _waitid, '_waitid$NOCANCEL', 
-                       _watchevent, _work_interval_copy_port, _work_interval_create, 
-                       _work_interval_destroy, _work_interval_instance_alloc, _work_interval_instance_clear, 
-                       _work_interval_instance_finish, _work_interval_instance_free, 
-                       _work_interval_instance_get_complexity, _work_interval_instance_get_deadline, 
-                       _work_interval_instance_get_finish, _work_interval_instance_get_id, 
-                       _work_interval_instance_get_start, _work_interval_instance_set_complexity, 
-                       _work_interval_instance_set_deadline, _work_interval_instance_set_finish, 
-                       _work_interval_instance_set_start, _work_interval_instance_start, 
-                       _work_interval_instance_update, _work_interval_join, _work_interval_join_port, 
-                       _work_interval_leave, _work_interval_notify, _work_interval_notify_simple, 
-                       _write, '_write$NOCANCEL', _writev, '_writev$NOCANCEL' ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           D1CF3A92-2424-3420-B375-DEED7AA68C53
-  - target:          x86_64-maccatalyst
-    value:           D1CF3A92-2424-3420-B375-DEED7AA68C53
-  - target:          x86_64h-macos
-    value:           00F331F1-0D09-39B3-8736-1FE90E64E903
-  - target:          x86_64h-maccatalyst
-    value:           00F331F1-0D09-39B3-8736-1FE90E64E903
-install-name:    '/usr/lib/system/libsystem_m.dylib'
-current-version: 3178
-exports:
-  - targets:         [ x86_64-macos, x86_64h-macos, x86_64-maccatalyst, x86_64h-maccatalyst ]
-    symbols:         [ __FE_DFL_DISABLE_SSE_DENORMS_ENV, __FE_DFL_ENV, ___Libm_version, 
-                       ___cos_d2, ___cos_d4, ___cos_f4, ___cos_f8, ___cospi, ___cospif, 
-                       ___exp10, ___exp10f, ___fegetfltrounds, ___fpclassify, ___fpclassifyd, 
-                       ___fpclassifyf, ___fpclassifyl, ___inf, ___inff, ___infl, 
-                       ___inline_isfinited, ___inline_isfinitef, ___inline_isfinitel, 
-                       ___inline_isinfd, ___inline_isinff, ___inline_isinfl, ___inline_isnand, 
-                       ___inline_isnanf, ___inline_isnanl, ___inline_isnormald, ___inline_isnormalf, 
-                       ___inline_isnormall, ___inline_signbitd, ___inline_signbitf, 
-                       ___inline_signbitl, ___invert_d2, ___invert_d3, ___invert_d4, 
-                       ___invert_f2, ___invert_f3, ___invert_f4, ___isfinite, ___isfinited, 
-                       ___isfinitef, ___isfinitel, ___isinf, ___isinfd, ___isinff, 
-                       ___isinfl, ___isnan, ___isnand, ___isnanf, ___isnanl, ___isnormal, 
-                       ___isnormald, ___isnormalf, ___isnormall, ___math_errhandling, 
-                       ___nan, ___signbit, ___signbitd, ___signbitf, ___signbitl, 
-                       ___sin_d2, ___sin_d4, ___sin_f4, ___sin_f8, ___sincos, ___sincos_stret, 
-                       ___sincosf, ___sincosf_stret, ___sincospi, ___sincospi_stret, 
-                       ___sincospif, ___sincospif_stret, ___sinpi, ___sinpif, ___tanpi, 
-                       ___tanpif, __simd_acos_d2, __simd_acos_d4, __simd_acos_d8, 
-                       __simd_acos_f16, __simd_acos_f4, __simd_acos_f8, __simd_acosh_d2, 
-                       __simd_acosh_d4, __simd_acosh_d8, __simd_acosh_f16, __simd_acosh_f4, 
-                       __simd_acosh_f8, __simd_asin_d2, __simd_asin_d4, __simd_asin_d8, 
-                       __simd_asin_f16, __simd_asin_f4, __simd_asin_f8, __simd_asinh_d2, 
-                       __simd_asinh_d4, __simd_asinh_d8, __simd_asinh_f16, __simd_asinh_f4, 
-                       __simd_asinh_f8, __simd_atan2_d2, __simd_atan2_d4, __simd_atan2_d8, 
-                       __simd_atan2_f16, __simd_atan2_f4, __simd_atan2_f8, __simd_atan_d2, 
-                       __simd_atan_d4, __simd_atan_d8, __simd_atan_f16, __simd_atan_f4, 
-                       __simd_atan_f8, __simd_atanh_d2, __simd_atanh_d4, __simd_atanh_d8, 
-                       __simd_atanh_f16, __simd_atanh_f4, __simd_atanh_f8, __simd_cbrt_d2, 
-                       __simd_cbrt_d4, __simd_cbrt_d8, __simd_cbrt_f16, __simd_cbrt_f4, 
-                       __simd_cbrt_f8, __simd_cos_d2, __simd_cos_d4, __simd_cos_d8, 
-                       __simd_cos_f16, __simd_cos_f4, __simd_cos_f8, __simd_cosh_d2, 
-                       __simd_cosh_d4, __simd_cosh_d8, __simd_cosh_f16, __simd_cosh_f4, 
-                       __simd_cosh_f8, __simd_cospi_d2, __simd_cospi_d4, __simd_cospi_d8, 
-                       __simd_cospi_f16, __simd_cospi_f4, __simd_cospi_f8, __simd_erf_d2, 
-                       __simd_erf_d4, __simd_erf_d8, __simd_erf_f16, __simd_erf_f4, 
-                       __simd_erf_f8, __simd_erfc_d2, __simd_erfc_d4, __simd_erfc_d8, 
-                       __simd_erfc_f16, __simd_erfc_f4, __simd_erfc_f8, __simd_exp10_d2, 
-                       __simd_exp10_d4, __simd_exp10_d8, __simd_exp10_f16, __simd_exp10_f4, 
-                       __simd_exp10_f8, __simd_exp2_d2, __simd_exp2_d4, __simd_exp2_d8, 
-                       __simd_exp2_f16, __simd_exp2_f4, __simd_exp2_f8, __simd_exp_d2, 
-                       __simd_exp_d4, __simd_exp_d8, __simd_exp_f16, __simd_exp_f4, 
-                       __simd_exp_f8, __simd_expm1_d2, __simd_expm1_d4, __simd_expm1_d8, 
-                       __simd_expm1_f16, __simd_expm1_f4, __simd_expm1_f8, __simd_fma_d2, 
-                       __simd_fma_f4, __simd_fmod_d2, __simd_fmod_d4, __simd_fmod_d8, 
-                       __simd_fmod_f16, __simd_fmod_f4, __simd_fmod_f8, __simd_hypot_d2, 
-                       __simd_hypot_d4, __simd_hypot_d8, __simd_hypot_f16, __simd_hypot_f4, 
-                       __simd_hypot_f8, __simd_incircle_pd2, __simd_incircle_pf2, 
-                       __simd_insphere_pd3, __simd_insphere_pf3, __simd_log10_d2, 
-                       __simd_log10_d4, __simd_log10_d8, __simd_log10_f16, __simd_log10_f4, 
-                       __simd_log10_f8, __simd_log1p_d2, __simd_log1p_d4, __simd_log1p_d8, 
-                       __simd_log1p_f16, __simd_log1p_f4, __simd_log1p_f8, __simd_log2_d2, 
-                       __simd_log2_d4, __simd_log2_d8, __simd_log2_f16, __simd_log2_f4, 
-                       __simd_log2_f8, __simd_log_d2, __simd_log_d4, __simd_log_d8, 
-                       __simd_log_f16, __simd_log_f4, __simd_log_f8, __simd_nextafter_d2, 
-                       __simd_nextafter_d4, __simd_nextafter_d8, __simd_nextafter_f16, 
-                       __simd_nextafter_f4, __simd_nextafter_f8, __simd_orient_pd2, 
-                       __simd_orient_pd3, __simd_orient_pf2, __simd_orient_pf3, __simd_orient_vd2, 
-                       __simd_orient_vd3, __simd_orient_vf2, __simd_orient_vf3, __simd_pow_d2, 
-                       __simd_pow_d4, __simd_pow_d8, __simd_pow_f16, __simd_pow_f4, 
-                       __simd_pow_f8, __simd_remainder_d2, __simd_remainder_d4, __simd_remainder_d8, 
-                       __simd_remainder_f16, __simd_remainder_f4, __simd_remainder_f8, 
-                       __simd_round_d2, __simd_round_d4, __simd_round_d8, __simd_round_f16, 
-                       __simd_round_f4, __simd_round_f8, __simd_sin_d2, __simd_sin_d4, 
-                       __simd_sin_d8, __simd_sin_f16, __simd_sin_f4, __simd_sin_f8, 
-                       __simd_sinh_d2, __simd_sinh_d4, __simd_sinh_d8, __simd_sinh_f16, 
-                       __simd_sinh_f4, __simd_sinh_f8, __simd_sinpi_d2, __simd_sinpi_d4, 
-                       __simd_sinpi_d8, __simd_sinpi_f16, __simd_sinpi_f4, __simd_sinpi_f8, 
-                       __simd_tan_d2, __simd_tan_d4, __simd_tan_d8, __simd_tan_f16, 
-                       __simd_tan_f4, __simd_tan_f8, __simd_tanh_d2, __simd_tanh_d4, 
-                       __simd_tanh_d8, __simd_tanh_f16, __simd_tanh_f4, __simd_tanh_f8, 
-                       __simd_tanpi_d2, __simd_tanpi_d4, __simd_tanpi_d8, __simd_tanpi_f16, 
-                       __simd_tanpi_f4, __simd_tanpi_f8, __simd_tgamma_d2, __simd_tgamma_d4, 
-                       __simd_tgamma_d8, __simd_tgamma_f16, __simd_tgamma_f4, __simd_tgamma_f8, 
-                       _acos, '_acos$fenv_access_off', _acosf, '_acosf$fenv_access_off', 
-                       _acosh, '_acosh$fenv_access_off', _acoshf, '_acoshf$fenv_access_off', 
-                       _acoshl, '_acoshl$fenv_access_off', _acosl, '_acosl$fenv_access_off', 
-                       _asin, '_asin$fenv_access_off', _asinf, '_asinf$fenv_access_off', 
-                       _asinh, '_asinh$fenv_access_off', _asinhf, '_asinhf$fenv_access_off', 
-                       _asinhl, '_asinhl$fenv_access_off', _asinl, '_asinl$fenv_access_off', 
-                       _atan, '_atan$fenv_access_off', _atan2, '_atan2$fenv_access_off', 
-                       _atan2f, '_atan2f$fenv_access_off', _atan2l, '_atan2l$fenv_access_off', 
-                       _atanf, '_atanf$fenv_access_off', _atanh, '_atanh$fenv_access_off', 
-                       _atanhf, '_atanhf$fenv_access_off', _atanhl, '_atanhl$fenv_access_off', 
-                       _atanl, '_atanl$fenv_access_off', _cabs, '_cabs$fenv_access_off', 
-                       _cabsf, '_cabsf$fenv_access_off', _cabsl, '_cabsl$fenv_access_off', 
-                       _cacos, '_cacos$fenv_access_off', _cacosf, '_cacosf$fenv_access_off', 
-                       _cacosh, '_cacosh$fenv_access_off', _cacoshf, '_cacoshf$fenv_access_off', 
-                       _cacoshl, '_cacoshl$fenv_access_off', _cacosl, '_cacosl$fenv_access_off', 
-                       _carg, '_carg$fenv_access_off', _cargf, '_cargf$fenv_access_off', 
-                       _cargl, '_cargl$fenv_access_off', _casin, '_casin$fenv_access_off', 
-                       _casinf, '_casinf$fenv_access_off', _casinh, '_casinh$fenv_access_off', 
-                       _casinhf, '_casinhf$fenv_access_off', _casinhl, '_casinhl$fenv_access_off', 
-                       _casinl, '_casinl$fenv_access_off', _catan, '_catan$fenv_access_off', 
-                       _catanf, '_catanf$fenv_access_off', _catanh, '_catanh$fenv_access_off', 
-                       _catanhf, '_catanhf$fenv_access_off', _catanhl, '_catanhl$fenv_access_off', 
-                       _catanl, '_catanl$fenv_access_off', _cbrt, '_cbrt$fenv_access_off', 
-                       _cbrtf, '_cbrtf$fenv_access_off', _cbrtl, '_cbrtl$fenv_access_off', 
-                       _ccos, '_ccos$fenv_access_off', _ccosf, '_ccosf$fenv_access_off', 
-                       _ccosh, '_ccosh$fenv_access_off', _ccoshf, '_ccoshf$fenv_access_off', 
-                       _ccoshl, '_ccoshl$fenv_access_off', _ccosl, '_ccosl$fenv_access_off', 
-                       _ceil, '_ceil$fenv_access_off', _ceilf, '_ceilf$fenv_access_off', 
-                       _ceill, '_ceill$fenv_access_off', _cexp, '_cexp$fenv_access_off', 
-                       _cexpf, '_cexpf$fenv_access_off', _cexpl, '_cexpl$fenv_access_off', 
-                       _cimag, '_cimag$fenv_access_off', _cimagf, '_cimagf$fenv_access_off', 
-                       _cimagl, '_cimagl$fenv_access_off', _clog, '_clog$fenv_access_off', 
-                       _clogf, '_clogf$fenv_access_off', _clogl, '_clogl$fenv_access_off', 
-                       _conj, '_conj$fenv_access_off', _conjf, '_conjf$fenv_access_off', 
-                       _conjl, '_conjl$fenv_access_off', _copysign, '_copysign$fenv_access_off', 
-                       _copysignf, '_copysignf$fenv_access_off', _copysignl, '_copysignl$fenv_access_off', 
-                       _cos, '_cos$fenv_access_off', _cosf, '_cosf$fenv_access_off', 
-                       _cosh, '_cosh$fenv_access_off', _coshf, '_coshf$fenv_access_off', 
-                       _coshl, '_coshl$fenv_access_off', _cosl, '_cosl$fenv_access_off', 
-                       _cpow, '_cpow$fenv_access_off', _cpowf, '_cpowf$fenv_access_off', 
-                       _cpowl, '_cpowl$fenv_access_off', _cproj, '_cproj$fenv_access_off', 
-                       _cprojf, '_cprojf$fenv_access_off', _cprojl, '_cprojl$fenv_access_off', 
-                       _creal, '_creal$fenv_access_off', _crealf, '_crealf$fenv_access_off', 
-                       _creall, '_creall$fenv_access_off', _csin, '_csin$fenv_access_off', 
-                       _csinf, '_csinf$fenv_access_off', _csinh, '_csinh$fenv_access_off', 
-                       _csinhf, '_csinhf$fenv_access_off', _csinhl, '_csinhl$fenv_access_off', 
-                       _csinl, '_csinl$fenv_access_off', _csqrt, '_csqrt$fenv_access_off', 
-                       _csqrtf, '_csqrtf$fenv_access_off', _csqrtl, '_csqrtl$fenv_access_off', 
-                       _ctan, '_ctan$fenv_access_off', _ctanf, '_ctanf$fenv_access_off', 
-                       _ctanh, '_ctanh$fenv_access_off', _ctanhf, '_ctanhf$fenv_access_off', 
-                       _ctanhl, '_ctanhl$fenv_access_off', _ctanl, '_ctanl$fenv_access_off', 
-                       _drem, _erf, '_erf$fenv_access_off', _erfc, '_erfc$fenv_access_off', 
-                       _erfcf, '_erfcf$fenv_access_off', _erfcl, '_erfcl$fenv_access_off', 
-                       _erff, '_erff$fenv_access_off', _erfl, '_erfl$fenv_access_off', 
-                       _exp, '_exp$fenv_access_off', _exp2, '_exp2$fenv_access_off', 
-                       _exp2f, '_exp2f$fenv_access_off', _exp2l, '_exp2l$fenv_access_off', 
-                       _expf, '_expf$fenv_access_off', _expl, '_expl$fenv_access_off', 
-                       _expm1, '_expm1$fenv_access_off', _expm1f, '_expm1f$fenv_access_off', 
-                       _expm1l, '_expm1l$fenv_access_off', _fabs, '_fabs$fenv_access_off', 
-                       _fabsf, '_fabsf$fenv_access_off', _fabsl, '_fabsl$fenv_access_off', 
-                       _fdim, '_fdim$fenv_access_off', _fdimf, '_fdimf$fenv_access_off', 
-                       _fdiml, '_fdiml$fenv_access_off', _feclearexcept, _fegetenv, 
-                       _fegetexcept, _fegetexceptflag, _fegetround, _feholdexcept, 
-                       _feraiseexcept, _fesetenv, _fesetexcept, _fesetexceptflag, 
-                       _fesetround, _fetestexcept, _feupdateenv, _finite, _floor, 
-                       '_floor$fenv_access_off', _floorf, '_floorf$fenv_access_off', 
-                       _floorl, '_floorl$fenv_access_off', _fma, '_fma$fenv_access_off', 
-                       _fmaf, '_fmaf$fenv_access_off', _fmal, '_fmal$fenv_access_off', 
-                       _fmax, '_fmax$fenv_access_off', _fmaxf, '_fmaxf$fenv_access_off', 
-                       _fmaxl, '_fmaxl$fenv_access_off', _fmin, '_fmin$fenv_access_off', 
-                       _fminf, '_fminf$fenv_access_off', _fminl, '_fminl$fenv_access_off', 
-                       _fmod, '_fmod$fenv_access_off', _fmodf, '_fmodf$fenv_access_off', 
-                       _fmodl, '_fmodl$fenv_access_off', _frexp, '_frexp$fenv_access_off', 
-                       _frexpf, '_frexpf$fenv_access_off', _frexpl, '_frexpl$fenv_access_off', 
-                       _gamma, '_gamma$fenv_access_off', _hypot, '_hypot$fenv_access_off', 
-                       _hypotf, '_hypotf$fenv_access_off', _hypotl, '_hypotl$fenv_access_off', 
-                       _ilogb, '_ilogb$fenv_access_off', _ilogbf, '_ilogbf$fenv_access_off', 
-                       _ilogbl, '_ilogbl$fenv_access_off', _isinf, _isnan, _j0, _j1, 
-                       _jn, _ldexp, '_ldexp$fenv_access_off', _ldexpf, '_ldexpf$fenv_access_off', 
-                       _ldexpl, '_ldexpl$fenv_access_off', _lgamma, '_lgamma$fenv_access_off', 
-                       _lgamma_r, '_lgamma_r$fenv_access_off', _lgammaf, '_lgammaf$fenv_access_off', 
-                       _lgammaf_r, '_lgammaf_r$fenv_access_off', _lgammal, '_lgammal$fenv_access_off', 
-                       _lgammal_r, '_lgammal_r$fenv_access_off', _llrint, '_llrint$fenv_access_off', 
-                       _llrintf, '_llrintf$fenv_access_off', _llrintl, '_llrintl$fenv_access_off', 
-                       _llround, '_llround$fenv_access_off', _llroundf, '_llroundf$fenv_access_off', 
-                       _llroundl, '_llroundl$fenv_access_off', _log, '_log$fenv_access_off', 
-                       _log10, '_log10$fenv_access_off', _log10f, '_log10f$fenv_access_off', 
-                       _log10l, '_log10l$fenv_access_off', _log1p, '_log1p$fenv_access_off', 
-                       _log1pf, '_log1pf$fenv_access_off', _log1pl, '_log1pl$fenv_access_off', 
-                       _log2, '_log2$fenv_access_off', _log2f, '_log2f$fenv_access_off', 
-                       _log2l, '_log2l$fenv_access_off', _logb, '_logb$fenv_access_off', 
-                       _logbf, '_logbf$fenv_access_off', _logbl, '_logbl$fenv_access_off', 
-                       _logf, '_logf$fenv_access_off', _logl, '_logl$fenv_access_off', 
-                       _lrint, '_lrint$fenv_access_off', _lrintf, '_lrintf$fenv_access_off', 
-                       _lrintl, '_lrintl$fenv_access_off', _lround, '_lround$fenv_access_off', 
-                       _lroundf, '_lroundf$fenv_access_off', _lroundl, '_lroundl$fenv_access_off', 
-                       _matherr, _matrix_identity_double2x2, _matrix_identity_double3x3, 
-                       _matrix_identity_double4x4, _matrix_identity_float2x2, _matrix_identity_float3x3, 
-                       _matrix_identity_float4x4, _modf, '_modf$fenv_access_off', 
-                       _modff, '_modff$fenv_access_off', _modfl, '_modfl$fenv_access_off', 
-                       _nan, _nanf, _nanl, _nearbyint, '_nearbyint$fenv_access_off', 
-                       _nearbyintf, '_nearbyintf$fenv_access_off', _nearbyintl, '_nearbyintl$fenv_access_off', 
-                       _nextafter, '_nextafter$fenv_access_off', _nextafterd, _nextafterf, 
-                       '_nextafterf$fenv_access_off', _nextafterl, '_nextafterl$fenv_access_off', 
-                       _nexttoward, '_nexttoward$fenv_access_off', _nexttowardf, 
-                       '_nexttowardf$fenv_access_off', _nexttowardl, '_nexttowardl$fenv_access_off', 
-                       _pow, '_pow$fenv_access_off', _powf, '_powf$fenv_access_off', 
-                       _powl, '_powl$fenv_access_off', _remainder, '_remainder$fenv_access_off', 
-                       _remainderf, '_remainderf$fenv_access_off', _remainderl, '_remainderl$fenv_access_off', 
-                       _remquo, '_remquo$fenv_access_off', _remquof, '_remquof$fenv_access_off', 
-                       _remquol, '_remquol$fenv_access_off', _rint, '_rint$fenv_access_off', 
-                       _rintf, '_rintf$fenv_access_off', _rintl, '_rintl$fenv_access_off', 
-                       _rinttol, _round, '_round$fenv_access_off', _roundf, '_roundf$fenv_access_off', 
-                       _roundl, '_roundl$fenv_access_off', _roundtol, _scalb, _scalbln, 
-                       '_scalbln$fenv_access_off', _scalblnf, '_scalblnf$fenv_access_off', 
-                       _scalblnl, '_scalblnl$fenv_access_off', _scalbn, '_scalbn$fenv_access_off', 
-                       _scalbnf, '_scalbnf$fenv_access_off', _scalbnl, '_scalbnl$fenv_access_off', 
-                       _signgam, _significand, _sin, '_sin$fenv_access_off', _sinf, 
-                       '_sinf$fenv_access_off', _sinh, '_sinh$fenv_access_off', _sinhf, 
-                       '_sinhf$fenv_access_off', _sinhl, '_sinhl$fenv_access_off', 
-                       _sinl, '_sinl$fenv_access_off', _sqrt, '_sqrt$fenv_access_off', 
-                       _sqrtf, '_sqrtf$fenv_access_off', _sqrtl, '_sqrtl$fenv_access_off', 
-                       _tan, '_tan$fenv_access_off', _tanf, '_tanf$fenv_access_off', 
-                       _tanh, '_tanh$fenv_access_off', _tanhf, '_tanhf$fenv_access_off', 
-                       _tanhl, '_tanhl$fenv_access_off', _tanl, '_tanl$fenv_access_off', 
-                       _tgamma, '_tgamma$fenv_access_off', _tgammaf, '_tgammaf$fenv_access_off', 
-                       _tgammal, '_tgammal$fenv_access_off', _trunc, '_trunc$fenv_access_off', 
-                       _truncf, '_truncf$fenv_access_off', _truncl, '_truncl$fenv_access_off', 
-                       _y0, _y1, _yn ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           8549294E-4C53-36EB-99F3-584A7393D8D5
-  - target:          x86_64-maccatalyst
-    value:           8549294E-4C53-36EB-99F3-584A7393D8D5
-install-name:    '/usr/lib/system/libsystem_malloc.dylib'
-current-version: 283.100.6
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ ___mach_stack_logging_copy_uniquing_table, ___mach_stack_logging_enumerate_records, 
-                       ___mach_stack_logging_frames_for_uniqued_stack, ___mach_stack_logging_get_frames, 
-                       ___mach_stack_logging_get_frames_for_stackid, ___mach_stack_logging_set_file_path, 
-                       ___mach_stack_logging_shared_memory_address, ___mach_stack_logging_stackid_for_vm_region, 
-                       ___mach_stack_logging_start_reading, ___mach_stack_logging_stop_reading, 
-                       ___mach_stack_logging_uniquing_table_copy_from_serialized, 
-                       ___mach_stack_logging_uniquing_table_read_stack, ___mach_stack_logging_uniquing_table_release, 
-                       ___mach_stack_logging_uniquing_table_retain, ___mach_stack_logging_uniquing_table_serialize, 
-                       ___mach_stack_logging_uniquing_table_sizeof, ___malloc_init, 
-                       ___stack_logging_early_finished, __malloc_fork_child, __malloc_fork_parent, 
-                       __malloc_fork_prepare, __malloc_no_asl_log, __os_cpu_number_override, 
-                       _aligned_alloc, _calloc, _free, _mag_set_thread_index, _malloc, 
-                       _malloc_check_counter, _malloc_check_each, _malloc_check_start, 
-                       _malloc_claimed_address, _malloc_create_legacy_default_zone, 
-                       _malloc_create_zone, _malloc_debug, _malloc_default_purgeable_zone, 
-                       _malloc_default_zone, _malloc_destroy_zone, _malloc_engaged_nano, 
-                       _malloc_enter_process_memory_limit_warn_mode, _malloc_error, 
-                       _malloc_freezedry, _malloc_get_all_zones, _malloc_get_zone_name, 
-                       _malloc_good_size, _malloc_jumpstart, _malloc_logger, _malloc_make_nonpurgeable, 
-                       _malloc_make_purgeable, _malloc_memory_event_handler, _malloc_num_zones, 
-                       _malloc_num_zones_allocated, _malloc_printf, _malloc_register_stack_logger, 
-                       _malloc_set_zone_name, _malloc_singlethreaded, _malloc_size, 
-                       _malloc_zone_batch_free, _malloc_zone_batch_malloc, _malloc_zone_calloc, 
-                       _malloc_zone_check, _malloc_zone_claimed_address, _malloc_zone_disable_discharge_checking, 
-                       _malloc_zone_discharge, _malloc_zone_enable_discharge_checking, 
-                       _malloc_zone_enumerate_discharged_pointers, _malloc_zone_free, 
-                       _malloc_zone_from_ptr, _malloc_zone_log, _malloc_zone_malloc, 
-                       _malloc_zone_memalign, _malloc_zone_pressure_relief, _malloc_zone_print, 
-                       _malloc_zone_print_ptr_info, _malloc_zone_realloc, _malloc_zone_register, 
-                       _malloc_zone_statistics, _malloc_zone_unregister, _malloc_zone_valloc, 
-                       _malloc_zones, _mstats, _posix_memalign, _realloc, '_reallocarray$DARWIN_EXTSN', 
-                       '_reallocarrayf$DARWIN_EXTSN', _scalable_zone_info, _scalable_zone_statistics, 
-                       _set_malloc_singlethreaded, _stack_logging_enable_logging, 
-                       _szone_check_counter, _szone_check_modulo, _szone_check_start, 
-                       _tiny_print_region_free_list, _turn_off_stack_logging, _turn_on_stack_logging, 
-                       _valloc, _vfree, _zeroify_scalable_zone ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           F06C65C5-2CBE-313C-96E1-A09240F9FE57
-  - target:          x86_64-maccatalyst
-    value:           F06C65C5-2CBE-313C-96E1-A09240F9FE57
-install-name:    '/usr/lib/system/libsystem_networkextension.dylib'
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _NEHelperCacheAddRedirectedAddress, _NEHelperCacheClearRedirectedAddresses, 
-                       _NEHelperCacheClearUUIDs, _NEHelperCacheCopyAppUUIDMapping, 
-                       _NEHelperCacheCopyAppUUIDMappingExtended, _NEHelperCacheCopyAppUUIDMappingForUIDExtended, 
-                       _NEHelperCacheCopySigningIdentifierMapping, _NEHelperCacheSetDomainDictionaries, 
-                       _NEHelperCacheSetRoutes, _NEHelperCopyAggregatePathRules, 
-                       _NEHelperCopyAppInfo, _NEHelperCopyCurrentNetworkInfo, _NEHelperCopyPerAppDomains, 
-                       _NEHelperCopyPreferredBundleID, _NEHelperCopyResponse, _NEHelperGetIKESocket, 
-                       _NEHelperGetIKESocketWithResult, _NEHelperGetKernelControlSocket, 
-                       _NEHelperGetKernelControlSocketExtended, _NEHelperGetNECPSessionFD, 
-                       _NEHelperGetPFKeySocket, _NEHelperHandleConfigurationsChangedBySC, 
-                       _NEHelperInit, _NEHelperInterfaceRemoveAddress, _NEHelperInterfaceSetAddress, 
-                       _NEHelperInterfaceSetMTU, _NEHelperInterfaceSetOption, _NEHelperSendRequest, 
-                       _NEHelperSettingsSetArray, _NEHelperSettingsSetBool, _NEHelperSettingsSetNumber, 
-                       _NEHelperVPNConfigurationExists, _NEHelperVPNSetEnabled, _g_ne_read_uuid_cache, 
-                       _g_ne_uuid_cache_hit, _ne_copy_cached_bundle_identifier_for_uuid, 
-                       _ne_copy_cached_preferred_bundle_for_bundle_identifier, _ne_copy_cached_uuids_for_bundle_identifier, 
-                       _ne_copy_signature_info_for_pid, _ne_copy_signing_identifier_for_pid, 
-                       _ne_copy_uuid_cache, _ne_force_reset_uuid_cache, _ne_get_configuration_generation, 
-                       _ne_log_large_obj, _ne_log_obj, _ne_print_backtrace, _ne_session_add_necp_drop_dest_from_path, 
-                       _ne_session_address_matches_subnets, _ne_session_agent_get_advisory, 
-                       _ne_session_agent_get_advisory_interface_index, _ne_session_always_on_vpn_configs_present, 
-                       _ne_session_always_on_vpn_configs_present_at_boot, _ne_session_app_vpn_configs_present, 
-                       _ne_session_cancel, _ne_session_content_filter_configs_present, 
-                       _ne_session_copy_app_data_from_flow_divert_socket, _ne_session_copy_app_data_from_flow_divert_token, 
-                       _ne_session_copy_policy_match, _ne_session_copy_security_session_info, 
-                       _ne_session_copy_socket_attributes, _ne_session_create, _ne_session_disable_restrictions, 
-                       _ne_session_dns_proxy_configs_present, _ne_session_establish_ipc, 
-                       _ne_session_fallback_advisory, _ne_session_fallback_default, 
-                       _ne_session_get_config_id_from_network_agent, _ne_session_get_configuration_id, 
-                       _ne_session_get_info, _ne_session_get_info2, _ne_session_get_status, 
-                       _ne_session_info_type_to_string, _ne_session_initialize_necp_drop_all, 
-                       _ne_session_is_safeboot, _ne_session_manager_get_pid, _ne_session_manager_has_active_sessions, 
-                       _ne_session_manager_is_running, _ne_session_on_demand_configs_present, 
-                       _ne_session_path_controller_configs_present, _ne_session_policy_copy_flow_divert_token, 
-                       _ne_session_policy_copy_flow_divert_token_with_key, _ne_session_policy_match_get_filter_unit, 
-                       _ne_session_policy_match_get_flow_divert_unit, _ne_session_policy_match_get_scoped_interface_index, 
-                       _ne_session_policy_match_get_service, _ne_session_policy_match_get_service_action, 
-                       _ne_session_policy_match_get_service_type, _ne_session_policy_match_is_drop, 
-                       _ne_session_policy_match_is_flow_divert, _ne_session_policy_match_service_is_registered, 
-                       _ne_session_release, _ne_session_retain, _ne_session_send_barrier, 
-                       _ne_session_service_get_dns_service_id, _ne_session_service_get_dns_service_id_for_interface, 
-                       _ne_session_service_matches_address, _ne_session_service_matches_address_for_interface, 
-                       _ne_session_set_event_handler, _ne_session_set_socket_attributes, 
-                       _ne_session_should_disable_nexus, _ne_session_start, _ne_session_start_on_behalf_of, 
-                       _ne_session_start_with_options, _ne_session_status_to_string, 
-                       _ne_session_stop, _ne_session_stop_all_with_plugin_type, _ne_session_stop_reason_to_string, 
-                       _ne_session_type_to_string, _ne_session_use_as_system_vpn, 
-                       _ne_session_use_ikev2provider, _nehelper_copy_connection, 
-                       _nehelper_queue, _nelog_is_debug_logging_enabled, _nelog_is_extra_vpn_logging_enabled, 
-                       _nelog_is_info_logging_enabled ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           FA22F928-D91B-3AA5-96BB-3186AC0FB264
-  - target:          x86_64-maccatalyst
-    value:           FA22F928-D91B-3AA5-96BB-3186AC0FB264
-install-name:    '/usr/lib/system/libsystem_notify.dylib'
-current-version: 241.100.2
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ __notify_fork_child, _notify_cancel, _notify_check, _notify_dump_status, 
-                       _notify_get_event, _notify_get_state, _notify_is_valid_token, 
-                       _notify_monitor_file, _notify_peek, _notify_post, _notify_register_check, 
-                       _notify_register_dispatch, _notify_register_file_descriptor, 
-                       _notify_register_mach_port, _notify_register_plain, _notify_register_signal, 
-                       _notify_resume, _notify_resume_pid, _notify_set_options, _notify_set_state, 
-                       _notify_simple_post, _notify_suspend, _notify_suspend_pid ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           009A7C1F-313A-318E-B9F2-30F4C06FEA5C
-  - target:          x86_64-maccatalyst
-    value:           009A7C1F-313A-318E-B9F2-30F4C06FEA5C
-install-name:    '/usr/lib/system/libsystem_platform.dylib'
-current-version: 220.100.1
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _OSAtomicAdd32, _OSAtomicAdd32Barrier, _OSAtomicAdd64, _OSAtomicAdd64Barrier, 
-                       _OSAtomicAnd32, _OSAtomicAnd32Barrier, _OSAtomicAnd32Orig, 
-                       _OSAtomicAnd32OrigBarrier, _OSAtomicCompareAndSwap32, _OSAtomicCompareAndSwap32Barrier, 
-                       _OSAtomicCompareAndSwap64, _OSAtomicCompareAndSwap64Barrier, 
-                       _OSAtomicCompareAndSwapInt, _OSAtomicCompareAndSwapIntBarrier, 
-                       _OSAtomicCompareAndSwapLong, _OSAtomicCompareAndSwapLongBarrier, 
-                       _OSAtomicCompareAndSwapPtr, _OSAtomicCompareAndSwapPtrBarrier, 
-                       _OSAtomicDecrement32, _OSAtomicDecrement32Barrier, _OSAtomicDecrement64, 
-                       _OSAtomicDecrement64Barrier, _OSAtomicDequeue, _OSAtomicEnqueue, 
-                       _OSAtomicFifoDequeue, _OSAtomicFifoEnqueue, _OSAtomicIncrement32, 
-                       _OSAtomicIncrement32Barrier, _OSAtomicIncrement64, _OSAtomicIncrement64Barrier, 
-                       _OSAtomicOr32, _OSAtomicOr32Barrier, _OSAtomicOr32Orig, _OSAtomicOr32OrigBarrier, 
-                       _OSAtomicTestAndClear, _OSAtomicTestAndClearBarrier, _OSAtomicTestAndSet, 
-                       _OSAtomicTestAndSetBarrier, _OSAtomicXor32, _OSAtomicXor32Barrier, 
-                       _OSAtomicXor32Orig, _OSAtomicXor32OrigBarrier, _OSMemoryBarrier, 
-                       _OSSpinLockLock, _OSSpinLockTry, _OSSpinLockUnlock, ___bzero, 
-                       ___libplatform_init, ___os_once_reset, ___platform_sigaction, 
-                       __longjmp, __os_alloc_once, __os_lock_type_eliding, __os_lock_type_handoff, 
-                       __os_lock_type_nospin, __os_lock_type_spin, __os_lock_type_transactional, 
-                       __os_lock_type_unfair, __os_nospin_lock_lock, __os_nospin_lock_trylock, 
-                       __os_nospin_lock_unlock, __os_once, __os_semaphore_create, 
-                       __os_semaphore_dispose, __os_semaphore_signal, __os_semaphore_wait, 
-                       __platform_bzero, __platform_memccpy, __platform_memchr, __platform_memcmp, 
-                       __platform_memmove, __platform_memset, __platform_memset_pattern16, 
-                       __platform_memset_pattern4, __platform_memset_pattern8, __platform_strchr, 
-                       __platform_strcmp, __platform_strcpy, __platform_strlcat, 
-                       __platform_strlcpy, __platform_strlen, __platform_strncmp, 
-                       __platform_strncpy, __platform_strnlen, __platform_strstr, 
-                       __setjmp, __sigtramp, __simple_asl_log, __simple_asl_log_prog, 
-                       __simple_asl_msg_new, __simple_asl_msg_set, __simple_asl_send, 
-                       __simple_dprintf, __simple_esappend, __simple_esprintf, __simple_getenv, 
-                       __simple_put, __simple_putline, __simple_salloc, __simple_sappend, 
-                       __simple_sfree, __simple_sprintf, __simple_sresize, __simple_string, 
-                       __simple_vdprintf, __simple_vesprintf, __simple_vsprintf, 
-                       __spin_lock, __spin_lock_try, __spin_unlock, _ffs, _ffsl, 
-                       _ffsll, _fls, _flsl, _flsll, _getcontext, _longjmp, _longjmperror, 
-                       _makecontext, _os_lock_lock, _os_lock_trylock, _os_lock_unlock, 
-                       _os_unfair_lock_assert_not_owner, _os_unfair_lock_assert_owner, 
-                       _os_unfair_lock_lock, _os_unfair_lock_lock_no_tsd_4libpthread, 
-                       _os_unfair_lock_lock_with_options, _os_unfair_lock_lock_with_options_4Libc, 
-                       _os_unfair_lock_trylock, _os_unfair_lock_unlock, _os_unfair_lock_unlock_4Libc, 
-                       _os_unfair_lock_unlock_no_tsd_4libpthread, _os_unfair_recursive_lock_lock_with_options, 
-                       _os_unfair_recursive_lock_owned, _os_unfair_recursive_lock_trylock, 
-                       _os_unfair_recursive_lock_tryunlock4objc, _os_unfair_recursive_lock_unlock, 
-                       _os_unfair_recursive_lock_unlock_forked_child, _platform_task_attach, 
-                       _platform_task_copy_next_thread, _platform_task_detach, _platform_task_is_64_bit, 
-                       _platform_task_perform, _platform_task_resume_threads, _platform_task_suspend_threads, 
-                       _platform_task_update_threads, _platform_thread_abort_safely, 
-                       _platform_thread_get_pthread, _platform_thread_get_state, 
-                       _platform_thread_get_unique_id, _platform_thread_info, _platform_thread_perform, 
-                       _platform_thread_release, _platform_thread_resume, _platform_thread_set_state, 
-                       _platform_thread_suspend, _setcontext, _setjmp, _siglongjmp, 
-                       _sigsetjmp, _spin_lock, _spin_lock_try, _spin_unlock, _swapcontext, 
-                       _sys_cache_control, _sys_dcache_flush, _sys_icache_invalidate ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           62CB1A98-0B8F-31E7-A02B-A1139927F61D
-  - target:          x86_64-maccatalyst
-    value:           62CB1A98-0B8F-31E7-A02B-A1139927F61D
-install-name:    '/usr/lib/system/libsystem_pthread.dylib'
-current-version: 416.100.3
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ ____chkstk_darwin, ___is_threaded, ___pthread_init, ___pthread_workqueue_setkill, 
-                       ___unix_conforming, __pthread_atfork_child, __pthread_atfork_child_handlers, 
-                       __pthread_atfork_parent, __pthread_atfork_parent_handlers, 
-                       __pthread_atfork_prepare, __pthread_atfork_prepare_handlers, 
-                       __pthread_clear_qos_tsd, __pthread_exit_if_canceled, __pthread_fork_child, 
-                       __pthread_fork_child_postinit, __pthread_fork_parent, __pthread_fork_prepare, 
-                       __pthread_is_threaded, __pthread_joiner_wake, __pthread_mutex_enable_legacy_mode, 
-                       __pthread_override_qos_class_end_direct, __pthread_override_qos_class_start_direct, 
-                       __pthread_qos_class_decode, __pthread_qos_class_encode, __pthread_qos_class_encode_workqueue, 
-                       __pthread_qos_override_end_direct, __pthread_qos_override_start_direct, 
-                       __pthread_self, __pthread_set_properties_self, __pthread_set_self, 
-                       __pthread_setspecific_static, __pthread_start, __pthread_testcancel, 
-                       __pthread_workloop_create, __pthread_workloop_destroy, __pthread_workqueue_addthreads, 
-                       __pthread_workqueue_asynchronous_override_add, __pthread_workqueue_asynchronous_override_reset_all_self, 
-                       __pthread_workqueue_asynchronous_override_reset_self, __pthread_workqueue_init, 
-                       __pthread_workqueue_init_with_kevent, __pthread_workqueue_init_with_workloop, 
-                       __pthread_workqueue_override_reset, __pthread_workqueue_override_start_direct, 
-                       __pthread_workqueue_override_start_direct_check_owner, __pthread_workqueue_set_event_manager_priority, 
-                       __pthread_workqueue_should_narrow, __pthread_workqueue_supported, 
-                       __pthread_wqthread, _cthread_yield, _posix_spawnattr_get_qos_class_np, 
-                       _posix_spawnattr_set_qos_class_np, _pthread_atfork, _pthread_attr_destroy, 
-                       _pthread_attr_get_qos_class_np, _pthread_attr_getdetachstate, 
-                       _pthread_attr_getguardsize, _pthread_attr_getinheritsched, 
-                       _pthread_attr_getschedparam, _pthread_attr_getschedpolicy, 
-                       _pthread_attr_getscope, _pthread_attr_getstack, _pthread_attr_getstackaddr, 
-                       _pthread_attr_getstacksize, _pthread_attr_init, _pthread_attr_set_qos_class_np, 
-                       _pthread_attr_setcpupercent_np, _pthread_attr_setdetachstate, 
-                       _pthread_attr_setguardsize, _pthread_attr_setinheritsched, 
-                       _pthread_attr_setschedparam, _pthread_attr_setschedpolicy, 
-                       _pthread_attr_setscope, _pthread_attr_setstack, _pthread_attr_setstackaddr, 
-                       _pthread_attr_setstacksize, _pthread_cancel, _pthread_chdir_np, 
-                       _pthread_cond_broadcast, _pthread_cond_destroy, _pthread_cond_init, 
-                       _pthread_cond_signal, _pthread_cond_signal_thread_np, _pthread_cond_timedwait, 
-                       '_pthread_cond_timedwait$NOCANCEL', _pthread_cond_timedwait_relative_np, 
-                       _pthread_cond_wait, '_pthread_cond_wait$NOCANCEL', _pthread_condattr_destroy, 
-                       _pthread_condattr_getpshared, _pthread_condattr_init, _pthread_condattr_setpshared, 
-                       _pthread_create, _pthread_create_from_mach_thread, _pthread_create_suspended_np, 
-                       _pthread_current_stack_contains_np, _pthread_dependency_fulfill_np, 
-                       _pthread_dependency_init_np, _pthread_dependency_wait_np, 
-                       _pthread_detach, _pthread_equal, _pthread_exit, _pthread_fchdir_np, 
-                       _pthread_from_mach_thread_np, _pthread_get_qos_class_np, _pthread_get_stackaddr_np, 
-                       _pthread_get_stacksize_np, _pthread_getconcurrency, _pthread_getname_np, 
-                       _pthread_getschedparam, _pthread_getspecific, _pthread_introspection_hook_install, 
-                       _pthread_is_threaded_np, _pthread_join, '_pthread_join$NOCANCEL', 
-                       _pthread_key_create, _pthread_key_delete, _pthread_key_init_np, 
-                       _pthread_kill, _pthread_layout_offsets, _pthread_mach_thread_np, 
-                       _pthread_main_np, _pthread_main_thread_np, _pthread_mutex_destroy, 
-                       _pthread_mutex_getprioceiling, _pthread_mutex_init, _pthread_mutex_lock, 
-                       _pthread_mutex_setprioceiling, _pthread_mutex_trylock, _pthread_mutex_unlock, 
-                       _pthread_mutexattr_destroy, _pthread_mutexattr_getpolicy_np, 
-                       _pthread_mutexattr_getprioceiling, _pthread_mutexattr_getprotocol, 
-                       _pthread_mutexattr_getpshared, _pthread_mutexattr_gettype, 
-                       _pthread_mutexattr_init, _pthread_mutexattr_setpolicy_np, 
-                       _pthread_mutexattr_setprioceiling, _pthread_mutexattr_setprotocol, 
-                       _pthread_mutexattr_setpshared, _pthread_mutexattr_settype, 
-                       _pthread_once, _pthread_override_qos_class_end_np, _pthread_override_qos_class_start_np, 
-                       _pthread_prefer_alternate_amx_self, _pthread_qos_max_parallelism, 
-                       _pthread_rwlock_destroy, _pthread_rwlock_init, _pthread_rwlock_rdlock, 
-                       _pthread_rwlock_tryrdlock, _pthread_rwlock_trywrlock, _pthread_rwlock_unlock, 
-                       _pthread_rwlock_wrlock, _pthread_rwlockattr_destroy, _pthread_rwlockattr_getpshared, 
-                       _pthread_rwlockattr_init, _pthread_rwlockattr_setpshared, 
-                       _pthread_self, _pthread_set_fixedpriority_self, _pthread_set_qos_class_np, 
-                       _pthread_set_qos_class_self_np, _pthread_set_timeshare_self, 
-                       _pthread_setcancelstate, _pthread_setcanceltype, _pthread_setconcurrency, 
-                       _pthread_setname_np, _pthread_setschedparam, _pthread_setspecific, 
-                       _pthread_sigmask, _pthread_stack_frame_decode_np, _pthread_testcancel, 
-                       _pthread_threadid_np, _pthread_time_constraint_max_parallelism, 
-                       _pthread_workqueue_addthreads_np, _pthread_workqueue_setdispatch_np, 
-                       _pthread_workqueue_setdispatchoffset_np, _pthread_workqueue_setup, 
-                       _pthread_yield_np, _qos_class_main, _qos_class_self, _sched_get_priority_max, 
-                       _sched_get_priority_min, _sched_yield, _sigwait, '_sigwait$NOCANCEL', 
-                       _start_wqthread, _thread_chkstk_darwin, _thread_start ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           4ADBB2C0-C8B9-39FF-B9AF-2E00460A0FD6
-  - target:          x86_64-maccatalyst
-    value:           4ADBB2C0-C8B9-39FF-B9AF-2E00460A0FD6
-install-name:    '/usr/lib/system/libsystem_sandbox.dylib'
-current-version: 1217.140.4
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _APP_SANDBOX_IOKIT_CLIENT, _APP_SANDBOX_MACH, _APP_SANDBOX_READ, 
-                       _APP_SANDBOX_READ_WRITE, _IOS_SANDBOX_APPLICATION_GROUP, _IOS_SANDBOX_CONTAINER, 
-                       _SANDBOX_CHECK_ALLOW_APPROVAL, _SANDBOX_CHECK_CANONICAL, _SANDBOX_CHECK_NOFOLLOW, 
-                       _SANDBOX_CHECK_NO_APPROVAL, _SANDBOX_CHECK_NO_REPORT, _SANDBOX_EXTENSION_CANONICAL, 
-                       _SANDBOX_EXTENSION_DEFAULT, _SANDBOX_EXTENSION_MACL_LEARNING, 
-                       _SANDBOX_EXTENSION_MAGIC, _SANDBOX_EXTENSION_NOFOLLOW, _SANDBOX_EXTENSION_NO_REPORT, 
-                       _SANDBOX_EXTENSION_NO_STORAGE_CLASS, _SANDBOX_EXTENSION_PREFIXMATCH, 
-                       _SANDBOX_EXTENSION_UNRESOLVED, _SANDBOX_EXTENSION_USER_INTENT, 
-                       __amkrtemp, __sandbox_in_a_container, _gpu_bundle_find_trusted, 
-                       _gpu_bundle_is_path_trusted, _kSBXProfileNoInternet, _kSBXProfileNoNetwork, 
-                       _kSBXProfileNoWrite, _kSBXProfileNoWriteExceptTemporary, _kSBXProfilePureComputation, 
-                       _rootless_allows_task_for_pid, _rootless_apply, _rootless_apply_internal, 
-                       _rootless_apply_relative, _rootless_check_datavault_flag, 
-                       _rootless_check_restricted_flag, _rootless_check_trusted, 
-                       _rootless_check_trusted_class, _rootless_check_trusted_fd, 
-                       _rootless_convert_to_datavault, _rootless_manifest_free, _rootless_manifest_parse, 
-                       _rootless_mkdir_datavault, _rootless_mkdir_nounlink, _rootless_mkdir_restricted, 
-                       _rootless_preflight, _rootless_protected_volume, _rootless_register_trusted_storage_class, 
-                       _rootless_restricted_environment, _rootless_suspend, _rootless_trusted_by_self_token, 
-                       _rootless_verify_trusted_by_self_token, _sandbox_check, _sandbox_check_bulk, 
-                       _sandbox_check_by_audit_token, _sandbox_check_by_reference, 
-                       _sandbox_check_by_uniqueid, _sandbox_consume_extension, _sandbox_consume_fs_extension, 
-                       _sandbox_consume_mach_extension, _sandbox_container_path_for_audit_token, 
-                       _sandbox_container_path_for_pid, _sandbox_extension_consume, 
-                       _sandbox_extension_issue_file, _sandbox_extension_issue_file_to_process, 
-                       _sandbox_extension_issue_file_to_process_by_pid, _sandbox_extension_issue_file_to_self, 
-                       _sandbox_extension_issue_generic, _sandbox_extension_issue_generic_to_process, 
-                       _sandbox_extension_issue_generic_to_process_by_pid, _sandbox_extension_issue_iokit_registry_entry_class, 
-                       _sandbox_extension_issue_iokit_registry_entry_class_to_process, 
-                       _sandbox_extension_issue_iokit_registry_entry_class_to_process_by_pid, 
-                       _sandbox_extension_issue_iokit_user_client_class, _sandbox_extension_issue_mach, 
-                       _sandbox_extension_issue_mach_to_process, _sandbox_extension_issue_mach_to_process_by_pid, 
-                       _sandbox_extension_issue_posix_ipc, _sandbox_extension_reap, 
-                       _sandbox_extension_release, _sandbox_extension_release_file, 
-                       _sandbox_extension_update_file, _sandbox_free_error, _sandbox_init, 
-                       _sandbox_init_from_pid, _sandbox_init_with_extensions, _sandbox_init_with_parameters, 
-                       _sandbox_issue_extension, _sandbox_issue_fs_extension, _sandbox_issue_fs_rw_extension, 
-                       _sandbox_issue_mach_extension, _sandbox_note, _sandbox_passthrough_access, 
-                       _sandbox_proc_getcontainer, _sandbox_proc_getprofilename, 
-                       _sandbox_query_approval_policy_for_path, _sandbox_query_user_intent_for_process_with_audit_token, 
-                       _sandbox_reference_release, _sandbox_reference_retain_by_audit_token, 
-                       _sandbox_release_fs_extension, _sandbox_requests_integrity_protection_for_preference_domain, 
-                       _sandbox_set_container_path_for_application_group, _sandbox_set_container_path_for_application_group_with_persona, 
-                       _sandbox_set_container_path_for_signing_id, _sandbox_set_container_path_for_signing_id_with_persona, 
-                       _sandbox_spawnattrs_getcontainer, _sandbox_spawnattrs_getprofilename, 
-                       _sandbox_spawnattrs_init, _sandbox_spawnattrs_setcontainer, 
-                       _sandbox_spawnattrs_setprofilename, _sandbox_suspend, _sandbox_unsuspend ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           F80872AA-E1FD-3D7E-8729-467656EC6561
-  - target:          x86_64-maccatalyst
-    value:           F80872AA-E1FD-3D7E-8729-467656EC6561
-install-name:    '/usr/lib/system/libsystem_secinit.dylib'
-current-version: 62.100.2
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ __libsecinit_initializer, _libsecinit_delete_all_data_container_content_for_current_user, 
-                       _libsecinit_fileoperation_save, _libsecinit_fileoperation_set_attributes, 
-                       _libsecinit_fileoperation_symlink ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           5820A2AF-CE72-3AB3-ABCC-273A3419FB55
-  - target:          x86_64-maccatalyst
-    value:           5820A2AF-CE72-3AB3-ABCC-273A3419FB55
-install-name:    '/usr/lib/system/libsystem_symptoms.dylib'
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ __symptoms_daemon_fallback_initial_disposition, __symptoms_daemon_fallback_subseq_disposition, 
-                       __symptoms_is_daemon_fallback_blacklisted, _symptom_framework_init, 
-                       _symptom_framework_set_version, _symptom_new, _symptom_send, 
-                       _symptom_send_immediate, _symptom_set_additional_qualifier, 
-                       _symptom_set_qualifier ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           04B47629-847B-3D74-8ABE-C05EF9DEEFE4
-  - target:          x86_64-maccatalyst
-    value:           04B47629-847B-3D74-8ABE-C05EF9DEEFE4
-install-name:    '/usr/lib/system/libsystem_trace.dylib'
-current-version: 1147.120
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ __libtrace_fork_child, __libtrace_init, __os_activity_create, 
-                       __os_activity_current, __os_activity_initiate, __os_activity_initiate_f, 
-                       __os_activity_label_useraction, __os_activity_none, __os_activity_set_breadcrumb, 
-                       __os_activity_start, __os_activity_stream_entry_encode, __os_log_create, 
-                       __os_log_debug, __os_log_debug_impl, __os_log_default, __os_log_disabled, 
-                       __os_log_error, __os_log_error_impl, __os_log_fault, __os_log_fault_impl, 
-                       __os_log_impl, __os_log_internal, __os_log_pack_fill, __os_log_pack_size, 
-                       __os_log_preferences_compute, __os_log_preferences_load, __os_log_release, 
-                       __os_log_set_nscf_formatter, __os_signpost_emit_impl, __os_signpost_emit_unreliably_impl, 
-                       __os_signpost_emit_unreliably_with_name_impl, __os_signpost_emit_with_name_impl, 
-                       __os_signpost_pack_fill, __os_signpost_pack_send, __os_state_request_for_pidlist, 
-                       __os_trace_atm_diagnostic_config, __os_trace_calloc, __os_trace_fdscandir_b, 
-                       __os_trace_get_boot_uuid, __os_trace_get_image_info, __os_trace_get_mode_for_pid, 
-                       __os_trace_get_times_now, __os_trace_intprefsdir_path, __os_trace_is_development_build, 
-                       __os_trace_log_simple, __os_trace_macho_for_each_slice, __os_trace_malloc, 
-                       __os_trace_memdup, __os_trace_mmap, __os_trace_mmap_at, __os_trace_mode_match_4tests, 
-                       __os_trace_prefs_latest_version_4tests, __os_trace_prefsdir_path, 
-                       __os_trace_read_file_at, __os_trace_read_plist_at, __os_trace_realloc, 
-                       __os_trace_scandir_free_namelist, __os_trace_set_diagnostic_flags, 
-                       __os_trace_set_mode_for_pid, __os_trace_strdup, __os_trace_sysprefsdir_path, 
-                       __os_trace_with_buffer, __os_trace_write, __os_trace_writev, 
-                       __os_trace_zalloc, _os_activity_apply, _os_activity_apply_f, 
-                       _os_activity_diagnostic_for_pid, _os_activity_end, _os_activity_for_task_thread, 
-                       _os_activity_for_thread, _os_activity_get_active, _os_activity_get_identifier, 
-                       _os_activity_iterate_activities, _os_activity_iterate_breadcrumbs, 
-                       _os_activity_iterate_messages, _os_activity_iterate_processes, 
-                       _os_activity_messages_for_thread, _os_activity_scope_enter, 
-                       _os_activity_scope_leave, _os_log_backtrace_copy_description, 
-                       _os_log_backtrace_copy_serialized_buffer, _os_log_backtrace_create_from_buffer, 
-                       _os_log_backtrace_create_from_current, _os_log_backtrace_create_from_pcs, 
-                       _os_log_backtrace_create_from_return_address, _os_log_backtrace_destroy, 
-                       _os_log_backtrace_get_frames, _os_log_backtrace_get_length, 
-                       _os_log_backtrace_print_to_blob, _os_log_backtrace_serialize_to_blob, 
-                       _os_log_create, _os_log_errors_count, _os_log_fault_default_callback, 
-                       _os_log_faults_count, _os_log_fmt_compose, _os_log_fmt_convert_trace, 
-                       _os_log_fmt_extract_pubdata, _os_log_fmt_get_plugin, _os_log_get_type, 
-                       _os_log_is_debug_enabled, _os_log_is_enabled, _os_log_pack_compose, 
-                       _os_log_pack_send, _os_log_pack_send_and_compose, _os_log_set_client_type, 
-                       _os_log_set_enabled, _os_log_set_fault_callback, _os_log_shim_enabled, 
-                       _os_log_shim_legacy_logging_enabled, _os_log_shim_with_CFString, 
-                       _os_log_type_enabled, _os_log_with_args, _os_signpost_enabled, 
-                       _os_signpost_id_generate, _os_signpost_id_make_with_pointer, 
-                       _os_signpost_set_introspection_hook_4Perf, _os_state_add_handler, 
-                       _os_state_remove_handler, _os_trace_add_task_mode, _os_trace_clear_task_mode, 
-                       _os_trace_debug_enabled, _os_trace_get_code, _os_trace_get_mode, 
-                       _os_trace_get_task_mode, _os_trace_get_type, _os_trace_info_enabled, 
-                       _os_trace_set_mode, _os_trace_set_task_mode ]
-    objc-classes:    [ OS_os_log ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           42B7B509-BAFE-365B-893A-72414C92F5BF
-  - target:          x86_64-maccatalyst
-    value:           42B7B509-BAFE-365B-893A-72414C92F5BF
-install-name:    '/usr/lib/system/libunwind.dylib'
-current-version: 35.4
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ '$ld$hide$os10.4$__Unwind_Backtrace', '$ld$hide$os10.4$__Unwind_DeleteException', 
-                       '$ld$hide$os10.4$__Unwind_FindEnclosingFunction', '$ld$hide$os10.4$__Unwind_Find_FDE', 
-                       '$ld$hide$os10.4$__Unwind_ForcedUnwind', '$ld$hide$os10.4$__Unwind_GetCFA', 
-                       '$ld$hide$os10.4$__Unwind_GetDataRelBase', '$ld$hide$os10.4$__Unwind_GetGR', 
-                       '$ld$hide$os10.4$__Unwind_GetIP', '$ld$hide$os10.4$__Unwind_GetIPInfo', 
-                       '$ld$hide$os10.4$__Unwind_GetLanguageSpecificData', '$ld$hide$os10.4$__Unwind_GetRegionStart', 
-                       '$ld$hide$os10.4$__Unwind_GetTextRelBase', '$ld$hide$os10.4$__Unwind_RaiseException', 
-                       '$ld$hide$os10.4$__Unwind_Resume', '$ld$hide$os10.4$__Unwind_Resume_or_Rethrow', 
-                       '$ld$hide$os10.4$__Unwind_SetGR', '$ld$hide$os10.4$__Unwind_SetIP', 
-                       '$ld$hide$os10.4$___deregister_frame', '$ld$hide$os10.4$___deregister_frame_info', 
-                       '$ld$hide$os10.4$___deregister_frame_info_bases', '$ld$hide$os10.4$___register_frame', 
-                       '$ld$hide$os10.4$___register_frame_info', '$ld$hide$os10.4$___register_frame_info_bases', 
-                       '$ld$hide$os10.4$___register_frame_info_table', '$ld$hide$os10.4$___register_frame_info_table_bases', 
-                       '$ld$hide$os10.4$___register_frame_table', '$ld$hide$os10.5$__Unwind_Backtrace', 
-                       '$ld$hide$os10.5$__Unwind_DeleteException', '$ld$hide$os10.5$__Unwind_FindEnclosingFunction', 
-                       '$ld$hide$os10.5$__Unwind_Find_FDE', '$ld$hide$os10.5$__Unwind_ForcedUnwind', 
-                       '$ld$hide$os10.5$__Unwind_GetCFA', '$ld$hide$os10.5$__Unwind_GetDataRelBase', 
-                       '$ld$hide$os10.5$__Unwind_GetGR', '$ld$hide$os10.5$__Unwind_GetIP', 
-                       '$ld$hide$os10.5$__Unwind_GetIPInfo', '$ld$hide$os10.5$__Unwind_GetLanguageSpecificData', 
-                       '$ld$hide$os10.5$__Unwind_GetRegionStart', '$ld$hide$os10.5$__Unwind_GetTextRelBase', 
-                       '$ld$hide$os10.5$__Unwind_RaiseException', '$ld$hide$os10.5$__Unwind_Resume', 
-                       '$ld$hide$os10.5$__Unwind_Resume_or_Rethrow', '$ld$hide$os10.5$__Unwind_SetGR', 
-                       '$ld$hide$os10.5$__Unwind_SetIP', '$ld$hide$os10.5$___deregister_frame', 
-                       '$ld$hide$os10.5$___deregister_frame_info', '$ld$hide$os10.5$___deregister_frame_info_bases', 
-                       '$ld$hide$os10.5$___register_frame', '$ld$hide$os10.5$___register_frame_info', 
-                       '$ld$hide$os10.5$___register_frame_info_bases', '$ld$hide$os10.5$___register_frame_info_table', 
-                       '$ld$hide$os10.5$___register_frame_info_table_bases', '$ld$hide$os10.5$___register_frame_table', 
-                       '$ld$hide$os10.6$___deregister_frame_info', '$ld$hide$os10.6$___deregister_frame_info_bases', 
-                       '$ld$hide$os10.6$___register_frame_info', '$ld$hide$os10.6$___register_frame_info_bases', 
-                       '$ld$hide$os10.6$___register_frame_info_table', '$ld$hide$os10.6$___register_frame_info_table_bases', 
-                       '$ld$hide$os10.6$___register_frame_table', __Unwind_Backtrace, 
-                       __Unwind_DeleteException, __Unwind_FindEnclosingFunction, 
-                       __Unwind_Find_FDE, __Unwind_ForcedUnwind, __Unwind_GetCFA, 
-                       __Unwind_GetDataRelBase, __Unwind_GetGR, __Unwind_GetIP, __Unwind_GetIPInfo, 
-                       __Unwind_GetLanguageSpecificData, __Unwind_GetRegionStart, 
-                       __Unwind_GetTextRelBase, __Unwind_RaiseException, __Unwind_Resume, 
-                       __Unwind_Resume_or_Rethrow, __Unwind_SetGR, __Unwind_SetIP, 
-                       ___deregister_frame, ___deregister_frame_info, ___deregister_frame_info_bases, 
-                       ___register_frame, ___register_frame_info, ___register_frame_info_bases, 
-                       ___register_frame_info_table, ___register_frame_info_table_bases, 
-                       ___register_frame_table, _unw_get_fpreg, _unw_get_proc_info, 
-                       _unw_get_proc_name, _unw_get_reg, _unw_getcontext, _unw_init_local, 
-                       _unw_is_fpreg, _unw_is_signal_frame, _unw_iterate_dwarf_unwind_cache, 
-                       _unw_regname, _unw_resume, _unw_set_fpreg, _unw_set_reg, _unw_step ]
---- !tapi-tbd
-tbd-version:     4
-targets:         [ x86_64-macos, x86_64-maccatalyst ]
-uuids:
-  - target:          x86_64-macos
-    value:           3E243A41-030F-38E3-9FD2-7B38C66C35B1
-  - target:          x86_64-maccatalyst
-    value:           3E243A41-030F-38E3-9FD2-7B38C66C35B1
-install-name:    '/usr/lib/system/libxpc.dylib'
-current-version: 1738.140.1
-parent-umbrella:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    umbrella:        System
-exports:
-  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
-    symbols:         [ _XPC_ACTIVITY_ALLOW_BATTERY, _XPC_ACTIVITY_APP_REFRESH, _XPC_ACTIVITY_CHECK_IN, 
-                       _XPC_ACTIVITY_COMMUNICATES_WITH_PAIRED_DEVICE, _XPC_ACTIVITY_CPU_INTENSIVE, 
-                       _XPC_ACTIVITY_DELAY, _XPC_ACTIVITY_DESIRED_MOTION_STATE, _XPC_ACTIVITY_DISK_INTENSIVE, 
-                       _XPC_ACTIVITY_DO_IT_LATER, _XPC_ACTIVITY_DUET_ACTIVITY_SCHEDULER_DATA, 
-                       _XPC_ACTIVITY_DUET_ATTRIBUTE_COST, _XPC_ACTIVITY_DUET_ATTRIBUTE_NAME, 
-                       _XPC_ACTIVITY_DUET_ATTRIBUTE_VALUE, _XPC_ACTIVITY_DUET_RELATED_APPLICATIONS, 
-                       _XPC_ACTIVITY_EXCLUSIVE, _XPC_ACTIVITY_EXPECTED_DURATION, 
-                       _XPC_ACTIVITY_GRACE_PERIOD, _XPC_ACTIVITY_GROUP_CONCURRENCY_LIMIT, 
-                       _XPC_ACTIVITY_GROUP_NAME, _XPC_ACTIVITY_INTERVAL, _XPC_ACTIVITY_INTERVAL_15_MIN, 
-                       _XPC_ACTIVITY_INTERVAL_1_DAY, _XPC_ACTIVITY_INTERVAL_1_HOUR, 
-                       _XPC_ACTIVITY_INTERVAL_1_MIN, _XPC_ACTIVITY_INTERVAL_30_MIN, 
-                       _XPC_ACTIVITY_INTERVAL_4_HOURS, _XPC_ACTIVITY_INTERVAL_5_MIN, 
-                       _XPC_ACTIVITY_INTERVAL_7_DAYS, _XPC_ACTIVITY_INTERVAL_8_HOURS, 
-                       _XPC_ACTIVITY_MAY_REBOOT_DEVICE, _XPC_ACTIVITY_MEMORY_INTENSIVE, 
-                       _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE, _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE_MOVING, 
-                       _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE_STATIONARY, _XPC_ACTIVITY_MOTION_STATE_CYCLING, 
-                       _XPC_ACTIVITY_MOTION_STATE_RUNNING, _XPC_ACTIVITY_MOTION_STATE_STATIONARY, 
-                       _XPC_ACTIVITY_MOTION_STATE_WALKING, _XPC_ACTIVITY_NETWORK_TRANSFER_BIDIRECTIONAL, 
-                       _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION, _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION_DOWNLOAD, 
-                       _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION_UPLOAD, _XPC_ACTIVITY_NETWORK_TRANSFER_ENDPOINT, 
-                       _XPC_ACTIVITY_NETWORK_TRANSFER_PARAMETERS, _XPC_ACTIVITY_NETWORK_TRANSFER_SIZE, 
-                       _XPC_ACTIVITY_POST_INSTALL, _XPC_ACTIVITY_POWER_NAP, _XPC_ACTIVITY_PRIORITY, 
-                       _XPC_ACTIVITY_PRIORITY_MAINTENANCE, _XPC_ACTIVITY_PRIORITY_UTILITY, 
-                       _XPC_ACTIVITY_RANDOM_INITIAL_DELAY, _XPC_ACTIVITY_REPEATING, 
-                       _XPC_ACTIVITY_REPLY_ENDPOINT, _XPC_ACTIVITY_REQUIRES_BUDDY_COMPLETE, 
-                       _XPC_ACTIVITY_REQUIRES_CLASS_A, _XPC_ACTIVITY_REQUIRES_CLASS_B, 
-                       _XPC_ACTIVITY_REQUIRES_CLASS_C, _XPC_ACTIVITY_REQUIRE_BATTERY_LEVEL, 
-                       _XPC_ACTIVITY_REQUIRE_HDD_SPINNING, _XPC_ACTIVITY_REQUIRE_INEXPENSIVE_NETWORK_CONNECTIVITY, 
-                       _XPC_ACTIVITY_REQUIRE_NETWORK_CONNECTIVITY, _XPC_ACTIVITY_REQUIRE_SCREEN_SLEEP, 
-                       _XPC_ACTIVITY_REQUIRE_SIGNIFICANT_USER_INACTIVITY, _XPC_ACTIVITY_SEQUENCE_NUMBER, 
-                       _XPC_ACTIVITY_SHOULD_WAKE_DEVICE, _XPC_ACTIVITY_USER_REQUESTED_BACKUP_TASK, 
-                       _XPC_ACTIVITY_USES_DUET_POWER_BUDGETING, _XPC_COALITION_INFO_KEY_BUNDLE_IDENTIFIER, 
-                       _XPC_COALITION_INFO_KEY_CID, _XPC_COALITION_INFO_KEY_NAME, 
-                       _XPC_COALITION_INFO_KEY_RESOURCE_USAGE_BLOB, __availability_version_check, 
-                       __launch_msg2, __launch_service_stats_copy_4ppse_impl, __libxpc_initializer, 
-                       __spawn_via_launchd, __system_ios_support_version_copy_string_sysctl, 
-                       __system_version_copy_string_plist, __system_version_copy_string_sysctl, 
-                       __system_version_fallback, __system_version_parse_string, 
-                       __vproc_get_last_exit_status, __vproc_grab_subset, __vproc_kickstart_by_label, 
-                       __vproc_log, __vproc_log_error, __vproc_logv, __vproc_pid_is_managed, 
-                       __vproc_post_fork_ping, __vproc_send_signal_by_label, __vproc_set_global_on_demand, 
-                       __vproc_standby_begin, __vproc_standby_count, __vproc_standby_end, 
-                       __vproc_standby_timeout, __vproc_transaction_begin, __vproc_transaction_count, 
-                       __vproc_transaction_count_for_pid, __vproc_transaction_end, 
-                       __vproc_transaction_set_clean_callback, __vproc_transaction_try_exit, 
-                       __vproc_transactions_enable, __vprocmgr_detach_from_console, 
-                       __vprocmgr_getsocket, __vprocmgr_init, __vprocmgr_log_drain, 
-                       __vprocmgr_log_forward, __vprocmgr_move_subset_to_user, __vprocmgr_switch_to_session, 
-                       __xpc_bool_create_distinct, __xpc_bool_false, __xpc_bool_set_value, 
-                       __xpc_bool_true, __xpc_connection_set_event_handler_f, __xpc_data_set_value, 
-                       __xpc_dictionary_create_reply_with_port, __xpc_dictionary_extract_mach_send, 
-                       __xpc_dictionary_extract_reply_msg_id, __xpc_dictionary_extract_reply_port, 
-                       __xpc_dictionary_get_reply_msg_id, __xpc_dictionary_set_remote_connection, 
-                       __xpc_dictionary_set_reply_msg_id, __xpc_double_set_value, 
-                       __xpc_error_connection_interrupted, __xpc_error_connection_invalid, 
-                       __xpc_error_key_description, __xpc_error_termination_imminent, 
-                       __xpc_event_key_name, __xpc_event_key_stream_name, __xpc_fd_get_port, 
-                       __xpc_int64_set_value, __xpc_payload_create_from_mach_msg, 
-                       __xpc_pipe_handle_mig, __xpc_runtime_get_entitlements_data, 
-                       __xpc_runtime_get_self_entitlements, __xpc_runtime_is_app_sandboxed, 
-                       __xpc_service_last_xref_cancel, __xpc_shmem_get_mach_port, 
-                       __xpc_spawnattr_pack_string, __xpc_spawnattr_pack_string_fragment, 
-                       __xpc_spawnattr_unpack_string, __xpc_spawnattr_unpack_strings, 
-                       __xpc_string_set_value, __xpc_type_activity, __xpc_type_array, 
-                       __xpc_type_base, __xpc_type_bool, __xpc_type_bundle, __xpc_type_connection, 
-                       __xpc_type_data, __xpc_type_date, __xpc_type_dictionary, __xpc_type_double, 
-                       __xpc_type_endpoint, __xpc_type_error, __xpc_type_fd, __xpc_type_file_transfer, 
-                       __xpc_type_int64, __xpc_type_mach_recv, __xpc_type_mach_send, 
-                       __xpc_type_null, __xpc_type_pipe, __xpc_type_pointer, __xpc_type_serializer, 
-                       __xpc_type_service, __xpc_type_service_instance, __xpc_type_shmem, 
-                       __xpc_type_string, __xpc_type_uint64, __xpc_type_uuid, _bootstrap_check_in, 
-                       _bootstrap_check_in2, _bootstrap_check_in3, _bootstrap_create_server, 
-                       _bootstrap_create_service, _bootstrap_get_root, _bootstrap_info, 
-                       _bootstrap_init, _bootstrap_look_up, _bootstrap_look_up2, 
-                       _bootstrap_look_up3, _bootstrap_look_up_per_user, _bootstrap_lookup_children, 
-                       _bootstrap_parent, _bootstrap_register, _bootstrap_register2, 
-                       _bootstrap_status, _bootstrap_strerror, _bootstrap_subset, 
-                       _bootstrap_unprivileged, _create_and_switch_to_per_session_launchd, 
-                       _launch_activate_socket, _launch_add_external_service, _launch_bootout_user_service_4coresim, 
-                       _launch_copy_busy_extension_instances, _launch_copy_endpoints_properties_for_pid, 
-                       _launch_copy_extension_properties, _launch_copy_extension_properties_for_pid, 
-                       _launch_copy_properties_for_pid_4assertiond, _launch_create_persona, 
-                       _launch_data_alloc, _launch_data_array_get_count, _launch_data_array_get_index, 
-                       _launch_data_array_set_index, _launch_data_copy, _launch_data_dict_get_count, 
-                       _launch_data_dict_insert, _launch_data_dict_iterate, _launch_data_dict_lookup, 
-                       _launch_data_dict_remove, _launch_data_free, _launch_data_get_bool, 
-                       _launch_data_get_errno, _launch_data_get_fd, _launch_data_get_integer, 
-                       _launch_data_get_machport, _launch_data_get_opaque, _launch_data_get_opaque_size, 
-                       _launch_data_get_real, _launch_data_get_string, _launch_data_get_type, 
-                       _launch_data_new_bool, _launch_data_new_errno, _launch_data_new_fd, 
-                       _launch_data_new_integer, _launch_data_new_machport, _launch_data_new_opaque, 
-                       _launch_data_new_real, _launch_data_new_string, _launch_data_pack, 
-                       _launch_data_set_bool, _launch_data_set_errno, _launch_data_set_fd, 
-                       _launch_data_set_integer, _launch_data_set_machport, _launch_data_set_opaque, 
-                       _launch_data_set_real, _launch_data_set_string, _launch_data_unpack, 
-                       _launch_destroy_persona, _launch_disable_directory, _launch_enable_directory, 
-                       _launch_extension_check_in_live_4UIKit, _launch_extension_property_bundle_id, 
-                       _launch_extension_property_host_bundle_id, _launch_extension_property_host_pid, 
-                       _launch_extension_property_path, _launch_extension_property_pid, 
-                       _launch_extension_property_version, _launch_extension_property_xpc_bundle, 
-                       _launch_get_fd, _launch_get_service_enabled, _launch_get_system_service_enabled, 
-                       _launch_msg, _launch_path_for_user_service_4coresim, _launch_perfcheck_property_endpoint_active, 
-                       _launch_perfcheck_property_endpoint_event, _launch_perfcheck_property_endpoint_name, 
-                       _launch_perfcheck_property_endpoint_needs_activation, _launch_perfcheck_property_endpoints, 
-                       _launch_remove_external_service, _launch_service_stats_disable_4ppse, 
-                       _launch_service_stats_enable_4ppse, _launch_service_stats_is_enabled_4ppse, 
-                       _launch_set_service_enabled, _launch_set_system_service_enabled, 
-                       _launch_socket_service_check_in, _launch_version_for_user_service_4coresim, 
-                       _launch_wait, _launchd_close, _launchd_fdopen, _launchd_getfd, 
-                       _launchd_msg_recv, _launchd_msg_send, _load_launchd_jobs_at_loginwindow_prompt, 
-                       _mpm_uncork_fork, _mpm_wait, _os_system_version_get_current_version, 
-                       _os_system_version_sim_get_current_host_version, _os_transaction_copy_description, 
-                       _os_transaction_create, _os_transaction_needs_more_time, _place_hold_on_real_loginwindow, 
-                       _reboot2, _reboot3, _vproc_release, _vproc_retain, _vproc_standby_begin, 
-                       _vproc_standby_end, _vproc_swap_complex, _vproc_swap_integer, 
-                       _vproc_swap_string, _vproc_transaction_begin, _vproc_transaction_end, 
-                       _vprocmgr_lookup_vproc, _xpc_activity_add_eligibility_changed_handler, 
-                       _xpc_activity_copy_criteria, _xpc_activity_copy_dispatch_queue, 
-                       _xpc_activity_copy_identifier, _xpc_activity_debug, _xpc_activity_defer_until_network_change, 
-                       _xpc_activity_defer_until_percentage, _xpc_activity_get_percentage, 
-                       _xpc_activity_get_state, _xpc_activity_list, _xpc_activity_register, 
-                       _xpc_activity_remove_eligibility_changed_handler, _xpc_activity_run, 
-                       _xpc_activity_set_completion_status, _xpc_activity_set_criteria, 
-                       _xpc_activity_set_network_threshold, _xpc_activity_set_state, 
-                       _xpc_activity_should_defer, _xpc_activity_unregister, _xpc_add_bundle, 
-                       _xpc_add_bundles_for_domain, _xpc_array_append_value, _xpc_array_apply, 
-                       _xpc_array_apply_f, _xpc_array_copy_mach_send, _xpc_array_create, 
-                       _xpc_array_create_connection, _xpc_array_dup_fd, _xpc_array_get_array, 
-                       _xpc_array_get_bool, _xpc_array_get_count, _xpc_array_get_data, 
-                       _xpc_array_get_date, _xpc_array_get_dictionary, _xpc_array_get_double, 
-                       _xpc_array_get_int64, _xpc_array_get_pointer, _xpc_array_get_string, 
-                       _xpc_array_get_uint64, _xpc_array_get_uuid, _xpc_array_get_value, 
-                       _xpc_array_set_bool, _xpc_array_set_connection, _xpc_array_set_data, 
-                       _xpc_array_set_date, _xpc_array_set_double, _xpc_array_set_fd, 
-                       _xpc_array_set_int64, _xpc_array_set_mach_send, _xpc_array_set_pointer, 
-                       _xpc_array_set_string, _xpc_array_set_uint64, _xpc_array_set_uuid, 
-                       _xpc_array_set_value, _xpc_atfork_child, _xpc_atfork_parent, 
-                       _xpc_atfork_prepare, _xpc_bool_create, _xpc_bool_get_value, 
-                       _xpc_bundle_copy_info_dictionary, _xpc_bundle_copy_resource_path, 
-                       _xpc_bundle_copy_services, _xpc_bundle_create, _xpc_bundle_create_from_origin, 
-                       _xpc_bundle_create_main, _xpc_bundle_get_error, _xpc_bundle_get_executable_path, 
-                       _xpc_bundle_get_info_dictionary, _xpc_bundle_get_path, _xpc_bundle_get_property, 
-                       _xpc_bundle_get_xpcservice_dictionary, _xpc_bundle_populate, 
-                       _xpc_bundle_resolve, _xpc_bundle_resolve_on_queue, _xpc_bundle_resolve_sync, 
-                       _xpc_coalition_copy_info, _xpc_coalition_history_pipe_async, 
-                       _xpc_connection_activate, _xpc_connection_cancel, _xpc_connection_copy_bundle_id, 
-                       _xpc_connection_copy_entitlement_value, _xpc_connection_create, 
-                       _xpc_connection_create_from_endpoint, _xpc_connection_create_listener, 
-                       _xpc_connection_create_mach_service, _xpc_connection_enable_sim2host_4sim, 
-                       _xpc_connection_enable_termination_imminent_event, _xpc_connection_get_asid, 
-                       _xpc_connection_get_audit_token, _xpc_connection_get_bs_type, 
-                       _xpc_connection_get_context, _xpc_connection_get_egid, _xpc_connection_get_euid, 
-                       _xpc_connection_get_instance, _xpc_connection_get_name, _xpc_connection_get_pid, 
-                       _xpc_connection_is_extension, _xpc_connection_kill, _xpc_connection_resume, 
-                       _xpc_connection_send_barrier, _xpc_connection_send_message, 
-                       _xpc_connection_send_message_with_reply, _xpc_connection_send_message_with_reply_sync, 
-                       _xpc_connection_send_notification, _xpc_connection_set_bootstrap, 
-                       _xpc_connection_set_bs_type, _xpc_connection_set_context, 
-                       _xpc_connection_set_event_channel, _xpc_connection_set_event_handler, 
-                       _xpc_connection_set_finalizer_f, _xpc_connection_set_instance, 
-                       _xpc_connection_set_legacy, _xpc_connection_set_non_launching, 
-                       _xpc_connection_set_oneshot_instance, _xpc_connection_set_privileged, 
-                       _xpc_connection_set_qos_class_fallback, _xpc_connection_set_qos_class_floor, 
-                       _xpc_connection_set_target_queue, _xpc_connection_set_target_uid, 
-                       _xpc_connection_suspend, _xpc_copy, _xpc_copy_bootstrap, _xpc_copy_clean_description, 
-                       _xpc_copy_code_signing_identity_for_token, _xpc_copy_debug_description, 
-                       _xpc_copy_description, _xpc_copy_domain, _xpc_copy_entitlement_for_self, 
-                       _xpc_copy_entitlement_for_token, _xpc_copy_entitlements_data_for_token, 
-                       _xpc_copy_entitlements_for_pid, _xpc_copy_entitlements_for_self, 
-                       _xpc_copy_event, _xpc_copy_event_entitlements, _xpc_copy_extension_sdk_entry, 
-                       _xpc_copy_short_description, _xpc_create_from_plist, _xpc_create_from_plist_descriptor, 
-                       _xpc_create_from_serialization, _xpc_create_from_serialization_with_ool, 
-                       _xpc_create_reply_with_format, _xpc_create_reply_with_format_and_arguments, 
-                       _xpc_create_with_format, _xpc_create_with_format_and_arguments, 
-                       _xpc_data_create, _xpc_data_create_with_dispatch_data, _xpc_data_get_bytes, 
-                       _xpc_data_get_bytes_ptr, _xpc_data_get_inline_max, _xpc_data_get_length, 
-                       _xpc_date_create, _xpc_date_create_absolute, _xpc_date_create_from_current, 
-                       _xpc_date_get_value, _xpc_date_get_value_absolute, _xpc_date_is_int64_range, 
-                       _xpc_dictionary_apply, _xpc_dictionary_apply_f, _xpc_dictionary_copy_basic_description, 
-                       _xpc_dictionary_copy_mach_send, _xpc_dictionary_create, _xpc_dictionary_create_connection, 
-                       _xpc_dictionary_create_reply, _xpc_dictionary_dup_fd, _xpc_dictionary_expects_reply, 
-                       _xpc_dictionary_extract_mach_recv, _xpc_dictionary_get_array, 
-                       _xpc_dictionary_get_audit_token, _xpc_dictionary_get_bool, 
-                       _xpc_dictionary_get_connection, _xpc_dictionary_get_count, 
-                       _xpc_dictionary_get_data, _xpc_dictionary_get_date, _xpc_dictionary_get_dictionary, 
-                       _xpc_dictionary_get_double, _xpc_dictionary_get_int64, _xpc_dictionary_get_pointer, 
-                       _xpc_dictionary_get_remote_connection, _xpc_dictionary_get_string, 
-                       _xpc_dictionary_get_uint64, _xpc_dictionary_get_uuid, _xpc_dictionary_get_value, 
-                       _xpc_dictionary_handoff_reply, _xpc_dictionary_handoff_reply_f, 
-                       _xpc_dictionary_send_reply, _xpc_dictionary_set_bool, _xpc_dictionary_set_connection, 
-                       _xpc_dictionary_set_data, _xpc_dictionary_set_date, _xpc_dictionary_set_double, 
-                       _xpc_dictionary_set_fd, _xpc_dictionary_set_int64, _xpc_dictionary_set_mach_recv, 
-                       _xpc_dictionary_set_mach_send, _xpc_dictionary_set_pointer, 
-                       _xpc_dictionary_set_string, _xpc_dictionary_set_uint64, _xpc_dictionary_set_uuid, 
-                       _xpc_dictionary_set_value, _xpc_double_create, _xpc_double_get_value, 
-                       _xpc_endpoint_compare, _xpc_endpoint_copy_listener_port_4sim, 
-                       _xpc_endpoint_create, _xpc_endpoint_create_bs_named, _xpc_endpoint_create_mach_port_4sim, 
-                       _xpc_equal, _xpc_event_publisher_activate, _xpc_event_publisher_create, 
-                       _xpc_event_publisher_fire, _xpc_event_publisher_fire_noboost, 
-                       _xpc_event_publisher_fire_with_reply, _xpc_event_publisher_fire_with_reply_sync, 
-                       _xpc_event_publisher_get_subscriber_asid, _xpc_event_publisher_set_error_handler, 
-                       _xpc_event_publisher_set_handler, _xpc_event_publisher_set_initial_load_completed_handler_4remoted, 
-                       _xpc_event_publisher_set_subscriber_keepalive, _xpc_event_stream_check_in, 
-                       _xpc_event_stream_check_in2, _xpc_exit_reason_get_label, _xpc_extension_type_init, 
-                       _xpc_fd_create, _xpc_fd_dup, _xpc_file_transfer_cancel, _xpc_file_transfer_copy_io, 
-                       _xpc_file_transfer_create_with_fd, _xpc_file_transfer_create_with_path, 
-                       _xpc_file_transfer_get_size, _xpc_file_transfer_get_transfer_id, 
-                       _xpc_file_transfer_send_finished, _xpc_file_transfer_set_transport_writing_callbacks, 
-                       _xpc_file_transfer_write_finished, _xpc_file_transfer_write_to_fd, 
-                       _xpc_file_transfer_write_to_path, _xpc_generate_audit_token, 
-                       _xpc_get_attachment_endpoint, _xpc_get_class4NSXPC, _xpc_get_event_name, 
-                       _xpc_get_type, _xpc_handle_service, _xpc_handle_subservice, 
-                       _xpc_hash, _xpc_impersonate_user, _xpc_init_services, _xpc_inspect_copy_description, 
-                       _xpc_inspect_copy_description_local, _xpc_inspect_copy_short_description, 
-                       _xpc_inspect_copy_short_description_local, _xpc_install_remote_hooks, 
-                       _xpc_int64_create, _xpc_int64_get_value, _xpc_is_kind_of_xpc_object4NSXPC, 
-                       _xpc_mach_recv_create, _xpc_mach_recv_extract_right, _xpc_mach_send_copy_right, 
-                       _xpc_mach_send_create, _xpc_mach_send_create_with_disposition, 
-                       _xpc_mach_send_get_right, _xpc_main, _xpc_make_serialization, 
-                       _xpc_make_serialization_with_ool, _xpc_null_create, _xpc_pipe_create, 
-                       _xpc_pipe_create_from_port, _xpc_pipe_invalidate, _xpc_pipe_receive, 
-                       _xpc_pipe_routine, _xpc_pipe_routine_async, _xpc_pipe_routine_forward, 
-                       _xpc_pipe_routine_reply, _xpc_pipe_routine_with_flags, _xpc_pipe_simpleroutine, 
-                       _xpc_pipe_try_receive, _xpc_pointer_create, _xpc_pointer_get_value, 
-                       _xpc_receive_mach_msg, _xpc_receive_remote_msg, _xpc_release, 
-                       _xpc_retain, _xpc_service_attach, _xpc_service_create, _xpc_service_create_from_specifier, 
-                       _xpc_service_get_rendezvous_token, _xpc_service_instance_dup2, 
-                       _xpc_service_instance_get_context, _xpc_service_instance_get_host_pid, 
-                       _xpc_service_instance_get_pid, _xpc_service_instance_get_type, 
-                       _xpc_service_instance_is_configurable, _xpc_service_instance_run, 
-                       _xpc_service_instance_set_binpref, _xpc_service_instance_set_context, 
-                       _xpc_service_instance_set_cwd, _xpc_service_instance_set_endpoint, 
-                       _xpc_service_instance_set_environment, _xpc_service_instance_set_finalizer_f, 
-                       _xpc_service_instance_set_jetsam_properties, _xpc_service_instance_set_path, 
-                       _xpc_service_instance_set_start_suspended, _xpc_service_kickstart, 
-                       _xpc_service_set_attach_handler, _xpc_set_event, _xpc_set_event_state, 
-                       _xpc_set_event_stream_handler, _xpc_set_event_with_flags, 
-                       _xpc_set_idle_handler, _xpc_shmem_create, _xpc_shmem_create_readonly, 
-                       _xpc_shmem_get_length, _xpc_shmem_map, _xpc_strerror, _xpc_string_create, 
-                       _xpc_string_create_no_copy, _xpc_string_create_with_format, 
-                       _xpc_string_create_with_format_and_arguments, _xpc_string_get_length, 
-                       _xpc_string_get_string_ptr, _xpc_test_symbols_exported, _xpc_track_activity, 
-                       _xpc_transaction_begin, _xpc_transaction_end, _xpc_transaction_exit_clean, 
-                       _xpc_transaction_interrupt_clean_exit, _xpc_transactions_enable, 
-                       _xpc_type_get_name, _xpc_uint64_create, _xpc_uint64_get_value, 
-                       _xpc_uuid_create, _xpc_uuid_get_bytes ]
-    objc-classes:    [ OS_xpc_object ]
-...
diff --git a/lib/libc/darwin/libSystem.13.tbd b/lib/libc/darwin/libSystem.13.tbd
new file mode 100644
index 0000000000000000000000000000000000000000..b912905aaa57661c153bca797933a655425c6b18
--- /dev/null
+++ b/lib/libc/darwin/libSystem.13.tbd
@@ -0,0 +1,3931 @@
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           1C88C6B7-F992-3275-9EF4-4D2CB1CEFAC3
+  - target:          x86_64-maccatalyst
+    value:           1C88C6B7-F992-3275-9EF4-4D2CB1CEFAC3
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           4396C12B-BA04-34F0-B859-7FC1914064A3
+  - target:          arm64e-maccatalyst
+    value:           4396C12B-BA04-34F0-B859-7FC1914064A3
+install-name:    '/usr/lib/libSystem.B.dylib'
+current-version: 1319
+reexported-libraries:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    libraries:       [ '/usr/lib/system/libcache.dylib', '/usr/lib/system/libcommonCrypto.dylib', 
+                       '/usr/lib/system/libcompiler_rt.dylib', '/usr/lib/system/libcopyfile.dylib', 
+                       '/usr/lib/system/libcorecrypto.dylib', '/usr/lib/system/libdispatch.dylib', 
+                       '/usr/lib/system/libdyld.dylib', '/usr/lib/system/libkeymgr.dylib', 
+                       '/usr/lib/system/libmacho.dylib', '/usr/lib/system/libquarantine.dylib', 
+                       '/usr/lib/system/libremovefile.dylib', '/usr/lib/system/libsystem_asl.dylib', 
+                       '/usr/lib/system/libsystem_blocks.dylib', '/usr/lib/system/libsystem_c.dylib', 
+                       '/usr/lib/system/libsystem_collections.dylib', '/usr/lib/system/libsystem_configuration.dylib', 
+                       '/usr/lib/system/libsystem_containermanager.dylib', '/usr/lib/system/libsystem_coreservices.dylib', 
+                       '/usr/lib/system/libsystem_darwin.dylib', '/usr/lib/system/libsystem_dnssd.dylib', 
+                       '/usr/lib/system/libsystem_featureflags.dylib', '/usr/lib/system/libsystem_info.dylib', 
+                       '/usr/lib/system/libsystem_kernel.dylib', '/usr/lib/system/libsystem_m.dylib', 
+                       '/usr/lib/system/libsystem_malloc.dylib', '/usr/lib/system/libsystem_networkextension.dylib', 
+                       '/usr/lib/system/libsystem_notify.dylib', '/usr/lib/system/libsystem_platform.dylib', 
+                       '/usr/lib/system/libsystem_pthread.dylib', '/usr/lib/system/libsystem_sandbox.dylib', 
+                       '/usr/lib/system/libsystem_secinit.dylib', '/usr/lib/system/libsystem_symptoms.dylib', 
+                       '/usr/lib/system/libsystem_trace.dylib', '/usr/lib/system/libunwind.dylib', 
+                       '/usr/lib/system/libxpc.dylib' ]
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
+    symbols:         [ 'R8289209$_close', 'R8289209$_fork', 'R8289209$_fsync', 'R8289209$_getattrlist', 
+                       'R8289209$_getrlimit', 'R8289209$_getxattr', 'R8289209$_open', 
+                       'R8289209$_pthread_attr_destroy', 'R8289209$_pthread_attr_init', 
+                       'R8289209$_pthread_attr_setdetachstate', 'R8289209$_pthread_create', 
+                       'R8289209$_pthread_mutex_lock', 'R8289209$_pthread_mutex_unlock', 
+                       'R8289209$_pthread_self', 'R8289209$_ptrace', 'R8289209$_read', 
+                       'R8289209$_setattrlist', 'R8289209$_setrlimit', 'R8289209$_sigaction', 
+                       'R8289209$_stat', 'R8289209$_sysctl', 'R8289209$_time', 'R8289209$_unlink', 
+                       'R8289209$_write' ]
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ ___crashreporter_info__, _libSystem_init_after_boot_tasks_4launchd, 
+                       _mach_init_routine ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           0D42BFC6-F62E-342B-BDB1-E75B48AF5081
+  - target:          x86_64-maccatalyst
+    value:           0D42BFC6-F62E-342B-BDB1-E75B48AF5081
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           9953AE27-E8CB-32B2-98AF-9E871BCDD5D3
+  - target:          arm64e-maccatalyst
+    value:           9953AE27-E8CB-32B2-98AF-9E871BCDD5D3
+install-name:    '/usr/lib/system/libcache.dylib'
+current-version: 90
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _cache_create, _cache_destroy, _cache_get, _cache_get_and_retain, 
+                       _cache_get_cost_hint, _cache_get_count_hint, _cache_get_info, 
+                       _cache_get_info_for_key, _cache_get_info_for_keys, _cache_get_minimum_values_hint, 
+                       _cache_get_name, _cache_hash_byte_string, _cache_invoke, _cache_key_hash_cb_cstring, 
+                       _cache_key_hash_cb_integer, _cache_key_is_equal_cb_cstring, 
+                       _cache_key_is_equal_cb_integer, _cache_print, _cache_print_stats, 
+                       _cache_release, _cache_release_cb_free, _cache_release_value, 
+                       _cache_remove, _cache_remove_all, _cache_remove_with_block, 
+                       _cache_retain, _cache_set_and_retain, _cache_set_cost_hint, 
+                       _cache_set_count_hint, _cache_set_minimum_values_hint, _cache_set_name, 
+                       _cache_simulate_memory_warning_event, _cache_value_make_nonpurgeable_cb, 
+                       _cache_value_make_purgeable_cb ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           DD06A475-50C9-3264-BAD5-479DA5E8B327
+  - target:          x86_64-maccatalyst
+    value:           DD06A475-50C9-3264-BAD5-479DA5E8B327
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           7510671C-686A-339D-8F50-B95BFA5D8F10
+  - target:          arm64e-maccatalyst
+    value:           7510671C-686A-339D-8F50-B95BFA5D8F10
+install-name:    '/usr/lib/system/libcommonCrypto.dylib'
+current-version: 60198.40.3
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _CCAESCmac, _CCAESCmacCreate, _CCAESCmacDestroy, _CCAESCmacFinal, 
+                       _CCAESCmacOutputSizeFromContext, _CCAESCmacUpdate, _CCBigNumAdd, 
+                       _CCBigNumAddI, _CCBigNumBitCount, _CCBigNumByteCount, _CCBigNumClear, 
+                       _CCBigNumCompare, _CCBigNumCompareI, _CCBigNumCopy, _CCBigNumCreateRandom, 
+                       _CCBigNumDiv, _CCBigNumFree, _CCBigNumFromData, _CCBigNumFromDecimalString, 
+                       _CCBigNumFromHexString, _CCBigNumGetI, _CCBigNumIsNegative, 
+                       _CCBigNumIsPrime, _CCBigNumIsZero, _CCBigNumLeftShift, _CCBigNumMod, 
+                       _CCBigNumModExp, _CCBigNumModI, _CCBigNumMul, _CCBigNumMulI, 
+                       _CCBigNumMulMod, _CCBigNumRightShift, _CCBigNumSetI, _CCBigNumSetNegative, 
+                       _CCBigNumSub, _CCBigNumSubI, _CCBigNumToData, _CCBigNumToDecimalString, 
+                       _CCBigNumToHexString, _CCBigNumZeroLSBCount, _CCCKGContributorCommit, 
+                       _CCCKGContributorCreate, _CCCKGContributorDestroy, _CCCKGContributorFinish, 
+                       _CCCKGGetCommitmentSize, _CCCKGGetOpeningSize, _CCCKGGetShareSize, 
+                       _CCCKGOwnerCreate, _CCCKGOwnerDestroy, _CCCKGOwnerFinish, 
+                       _CCCKGOwnerGenerateShare, _CCCalibratePBKDF, _CCCreateBigNum, 
+                       _CCCrypt, _CCCryptorAddParameter, _CCCryptorChaCha20, _CCCryptorChaCha20Poly1305OneshotDecrypt, 
+                       _CCCryptorChaCha20Poly1305OneshotEncrypt, _CCCryptorCreate, 
+                       _CCCryptorCreateFromData, _CCCryptorCreateFromDataWithMode, 
+                       _CCCryptorCreateWithMode, _CCCryptorDecryptDataBlock, _CCCryptorEncryptDataBlock, 
+                       _CCCryptorFinal, _CCCryptorGCM, _CCCryptorGCMAddAAD, _CCCryptorGCMAddADD, 
+                       _CCCryptorGCMAddIV, _CCCryptorGCMDecrypt, _CCCryptorGCMEncrypt, 
+                       _CCCryptorGCMFinal, _CCCryptorGCMFinalize, _CCCryptorGCMOneshotDecrypt, 
+                       _CCCryptorGCMOneshotEncrypt, _CCCryptorGCMReset, _CCCryptorGCMSetIV, 
+                       _CCCryptorGCMaddAAD, _CCCryptorGetIV, _CCCryptorGetOutputLength, 
+                       _CCCryptorGetParameter, _CCCryptorRelease, _CCCryptorReset, 
+                       _CCCryptorReset_binary_compatibility, _CCCryptorUpdate, _CCDHComputeKey, 
+                       _CCDHCreate, _CCDHGenerateKey, _CCDHRelease, _CCDeriveKey, 
+                       _CCDesCBCCksum, _CCDesIsWeakKey, _CCDesSetOddParity, _CCDigest, 
+                       _CCDigestBlockSize, _CCDigestCreate, _CCDigestCreateByOID, 
+                       _CCDigestDestroy, _CCDigestFinal, _CCDigestGetBlockSize, _CCDigestGetBlockSizeFromRef, 
+                       _CCDigestGetOutputSize, _CCDigestGetOutputSizeFromRef, _CCDigestInit, 
+                       _CCDigestOID, _CCDigestOIDLen, _CCDigestOutputSize, _CCDigestReset, 
+                       _CCDigestUpdate, _CCECCryptorBlind, _CCECCryptorBlindingKeysRelease, 
+                       _CCECCryptorComputeSharedSecret, _CCECCryptorCreateFromData, 
+                       _CCECCryptorExportKey, _CCECCryptorExportPublicKey, _CCECCryptorGenerateBlindingKeys, 
+                       _CCECCryptorGeneratePair, _CCECCryptorGetKeyComponents, _CCECCryptorGetPublicKeyFromPrivateKey, 
+                       _CCECCryptorH2C, _CCECCryptorImportKey, _CCECCryptorImportPublicKey, 
+                       _CCECCryptorRelease, _CCECCryptorSignHash, _CCECCryptorTwinDiversifyEntropySize, 
+                       _CCECCryptorTwinDiversifyKey, _CCECCryptorUnblind, _CCECCryptorUnwrapKey, 
+                       _CCECCryptorVerifyHash, _CCECCryptorWrapKey, _CCECGetKeySize, 
+                       _CCECGetKeyType, _CCHKDFExpand, _CCHKDFExtract, _CCHmac, _CCHmacClone, 
+                       _CCHmacCreate, _CCHmacDestroy, _CCHmacFinal, _CCHmacInit, 
+                       _CCHmacOneShot, _CCHmacOutputSize, _CCHmacOutputSizeFromRef, 
+                       _CCHmacUpdate, _CCKDFParametersCreateAnsiX963, _CCKDFParametersCreateCtrHmac, 
+                       _CCKDFParametersCreateCtrHmacFixed, _CCKDFParametersCreateHkdf, 
+                       _CCKDFParametersCreatePbkdf2, _CCKDFParametersDestroy, _CCKeyDerivationHMac, 
+                       _CCKeyDerivationPBKDF, _CCRSACryptorCreateFromData, _CCRSACryptorCreatePublicKeyFromPrivateKey, 
+                       _CCRSACryptorCrypt, _CCRSACryptorDecrypt, _CCRSACryptorEncrypt, 
+                       _CCRSACryptorExport, _CCRSACryptorGeneratePair, _CCRSACryptorGetPublicKeyFromPrivateKey, 
+                       _CCRSACryptorImport, _CCRSACryptorRecoverPrivateKey, _CCRSACryptorRelease, 
+                       _CCRSACryptorSign, _CCRSACryptorVerify, _CCRSAGetCRTComponents, 
+                       _CCRSAGetCRTComponentsSizes, _CCRSAGetKeyComponents, _CCRSAGetKeySize, 
+                       _CCRSAGetKeyType, _CCRandomCopyBytes, _CCRandomGenerateBytes, 
+                       _CCRandomUniform, _CCSymmetricKeyUnwrap, _CCSymmetricKeyWrap, 
+                       _CCSymmetricUnwrappedSize, _CCSymmetricWrappedSize, _CC_MD2, 
+                       _CC_MD2_Final, _CC_MD2_Init, _CC_MD2_Update, _CC_MD4, _CC_MD4_Final, 
+                       _CC_MD4_Init, _CC_MD4_Update, _CC_MD5, _CC_MD5_Final, _CC_MD5_Init, 
+                       _CC_MD5_Update, _CC_SHA1, _CC_SHA1_Final, _CC_SHA1_Init, _CC_SHA1_Update, 
+                       _CC_SHA224, _CC_SHA224_Final, _CC_SHA224_Init, _CC_SHA224_Update, 
+                       _CC_SHA256, _CC_SHA256_Final, _CC_SHA256_Init, _CC_SHA256_Update, 
+                       _CC_SHA384, _CC_SHA384_Final, _CC_SHA384_Init, _CC_SHA384_Update, 
+                       _CC_SHA512, _CC_SHA512_Final, _CC_SHA512_Init, _CC_SHA512_Update, 
+                       _CCrfc3394_iv, _CCrfc3394_ivLen, _CNCRC, _CNCRCDumpTable, 
+                       _CNCRCFinal, _CNCRCInit, _CNCRCRelease, _CNCRCUpdate, _CNCRCWeakTest, 
+                       _CNEncode, _CNEncoderBlocksize, _CNEncoderBlocksizeFromRef, 
+                       _CNEncoderCreate, _CNEncoderCreateCustom, _CNEncoderFinal, 
+                       _CNEncoderGetOutputLength, _CNEncoderGetOutputLengthFromEncoding, 
+                       _CNEncoderRelease, _CNEncoderUpdate, _MD5Final, _ccDRBGGetRngState, 
+                       _ccDevRandomGetRngState, _kCCRandomDefault, _kCCRandomDevRandom ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, arm64-macos, arm64e-macos ]
+uuids:
+  - target:          x86_64-macos
+    value:           9053D30C-239D-30B4-B36D-4E3490F72FE4
+  - target:          arm64-macos
+    value:           A7F13C10-9CEA-3A4E-86AB-F65E292E7804
+  - target:          arm64e-macos
+    value:           824DFF0F-A337-32EB-B5DF-3FDD0BBFF9ED
+install-name:    '/usr/lib/system/libcompiler_rt.dylib'
+current-version: 103.1
+parent-umbrella:
+  - targets:         [ x86_64-macos, arm64-macos, arm64e-macos ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos ]
+    symbols:         [ '$ld$hide$os10.4$___absvti2', '$ld$hide$os10.4$___addvti3', 
+                       '$ld$hide$os10.4$___ashlti3', '$ld$hide$os10.4$___ashrti3', 
+                       '$ld$hide$os10.4$___cmpti2', '$ld$hide$os10.4$___ctzti2', 
+                       '$ld$hide$os10.4$___ffsti2', '$ld$hide$os10.4$___fixunsxfti', 
+                       '$ld$hide$os10.4$___fixxfti', '$ld$hide$os10.4$___floattixf', 
+                       '$ld$hide$os10.4$___floatuntixf', '$ld$hide$os10.4$___lshrti3', 
+                       '$ld$hide$os10.4$___multi3', '$ld$hide$os10.4$___mulvti3', 
+                       '$ld$hide$os10.4$___negti2', '$ld$hide$os10.4$___negvti2', 
+                       '$ld$hide$os10.4$___parityti2', '$ld$hide$os10.4$___popcountti2', 
+                       '$ld$hide$os10.4$___subvti3', '$ld$hide$os10.4$___ucmpti2', 
+                       '$ld$hide$os10.5$___absvti2', '$ld$hide$os10.5$___addvti3', 
+                       '$ld$hide$os10.5$___ashlti3', '$ld$hide$os10.5$___ashrti3', 
+                       '$ld$hide$os10.5$___cmpti2', '$ld$hide$os10.5$___ctzti2', 
+                       '$ld$hide$os10.5$___ffsti2', '$ld$hide$os10.5$___fixunsxfti', 
+                       '$ld$hide$os10.5$___fixxfti', '$ld$hide$os10.5$___floattixf', 
+                       '$ld$hide$os10.5$___floatuntixf', '$ld$hide$os10.5$___lshrti3', 
+                       '$ld$hide$os10.5$___multi3', '$ld$hide$os10.5$___mulvti3', 
+                       '$ld$hide$os10.5$___negti2', '$ld$hide$os10.5$___negvti2', 
+                       '$ld$hide$os10.5$___parityti2', '$ld$hide$os10.5$___popcountti2', 
+                       '$ld$hide$os10.5$___subvti3', '$ld$hide$os10.5$___ucmpti2', 
+                       ___absvdi2, ___absvsi2, ___absvti2, ___addvdi3, ___addvsi3, 
+                       ___addvti3, ___ashldi3, ___ashlti3, ___ashrdi3, ___ashrti3, 
+                       ___clzdi2, ___clzsi2, ___cmpdi2, ___cmpti2, ___ctzdi2, ___ctzsi2, 
+                       ___ctzti2, ___divdc3, ___divdi3, ___divsc3, ___divxc3, ___ffsdi2, 
+                       ___ffsti2, ___fixdfdi, ___fixsfdi, ___fixunsdfdi, ___fixunsdfsi, 
+                       ___fixunssfdi, ___fixunssfsi, ___fixunsxfdi, ___fixunsxfsi, 
+                       ___fixunsxfti, ___fixxfdi, ___fixxfti, ___floatdidf, ___floatdisf, 
+                       ___floatdixf, ___floattixf, ___floatundidf, ___floatundisf, 
+                       ___floatundixf, ___floatuntixf, ___lshrdi3, ___lshrti3, ___moddi3, 
+                       ___muldi3, ___mulodi4, ___mulosi4, ___muloti4, ___multi3, 
+                       ___mulvdi3, ___mulvsi3, ___mulvti3, ___mulxc3, ___negdi2, 
+                       ___negti2, ___negvdi2, ___negvsi2, ___negvti2, ___paritydi2, 
+                       ___paritysi2, ___parityti2, ___popcountdi2, ___popcountsi2, 
+                       ___popcountti2, ___powixf2, ___subvdi3, ___subvsi3, ___subvti3, 
+                       ___ucmpdi2, ___ucmpti2, ___udivdi3, ___udivmoddi4, ___umoddi3 ]
+  - targets:         [ x86_64-macos, arm64-macos, arm64e-macos ]
+    symbols:         [ '$ld$hide$os10.10$___chkstk_darwin', '$ld$hide$os10.10$___extendhfsf2', 
+                       '$ld$hide$os10.10$___truncdfhf2', '$ld$hide$os10.10$___truncsfhf2', 
+                       '$ld$hide$os10.10$_atomic_flag_clear', '$ld$hide$os10.10$_atomic_flag_clear_explicit', 
+                       '$ld$hide$os10.10$_atomic_flag_test_and_set', '$ld$hide$os10.10$_atomic_flag_test_and_set_explicit', 
+                       '$ld$hide$os10.10$_atomic_signal_fence', '$ld$hide$os10.10$_atomic_thread_fence', 
+                       '$ld$hide$os10.11$___chkstk_darwin', '$ld$hide$os10.12$___chkstk_darwin', 
+                       '$ld$hide$os10.13$___chkstk_darwin', '$ld$hide$os10.14$___chkstk_darwin', 
+                       '$ld$hide$os10.4$___absvdi2', '$ld$hide$os10.4$___absvsi2', 
+                       '$ld$hide$os10.4$___addvdi3', '$ld$hide$os10.4$___addvsi3', 
+                       '$ld$hide$os10.4$___ashldi3', '$ld$hide$os10.4$___ashrdi3', 
+                       '$ld$hide$os10.4$___clear_cache', '$ld$hide$os10.4$___clzdi2', 
+                       '$ld$hide$os10.4$___clzsi2', '$ld$hide$os10.4$___clzti2', 
+                       '$ld$hide$os10.4$___cmpdi2', '$ld$hide$os10.4$___ctzdi2', 
+                       '$ld$hide$os10.4$___ctzsi2', '$ld$hide$os10.4$___divdc3', 
+                       '$ld$hide$os10.4$___divdi3', '$ld$hide$os10.4$___divsc3', 
+                       '$ld$hide$os10.4$___divti3', '$ld$hide$os10.4$___divxc3', 
+                       '$ld$hide$os10.4$___enable_execute_stack', '$ld$hide$os10.4$___ffsdi2', 
+                       '$ld$hide$os10.4$___fixdfdi', '$ld$hide$os10.4$___fixdfti', 
+                       '$ld$hide$os10.4$___fixsfdi', '$ld$hide$os10.4$___fixsfti', 
+                       '$ld$hide$os10.4$___fixunsdfdi', '$ld$hide$os10.4$___fixunsdfsi', 
+                       '$ld$hide$os10.4$___fixunsdfti', '$ld$hide$os10.4$___fixunssfdi', 
+                       '$ld$hide$os10.4$___fixunssfsi', '$ld$hide$os10.4$___fixunssfti', 
+                       '$ld$hide$os10.4$___fixunsxfdi', '$ld$hide$os10.4$___fixunsxfsi', 
+                       '$ld$hide$os10.4$___fixxfdi', '$ld$hide$os10.4$___floatdidf', 
+                       '$ld$hide$os10.4$___floatdisf', '$ld$hide$os10.4$___floatdixf', 
+                       '$ld$hide$os10.4$___floattidf', '$ld$hide$os10.4$___floattisf', 
+                       '$ld$hide$os10.4$___floatundidf', '$ld$hide$os10.4$___floatundisf', 
+                       '$ld$hide$os10.4$___floatundixf', '$ld$hide$os10.4$___floatuntidf', 
+                       '$ld$hide$os10.4$___floatuntisf', '$ld$hide$os10.4$___gcc_personality_v0', 
+                       '$ld$hide$os10.4$___lshrdi3', '$ld$hide$os10.4$___moddi3', 
+                       '$ld$hide$os10.4$___modti3', '$ld$hide$os10.4$___muldc3', 
+                       '$ld$hide$os10.4$___muldi3', '$ld$hide$os10.4$___mulsc3', 
+                       '$ld$hide$os10.4$___mulvdi3', '$ld$hide$os10.4$___mulvsi3', 
+                       '$ld$hide$os10.4$___mulxc3', '$ld$hide$os10.4$___negdi2', 
+                       '$ld$hide$os10.4$___negvdi2', '$ld$hide$os10.4$___negvsi2', 
+                       '$ld$hide$os10.4$___paritydi2', '$ld$hide$os10.4$___paritysi2', 
+                       '$ld$hide$os10.4$___popcountdi2', '$ld$hide$os10.4$___popcountsi2', 
+                       '$ld$hide$os10.4$___powidf2', '$ld$hide$os10.4$___powisf2', 
+                       '$ld$hide$os10.4$___powixf2', '$ld$hide$os10.4$___subvdi3', 
+                       '$ld$hide$os10.4$___subvsi3', '$ld$hide$os10.4$___ucmpdi2', 
+                       '$ld$hide$os10.4$___udivdi3', '$ld$hide$os10.4$___udivmoddi4', 
+                       '$ld$hide$os10.4$___udivmodti4', '$ld$hide$os10.4$___udivti3', 
+                       '$ld$hide$os10.4$___umoddi3', '$ld$hide$os10.4$___umodti3', 
+                       '$ld$hide$os10.5$___absvdi2', '$ld$hide$os10.5$___absvsi2', 
+                       '$ld$hide$os10.5$___addvdi3', '$ld$hide$os10.5$___addvsi3', 
+                       '$ld$hide$os10.5$___ashldi3', '$ld$hide$os10.5$___ashrdi3', 
+                       '$ld$hide$os10.5$___clear_cache', '$ld$hide$os10.5$___clzdi2', 
+                       '$ld$hide$os10.5$___clzsi2', '$ld$hide$os10.5$___clzti2', 
+                       '$ld$hide$os10.5$___cmpdi2', '$ld$hide$os10.5$___ctzdi2', 
+                       '$ld$hide$os10.5$___ctzsi2', '$ld$hide$os10.5$___divdc3', 
+                       '$ld$hide$os10.5$___divdi3', '$ld$hide$os10.5$___divsc3', 
+                       '$ld$hide$os10.5$___divti3', '$ld$hide$os10.5$___divxc3', 
+                       '$ld$hide$os10.5$___enable_execute_stack', '$ld$hide$os10.5$___ffsdi2', 
+                       '$ld$hide$os10.5$___fixdfdi', '$ld$hide$os10.5$___fixdfti', 
+                       '$ld$hide$os10.5$___fixsfdi', '$ld$hide$os10.5$___fixsfti', 
+                       '$ld$hide$os10.5$___fixunsdfdi', '$ld$hide$os10.5$___fixunsdfsi', 
+                       '$ld$hide$os10.5$___fixunsdfti', '$ld$hide$os10.5$___fixunssfdi', 
+                       '$ld$hide$os10.5$___fixunssfsi', '$ld$hide$os10.5$___fixunssfti', 
+                       '$ld$hide$os10.5$___fixunsxfdi', '$ld$hide$os10.5$___fixunsxfsi', 
+                       '$ld$hide$os10.5$___fixxfdi', '$ld$hide$os10.5$___floatdidf', 
+                       '$ld$hide$os10.5$___floatdisf', '$ld$hide$os10.5$___floatdixf', 
+                       '$ld$hide$os10.5$___floattidf', '$ld$hide$os10.5$___floattisf', 
+                       '$ld$hide$os10.5$___floatundidf', '$ld$hide$os10.5$___floatundisf', 
+                       '$ld$hide$os10.5$___floatundixf', '$ld$hide$os10.5$___floatuntidf', 
+                       '$ld$hide$os10.5$___floatuntisf', '$ld$hide$os10.5$___gcc_personality_v0', 
+                       '$ld$hide$os10.5$___lshrdi3', '$ld$hide$os10.5$___moddi3', 
+                       '$ld$hide$os10.5$___modti3', '$ld$hide$os10.5$___muldc3', 
+                       '$ld$hide$os10.5$___muldi3', '$ld$hide$os10.5$___mulsc3', 
+                       '$ld$hide$os10.5$___mulvdi3', '$ld$hide$os10.5$___mulvsi3', 
+                       '$ld$hide$os10.5$___mulxc3', '$ld$hide$os10.5$___negdi2', 
+                       '$ld$hide$os10.5$___negvdi2', '$ld$hide$os10.5$___negvsi2', 
+                       '$ld$hide$os10.5$___paritydi2', '$ld$hide$os10.5$___paritysi2', 
+                       '$ld$hide$os10.5$___popcountdi2', '$ld$hide$os10.5$___popcountsi2', 
+                       '$ld$hide$os10.5$___powidf2', '$ld$hide$os10.5$___powisf2', 
+                       '$ld$hide$os10.5$___powixf2', '$ld$hide$os10.5$___subvdi3', 
+                       '$ld$hide$os10.5$___subvsi3', '$ld$hide$os10.5$___ucmpdi2', 
+                       '$ld$hide$os10.5$___udivdi3', '$ld$hide$os10.5$___udivmoddi4', 
+                       '$ld$hide$os10.5$___udivmodti4', '$ld$hide$os10.5$___udivti3', 
+                       '$ld$hide$os10.5$___umoddi3', '$ld$hide$os10.5$___umodti3', 
+                       '$ld$hide$os10.6$___atomic_compare_exchange', '$ld$hide$os10.6$___atomic_compare_exchange_1', 
+                       '$ld$hide$os10.6$___atomic_compare_exchange_2', '$ld$hide$os10.6$___atomic_compare_exchange_4', 
+                       '$ld$hide$os10.6$___atomic_compare_exchange_8', '$ld$hide$os10.6$___atomic_exchange', 
+                       '$ld$hide$os10.6$___atomic_exchange_1', '$ld$hide$os10.6$___atomic_exchange_2', 
+                       '$ld$hide$os10.6$___atomic_exchange_4', '$ld$hide$os10.6$___atomic_exchange_8', 
+                       '$ld$hide$os10.6$___atomic_fetch_add_1', '$ld$hide$os10.6$___atomic_fetch_add_2', 
+                       '$ld$hide$os10.6$___atomic_fetch_add_4', '$ld$hide$os10.6$___atomic_fetch_add_8', 
+                       '$ld$hide$os10.6$___atomic_fetch_and_1', '$ld$hide$os10.6$___atomic_fetch_and_2', 
+                       '$ld$hide$os10.6$___atomic_fetch_and_4', '$ld$hide$os10.6$___atomic_fetch_and_8', 
+                       '$ld$hide$os10.6$___atomic_fetch_or_1', '$ld$hide$os10.6$___atomic_fetch_or_2', 
+                       '$ld$hide$os10.6$___atomic_fetch_or_4', '$ld$hide$os10.6$___atomic_fetch_or_8', 
+                       '$ld$hide$os10.6$___atomic_fetch_sub_1', '$ld$hide$os10.6$___atomic_fetch_sub_2', 
+                       '$ld$hide$os10.6$___atomic_fetch_sub_4', '$ld$hide$os10.6$___atomic_fetch_sub_8', 
+                       '$ld$hide$os10.6$___atomic_fetch_xor_1', '$ld$hide$os10.6$___atomic_fetch_xor_2', 
+                       '$ld$hide$os10.6$___atomic_fetch_xor_4', '$ld$hide$os10.6$___atomic_fetch_xor_8', 
+                       '$ld$hide$os10.6$___atomic_load', '$ld$hide$os10.6$___atomic_load_1', 
+                       '$ld$hide$os10.6$___atomic_load_2', '$ld$hide$os10.6$___atomic_load_4', 
+                       '$ld$hide$os10.6$___atomic_load_8', '$ld$hide$os10.6$___atomic_store', 
+                       '$ld$hide$os10.6$___atomic_store_1', '$ld$hide$os10.6$___atomic_store_2', 
+                       '$ld$hide$os10.6$___atomic_store_4', '$ld$hide$os10.6$___atomic_store_8', 
+                       '$ld$hide$os10.6$___chkstk_darwin', '$ld$hide$os10.6$___extendhfsf2', 
+                       '$ld$hide$os10.6$___truncdfhf2', '$ld$hide$os10.6$___truncsfhf2', 
+                       '$ld$hide$os10.6$_atomic_flag_clear', '$ld$hide$os10.6$_atomic_flag_clear_explicit', 
+                       '$ld$hide$os10.6$_atomic_flag_test_and_set', '$ld$hide$os10.6$_atomic_flag_test_and_set_explicit', 
+                       '$ld$hide$os10.6$_atomic_signal_fence', '$ld$hide$os10.6$_atomic_thread_fence', 
+                       '$ld$hide$os10.7$___atomic_compare_exchange', '$ld$hide$os10.7$___atomic_compare_exchange_1', 
+                       '$ld$hide$os10.7$___atomic_compare_exchange_2', '$ld$hide$os10.7$___atomic_compare_exchange_4', 
+                       '$ld$hide$os10.7$___atomic_compare_exchange_8', '$ld$hide$os10.7$___atomic_exchange', 
+                       '$ld$hide$os10.7$___atomic_exchange_1', '$ld$hide$os10.7$___atomic_exchange_2', 
+                       '$ld$hide$os10.7$___atomic_exchange_4', '$ld$hide$os10.7$___atomic_exchange_8', 
+                       '$ld$hide$os10.7$___atomic_fetch_add_1', '$ld$hide$os10.7$___atomic_fetch_add_2', 
+                       '$ld$hide$os10.7$___atomic_fetch_add_4', '$ld$hide$os10.7$___atomic_fetch_add_8', 
+                       '$ld$hide$os10.7$___atomic_fetch_and_1', '$ld$hide$os10.7$___atomic_fetch_and_2', 
+                       '$ld$hide$os10.7$___atomic_fetch_and_4', '$ld$hide$os10.7$___atomic_fetch_and_8', 
+                       '$ld$hide$os10.7$___atomic_fetch_or_1', '$ld$hide$os10.7$___atomic_fetch_or_2', 
+                       '$ld$hide$os10.7$___atomic_fetch_or_4', '$ld$hide$os10.7$___atomic_fetch_or_8', 
+                       '$ld$hide$os10.7$___atomic_fetch_sub_1', '$ld$hide$os10.7$___atomic_fetch_sub_2', 
+                       '$ld$hide$os10.7$___atomic_fetch_sub_4', '$ld$hide$os10.7$___atomic_fetch_sub_8', 
+                       '$ld$hide$os10.7$___atomic_fetch_xor_1', '$ld$hide$os10.7$___atomic_fetch_xor_2', 
+                       '$ld$hide$os10.7$___atomic_fetch_xor_4', '$ld$hide$os10.7$___atomic_fetch_xor_8', 
+                       '$ld$hide$os10.7$___atomic_load', '$ld$hide$os10.7$___atomic_load_1', 
+                       '$ld$hide$os10.7$___atomic_load_2', '$ld$hide$os10.7$___atomic_load_4', 
+                       '$ld$hide$os10.7$___atomic_load_8', '$ld$hide$os10.7$___atomic_store', 
+                       '$ld$hide$os10.7$___atomic_store_1', '$ld$hide$os10.7$___atomic_store_2', 
+                       '$ld$hide$os10.7$___atomic_store_4', '$ld$hide$os10.7$___atomic_store_8', 
+                       '$ld$hide$os10.7$___chkstk_darwin', '$ld$hide$os10.7$___extendhfsf2', 
+                       '$ld$hide$os10.7$___truncdfhf2', '$ld$hide$os10.7$___truncsfhf2', 
+                       '$ld$hide$os10.7$_atomic_flag_clear', '$ld$hide$os10.7$_atomic_flag_clear_explicit', 
+                       '$ld$hide$os10.7$_atomic_flag_test_and_set', '$ld$hide$os10.7$_atomic_flag_test_and_set_explicit', 
+                       '$ld$hide$os10.7$_atomic_signal_fence', '$ld$hide$os10.7$_atomic_thread_fence', 
+                       '$ld$hide$os10.8$___atomic_compare_exchange', '$ld$hide$os10.8$___atomic_compare_exchange_1', 
+                       '$ld$hide$os10.8$___atomic_compare_exchange_2', '$ld$hide$os10.8$___atomic_compare_exchange_4', 
+                       '$ld$hide$os10.8$___atomic_compare_exchange_8', '$ld$hide$os10.8$___atomic_exchange', 
+                       '$ld$hide$os10.8$___atomic_exchange_1', '$ld$hide$os10.8$___atomic_exchange_2', 
+                       '$ld$hide$os10.8$___atomic_exchange_4', '$ld$hide$os10.8$___atomic_exchange_8', 
+                       '$ld$hide$os10.8$___atomic_fetch_add_1', '$ld$hide$os10.8$___atomic_fetch_add_2', 
+                       '$ld$hide$os10.8$___atomic_fetch_add_4', '$ld$hide$os10.8$___atomic_fetch_add_8', 
+                       '$ld$hide$os10.8$___atomic_fetch_and_1', '$ld$hide$os10.8$___atomic_fetch_and_2', 
+                       '$ld$hide$os10.8$___atomic_fetch_and_4', '$ld$hide$os10.8$___atomic_fetch_and_8', 
+                       '$ld$hide$os10.8$___atomic_fetch_or_1', '$ld$hide$os10.8$___atomic_fetch_or_2', 
+                       '$ld$hide$os10.8$___atomic_fetch_or_4', '$ld$hide$os10.8$___atomic_fetch_or_8', 
+                       '$ld$hide$os10.8$___atomic_fetch_sub_1', '$ld$hide$os10.8$___atomic_fetch_sub_2', 
+                       '$ld$hide$os10.8$___atomic_fetch_sub_4', '$ld$hide$os10.8$___atomic_fetch_sub_8', 
+                       '$ld$hide$os10.8$___atomic_fetch_xor_1', '$ld$hide$os10.8$___atomic_fetch_xor_2', 
+                       '$ld$hide$os10.8$___atomic_fetch_xor_4', '$ld$hide$os10.8$___atomic_fetch_xor_8', 
+                       '$ld$hide$os10.8$___atomic_load', '$ld$hide$os10.8$___atomic_load_1', 
+                       '$ld$hide$os10.8$___atomic_load_2', '$ld$hide$os10.8$___atomic_load_4', 
+                       '$ld$hide$os10.8$___atomic_load_8', '$ld$hide$os10.8$___atomic_store', 
+                       '$ld$hide$os10.8$___atomic_store_1', '$ld$hide$os10.8$___atomic_store_2', 
+                       '$ld$hide$os10.8$___atomic_store_4', '$ld$hide$os10.8$___atomic_store_8', 
+                       '$ld$hide$os10.8$___chkstk_darwin', '$ld$hide$os10.8$___extendhfsf2', 
+                       '$ld$hide$os10.8$___truncdfhf2', '$ld$hide$os10.8$___truncsfhf2', 
+                       '$ld$hide$os10.8$_atomic_flag_clear', '$ld$hide$os10.8$_atomic_flag_clear_explicit', 
+                       '$ld$hide$os10.8$_atomic_flag_test_and_set', '$ld$hide$os10.8$_atomic_flag_test_and_set_explicit', 
+                       '$ld$hide$os10.8$_atomic_signal_fence', '$ld$hide$os10.8$_atomic_thread_fence', 
+                       '$ld$hide$os10.9$___chkstk_darwin', '$ld$hide$os10.9$___extendhfsf2', 
+                       '$ld$hide$os10.9$___truncdfhf2', '$ld$hide$os10.9$___truncsfhf2', 
+                       '$ld$hide$os10.9$_atomic_flag_clear', '$ld$hide$os10.9$_atomic_flag_clear_explicit', 
+                       '$ld$hide$os10.9$_atomic_flag_test_and_set', '$ld$hide$os10.9$_atomic_flag_test_and_set_explicit', 
+                       '$ld$hide$os10.9$_atomic_signal_fence', '$ld$hide$os10.9$_atomic_thread_fence', 
+                       ___atomic_compare_exchange, ___atomic_compare_exchange_1, 
+                       ___atomic_compare_exchange_2, ___atomic_compare_exchange_4, 
+                       ___atomic_compare_exchange_8, ___atomic_exchange, ___atomic_exchange_1, 
+                       ___atomic_exchange_2, ___atomic_exchange_4, ___atomic_exchange_8, 
+                       ___atomic_fetch_add_1, ___atomic_fetch_add_2, ___atomic_fetch_add_4, 
+                       ___atomic_fetch_add_8, ___atomic_fetch_and_1, ___atomic_fetch_and_2, 
+                       ___atomic_fetch_and_4, ___atomic_fetch_and_8, ___atomic_fetch_or_1, 
+                       ___atomic_fetch_or_2, ___atomic_fetch_or_4, ___atomic_fetch_or_8, 
+                       ___atomic_fetch_sub_1, ___atomic_fetch_sub_2, ___atomic_fetch_sub_4, 
+                       ___atomic_fetch_sub_8, ___atomic_fetch_xor_1, ___atomic_fetch_xor_2, 
+                       ___atomic_fetch_xor_4, ___atomic_fetch_xor_8, ___atomic_is_lock_free, 
+                       ___atomic_load, ___atomic_load_1, ___atomic_load_2, ___atomic_load_4, 
+                       ___atomic_load_8, ___atomic_store, ___atomic_store_1, ___atomic_store_2, 
+                       ___atomic_store_4, ___atomic_store_8, ___chkstk_darwin, ___clear_cache, 
+                       ___clzti2, ___divti3, ___enable_execute_stack, ___extendhfsf2, 
+                       ___fixdfti, ___fixsfti, ___fixunsdfti, ___fixunssfti, ___floattidf, 
+                       ___floattisf, ___floatuntidf, ___floatuntisf, ___gcc_personality_v0, 
+                       ___gnu_f2h_ieee, ___gnu_h2f_ieee, ___modti3, ___muldc3, ___mulsc3, 
+                       ___powidf2, ___powisf2, ___truncdfhf2, ___truncsfhf2, ___udivmodti4, 
+                       ___udivti3, ___umodti3, _atomic_flag_clear, _atomic_flag_clear_explicit, 
+                       _atomic_flag_test_and_set, _atomic_flag_test_and_set_explicit, 
+                       _atomic_signal_fence, _atomic_thread_fence ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           0CD59665-DEA3-3995-84BC-485D4EA42680
+  - target:          x86_64-maccatalyst
+    value:           0CD59665-DEA3-3995-84BC-485D4EA42680
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           79AD0FC1-4F88-3589-A602-45F2AA482B59
+  - target:          arm64e-maccatalyst
+    value:           79AD0FC1-4F88-3589-A602-45F2AA482B59
+install-name:    '/usr/lib/system/libcopyfile.dylib'
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _copyfile, _copyfile_state_alloc, _copyfile_state_free, _copyfile_state_get, 
+                       _copyfile_state_set, _fcopyfile, _xattr_flags_from_name, _xattr_intent_with_flags, 
+                       _xattr_name_with_flags, _xattr_name_without_flags, _xattr_preserve_for_intent ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           D198406D-6F0D-3857-9CB3-9BA231DFEE00
+  - target:          x86_64-maccatalyst
+    value:           D198406D-6F0D-3857-9CB3-9BA231DFEE00
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           6A5FFEB0-E606-324E-B687-DA95C362CE05
+  - target:          arm64e-maccatalyst
+    value:           6A5FFEB0-E606-324E-B687-DA95C362CE05
+install-name:    '/usr/lib/system/libcorecrypto.dylib'
+current-version: 1386.40.5
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
+    symbols:         [ _ccaes_intel_cbc_decrypt_aesni_mode, _ccaes_intel_cbc_decrypt_opt_mode, 
+                       _ccaes_intel_cbc_encrypt_aesni_mode, _ccaes_intel_cbc_encrypt_opt_mode, 
+                       _ccaes_intel_ecb_decrypt_aesni_mode, _ccaes_intel_ecb_decrypt_opt_mode, 
+                       _ccaes_intel_ecb_encrypt_aesni_mode, _ccaes_intel_ecb_encrypt_opt_mode, 
+                       _ccaes_intel_xts_decrypt_aesni_mode, _ccaes_intel_xts_decrypt_opt_mode, 
+                       _ccaes_intel_xts_encrypt_aesni_mode, _ccaes_intel_xts_encrypt_opt_mode, 
+                       _ccsha1_vng_intel_SupplementalSSE3_di, _ccsha224_vng_intel_SupplementalSSE3_di, 
+                       _ccsha256_vng_intel_SupplementalSSE3_di ]
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _CCEC_FAULT_CANARY, _CCRSA_PKCS1_FAULT_CANARY, _CCRSA_PSS_FAULT_CANARY, 
+                       _CCSS_PRIME_P192, _CCSS_PRIME_P224, _CCSS_PRIME_P256, _CCSS_PRIME_P384, 
+                       _CCSS_PRIME_P521, _cc_abort, _cc_atfork_child, _cc_atfork_parent, 
+                       _cc_atfork_prepare, _cc_clear, _cc_cmp_safe, _cc_impl_name, 
+                       _cc_try_abort, _cc_try_abort_if, _ccaes_cbc_decrypt_mode, 
+                       _ccaes_cbc_encrypt_mode, _ccaes_ccm_decrypt_mode, _ccaes_ccm_encrypt_mode, 
+                       _ccaes_cfb8_decrypt_mode, _ccaes_cfb8_encrypt_mode, _ccaes_cfb_decrypt_mode, 
+                       _ccaes_cfb_encrypt_mode, _ccaes_ctr_crypt_mode, _ccaes_ecb_decrypt_mode, 
+                       _ccaes_ecb_encrypt_mode, _ccaes_gcm_decrypt_mode, _ccaes_gcm_encrypt_mode, 
+                       _ccaes_gladman_cbc_decrypt_mode, _ccaes_gladman_cbc_encrypt_mode, 
+                       _ccaes_ltc_ecb_decrypt_mode, _ccaes_ltc_ecb_encrypt_mode, 
+                       _ccaes_ofb_crypt_mode, _ccaes_siv_decrypt_mode, _ccaes_siv_encrypt_mode, 
+                       _ccaes_siv_hmac_sha256_decrypt_mode, _ccaes_siv_hmac_sha256_encrypt_mode, 
+                       _ccaes_unwind, _ccaes_xts_decrypt_mode, _ccaes_xts_encrypt_mode, 
+                       _ccansikdf_x963, _ccapsic_client_check_intersect_response, 
+                       _ccapsic_client_generate_match_response, _ccapsic_client_init, 
+                       _ccapsic_client_state_sizeof, _ccapsic_server_determine_intersection, 
+                       _ccapsic_server_encode_element, _ccapsic_server_init, _ccapsic_server_state_sizeof, 
+                       _ccblowfish_cbc_decrypt_mode, _ccblowfish_cbc_encrypt_mode, 
+                       _ccblowfish_cfb8_decrypt_mode, _ccblowfish_cfb8_encrypt_mode, 
+                       _ccblowfish_cfb_decrypt_mode, _ccblowfish_cfb_encrypt_mode, 
+                       _ccblowfish_ctr_crypt_mode, _ccblowfish_ecb_decrypt_mode, 
+                       _ccblowfish_ecb_encrypt_mode, _ccblowfish_ofb_crypt_mode, 
+                       _cccast_cbc_decrypt_mode, _cccast_cbc_encrypt_mode, _cccast_cfb8_decrypt_mode, 
+                       _cccast_cfb8_encrypt_mode, _cccast_cfb_decrypt_mode, _cccast_cfb_encrypt_mode, 
+                       _cccast_ctr_crypt_mode, _cccast_ecb_decrypt_mode, _cccast_ecb_encrypt_mode, 
+                       _cccast_ofb_crypt_mode, _cccbc_block_size, _cccbc_clear_iv, 
+                       _cccbc_context_size, _cccbc_copy_iv, _cccbc_init, _cccbc_one_shot, 
+                       _cccbc_set_iv, _cccbc_update, _ccccm_aad, _ccccm_block_size, 
+                       _ccccm_cbcmac, _ccccm_context_size, _ccccm_decrypt, _ccccm_encrypt, 
+                       _ccccm_finalize, _ccccm_finalize_and_generate_tag, _ccccm_finalize_and_verify_tag, 
+                       _ccccm_init, _ccccm_one_shot, _ccccm_one_shot_decrypt, _ccccm_one_shot_encrypt, 
+                       _ccccm_reset, _ccccm_set_iv, _ccccm_update, _cccfb8_block_size, 
+                       _cccfb8_context_size, _cccfb8_init, _cccfb8_one_shot, _cccfb8_update, 
+                       _cccfb_block_size, _cccfb_context_size, _cccfb_init, _cccfb_one_shot, 
+                       _cccfb_update, _ccchacha20, _ccchacha20_final, _ccchacha20_init, 
+                       _ccchacha20_reset, _ccchacha20_setcounter, _ccchacha20_setnonce, 
+                       _ccchacha20_update, _ccchacha20poly1305_aad, _ccchacha20poly1305_decrypt, 
+                       _ccchacha20poly1305_decrypt_oneshot, _ccchacha20poly1305_encrypt, 
+                       _ccchacha20poly1305_encrypt_oneshot, _ccchacha20poly1305_finalize, 
+                       _ccchacha20poly1305_incnonce, _ccchacha20poly1305_info, _ccchacha20poly1305_init, 
+                       _ccchacha20poly1305_reset, _ccchacha20poly1305_setnonce, _ccchacha20poly1305_verify, 
+                       _ccckg_contributor_commit, _ccckg_contributor_finish, _ccckg_init, 
+                       _ccckg_owner_finish, _ccckg_owner_generate_share, _ccckg_sizeof_commitment, 
+                       _ccckg_sizeof_ctx, _ccckg_sizeof_opening, _ccckg_sizeof_share, 
+                       _cccmac_final_generate, _cccmac_final_verify, _cccmac_init, 
+                       _cccmac_one_shot_generate, _cccmac_one_shot_verify, _cccmac_update, 
+                       _ccctr_block_size, _ccctr_context_size, _ccctr_init, _ccctr_one_shot, 
+                       _ccctr_update, _cccurve25519, _ccder_blob_decode_bitstring, 
+                       _ccder_blob_decode_eckey, _ccder_blob_decode_len, _ccder_blob_decode_len_strict, 
+                       _ccder_blob_decode_oid, _ccder_blob_decode_range, _ccder_blob_decode_range_strict, 
+                       _ccder_blob_decode_seqii, _ccder_blob_decode_seqii_strict, 
+                       _ccder_blob_decode_sequence_tl, _ccder_blob_decode_sequence_tl_strict, 
+                       _ccder_blob_decode_tag, _ccder_blob_decode_tl, _ccder_blob_decode_tl_strict, 
+                       _ccder_blob_decode_uint, _ccder_blob_decode_uint64, _ccder_blob_decode_uint_n, 
+                       _ccder_blob_decode_uint_strict, _ccder_blob_encode_body, _ccder_blob_encode_body_tl, 
+                       _ccder_blob_encode_eckey, _ccder_blob_encode_implicit_integer, 
+                       _ccder_blob_encode_implicit_octet_string, _ccder_blob_encode_implicit_raw_octet_string, 
+                       _ccder_blob_encode_implicit_uint64, _ccder_blob_encode_integer, 
+                       _ccder_blob_encode_len, _ccder_blob_encode_octet_string, _ccder_blob_encode_oid, 
+                       _ccder_blob_encode_raw_octet_string, _ccder_blob_encode_tag, 
+                       _ccder_blob_encode_tl, _ccder_blob_encode_uint64, _ccder_blob_reserve, 
+                       _ccder_blob_reserve_tl, _ccder_decode_bitstring, _ccder_decode_constructed_tl, 
+                       _ccder_decode_constructed_tl_strict, _ccder_decode_dhparam_n, 
+                       _ccder_decode_dhparams, _ccder_decode_eckey, _ccder_decode_len, 
+                       _ccder_decode_len_strict, _ccder_decode_oid, _ccder_decode_rsa_priv, 
+                       _ccder_decode_rsa_priv_n, _ccder_decode_rsa_pub, _ccder_decode_rsa_pub_n, 
+                       _ccder_decode_rsa_pub_x509, _ccder_decode_rsa_pub_x509_n, 
+                       _ccder_decode_seqii, _ccder_decode_seqii_strict, _ccder_decode_sequence_tl, 
+                       _ccder_decode_sequence_tl_strict, _ccder_decode_tag, _ccder_decode_tl, 
+                       _ccder_decode_tl_strict, _ccder_decode_uint, _ccder_decode_uint64, 
+                       _ccder_decode_uint_n, _ccder_decode_uint_strict, _ccder_encode_body, 
+                       _ccder_encode_body_nocopy, _ccder_encode_constructed_tl, _ccder_encode_dhparams, 
+                       _ccder_encode_dhparams_size, _ccder_encode_eckey, _ccder_encode_eckey_size, 
+                       _ccder_encode_implicit_integer, _ccder_encode_implicit_octet_string, 
+                       _ccder_encode_implicit_raw_octet_string, _ccder_encode_implicit_uint64, 
+                       _ccder_encode_integer, _ccder_encode_len, _ccder_encode_octet_string, 
+                       _ccder_encode_oid, _ccder_encode_raw_octet_string, _ccder_encode_rsa_priv, 
+                       _ccder_encode_rsa_priv_size, _ccder_encode_rsa_pub, _ccder_encode_rsa_pub_size, 
+                       _ccder_encode_tag, _ccder_encode_tl, _ccder_encode_uint64, 
+                       _ccder_sizeof, _ccder_sizeof_eckey, _ccder_sizeof_implicit_integer, 
+                       _ccder_sizeof_implicit_octet_string, _ccder_sizeof_implicit_raw_octet_string, 
+                       _ccder_sizeof_implicit_uint64, _ccder_sizeof_integer, _ccder_sizeof_len, 
+                       _ccder_sizeof_octet_string, _ccder_sizeof_oid, _ccder_sizeof_raw_octet_string, 
+                       _ccder_sizeof_tag, _ccder_sizeof_uint64, _ccdes3_cbc_decrypt_mode, 
+                       _ccdes3_cbc_encrypt_mode, _ccdes3_cfb8_decrypt_mode, _ccdes3_cfb8_encrypt_mode, 
+                       _ccdes3_cfb_decrypt_mode, _ccdes3_cfb_encrypt_mode, _ccdes3_ctr_crypt_mode, 
+                       _ccdes3_ecb_decrypt_mode, _ccdes3_ecb_encrypt_mode, _ccdes3_ltc_ecb_decrypt_mode, 
+                       _ccdes3_ltc_ecb_encrypt_mode, _ccdes3_ofb_crypt_mode, _ccdes_cbc_cksum, 
+                       _ccdes_cbc_decrypt_mode, _ccdes_cbc_encrypt_mode, _ccdes_cfb8_decrypt_mode, 
+                       _ccdes_cfb8_encrypt_mode, _ccdes_cfb_decrypt_mode, _ccdes_cfb_encrypt_mode, 
+                       _ccdes_ctr_crypt_mode, _ccdes_ecb_decrypt_mode, _ccdes_ecb_encrypt_mode, 
+                       _ccdes_key_is_weak, _ccdes_key_set_odd_parity, _ccdes_ofb_crypt_mode, 
+                       _ccdh_compute_shared_secret, _ccdh_export_pub, _ccdh_generate_key, 
+                       _ccdh_gp_apple768, _ccdh_gp_rfc2409group02, _ccdh_gp_rfc3526group05, 
+                       _ccdh_gp_rfc3526group14, _ccdh_gp_rfc3526group15, _ccdh_gp_rfc3526group16, 
+                       _ccdh_gp_rfc3526group17, _ccdh_gp_rfc3526group18, _ccdh_gp_rfc5114_MODP_1024_160, 
+                       _ccdh_gp_rfc5114_MODP_2048_224, _ccdh_gp_rfc5114_MODP_2048_256, 
+                       _ccdh_gp_size, _ccdh_import_full, _ccdh_import_priv, _ccdh_import_pub, 
+                       _ccdh_init_gp_from_bytes, _ccdh_init_safe_gp_from_bytes, _ccdigest, 
+                       _ccdigest_init, _ccdigest_oid_lookup, _ccdigest_update, _ccdrbg_df_bc_init, 
+                       _ccdrbg_factory_nistctr, _ccdrbg_factory_nisthmac, _ccdrbg_must_reseed, 
+                       _ccec_affinify, _ccec_blind, _ccec_compact_export, _ccec_compact_export_pub, 
+                       _ccec_compact_generate_key, _ccec_compact_generate_key_init, 
+                       _ccec_compact_generate_key_step, _ccec_compact_import_priv, 
+                       _ccec_compact_import_priv_size, _ccec_compact_import_pub, 
+                       _ccec_compact_import_pub_size, _ccec_compact_transform_key, 
+                       _ccec_compressed_x962_export_pub, _ccec_compressed_x962_export_pub_size, 
+                       _ccec_compressed_x962_import_pub, _ccec_compute_key, _ccec_cp_192, 
+                       _ccec_cp_224, _ccec_cp_256, _ccec_cp_384, _ccec_cp_521, _ccec_curve_for_length_lookup, 
+                       _ccec_der_export_diversified_pub, _ccec_der_export_diversified_pub_size, 
+                       _ccec_der_export_priv, _ccec_der_export_priv_size, _ccec_der_import_diversified_pub, 
+                       _ccec_der_import_priv, _ccec_der_import_priv_keytype, _ccec_diversify_min_entropy_len, 
+                       _ccec_diversify_priv_twin, _ccec_diversify_pub, _ccec_diversify_pub_twin, 
+                       _ccec_export_affine_point, _ccec_export_affine_point_size, 
+                       _ccec_export_pub, _ccec_extract_rs, _ccec_full_add, _ccec_generate_blinding_keys, 
+                       _ccec_generate_key, _ccec_generate_key_deterministic, _ccec_generate_key_fips, 
+                       _ccec_generate_key_legacy, _ccec_generate_scalar_fips_retry, 
+                       _ccec_get_cp, _ccec_get_fullkey_components, _ccec_get_pubkey_components, 
+                       _ccec_import_affine_point, _ccec_import_pub, _ccec_is_compactable_pub, 
+                       _ccec_keysize_is_supported, _ccec_make_priv, _ccec_make_pub, 
+                       _ccec_mult_blinded, _ccec_pairwise_consistency_check, _ccec_print_full_key, 
+                       _ccec_print_public_key, _ccec_projectify, _ccec_raw_import_priv_only, 
+                       _ccec_raw_import_pub, _ccec_rfc6637_dh_curve_p256, _ccec_rfc6637_dh_curve_p521, 
+                       _ccec_rfc6637_unwrap_key, _ccec_rfc6637_unwrap_sha256_kek_aes128, 
+                       _ccec_rfc6637_unwrap_sha512_kek_aes256, _ccec_rfc6637_wrap_key, 
+                       _ccec_rfc6637_wrap_key_diversified, _ccec_rfc6637_wrap_key_size, 
+                       _ccec_rfc6637_wrap_sha256_kek_aes128, _ccec_rfc6637_wrap_sha512_kek_aes256, 
+                       _ccec_sign, _ccec_sign_composite, _ccec_sign_composite_msg, 
+                       _ccec_sign_msg, _ccec_signature_r_s_size, _ccec_unblind, _ccec_validate_pub, 
+                       _ccec_verify, _ccec_verify_composite, _ccec_verify_composite_digest, 
+                       _ccec_verify_composite_msg, _ccec_verify_digest, _ccec_verify_msg, 
+                       _ccec_x963_export, _ccec_x963_import_priv, _ccec_x963_import_priv_size, 
+                       _ccec_x963_import_pub, _ccec_x963_import_pub_size, _ccecb_block_size, 
+                       _ccecb_context_size, _ccecb_init, _ccecb_one_shot, _ccecb_update, 
+                       _ccecdh_compute_shared_secret, _ccecdh_generate_key, _ccecies_decrypt_gcm, 
+                       _ccecies_decrypt_gcm_composite, _ccecies_decrypt_gcm_from_shared_secret, 
+                       _ccecies_decrypt_gcm_plaintext_size, _ccecies_decrypt_gcm_plaintext_size_cp, 
+                       _ccecies_decrypt_gcm_setup, _ccecies_encrypt_gcm, _ccecies_encrypt_gcm_ciphertext_size, 
+                       _ccecies_encrypt_gcm_composite, _ccecies_encrypt_gcm_from_shared_secret, 
+                       _ccecies_encrypt_gcm_setup, _ccecies_import_eph_pub, _ccecies_pub_key_size, 
+                       _ccecies_pub_key_size_cp, _cced25519_make_key_pair, _cced25519_make_pub, 
+                       _cced25519_sign, _cced25519_verify, _ccentropy_add_entropy, 
+                       _ccentropy_digest_init, _ccentropy_get_seed, _ccentropy_rng_init, 
+                       _ccgcm_aad, _ccgcm_block_size, _ccgcm_context_size, _ccgcm_finalize, 
+                       _ccgcm_gmac, _ccgcm_inc_iv, _ccgcm_init, _ccgcm_init_with_iv, 
+                       _ccgcm_one_shot, _ccgcm_one_shot_legacy, _ccgcm_reset, _ccgcm_set_iv, 
+                       _ccgcm_set_iv_legacy, _ccgcm_update, _cch2c, _cch2c_name, 
+                       _cch2c_p256_sha256_sae_compat_info, _cch2c_p256_sha256_sswu_ro_info, 
+                       _cch2c_p384_sha512_sswu_ro_info, _cch2c_p521_sha512_sswu_ro_info, 
+                       _cchkdf, _cchkdf_expand, _cchkdf_extract, _cchmac, _cchmac_final, 
+                       _cchmac_init, _cchmac_update, _cchpke_initiator_encrypt, _cchpke_initiator_export, 
+                       _cchpke_initiator_seal, _cchpke_initiator_setup, _cchpke_kem_generate_key_pair, 
+                       _cchpke_params_sizeof_aead_key, _cchpke_params_sizeof_aead_nonce, 
+                       _cchpke_params_sizeof_aead_tag, _cchpke_params_sizeof_kdf_hash, 
+                       _cchpke_params_sizeof_kem_enc, _cchpke_params_sizeof_kem_pk, 
+                       _cchpke_params_sizeof_kem_pk_marshalled, _cchpke_params_sizeof_kem_shared_secret, 
+                       _cchpke_params_sizeof_kem_sk, _cchpke_params_x25519_AESGCM128_HKDF_SHA256, 
+                       _cchpke_responder_decrypt, _cchpke_responder_export, _cchpke_responder_open, 
+                       _cchpke_responder_setup, _ccmd2_ltc_di, _ccmd4_ltc_di, _ccmd5_di, 
+                       _ccmd5_ltc_di, _ccmgf, _ccmode_factory_cbc_decrypt, _ccmode_factory_cbc_encrypt, 
+                       _ccmode_factory_ccm_decrypt, _ccmode_factory_ccm_encrypt, 
+                       _ccmode_factory_cfb8_decrypt, _ccmode_factory_cfb8_encrypt, 
+                       _ccmode_factory_cfb_decrypt, _ccmode_factory_cfb_encrypt, 
+                       _ccmode_factory_ctr_crypt, _ccmode_factory_gcm_decrypt, _ccmode_factory_gcm_encrypt, 
+                       _ccmode_factory_ofb_crypt, _ccmode_factory_omac_decrypt, _ccmode_factory_omac_encrypt, 
+                       _ccmode_factory_siv_decrypt, _ccmode_factory_siv_encrypt, 
+                       _ccmode_factory_xts_decrypt, _ccmode_factory_xts_encrypt, 
+                       _ccn_add, _ccn_add1, _ccn_bitlen, _ccn_cmp, _ccn_cmpn, _ccn_lprint, 
+                       _ccn_print, _ccn_read_uint, _ccn_set, _ccn_shift_right, _ccn_sub, 
+                       _ccn_write_int, _ccn_write_int_size, _ccn_write_uint, _ccn_write_uint_padded_ct, 
+                       _ccn_write_uint_size, _ccnistkdf_ctr_cmac, _ccnistkdf_ctr_cmac_fixed, 
+                       _ccnistkdf_ctr_hmac, _ccnistkdf_ctr_hmac_fixed, _ccnistkdf_fb_hmac, 
+                       _ccnistkdf_fb_hmac_fixed, _ccofb_block_size, _ccofb_context_size, 
+                       _ccofb_init, _ccofb_one_shot, _ccofb_update, _ccoid_equal, 
+                       _ccomac_block_size, _ccomac_context_size, _ccomac_init, _ccomac_one_shot, 
+                       _ccomac_update, _ccpad_cts1_decrypt, _ccpad_cts1_encrypt, 
+                       _ccpad_cts2_decrypt, _ccpad_cts2_encrypt, _ccpad_cts3_decrypt, 
+                       _ccpad_cts3_encrypt, _ccpad_pkcs7_decode, _ccpad_pkcs7_decrypt, 
+                       _ccpad_pkcs7_ecb_decrypt, _ccpad_pkcs7_ecb_encrypt, _ccpad_pkcs7_encrypt, 
+                       _ccpad_xts_decrypt, _ccpad_xts_encrypt, _ccpbkdf2_hmac, _ccpoly1305, 
+                       _ccpoly1305_final, _ccpoly1305_init, _ccpoly1305_update, _ccrc2_cbc_decrypt_mode, 
+                       _ccrc2_cbc_encrypt_mode, _ccrc2_cfb8_decrypt_mode, _ccrc2_cfb8_encrypt_mode, 
+                       _ccrc2_cfb_decrypt_mode, _ccrc2_cfb_encrypt_mode, _ccrc2_ctr_crypt_mode, 
+                       _ccrc2_ecb_decrypt_mode, _ccrc2_ecb_encrypt_mode, _ccrc2_ofb_crypt_mode, 
+                       _ccrc4, _ccrc4_eay, _ccrmd160_ltc_di, _ccrng, _ccrng_drbg_done, 
+                       _ccrng_drbg_init, _ccrng_drbg_init_withdrbg, _ccrng_drbg_reseed, 
+                       _ccrng_ecfips_test_init, _ccrng_pbkdf2_prng_init, _ccrng_prng, 
+                       _ccrng_rsafips_test_init, _ccrng_rsafips_test_set_next, _ccrng_sequence_init, 
+                       _ccrng_system_done, _ccrng_system_init, _ccrng_test_done, 
+                       _ccrng_test_init, _ccrng_trng, _ccrng_uniform, _ccrsa_decrypt_eme_pkcs1v15, 
+                       _ccrsa_decrypt_oaep, _ccrsa_dump_full_key, _ccrsa_dump_public_key, 
+                       _ccrsa_eme_pkcs1v15_decode, _ccrsa_eme_pkcs1v15_encode, _ccrsa_emsa_pkcs1v15_encode, 
+                       _ccrsa_emsa_pkcs1v15_verify, _ccrsa_emsa_pss_decode, _ccrsa_emsa_pss_encode, 
+                       _ccrsa_encrypt_eme_pkcs1v15, _ccrsa_encrypt_oaep, _ccrsa_export_pub, 
+                       _ccrsa_generate_fips186_key, _ccrsa_generate_key, _ccrsa_generate_key_deterministic, 
+                       _ccrsa_get_fullkey_components, _ccrsa_get_pubkey_components, 
+                       _ccrsa_import_pub, _ccrsa_init_pub, _ccrsa_make_priv, _ccrsa_make_pub, 
+                       _ccrsa_oaep_decode_parameter, _ccrsa_oaep_encode_parameter, 
+                       _ccrsa_priv_crypt, _ccrsa_pub_crypt, _ccrsa_pubkeylength, 
+                       _ccrsa_recover_priv, _ccrsa_sign_pkcs1v15, _ccrsa_sign_pkcs1v15_msg, 
+                       _ccrsa_sign_pss, _ccrsa_sign_pss_msg, _ccrsa_verify_pkcs1v15, 
+                       _ccrsa_verify_pkcs1v15_allowshortsigs, _ccrsa_verify_pkcs1v15_digest, 
+                       _ccrsa_verify_pkcs1v15_msg, _ccrsa_verify_pss_digest, _ccrsa_verify_pss_msg, 
+                       _ccrsabssa_blind_message, _ccrsabssa_ciphersuite_rsa2048_sha384, 
+                       _ccrsabssa_ciphersuite_rsa3072_sha384, _ccrsabssa_ciphersuite_rsa4096_sha384, 
+                       _ccrsabssa_sign_blinded_message, _ccrsabssa_unblind_signature, 
+                       _ccsae_gen_kck_and_pmk, _ccsae_gen_password_value, _ccsae_generate_commitment, 
+                       _ccsae_generate_commitment_finalize, _ccsae_generate_commitment_init, 
+                       _ccsae_generate_commitment_partial, _ccsae_generate_confirmation, 
+                       _ccsae_generate_h2c_commit, _ccsae_generate_h2c_commit_finalize, 
+                       _ccsae_generate_h2c_commit_init, _ccsae_generate_h2c_pt, _ccsae_get_keys, 
+                       _ccsae_init, _ccsae_init_p256_sha256, _ccsae_lexographic_order_key, 
+                       _ccsae_sizeof_commitment, _ccsae_sizeof_confirmation, _ccsae_sizeof_ctx, 
+                       _ccsae_sizeof_pt, _ccsae_verify_commitment, _ccsae_verify_confirmation, 
+                       _ccscrypt, _ccscrypt_storage_size, _ccsha1_di, _ccsha1_eay_di, 
+                       _ccsha1_ltc_di, _ccsha224_di, _ccsha224_ltc_di, _ccsha256_di, 
+                       _ccsha256_ltc_di, _ccsha384_di, _ccsha384_ltc_di, _ccsha3_224_c_di, 
+                       _ccsha3_224_di, _ccsha3_256_c_di, _ccsha3_256_di, _ccsha3_384_c_di, 
+                       _ccsha3_384_di, _ccsha3_512_c_di, _ccsha3_512_di, _ccsha512_256_di, 
+                       _ccsha512_256_ltc_di, _ccsha512_di, _ccsha512_ltc_di, _ccsigma_clear, 
+                       _ccsigma_clear_key, _ccsigma_compute_mac, _ccsigma_derive_session_keys, 
+                       _ccsigma_export_key_share, _ccsigma_import_peer_key_share, 
+                       _ccsigma_import_peer_verification_key, _ccsigma_import_signing_key, 
+                       _ccsigma_init, _ccsigma_kex_init_ctx, _ccsigma_kex_resp_ctx, 
+                       _ccsigma_mfi_info, _ccsigma_open, _ccsigma_peer_role, _ccsigma_seal, 
+                       _ccsigma_set_signing_function, _ccsigma_sign, _ccsigma_verify, 
+                       _ccsiv_aad, _ccsiv_block_size, _ccsiv_ciphertext_size, _ccsiv_context_size, 
+                       _ccsiv_crypt, _ccsiv_hmac_aad, _ccsiv_hmac_block_size, _ccsiv_hmac_ciphertext_size, 
+                       _ccsiv_hmac_context_size, _ccsiv_hmac_crypt, _ccsiv_hmac_init, 
+                       _ccsiv_hmac_one_shot, _ccsiv_hmac_plaintext_size, _ccsiv_hmac_reset, 
+                       _ccsiv_hmac_set_nonce, _ccsiv_init, _ccsiv_one_shot, _ccsiv_plaintext_size, 
+                       _ccsiv_reset, _ccsiv_set_nonce, _ccspake_cp_256, _ccspake_cp_384, 
+                       _ccspake_cp_521, _ccspake_generate_L, _ccspake_kex_generate, 
+                       _ccspake_kex_process, _ccspake_mac_compute, _ccspake_mac_hkdf_cmac_aes128_sha256, 
+                       _ccspake_mac_hkdf_hmac_sha256, _ccspake_mac_hkdf_hmac_sha512, 
+                       _ccspake_mac_verify_and_get_session_key, _ccspake_prover_init, 
+                       _ccspake_sizeof_ctx, _ccspake_sizeof_point, _ccspake_sizeof_w, 
+                       _ccspake_verifier_init, _ccsrp_client_process_challenge, _ccsrp_client_start_authentication, 
+                       _ccsrp_client_verify_session, _ccsrp_generate_salt_and_verification, 
+                       _ccsrp_generate_verifier, _ccsrp_gp_rfc5054_1024, _ccsrp_gp_rfc5054_2048, 
+                       _ccsrp_gp_rfc5054_3072, _ccsrp_gp_rfc5054_4096, _ccsrp_gp_rfc5054_8192, 
+                       _ccsrp_server_compute_session, _ccsrp_server_generate_public_key, 
+                       _ccsrp_server_start_authentication, _ccsrp_server_verify_session, 
+                       _ccss_shamir_parameters_init, _ccss_shamir_parameters_maximum_secret_length, 
+                       _ccss_shamir_share_bag_add_share, _ccss_shamir_share_bag_init, 
+                       _ccss_shamir_share_bag_recover_secret, _ccss_shamir_share_export, 
+                       _ccss_shamir_share_generator_deserialize, _ccss_shamir_share_generator_generate_share, 
+                       _ccss_shamir_share_generator_init, _ccss_shamir_share_generator_init_with_secrets_less_than_prime, 
+                       _ccss_shamir_share_generator_serialize, _ccss_shamir_share_import, 
+                       _ccss_shamir_share_init, _ccss_shamir_share_sizeof_y, _ccss_sizeof_generator, 
+                       _ccss_sizeof_parameters, _ccss_sizeof_shamir_share_generator_serialization, 
+                       _ccss_sizeof_share, _ccss_sizeof_share_bag, _ccvrf_derive_public_key, 
+                       _ccvrf_factory_irtfdraft03, _ccvrf_factory_irtfdraft03_default, 
+                       _ccvrf_proof_to_hash, _ccvrf_prove, _ccvrf_sizeof_hash, _ccvrf_sizeof_proof, 
+                       _ccvrf_sizeof_public_key, _ccvrf_sizeof_secret_key, _ccvrf_verify, 
+                       _ccwrap_auth_decrypt, _ccwrap_auth_decrypt_withiv, _ccwrap_auth_encrypt, 
+                       _ccwrap_auth_encrypt_withiv, _ccwrap_unwrapped_size, _ccwrap_wrapped_size, 
+                       _ccxts_block_size, _ccxts_context_size, _ccxts_init, _ccxts_one_shot, 
+                       _ccxts_set_tweak, _ccxts_update, _ccz_add, _ccz_addi, _ccz_bit, 
+                       _ccz_bitlen, _ccz_cmp, _ccz_cmpi, _ccz_divmod, _ccz_expmod, 
+                       _ccz_free, _ccz_init, _ccz_is_negative, _ccz_is_one, _ccz_is_prime, 
+                       _ccz_is_zero, _ccz_lsl, _ccz_lsr, _ccz_mod, _ccz_mul, _ccz_muli, 
+                       _ccz_mulmod, _ccz_neg, _ccz_random_bits, _ccz_read_radix, 
+                       _ccz_read_uint, _ccz_set, _ccz_set_bit, _ccz_seti, _ccz_size, 
+                       _ccz_sub, _ccz_subi, _ccz_trailing_zeros, _ccz_write_int, 
+                       _ccz_write_int_size, _ccz_write_radix, _ccz_write_radix_size, 
+                       _ccz_write_uint, _ccz_write_uint_size, _ccz_zero, _cczp_add, 
+                       _cczp_inv, _cczp_mod, _cczp_mul, _cczp_sub, _csss_shamir_share_bag_can_recover_secret, 
+                       _fipspost_post, _fipspost_trace_vtable, _map_to_curve_sswu ]
+  - targets:         [ arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _ccaes_arm_cbc_decrypt_mode, _ccaes_arm_cbc_encrypt_mode, 
+                       _ccaes_arm_cfb_decrypt_mode, _ccaes_arm_cfb_encrypt_mode, 
+                       _ccaes_arm_ecb_decrypt_mode, _ccaes_arm_ecb_encrypt_mode, 
+                       _ccaes_arm_ofb_crypt_mode, _ccaes_arm_xts_decrypt_mode, _ccaes_arm_xts_encrypt_mode, 
+                       _ccsha1_vng_arm_di, _ccsha224_vng_arm_di, _ccsha256_vng_arm64neon_di, 
+                       _ccsha256_vng_arm_di, _ccsha384_vng_arm_di, _ccsha512_256_vng_arm_di, 
+                       _ccsha512_vng_arm_di ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           817339A1-D03E-3E54-9C47-ACACF69F6193
+  - target:          x86_64-maccatalyst
+    value:           817339A1-D03E-3E54-9C47-ACACF69F6193
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           40C9C98C-00D6-3E8E-9AD3-2ED6CF0D0CFE
+  - target:          arm64e-maccatalyst
+    value:           40C9C98C-00D6-3E8E-9AD3-2ED6CF0D0CFE
+install-name:    '/usr/lib/system/libdispatch.dylib'
+current-version: 1412
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ '$ld$hide$os10.12$_dispatch_assert_queue', '$ld$hide$os10.12$_dispatch_assert_queue_not', 
+                       '$ld$hide$os10.12$_dispatch_queue_create_with_target', __dispatch_begin_NSAutoReleasePool, 
+                       __dispatch_bug, __dispatch_data_destructor_free, __dispatch_data_destructor_munmap, 
+                       __dispatch_data_destructor_none, __dispatch_data_destructor_vm_deallocate, 
+                       __dispatch_data_empty, __dispatch_data_format_type_base32, 
+                       __dispatch_data_format_type_base32hex, __dispatch_data_format_type_base64, 
+                       __dispatch_data_format_type_none, __dispatch_data_format_type_utf16be, 
+                       __dispatch_data_format_type_utf16le, __dispatch_data_format_type_utf8, 
+                       __dispatch_data_format_type_utf_any, __dispatch_end_NSAutoReleasePool, 
+                       __dispatch_get_main_queue_handle_4CF, __dispatch_get_main_queue_port_4CF, 
+                       __dispatch_iocntl, __dispatch_is_fork_of_multithreaded_parent, 
+                       __dispatch_is_multithreaded, __dispatch_log, __dispatch_mach_hooks_install_default, 
+                       __dispatch_main_q, __dispatch_main_queue_callback_4CF, __dispatch_poll_for_events_4launchd, 
+                       __dispatch_prohibit_transition_to_multithreaded, __dispatch_pthread_root_queue_create_with_observer_hooks_4IOHID, 
+                       __dispatch_queue_attr_concurrent, __dispatch_queue_is_exclusively_owned_by_current_thread_4IOHID, 
+                       __dispatch_runloop_root_queue_create_4CF, __dispatch_runloop_root_queue_get_port_4CF, 
+                       __dispatch_runloop_root_queue_perform_4CF, __dispatch_runloop_root_queue_wakeup_4CF, 
+                       __dispatch_source_set_runloop_timer_4CF, __dispatch_source_type_data_add, 
+                       __dispatch_source_type_data_or, __dispatch_source_type_data_replace, 
+                       __dispatch_source_type_interval, __dispatch_source_type_mach_recv, 
+                       __dispatch_source_type_mach_send, __dispatch_source_type_memorypressure, 
+                       __dispatch_source_type_memorystatus, __dispatch_source_type_nw_channel, 
+                       __dispatch_source_type_proc, __dispatch_source_type_read, 
+                       __dispatch_source_type_signal, __dispatch_source_type_sock, 
+                       __dispatch_source_type_timer, __dispatch_source_type_vfs, 
+                       __dispatch_source_type_vm, __dispatch_source_type_vnode, __dispatch_source_type_write, 
+                       __dispatch_source_will_reenable_kevent_4NW, __dispatch_wait_for_enqueuer, 
+                       __dispatch_workloop_set_observer_hooks_4IOHID, __dispatch_workloop_should_yield_4NW, 
+                       __firehose_spi_version, __os_object_alloc, __os_object_alloc_realized, 
+                       __os_object_dealloc, __os_object_release, __os_object_release_internal, 
+                       __os_object_release_internal_n, __os_object_release_without_xref_dispose, 
+                       __os_object_retain, __os_object_retain_internal, __os_object_retain_internal_n, 
+                       __os_object_retain_with_resurrect, _dispatch_activate, _dispatch_after, 
+                       _dispatch_after_f, _dispatch_allocator_layout, _dispatch_apply, 
+                       _dispatch_apply_attr_destroy, _dispatch_apply_attr_init, _dispatch_apply_attr_query, 
+                       _dispatch_apply_attr_set_parallelism, _dispatch_apply_f, _dispatch_apply_with_attr, 
+                       _dispatch_apply_with_attr_f, _dispatch_assert_queue, '_dispatch_assert_queue$V2', 
+                       _dispatch_assert_queue_barrier, _dispatch_assert_queue_not, 
+                       '_dispatch_assert_queue_not$V2', _dispatch_async, _dispatch_async_and_wait, 
+                       _dispatch_async_and_wait_f, _dispatch_async_enforce_qos_class_f, 
+                       _dispatch_async_f, _dispatch_async_swift_job, _dispatch_atfork_child, 
+                       _dispatch_atfork_parent, _dispatch_atfork_prepare, _dispatch_barrier_async, 
+                       _dispatch_barrier_async_and_wait, _dispatch_barrier_async_and_wait_f, 
+                       _dispatch_barrier_async_f, _dispatch_barrier_sync, _dispatch_barrier_sync_f, 
+                       _dispatch_benchmark, _dispatch_benchmark_f, _dispatch_block_cancel, 
+                       _dispatch_block_create, _dispatch_block_create_with_qos_class, 
+                       _dispatch_block_create_with_voucher, _dispatch_block_create_with_voucher_and_qos_class, 
+                       _dispatch_block_notify, _dispatch_block_perform, _dispatch_block_testcancel, 
+                       _dispatch_block_wait, _dispatch_channel_async, _dispatch_channel_async_f, 
+                       _dispatch_channel_cancel, _dispatch_channel_create, _dispatch_channel_drain, 
+                       _dispatch_channel_drain_f, _dispatch_channel_enqueue, _dispatch_channel_foreach_work_item_peek, 
+                       _dispatch_channel_foreach_work_item_peek_f, _dispatch_channel_testcancel, 
+                       _dispatch_channel_wakeup, _dispatch_data_apply, _dispatch_data_apply_f, 
+                       _dispatch_data_copy_region, _dispatch_data_create, _dispatch_data_create_alloc, 
+                       _dispatch_data_create_concat, _dispatch_data_create_f, _dispatch_data_create_map, 
+                       _dispatch_data_create_subrange, _dispatch_data_create_with_transform, 
+                       _dispatch_data_get_flattened_bytes_4libxpc, _dispatch_data_get_size, 
+                       _dispatch_data_make_memory_entry, _dispatch_debug, _dispatch_debugv, 
+                       _dispatch_get_context, _dispatch_get_current_queue, _dispatch_get_global_queue, 
+                       _dispatch_get_specific, _dispatch_group_async, _dispatch_group_async_f, 
+                       _dispatch_group_create, _dispatch_group_enter, _dispatch_group_leave, 
+                       _dispatch_group_notify, _dispatch_group_notify_f, _dispatch_group_wait, 
+                       _dispatch_io_barrier, _dispatch_io_barrier_f, _dispatch_io_close, 
+                       _dispatch_io_create, _dispatch_io_create_f, _dispatch_io_create_with_io, 
+                       _dispatch_io_create_with_io_f, _dispatch_io_create_with_path, 
+                       _dispatch_io_create_with_path_f, _dispatch_io_get_descriptor, 
+                       _dispatch_io_read, _dispatch_io_read_f, _dispatch_io_set_high_water, 
+                       _dispatch_io_set_interval, _dispatch_io_set_low_water, _dispatch_io_write, 
+                       _dispatch_io_write_f, _dispatch_lock_override_end, _dispatch_lock_override_start_with_debounce, 
+                       _dispatch_mach_can_handoff_4libxpc, _dispatch_mach_cancel, 
+                       _dispatch_mach_connect, _dispatch_mach_create, _dispatch_mach_create_4libxpc, 
+                       _dispatch_mach_create_f, _dispatch_mach_get_checkin_port, 
+                       _dispatch_mach_handoff_reply, _dispatch_mach_handoff_reply_f, 
+                       _dispatch_mach_hooks_install_4libxpc, _dispatch_mach_mig_demux, 
+                       _dispatch_mach_mig_demux_get_context, _dispatch_mach_msg_create, 
+                       _dispatch_mach_msg_get_context, _dispatch_mach_msg_get_filter_policy_id, 
+                       _dispatch_mach_msg_get_msg, _dispatch_mach_notify_no_senders, 
+                       _dispatch_mach_receive_barrier, _dispatch_mach_receive_barrier_f, 
+                       _dispatch_mach_reconnect, _dispatch_mach_request_no_senders, 
+                       _dispatch_mach_send, _dispatch_mach_send_and_wait_for_reply, 
+                       _dispatch_mach_send_barrier, _dispatch_mach_send_barrier_f, 
+                       _dispatch_mach_send_with_result, _dispatch_mach_send_with_result_and_async_reply_4libxpc, 
+                       _dispatch_mach_send_with_result_and_wait_for_reply, _dispatch_mach_set_flags, 
+                       _dispatch_main, _dispatch_mig_server, _dispatch_once, _dispatch_once_f, 
+                       _dispatch_pthread_root_queue_copy_current, _dispatch_pthread_root_queue_create, 
+                       _dispatch_queue_attr_make_initially_inactive, _dispatch_queue_attr_make_with_autorelease_frequency, 
+                       _dispatch_queue_attr_make_with_overcommit, _dispatch_queue_attr_make_with_qos_class, 
+                       _dispatch_queue_create, _dispatch_queue_create_with_accounting_override_voucher, 
+                       _dispatch_queue_create_with_target, '_dispatch_queue_create_with_target$V2', 
+                       _dispatch_queue_get_label, _dispatch_queue_get_qos_class, 
+                       _dispatch_queue_get_specific, _dispatch_queue_offsets, _dispatch_queue_set_label_nocopy, 
+                       _dispatch_queue_set_specific, _dispatch_queue_set_width, _dispatch_read, 
+                       _dispatch_read_f, _dispatch_release, _dispatch_resume, _dispatch_retain, 
+                       _dispatch_semaphore_create, _dispatch_semaphore_signal, _dispatch_semaphore_wait, 
+                       _dispatch_set_context, _dispatch_set_finalizer_f, _dispatch_set_qos_class, 
+                       _dispatch_set_qos_class_fallback, _dispatch_set_qos_class_floor, 
+                       _dispatch_set_target_queue, _dispatch_source_cancel, _dispatch_source_cancel_and_wait, 
+                       _dispatch_source_create, _dispatch_source_get_data, _dispatch_source_get_extended_data, 
+                       _dispatch_source_get_handle, _dispatch_source_get_mask, _dispatch_source_merge_data, 
+                       _dispatch_source_set_cancel_handler, _dispatch_source_set_cancel_handler_f, 
+                       _dispatch_source_set_event_handler, _dispatch_source_set_event_handler_f, 
+                       _dispatch_source_set_mandatory_cancel_handler, _dispatch_source_set_mandatory_cancel_handler_f, 
+                       _dispatch_source_set_registration_handler, _dispatch_source_set_registration_handler_f, 
+                       _dispatch_source_set_timer, _dispatch_source_testcancel, _dispatch_suspend, 
+                       _dispatch_swift_job_should_yield, _dispatch_sync, _dispatch_sync_f, 
+                       _dispatch_thread_get_current_override_qos_floor, _dispatch_thread_override_self, 
+                       _dispatch_time, _dispatch_time_from_nsec, _dispatch_time_to_nsec, 
+                       _dispatch_time_to_nsecs, _dispatch_tsd_indexes, _dispatch_walltime, 
+                       _dispatch_workloop_copy_current, _dispatch_workloop_create, 
+                       _dispatch_workloop_create_inactive, _dispatch_workloop_is_current, 
+                       _dispatch_workloop_set_autorelease_frequency, _dispatch_workloop_set_cpupercent, 
+                       _dispatch_workloop_set_os_workgroup, _dispatch_workloop_set_qos_class, 
+                       _dispatch_workloop_set_qos_class_floor, _dispatch_workloop_set_scheduler_priority, 
+                       _dispatch_write, _dispatch_write_f, _libdispatch_init, _mach_voucher_persona_for_originator, 
+                       _mach_voucher_persona_self, _os_eventlink_activate, _os_eventlink_associate, 
+                       _os_eventlink_cancel, _os_eventlink_create, _os_eventlink_create_remote_with_eventlink, 
+                       _os_eventlink_create_with_port, _os_eventlink_disassociate, 
+                       _os_eventlink_extract_remote_port, _os_eventlink_signal, _os_eventlink_signal_and_wait, 
+                       _os_eventlink_signal_and_wait_until, _os_eventlink_wait, _os_eventlink_wait_until, 
+                       _os_release, _os_retain, _os_workgroup_attr_set_flags, _os_workgroup_attr_set_interval_type, 
+                       _os_workgroup_cancel, _os_workgroup_copy_port, _os_workgroup_create, 
+                       _os_workgroup_create_with_port, _os_workgroup_create_with_workgroup, 
+                       _os_workgroup_create_with_workload_id, _os_workgroup_create_with_workload_id_and_port, 
+                       _os_workgroup_create_with_workload_id_and_workgroup, _os_workgroup_get_working_arena, 
+                       _os_workgroup_interval_copy_current_4AudioToolbox, _os_workgroup_interval_create, 
+                       _os_workgroup_interval_create_with_workload_id, _os_workgroup_interval_data_set_flags, 
+                       _os_workgroup_interval_finish, _os_workgroup_interval_start, 
+                       _os_workgroup_interval_update, _os_workgroup_join, _os_workgroup_join_self, 
+                       _os_workgroup_leave, _os_workgroup_leave_self, _os_workgroup_max_parallel_threads, 
+                       _os_workgroup_parallel_create, _os_workgroup_set_working_arena, 
+                       _os_workgroup_testcancel, _voucher_activity_create_with_data, 
+                       _voucher_activity_create_with_location, _voucher_activity_flush, 
+                       _voucher_activity_get_logging_preferences, _voucher_activity_get_metadata_buffer, 
+                       _voucher_activity_id_allocate, _voucher_activity_initialize_4libtrace, 
+                       _voucher_activity_should_send_strings, _voucher_activity_trace, 
+                       _voucher_activity_trace_v, _voucher_activity_trace_v_2, _voucher_adopt, 
+                       _voucher_copy, _voucher_copy_with_persona_mach_voucher, _voucher_copy_without_importance, 
+                       _voucher_create_with_mach_msg, _voucher_decrement_importance_count4CF, 
+                       _voucher_get_activity_id, _voucher_get_activity_id_and_creator, 
+                       _voucher_get_current_persona, _voucher_get_current_persona_originator_info, 
+                       _voucher_get_current_persona_proximate_info, _voucher_kvoucher_debug, 
+                       _voucher_process_can_use_arbitrary_personas, _voucher_release, 
+                       _voucher_replace_default_voucher, _voucher_retain ]
+    objc-classes:    [ OS_dispatch_channel, OS_dispatch_data, OS_dispatch_disk, OS_dispatch_group, 
+                       OS_dispatch_io, OS_dispatch_mach, OS_dispatch_mach_msg, OS_dispatch_object, 
+                       OS_dispatch_operation, OS_dispatch_queue, OS_dispatch_queue_attr, 
+                       OS_dispatch_queue_concurrent, OS_dispatch_queue_global, OS_dispatch_queue_main, 
+                       OS_dispatch_queue_serial, OS_dispatch_semaphore, OS_dispatch_source, 
+                       OS_dispatch_workloop, OS_object, OS_os_eventlink, OS_os_workgroup, 
+                       OS_os_workgroup_interval, OS_os_workgroup_parallel, OS_voucher ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           6C8B449A-78F4-3127-BC23-910719DE96AB
+  - target:          x86_64-maccatalyst
+    value:           6C8B449A-78F4-3127-BC23-910719DE96AB
+  - target:          arm64-macos
+    value:           C52D0F3B-0BAE-376B-A851-943F95388DD7
+  - target:          arm64-maccatalyst
+    value:           C52D0F3B-0BAE-376B-A851-943F95388DD7
+  - target:          arm64e-macos
+    value:           668F3379-151D-3ED4-859C-8F56E7941CDE
+  - target:          arm64e-maccatalyst
+    value:           668F3379-151D-3ED4-859C-8F56E7941CDE
+install-name:    '/usr/lib/system/libdyld.dylib'
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _NSAddImage, _NSAddLibrary, _NSAddLibraryWithSearching, _NSAddressOfSymbol, 
+                       _NSCreateObjectFileImageFromFile, _NSCreateObjectFileImageFromMemory, 
+                       _NSDestroyObjectFileImage, _NSGetSectionDataInObjectFileImage, 
+                       _NSInstallLinkEditErrorHandlers, _NSIsSymbolDefinedInObjectFileImage, 
+                       _NSIsSymbolNameDefined, _NSIsSymbolNameDefinedInImage, _NSIsSymbolNameDefinedWithHint, 
+                       _NSLibraryNameForModule, _NSLinkEditError, _NSLinkModule, 
+                       _NSLookupAndBindSymbol, _NSLookupAndBindSymbolWithHint, _NSLookupSymbolInImage, 
+                       _NSLookupSymbolInModule, _NSModuleForSymbol, _NSNameOfModule, 
+                       _NSNameOfSymbol, _NSSymbolDefinitionCountInObjectFileImage, 
+                       _NSSymbolDefinitionNameInObjectFileImage, _NSSymbolReferenceCountInObjectFileImage, 
+                       _NSSymbolReferenceNameInObjectFileImage, _NSUnLinkModule, 
+                       _NSVersionOfLinkTimeLibrary, _NSVersionOfRunTimeLibrary, _NXArgc, 
+                       _NXArgv, __NSGetExecutablePath, ___progname, __dyld_all_twolevel_modules_prebound, 
+                       __dyld_atfork_parent, __dyld_atfork_prepare, __dyld_bind_fully_image_containing_address, 
+                       __dyld_dlopen_atfork_child, __dyld_dlopen_atfork_parent, __dyld_dlopen_atfork_prepare, 
+                       __dyld_find_foreign_type_protocol_conformance, __dyld_find_foreign_type_protocol_conformance_on_disk, 
+                       __dyld_find_protocol_conformance, __dyld_find_protocol_conformance_on_disk, 
+                       __dyld_find_unwind_sections, __dyld_for_each_objc_class, __dyld_for_each_objc_protocol, 
+                       __dyld_fork_child, __dyld_get_dlopen_image_header, __dyld_get_image_header, 
+                       __dyld_get_image_header_containing_address, __dyld_get_image_name, 
+                       __dyld_get_image_slide, __dyld_get_image_uuid, __dyld_get_image_vmaddr_slide, 
+                       __dyld_get_objc_selector, __dyld_get_prog_image_header, __dyld_get_shared_cache_range, 
+                       __dyld_get_shared_cache_uuid, __dyld_has_fix_for_radar, __dyld_has_preoptimized_swift_protocol_conformances, 
+                       __dyld_image_containing_address, __dyld_image_count, __dyld_images_for_addresses, 
+                       __dyld_initializer, __dyld_is_memory_immutable, __dyld_is_objc_constant, 
+                       __dyld_launch_mode, __dyld_launched_prebound, __dyld_lookup_and_bind, 
+                       __dyld_lookup_and_bind_fully, __dyld_lookup_and_bind_with_hint, 
+                       __dyld_missing_symbol_abort, __dyld_objc_class_count, __dyld_objc_notify_register, 
+                       __dyld_objc_register_callbacks, __dyld_objc_uses_large_shared_cache, 
+                       __dyld_present, __dyld_process_info_create, __dyld_process_info_for_each_aot_image, 
+                       __dyld_process_info_for_each_image, __dyld_process_info_for_each_segment, 
+                       __dyld_process_info_get_aot_cache, __dyld_process_info_get_cache, 
+                       __dyld_process_info_get_platform, __dyld_process_info_get_state, 
+                       __dyld_process_info_notify, __dyld_process_info_notify_main, 
+                       __dyld_process_info_notify_release, __dyld_process_info_notify_retain, 
+                       __dyld_process_info_release, __dyld_process_info_retain, __dyld_register_driverkit_main, 
+                       __dyld_register_for_bulk_image_loads, __dyld_register_for_image_loads, 
+                       __dyld_register_func_for_add_image, __dyld_register_func_for_remove_image, 
+                       __dyld_shared_cache_contains_path, __dyld_shared_cache_is_locally_built, 
+                       __dyld_shared_cache_optimized, __dyld_shared_cache_real_path, 
+                       __dyld_swift_optimizations_version, __dyld_visit_objc_classes, 
+                       __tlv_atexit, __tlv_bootstrap, __tlv_exit, _dladdr, _dlclose, 
+                       _dlerror, _dlopen, _dlopen_audited, _dlopen_from, _dlopen_preflight, 
+                       _dlsym, _dyldVersionNumber, _dyldVersionString, _dyld_dynamic_interpose, 
+                       _dyld_for_each_installed_shared_cache, _dyld_for_each_installed_shared_cache_with_system_path, 
+                       _dyld_get_active_platform, _dyld_get_base_platform, _dyld_get_image_versions, 
+                       _dyld_get_min_os_version, _dyld_get_program_min_os_version, 
+                       _dyld_get_program_sdk_version, _dyld_get_sdk_version, _dyld_has_inserted_or_interposing_libraries, 
+                       _dyld_image_content_for_section, _dyld_image_content_for_segment, 
+                       _dyld_image_copy_uuid, _dyld_image_for_each_section_info, 
+                       _dyld_image_for_each_segment_info, _dyld_image_get_file_path, 
+                       _dyld_image_get_installname, _dyld_image_header_containing_address, 
+                       _dyld_image_local_nlist_content_4Symbolication, _dyld_image_path_containing_address, 
+                       _dyld_is_simulator_platform, _dyld_minos_at_least, _dyld_need_closure, 
+                       _dyld_process_create_for_current_task, _dyld_process_create_for_task, 
+                       _dyld_process_dispose, _dyld_process_has_objc_patches, _dyld_process_is_restricted, 
+                       _dyld_process_register_for_event_notification, _dyld_process_register_for_image_notifications, 
+                       _dyld_process_snapshot_create_for_process, _dyld_process_snapshot_create_from_data, 
+                       _dyld_process_snapshot_dispose, _dyld_process_snapshot_for_each_image, 
+                       _dyld_process_snapshot_get_shared_cache, _dyld_process_unregister_for_notification, 
+                       _dyld_program_minos_at_least, _dyld_program_sdk_at_least, 
+                       _dyld_sdk_at_least, _dyld_shared_cache_copy_uuid, _dyld_shared_cache_file_path, 
+                       _dyld_shared_cache_find_iterate_text, _dyld_shared_cache_for_each_file, 
+                       _dyld_shared_cache_for_each_image, _dyld_shared_cache_for_file, 
+                       _dyld_shared_cache_get_base_address, _dyld_shared_cache_get_mapped_size, 
+                       _dyld_shared_cache_is_mapped_private, _dyld_shared_cache_iterate_text, 
+                       _dyld_shared_cache_pin_mapping, _dyld_shared_cache_some_image_overridden, 
+                       _dyld_shared_cache_unpin_mapping, _environ, _macho_arch_name_for_cpu_type, 
+                       _macho_arch_name_for_mach_header, _macho_best_slice, _macho_best_slice_in_fd, 
+                       _macho_cpu_type_for_arch_name, _macho_dylib_install_name, 
+                       _macho_for_each_slice, _macho_for_each_slice_in_fd, dyld_stub_binder ]
+  - targets:         [ x86_64-macos, arm64-macos, arm64e-macos ]
+    symbols:         [ _dyld_shared_cache_for_each_subcache4Rosetta, _dyld_shared_subcache_get_info4Rosetta ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           564464C5-4B61-34E4-A937-2BDB5399DFCB
+  - target:          x86_64-maccatalyst
+    value:           564464C5-4B61-34E4-A937-2BDB5399DFCB
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           50343076-2AC5-36B5-8B00-C7182678C6AC
+  - target:          arm64e-maccatalyst
+    value:           50343076-2AC5-36B5-8B00-C7182678C6AC
+install-name:    '/usr/lib/system/libkeymgr.dylib'
+current-version: 31
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ ___keymgr_dwarf2_register_sections, ___keymgr_initializer, 
+                       __keymgr_get_and_lock_processwide_ptr, __keymgr_get_and_lock_processwide_ptr_2, 
+                       __keymgr_get_lock_count_processwide_ptr, __keymgr_get_lockmode_processwide_ptr, 
+                       __keymgr_set_and_unlock_processwide_ptr, __keymgr_set_lockmode_processwide_ptr, 
+                       __keymgr_unlock_processwide_ptr, _keymgrVersionNumber, _keymgrVersionString ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64e-macos ]
+uuids:
+  - target:          x86_64-macos
+    value:           4573BDD5-4817-3D26-B6A7-38AAE653FCBC
+  - target:          x86_64-maccatalyst
+    value:           4573BDD5-4817-3D26-B6A7-38AAE653FCBC
+  - target:          arm64-macos
+    value:           B695C46E-649C-3047-AF7D-ED475E37DE56
+  - target:          arm64-maccatalyst
+    value:           B695C46E-649C-3047-AF7D-ED475E37DE56
+  - target:          arm64e-macos
+    value:           B4352C72-0618-3135-B375-BFF70DB8C3F2
+  - target:          arm64e-maccatalyst
+    value:           B4352C72-0618-3135-B375-BFF70DB8C3F2
+install-name:    '/usr/lib/system/libmacho.dylib'
+current-version: 1001.2
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64e-macos ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64e-macos ]
+    symbols:         [ _NXCombineCpuSubtypes, _NXFindBestFatArch, _NXFindBestFatArch_64, 
+                       _NXFreeArchInfo, _NXGetAllArchInfos, _NXGetArchInfoFromCpuType, 
+                       _NXGetArchInfoFromName, _NXGetLocalArchInfo, _get_edata, _get_end, 
+                       _get_etext, _getsectbyname, _getsectbynamefromheader, _getsectbynamefromheader_64, 
+                       _getsectbynamefromheaderwithswap, _getsectbynamefromheaderwithswap_64, 
+                       _getsectdata, _getsectdatafromFramework, _getsectdatafromheader, 
+                       _getsectdatafromheader_64, _getsectiondata, _getsegbyname, 
+                       _getsegmentdata, _slot_name, _swap_build_tool_version, _swap_build_version_command, 
+                       _swap_dyld_info_command, _swap_dylib_command, _swap_dylib_module, 
+                       _swap_dylib_module_64, _swap_dylib_reference, _swap_dylib_table_of_contents, 
+                       _swap_dylinker_command, _swap_dysymtab_command, _swap_encryption_command, 
+                       _swap_encryption_command_64, _swap_entry_point_command, _swap_fat_arch, 
+                       _swap_fat_arch_64, _swap_fat_header, _swap_fileset_entry_command, 
+                       _swap_fvmfile_command, _swap_fvmlib_command, _swap_hppa_fp_thread_state, 
+                       _swap_hppa_frame_thread_state, _swap_hppa_integer_thread_state, 
+                       _swap_i386_exception_state, _swap_i386_float_state, _swap_i386_thread_state, 
+                       _swap_i860_thread_state_regs, _swap_ident_command, _swap_indirect_symbols, 
+                       _swap_linkedit_data_command, _swap_linker_option_command, 
+                       _swap_load_command, _swap_m68k_thread_state_68882, _swap_m68k_thread_state_regs, 
+                       _swap_m68k_thread_state_user_reg, _swap_m88110_thread_state_impl_t, 
+                       _swap_m88k_thread_state_grf_t, _swap_m88k_thread_state_user_t, 
+                       _swap_m88k_thread_state_xrf_t, _swap_mach_header, _swap_mach_header_64, 
+                       _swap_nlist, _swap_nlist_64, _swap_note_command, _swap_ppc_exception_state_t, 
+                       _swap_ppc_float_state_t, _swap_ppc_thread_state_t, _swap_prebind_cksum_command, 
+                       _swap_prebound_dylib_command, _swap_ranlib, _swap_ranlib_64, 
+                       _swap_relocation_info, _swap_routines_command, _swap_routines_command_64, 
+                       _swap_rpath_command, _swap_section, _swap_section_64, _swap_segment_command, 
+                       _swap_segment_command_64, _swap_source_version_command, _swap_sparc_thread_state_fpu, 
+                       _swap_sparc_thread_state_regs, _swap_sub_client_command, _swap_sub_framework_command, 
+                       _swap_sub_library_command, _swap_sub_umbrella_command, _swap_symseg_command, 
+                       _swap_symtab_command, _swap_thread_command, _swap_twolevel_hint, 
+                       _swap_twolevel_hints_command, _swap_uuid_command, _swap_version_min_command, 
+                       _swap_x86_debug_state, _swap_x86_debug_state32, _swap_x86_debug_state64, 
+                       _swap_x86_exception_state, _swap_x86_exception_state64, _swap_x86_float_state, 
+                       _swap_x86_float_state64, _swap_x86_state_hdr, _swap_x86_thread_state, 
+                       _swap_x86_thread_state64 ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           928130DD-5A8D-3546-BA85-242E4051CEF2
+  - target:          x86_64-maccatalyst
+    value:           928130DD-5A8D-3546-BA85-242E4051CEF2
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           2009EBC7-36D7-32AA-AD6A-25CE4128B3C0
+  - target:          arm64e-maccatalyst
+    value:           2009EBC7-36D7-32AA-AD6A-25CE4128B3C0
+install-name:    '/usr/lib/system/libquarantine.dylib'
+current-version: 146.40.2
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ ___esp_check, ___esp_check_ns, ___esp_enabled, ___esp_notify, 
+                       ___esp_notify_ns, __qtn_error, __qtn_file_alloc, __qtn_file_apply_to_fd, 
+                       __qtn_file_apply_to_mount_point, __qtn_file_apply_to_path, 
+                       __qtn_file_clone, __qtn_file_free, __qtn_file_get_flags, __qtn_file_get_identifier, 
+                       __qtn_file_get_metadata, __qtn_file_get_metadata_size, __qtn_file_get_timestamp, 
+                       __qtn_file_init, __qtn_file_init_with_data, __qtn_file_init_with_fd, 
+                       __qtn_file_init_with_mount_point, __qtn_file_init_with_path, 
+                       __qtn_file_set_flags, __qtn_file_set_identifier, __qtn_file_set_metadata, 
+                       __qtn_file_set_timestamp, __qtn_file_to_data, __qtn_label_name, 
+                       __qtn_proc_alloc, __qtn_proc_apply_to_pid, __qtn_proc_apply_to_self, 
+                       __qtn_proc_clone, __qtn_proc_free, __qtn_proc_get_flags, __qtn_proc_get_identifier, 
+                       __qtn_proc_get_metadata, __qtn_proc_get_metadata_size, __qtn_proc_get_path_exclusion_pattern, 
+                       __qtn_proc_get_tracking_data, __qtn_proc_get_tracking_size, 
+                       __qtn_proc_init, __qtn_proc_init_with_data, __qtn_proc_init_with_self, 
+                       __qtn_proc_set_flags, __qtn_proc_set_identifier, __qtn_proc_set_metadata, 
+                       __qtn_proc_set_path_exclusion_pattern, __qtn_proc_set_tracking_data, 
+                       __qtn_proc_to_data, __qtn_xattr_name, _qtn_proc_init_with_pid, 
+                       _responsibility_get_attribution_for_audittoken, _responsibility_get_pid_responsible_for_pid, 
+                       _responsibility_get_responsible_audit_token_for_audit_token, 
+                       _responsibility_get_responsible_for_pid, _responsibility_get_uniqueid_responsible_for_pid, 
+                       _responsibility_identity_get_binary_entitlement_data, _responsibility_identity_get_binary_is_platform, 
+                       _responsibility_identity_get_binary_offset, _responsibility_identity_get_binary_path, 
+                       _responsibility_identity_get_binary_signing_id, _responsibility_identity_get_binary_team_id, 
+                       _responsibility_identity_get_csflags, _responsibility_identity_get_hosted_path, 
+                       _responsibility_identity_get_hosted_team_id, _responsibility_identity_get_persistent_identifier, 
+                       _responsibility_identity_get_platform, _responsibility_identity_get_sdk, 
+                       _responsibility_identity_get_user_uuid, _responsibility_identity_release, 
+                       _responsibility_init, _responsibility_set_audittoken_responsible_for_caller, 
+                       _responsibility_set_audittoken_responsible_for_self, _responsibility_set_caller_responsible_for_self, 
+                       _responsibility_set_hosted_path, _responsibility_set_hosted_team_id, 
+                       _responsibility_set_pid_responsible_for_pid, _responsibility_spawnattrs_getdisclaim, 
+                       _responsibility_spawnattrs_setdisclaim ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           E922FC3F-83F1-3C07-AD9A-13ABE2883681
+  - target:          x86_64-maccatalyst
+    value:           E922FC3F-83F1-3C07-AD9A-13ABE2883681
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           51CF7D0E-014B-3E65-BDF3-A2DF337113BA
+  - target:          arm64e-maccatalyst
+    value:           51CF7D0E-014B-3E65-BDF3-A2DF337113BA
+install-name:    '/usr/lib/system/libremovefile.dylib'
+current-version: 63
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ ___removefile_init_random, ___removefile_random_char, ___removefile_randomize_buffer, 
+                       ___removefile_rename_unlink, ___removefile_sunlink, ___removefile_tree_walker, 
+                       _removefile, _removefile_cancel, _removefile_state_alloc, 
+                       _removefile_state_free, _removefile_state_get, _removefile_state_set, 
+                       _removefileat ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           136EA7B6-9D44-3363-8949-AF5D21C6D116
+  - target:          x86_64-maccatalyst
+    value:           136EA7B6-9D44-3363-8949-AF5D21C6D116
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           60ADB251-3204-34C0-B826-260AEF261E02
+  - target:          arm64e-maccatalyst
+    value:           60ADB251-3204-34C0-B826-260AEF261E02
+install-name:    '/usr/lib/system/libsystem_asl.dylib'
+current-version: 395
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _ASL_LEVEL_TO_STRING, __asl_evaluate_send, __asl_fork_child, 
+                       __asl_lib_log, __asl_log_args_to_xpc, __asl_msg_dump, __asl_mt_shim_fork_child, 
+                       __asl_mt_shim_send_message, __asl_server_cancel_direct_watch, 
+                       __asl_server_control_query, __asl_server_create_aux_link, 
+                       __asl_server_match, __asl_server_message, __asl_server_query_2, 
+                       __asl_server_register_direct_watch, _asl_add_log_file, _asl_add_output, 
+                       _asl_add_output_file, _asl_append, _asl_base_msg, _asl_client_add_output_file, 
+                       _asl_client_get_control, _asl_client_kvdict, _asl_client_match, 
+                       _asl_client_open, _asl_client_open_from_file, _asl_client_release, 
+                       _asl_client_remove_output_file, _asl_client_retain, _asl_client_search, 
+                       _asl_client_send, _asl_client_set_control, _asl_client_set_filter, 
+                       _asl_client_set_output_file_filter, _asl_close, _asl_close_auxiliary_file, 
+                       _asl_core_check_access, _asl_core_decode_buffer, _asl_core_encode_buffer, 
+                       _asl_core_error, _asl_core_get_service_port, _asl_core_htonq, 
+                       _asl_core_level_to_string, _asl_core_new_msg_id, _asl_core_ntohq, 
+                       _asl_core_parse_time, _asl_core_str_match, _asl_core_str_match_c_time, 
+                       _asl_core_str_match_char, _asl_core_str_to_size, _asl_core_str_to_time, 
+                       _asl_core_str_to_uint32, _asl_core_string_hash, _asl_core_time_to_str, 
+                       _asl_count, _asl_create_auxiliary_file, _asl_fetch_key_val_op, 
+                       _asl_file_close, _asl_file_compact, _asl_file_ctime, _asl_file_fetch, 
+                       _asl_file_fetch_next, _asl_file_fetch_previous, _asl_file_filter, 
+                       _asl_file_filter_level, _asl_file_list_add, _asl_file_list_close, 
+                       _asl_file_list_match, _asl_file_list_match_end, _asl_file_list_match_next, 
+                       _asl_file_list_match_start, _asl_file_match, _asl_file_open_read, 
+                       _asl_file_open_write, _asl_file_read_set_position, _asl_file_release, 
+                       _asl_file_retain, _asl_file_save, _asl_file_size, _asl_filesystem_path, 
+                       _asl_format, _asl_format_message, _asl_free, _asl_get, _asl_get_filter, 
+                       _asl_get_index, _asl_get_local_control, _asl_get_type, _asl_get_value_for_key, 
+                       _asl_key, _asl_legacy1_close, _asl_legacy1_fetch, _asl_legacy1_match, 
+                       _asl_legacy1_open, _asl_list_from_string, _asl_log, _asl_log_auxiliary_location, 
+                       _asl_log_descriptor, _asl_log_message, _asl_match, _asl_msg_cmp, 
+                       _asl_msg_cmp_list, _asl_msg_copy, _asl_msg_count, _asl_msg_fetch, 
+                       _asl_msg_from_string, _asl_msg_get_val_for_key, _asl_msg_key, 
+                       _asl_msg_list_append, _asl_msg_list_count, _asl_msg_list_from_string, 
+                       _asl_msg_list_get_index, _asl_msg_list_insert, _asl_msg_list_match, 
+                       _asl_msg_list_new, _asl_msg_list_new_count, _asl_msg_list_next, 
+                       _asl_msg_list_prepend, _asl_msg_list_prev, _asl_msg_list_release, 
+                       _asl_msg_list_remove_index, _asl_msg_list_reset_iteration, 
+                       _asl_msg_list_retain, _asl_msg_list_search, _asl_msg_list_to_asl_string, 
+                       _asl_msg_list_to_string, _asl_msg_lookup, _asl_msg_merge, 
+                       _asl_msg_new, _asl_msg_release, _asl_msg_retain, _asl_msg_set_key_val, 
+                       _asl_msg_set_key_val_op, _asl_msg_to_string, _asl_msg_type, 
+                       _asl_msg_unset, _asl_msg_unset_index, _asl_new, _asl_next, 
+                       _asl_object_append, _asl_object_count, _asl_object_get_key_val_op_at_index, 
+                       _asl_object_get_object_at_index, _asl_object_get_val_op_for_key, 
+                       _asl_object_match, _asl_object_next, _asl_object_prepend, 
+                       _asl_object_prev, _asl_object_remove_object_at_index, _asl_object_search, 
+                       _asl_object_set_iteration_index, _asl_object_set_key_val_op, 
+                       _asl_object_unset_key, _asl_open, _asl_open_from_file, _asl_open_path, 
+                       _asl_parse_time, _asl_prepend, _asl_prev, _asl_release, _asl_remote_notify_name, 
+                       _asl_remove_log_file, _asl_remove_output, _asl_remove_output_file, 
+                       _asl_reset_iteration, _asl_retain, _asl_search, _asl_send, 
+                       _asl_set, _asl_set_filter, _asl_set_key_val_op, _asl_set_local_control, 
+                       _asl_set_output_file_filter, _asl_set_query, _asl_store_close, 
+                       _asl_store_location, _asl_store_match, _asl_store_match_next, 
+                       _asl_store_match_start, _asl_store_match_timeout, _asl_store_max_file_size, 
+                       _asl_store_open_aux, _asl_store_open_read, _asl_store_open_write, 
+                       _asl_store_release, _asl_store_retain, _asl_store_save, _asl_store_set_flags, 
+                       _asl_store_statistics, _asl_store_sweep_file_cache, _asl_string_allocated_size, 
+                       _asl_string_append, _asl_string_append_asl_key, _asl_string_append_asl_msg, 
+                       _asl_string_append_char_no_encoding, _asl_string_append_no_encoding, 
+                       _asl_string_append_no_encoding_len, _asl_string_append_op, 
+                       _asl_string_append_xml_tag, _asl_string_bytes, _asl_string_length, 
+                       _asl_string_new, _asl_string_release, _asl_string_release_return_bytes, 
+                       _asl_string_retain, _asl_syslog_faciliy_name_to_num, _asl_syslog_faciliy_num_to_name, 
+                       _asl_trigger_aslmanager, _asl_unset, _asl_unset_key, _asl_vlog, 
+                       _aslresponse_free, _aslresponse_next, _closelog, _openlog, 
+                       _setlogmask, _syslog, '_syslog$DARWIN_EXTSN', _vsyslog ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           8AE2D1DF-B8E1-3564-810B-65C611BA237B
+  - target:          x86_64-maccatalyst
+    value:           8AE2D1DF-B8E1-3564-810B-65C611BA237B
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           2E8EE0E2-160C-3418-AFC4-3FD86B4E7A6E
+  - target:          arm64e-maccatalyst
+    value:           2E8EE0E2-160C-3418-AFC4-3FD86B4E7A6E
+install-name:    '/usr/lib/system/libsystem_blocks.dylib'
+current-version: 84
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _Block_size, __Block_copy, __Block_extended_layout, __Block_has_signature, 
+                       __Block_isDeallocating, __Block_layout, __Block_object_assign, 
+                       __Block_object_dispose, __Block_release, __Block_signature, 
+                       __Block_tryRetain, __Block_use_RR2, __Block_use_stret, __NSConcreteAutoBlock, 
+                       __NSConcreteFinalizingBlock, __NSConcreteGlobalBlock, __NSConcreteMallocBlock, 
+                       __NSConcreteStackBlock, __NSConcreteWeakBlockVariable ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           5EFAF10B-2EC1-32ED-B077-80125E552C8D
+  - target:          x86_64-maccatalyst
+    value:           5EFAF10B-2EC1-32ED-B077-80125E552C8D
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           A3869999-0792-3E09-B3FB-5E87AE4639BE
+  - target:          arm64e-maccatalyst
+    value:           A3869999-0792-3E09-B3FB-5E87AE4639BE
+install-name:    '/usr/lib/system/libsystem_c.dylib'
+current-version: 1534.40.2
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
+    symbols:         [ '___opendir2$INODE64', ___strtopx, '__readdir_unlocked$INODE64', 
+                       '__seekdir$INODE64', '_alphasort$INODE64', '_daemon$1050', 
+                       '_fdopendir$INODE64', _fstatx64_np, '_fstatx_np$INODE64', 
+                       '_fts_children$INODE64', '_fts_close$INODE64', '_fts_open$INODE64', 
+                       '_fts_open_b$INODE64', '_fts_read$INODE64', '_fts_set$INODE64', 
+                       '_ftw$INODE64', '_getmntinfo$INODE64', _getmntinfo64, '_getmntinfo_r_np$INODE64', 
+                       '_glob$INODE64', '_glob_b$INODE64', _lstatx64_np, '_lstatx_np$INODE64', 
+                       '_nftw$INODE64', '_opendir$INODE64', '_readdir$INODE64', '_readdir_r$INODE64', 
+                       '_rewinddir$INODE64', '_scandir$INODE64', '_scandir_b$INODE64', 
+                       '_seekdir$INODE64', _statx64_np, '_statx_np$INODE64', '_telldir$INODE64', 
+                       mcount ]
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ '$ld$weak$os10.11$_basename_r', '$ld$weak$os10.11$_clock_getres', 
+                       '$ld$weak$os10.11$_clock_gettime', '$ld$weak$os10.11$_clock_settime', 
+                       '$ld$weak$os10.11$_dirname_r', '$ld$weak$os10.11$_getentropy', 
+                       '$ld$weak$os10.11$_mkostemp', '$ld$weak$os10.11$_mkostemps', 
+                       '$ld$weak$os10.11$_timingsafe_bcmp', '$ld$weak$os10.12$_utimensat', 
+                       __CurrentRuneLocale, __DefaultRuneLocale, __Exit, __NSGetArgc, 
+                       __NSGetArgv, __NSGetEnviron, __NSGetMachExecuteHeader, __NSGetProgname, 
+                       __PathLocale, __Read_RuneMagi, ___Balloc_D2A, ___Bfree_D2A, 
+                       ___ULtod_D2A, ____mb_cur_max, ____mb_cur_max_l, ____runetype, 
+                       ____runetype_l, ____tolower, ____tolower_l, ____toupper, ____toupper_l, 
+                       ___add_ovflpage, ___addel, ___any_on_D2A, ___assert_rtn, ___b2d_D2A, 
+                       ___big_delete, ___big_insert, ___big_keydata, ___big_return, 
+                       ___big_split, ___bigtens_D2A, ___bt_close, ___bt_cmp, ___bt_defcmp, 
+                       ___bt_defpfx, ___bt_delete, ___bt_dleaf, ___bt_fd, ___bt_free, 
+                       ___bt_get, ___bt_new, ___bt_open, ___bt_pgin, ___bt_pgout, 
+                       ___bt_put, ___bt_ret, ___bt_search, ___bt_seq, ___bt_setcur, 
+                       ___bt_split, ___bt_sync, ___buf_free, ___call_hash, ___cleanup, 
+                       ___cmp_D2A, ___collate_equiv_match, ___collate_load_error, 
+                       ___collate_lookup, ___collate_lookup_l, ___copybits_D2A, ___cxa_atexit, 
+                       ___cxa_finalize, ___cxa_finalize_ranges, ___cxa_thread_atexit, 
+                       ___d2b_D2A, ___dbpanic, ___decrement_D2A, ___default_hash, 
+                       ___default_utx, ___delpair, ___diff_D2A, ___dtoa, ___expand_table, 
+                       ___fflush, ___fgetwc, ___find_bigpair, ___find_last_page, 
+                       ___fix_locale_grouping_str, ___fread, ___free_ovflpage, ___freedtoa, 
+                       ___gdtoa, ___gdtoa_locks, ___get_buf, ___get_page, ___gethex_D2A, 
+                       ___getonlyClocaleconv, ___hash_open, ___hdtoa, ___hexdig_D2A, 
+                       ___hexdig_init_D2A, ___hexnan_D2A, ___hi0bits_D2A, ___hldtoa, 
+                       ___i2b_D2A, ___ibitmap, ___increment_D2A, ___isctype, ___istype, 
+                       ___istype_l, ___ldtoa, ___libc_init, ___lo0bits_D2A, ___log2, 
+                       ___lshift_D2A, ___maskrune, ___maskrune_l, ___match_D2A, ___mb_cur_max, 
+                       ___mb_sb_limit, ___memccpy_chk, ___memcpy_chk, ___memmove_chk, 
+                       ___memset_chk, ___mult_D2A, ___multadd_D2A, ___nrv_alloc_D2A, 
+                       ___opendir2, ___ovfl_delete, ___ovfl_get, ___ovfl_put, ___pow5mult_D2A, 
+                       ___put_page, ___quorem_D2A, ___ratio_D2A, ___rec_close, ___rec_delete, 
+                       ___rec_dleaf, ___rec_fd, ___rec_fmap, ___rec_fpipe, ___rec_get, 
+                       ___rec_iput, ___rec_open, ___rec_put, ___rec_ret, ___rec_search, 
+                       ___rec_seq, ___rec_sync, ___rec_vmap, ___rec_vpipe, ___reclaim_buf, 
+                       ___rshift_D2A, ___rv_alloc_D2A, ___s2b_D2A, ___sF, ___sclose, 
+                       ___sdidinit, ___set_ones_D2A, ___setonlyClocaleconv, ___sflags, 
+                       ___sflush, ___sfp, ___sfvwrite, ___sglue, ___sinit, ___slbexpand, 
+                       ___smakebuf, ___snprintf_chk, ___snprintf_object_size_chk, 
+                       ___split_page, ___sprintf_chk, ___sprintf_object_size_chk, 
+                       ___sread, ___srefill, ___srget, ___sseek, ___stack_chk_fail, 
+                       ___stack_chk_guard, ___stderrp, ___stdinp, ___stdoutp, ___stpcpy_chk, 
+                       ___stpncpy_chk, ___strcat_chk, ___strcp_D2A, ___strcpy_chk, 
+                       ___strlcat_chk, ___strlcpy_chk, ___strncat_chk, ___strncpy_chk, 
+                       ___strtodg, ___strtopdd, ___sum_D2A, ___svfscanf, ___swbuf, 
+                       ___swhatbuf, ___swrite, ___swsetup, ___tens_D2A, ___tinytens_D2A, 
+                       ___tolower, ___tolower_l, ___toupper, ___toupper_l, ___trailz_D2A, 
+                       ___ulp_D2A, ___ungetc, ___ungetwc, ___vsnprintf_chk, ___vsprintf_chk, 
+                       ___wcwidth, ___wcwidth_l, __allocenvstate, __atexit_receipt, 
+                       __c_locale, __cleanup, __closeutx, __copyenv, __cthread_init_routine, 
+                       __deallocenvstate, __endutxent, __flockfile_debug_stub, __fseeko, 
+                       __ftello, __fwalk, __getenvp, __getutxent, __getutxid, __getutxline, 
+                       __inet_aton_check, __init_clock_port, __int_to_time, __libc_fork_child, 
+                       __libc_initializer, __long_to_time, __mkpath_np, __mktemp, 
+                       __openutx, __os_assert_log, __os_assert_log_ctx, __os_assumes_log, 
+                       __os_assumes_log_ctx, __os_avoid_tail_call, __os_crash, __os_crash_callback, 
+                       __os_crash_fmt, __os_crash_msg, __os_debug_log, __os_debug_log_error_offset, 
+                       __os_debug_log_error_str, __putenvp, __pututxline, __rand48_add, 
+                       __rand48_mult, __rand48_seed, __readdir_unlocked, __reclaim_telldir, 
+                       __seekdir, __setenvp, __setutxent, __sigaction_nobind, __sigintr, 
+                       __signal_nobind, __sigvec_nobind, __sread, __sseek, __subsystem_init, 
+                       __swrite, __time32_to_time, __time64_to_time, __time_to_int, 
+                       __time_to_long, __time_to_time32, __time_to_time64, __unsetenvp, 
+                       __utmpxname, _a64l, _abort, _abort_report_np, _abs, _acl_add_flag_np, 
+                       _acl_add_perm, _acl_calc_mask, _acl_clear_flags_np, _acl_clear_perms, 
+                       _acl_copy_entry, _acl_copy_ext, _acl_copy_ext_native, _acl_copy_int, 
+                       _acl_copy_int_native, _acl_create_entry, _acl_create_entry_np, 
+                       _acl_delete_def_file, _acl_delete_entry, _acl_delete_fd_np, 
+                       _acl_delete_file_np, _acl_delete_flag_np, _acl_delete_link_np, 
+                       _acl_delete_perm, _acl_dup, _acl_free, _acl_from_text, _acl_get_entry, 
+                       _acl_get_fd, _acl_get_fd_np, _acl_get_file, _acl_get_flag_np, 
+                       _acl_get_flagset_np, _acl_get_link_np, _acl_get_perm_np, _acl_get_permset, 
+                       _acl_get_permset_mask_np, _acl_get_qualifier, _acl_get_tag_type, 
+                       _acl_init, _acl_maximal_permset_mask_np, _acl_set_fd, _acl_set_fd_np, 
+                       _acl_set_file, _acl_set_flagset_np, _acl_set_link_np, _acl_set_permset, 
+                       _acl_set_permset_mask_np, _acl_set_qualifier, _acl_set_tag_type, 
+                       _acl_size, _acl_to_text, _acl_valid, _acl_valid_fd_np, _acl_valid_file_np, 
+                       _acl_valid_link, _addr2ascii, _alarm, _alphasort, _arc4random, 
+                       _arc4random_addrandom, _arc4random_buf, _arc4random_stir, 
+                       _arc4random_uniform, _ascii2addr, _asctime, _asctime_r, _asprintf, 
+                       _asprintf_l, _asxprintf, _asxprintf_exec, _atexit, _atexit_b, 
+                       _atof, _atof_l, _atoi, _atoi_l, _atol, _atol_l, _atoll, _atoll_l, 
+                       _backtrace, _backtrace_async, _backtrace_from_fp, _backtrace_image_offsets, 
+                       _backtrace_symbols, _backtrace_symbols_fd, _basename, _basename_r, 
+                       _bcopy, _brk, _bsd_signal, _bsearch, _bsearch_b, _btowc, _btowc_l, 
+                       _catclose, _catgets, _catopen, _cfgetispeed, _cfgetospeed, 
+                       _cfmakeraw, _cfsetispeed, _cfsetospeed, _cfsetspeed, _cgetcap, 
+                       _cgetclose, _cgetent, _cgetfirst, _cgetmatch, _cgetnext, _cgetnum, 
+                       _cgetset, _cgetstr, _cgetustr, _chmodx_np, _clearerr, _clearerr_unlocked, 
+                       _clock, _clock_getres, _clock_gettime, _clock_gettime_nsec_np, 
+                       _clock_port, _clock_sem, _clock_settime, _closedir, _compat_mode, 
+                       _confstr, _copy_printf_domain, _creat, '_creat$NOCANCEL', 
+                       _crypt, _ctermid, _ctermid_r, _ctime, _ctime_r, _daemon, _daylight, 
+                       _dbm_clearerr, _dbm_close, _dbm_delete, _dbm_dirfno, _dbm_error, 
+                       _dbm_fetch, _dbm_firstkey, _dbm_nextkey, _dbm_open, _dbm_store, 
+                       _dbopen, _devname, _devname_r, _difftime, _digittoint, _digittoint_l, 
+                       _dirfd, _dirname, _dirname_r, _div, _dprintf, _dprintf_l, 
+                       _drand48, _duplocale, _dxprintf, _dxprintf_exec, _ecvt, _encrypt, 
+                       _endttyent, _endusershell, _endutxent, _endutxent_wtmp, _environ_lock_np, 
+                       _environ_unlock_np, _erand48, _err, _err_set_exit, _err_set_exit_b, 
+                       _err_set_file, _errc, _errx, _execl, _execle, _execlp, _execv, 
+                       _execvP, _execvp, _exit, _f_prealloc, _fchmodx_np, _fclose, 
+                       _fcvt, _fdopen, '_fdopen$DARWIN_EXTSN', _fdopendir, _feof, 
+                       _feof_unlocked, _ferror, _ferror_unlocked, _fflagstostr, _fflush, 
+                       _fgetc, _fgetln, _fgetpos, _fgetrune, _fgets, _fgetwc, _fgetwc_l, 
+                       _fgetwln, _fgetwln_l, _fgetws, _fgetws_l, _fileno, _fileno_unlocked, 
+                       _filesec_dup, _filesec_free, _filesec_get_property, _filesec_init, 
+                       _filesec_query_property, _filesec_set_property, _filesec_unset_property, 
+                       _flockfile, _fmemopen, _fmtcheck, _fmtmsg, _fnmatch, _fopen, 
+                       '_fopen$DARWIN_EXTSN', _fork, _forkpty, _fparseln, _fprintf, 
+                       _fprintf_l, _fpurge, _fputc, _fputrune, _fputs, _fputwc, _fputwc_l, 
+                       _fputws, _fputws_l, _fread, _free_printf_comp, _free_printf_domain, 
+                       _freelocale, _freopen, _fscanf, _fscanf_l, _fseek, _fseeko, 
+                       _fsetpos, _fstatvfs, _fstatx_np, _fsync_volume_np, _ftell, 
+                       _ftello, _ftime, _ftok, _ftrylockfile, _fts_children, _fts_close, 
+                       _fts_open, _fts_open_b, _fts_read, _fts_set, _ftw, _fungetrune, 
+                       _funlockfile, _funopen, _fwide, _fwprintf, _fwprintf_l, _fwrite, 
+                       _fwscanf, _fwscanf_l, _fxprintf, _fxprintf_exec, _gcvt, _getbsize, 
+                       _getc, _getc_unlocked, _getchar, _getchar_unlocked, _getcwd, 
+                       _getdate, _getdate_err, _getdelim, _getdiskbyname, _getenv, 
+                       '_getgroups$DARWIN_EXTSN', _gethostid, _gethostname, _getipv4sourcefilter, 
+                       _getlastlogx, _getlastlogxbyname, _getline, _getloadavg, _getlogin, 
+                       _getlogin_r, _getmntinfo, _getmntinfo_r_np, _getmode, _getopt, 
+                       _getopt_long, _getopt_long_only, _getpagesize, _getpass, _getpeereid, 
+                       _getprogname, _gets, _getsourcefilter, _getsubopt, _gettimeofday, 
+                       _getttyent, _getttynam, _getusershell, _getutmp, _getutmpx, 
+                       _getutxent, _getutxent_wtmp, _getutxid, _getutxline, _getvfsbyname, 
+                       _getw, _getwc, _getwc_l, _getwchar, _getwchar_l, _getwd, _glob, 
+                       _glob_b, _globfree, _gmtime, _gmtime_r, _grantpt, _hash_create, 
+                       _hash_destroy, _hash_purge, _hash_search, _hash_stats, _hash_traverse, 
+                       _hcreate, _hdestroy, _heapsort, _heapsort_b, _hsearch, _imaxabs, 
+                       _imaxdiv, _inet_addr, _inet_aton, _inet_lnaof, _inet_makeaddr, 
+                       _inet_net_ntop, _inet_net_pton, _inet_neta, _inet_netof, _inet_network, 
+                       _inet_nsap_addr, _inet_nsap_ntoa, _inet_ntoa, _inet_ntop, 
+                       _inet_ntop4, _inet_ntop6, _inet_pton, _initstate, _insque, 
+                       _isalnum, _isalnum_l, _isalpha, _isalpha_l, _isascii, _isatty, 
+                       _isblank, _isblank_l, _iscntrl, _iscntrl_l, _isdigit, _isdigit_l, 
+                       _isgraph, _isgraph_l, _ishexnumber, _ishexnumber_l, _isideogram, 
+                       _isideogram_l, _islower, _islower_l, _isnumber, _isnumber_l, 
+                       _isphonogram, _isphonogram_l, _isprint, _isprint_l, _ispunct, 
+                       _ispunct_l, _isrune, _isrune_l, _isspace, _isspace_l, _isspecial, 
+                       _isspecial_l, _isupper, _isupper_l, _iswalnum, _iswalnum_l, 
+                       _iswalpha, _iswalpha_l, _iswascii, _iswblank, _iswblank_l, 
+                       _iswcntrl, _iswcntrl_l, _iswctype, _iswctype_l, _iswdigit, 
+                       _iswdigit_l, _iswgraph, _iswgraph_l, _iswhexnumber, _iswhexnumber_l, 
+                       _iswideogram, _iswideogram_l, _iswlower, _iswlower_l, _iswnumber, 
+                       _iswnumber_l, _iswphonogram, _iswphonogram_l, _iswprint, _iswprint_l, 
+                       _iswpunct, _iswpunct_l, _iswrune, _iswrune_l, _iswspace, _iswspace_l, 
+                       _iswspecial, _iswspecial_l, _iswupper, _iswupper_l, _iswxdigit, 
+                       _iswxdigit_l, _isxdigit, _isxdigit_l, _jrand48, _kOSThermalNotificationPressureLevelName, 
+                       _killpg, _l64a, _labs, _lchflags, _lchmod, _lcong48, _ldiv, 
+                       _lfind, _link_addr, _link_ntoa, _llabs, _lldiv, _localeconv, 
+                       _localeconv_l, _localtime, _localtime_r, _lockf, '_lockf$NOCANCEL', 
+                       _login, _login_tty, _logout, _logwtmp, _lrand48, _lsearch, 
+                       _lstatx_np, _lutimes, _mblen, _mblen_l, _mbmb, _mbrlen, _mbrlen_l, 
+                       _mbrrune, _mbrtowc, _mbrtowc_l, _mbrune, _mbsinit, _mbsinit_l, 
+                       _mbsnrtowcs, _mbsnrtowcs_l, _mbsrtowcs, _mbsrtowcs_l, _mbstowcs, 
+                       _mbstowcs_l, _mbtowc, _mbtowc_l, _memmem, _memset_s, _mergesort, 
+                       _mergesort_b, _mkdirx_np, _mkdtemp, _mkdtempat_np, _mkfifox_np, 
+                       _mkostemp, _mkostemps, _mkostempsat_np, _mkpath_np, _mkpathat_np, 
+                       _mkstemp, _mkstemp_dprotected_np, _mkstemps, _mkstempsat_np, 
+                       _mktemp, _mktime, _monaddition, _moncontrol, _moncount, _moninit, 
+                       _monitor, _monoutput, _monreset, _monstartup, _mpool_close, 
+                       _mpool_filter, _mpool_get, _mpool_new, _mpool_open, _mpool_put, 
+                       _mpool_sync, _mrand48, _nanosleep, '_nanosleep$NOCANCEL', 
+                       _new_printf_comp, _new_printf_domain, _newlocale, _nextwctype, 
+                       _nextwctype_l, _nftw, _nice, _nl_langinfo, _nl_langinfo_l, 
+                       _nrand48, _nvis, _off32, _off64, _offtime, _open_memstream, 
+                       _open_with_subsystem, _open_wmemstream, _opendev, _opendir, 
+                       _openpty, _openx_np, _optarg, _opterr, _optind, _optopt, _optreset, 
+                       _pause, '_pause$NOCANCEL', _pclose, _perror, _popen, '_popen$DARWIN_EXTSN', 
+                       _posix2time, _posix_openpt, _posix_spawnp, _printf, _printf_l, 
+                       _psignal, _psort, _psort_b, _psort_r, _ptsname, _ptsname_r, 
+                       _putc, _putc_unlocked, _putchar, _putchar_unlocked, _putenv, 
+                       _puts, _pututxline, _putw, _putwc, _putwc_l, _putwchar, _putwchar_l, 
+                       _qsort, _qsort_b, _qsort_r, _querylocale, _radixsort, _raise, 
+                       _rand, _rand_r, _random, _rb_tree_count, _rb_tree_find_node, 
+                       _rb_tree_find_node_geq, _rb_tree_find_node_leq, _rb_tree_init, 
+                       _rb_tree_insert_node, _rb_tree_iterate, _rb_tree_remove_node, 
+                       _readdir, _readdir_r, _readpassphrase, _reallocf, _realpath, 
+                       '_realpath$DARWIN_EXTSN', _recv, '_recv$NOCANCEL', _regcomp, 
+                       _regcomp_l, _regerror, _regexec, _regfree, _register_printf_domain_function, 
+                       _register_printf_domain_render_std, _regncomp, _regncomp_l, 
+                       _regnexec, _regwcomp, _regwcomp_l, _regwexec, _regwncomp, 
+                       _regwncomp_l, _regwnexec, _remove, _remque, _rewind, _rewinddir, 
+                       _rindex, _rpmatch, _sbrk, _scandir, _scandir_b, _scanf, _scanf_l, 
+                       _seed48, _seekdir, _send, '_send$NOCANCEL', _setbuf, _setbuffer, 
+                       _setenv, _sethostid, _sethostname, _setinvalidrune, _setipv4sourcefilter, 
+                       _setkey, _setlinebuf, _setlocale, _setlogin, _setmode, _setpgrp, 
+                       _setprogname, _setrgid, _setruid, _setrunelocale, _setsourcefilter, 
+                       _setstate, _settimeofday, _setttyent, _setusershell, _setutxent, 
+                       _setutxent_wtmp, _setvbuf, _sigaction, _sigaddset, _sigaltstack, 
+                       _sigblock, _sigdelset, _sigemptyset, _sigfillset, _sighold, 
+                       _sigignore, _siginterrupt, _sigismember, _signal, _sigpause, 
+                       '_sigpause$NOCANCEL', _sigrelse, _sigset, _sigsetmask, _sigvec, 
+                       _skip, _sl_add, _sl_find, _sl_free, _sl_init, _sleep, '_sleep$NOCANCEL', 
+                       _snprintf, _snprintf_l, _snvis, _sockatmark, _sprintf, _sprintf_l, 
+                       _sradixsort, _srand, _srand48, _sranddev, _srandom, _srandomdev, 
+                       _sscanf, _sscanf_l, _stat_with_subsystem, _statvfs, _statx_np, 
+                       _stpcpy, _stpncpy, _stravis, _strcasecmp, _strcasecmp_l, _strcasestr, 
+                       _strcasestr_l, _strcat, _strcoll, _strcoll_l, _strcspn, _strdup, 
+                       _strenvisx, _strerror, _strerror_r, _strfmon, _strfmon_l, 
+                       _strftime, _strftime_l, _strmode, _strncasecmp, _strncasecmp_l, 
+                       _strncat, _strndup, _strnstr, _strnunvis, _strnunvisx, _strnvis, 
+                       _strnvisx, _strpbrk, _strptime, _strptime_l, _strrchr, _strsenvisx, 
+                       _strsep, _strsignal, _strsignal_r, _strsnvis, _strsnvisx, 
+                       _strspn, _strsvis, _strsvisx, _strtod, _strtod_l, _strtof, 
+                       _strtof_l, _strtofflags, _strtoimax, _strtoimax_l, _strtok, 
+                       _strtok_r, _strtol, _strtol_l, _strtold, _strtold_l, _strtoll, 
+                       _strtoll_l, _strtonum, _strtoq, _strtoq_l, _strtoul, _strtoul_l, 
+                       _strtoull, _strtoull_l, _strtoumax, _strtoumax_l, _strtouq, 
+                       _strtouq_l, _strunvis, _strunvisx, _strvis, _strvisx, _strxfrm, 
+                       _strxfrm_l, _suboptarg, _svis, _swab, _swprintf, _swprintf_l, 
+                       _swscanf, _swscanf_l, _sxprintf, _sxprintf_exec, _sync_volume_np, 
+                       _sys_errlist, _sys_nerr, _sys_siglist, _sys_signame, _sysconf, 
+                       _sysctl, _sysctlbyname, _sysctlnametomib, _system, '_system$NOCANCEL', 
+                       _tcdrain, '_tcdrain$NOCANCEL', _tcflow, _tcflush, _tcgetattr, 
+                       _tcgetpgrp, _tcgetsid, _tcsendbreak, _tcsetattr, _tcsetpgrp, 
+                       _tdelete, _telldir, _tempnam, _tfind, _thread_stack_async_pcs, 
+                       _thread_stack_pcs, _time, _time2posix, _timegm, _timelocal, 
+                       _timeoff, _times, _timespec_get, _timezone, _timingsafe_bcmp, 
+                       _tmpfile, _tmpnam, _toascii, _tolower, _tolower_l, _toupper, 
+                       _toupper_l, _towctrans, _towctrans_l, _towlower, _towlower_l, 
+                       _towupper, _towupper_l, _tre_ast_new_catenation, _tre_ast_new_iter, 
+                       _tre_ast_new_literal, _tre_ast_new_node, _tre_ast_new_union, 
+                       _tre_compile, _tre_fill_pmatch, _tre_free, _tre_mem_alloc_impl, 
+                       _tre_mem_destroy, _tre_mem_new_impl, _tre_parse, _tre_stack_destroy, 
+                       _tre_stack_new, _tre_stack_num_objects, _tre_tnfa_run_backtrack, 
+                       _tre_tnfa_run_parallel, _tsearch, _ttyname, _ttyname_r, _ttyslot, 
+                       _twalk, _tzname, _tzset, _tzsetwall, _ualarm, _ulimit, _umaskx_np, 
+                       _uname, _ungetc, _ungetwc, _ungetwc_l, _unlockpt, _unsetenv, 
+                       _unvis, _uselocale, _usleep, '_usleep$NOCANCEL', _utime, _utmpxname, 
+                       _uuid_clear, _uuid_compare, _uuid_copy, _uuid_generate, _uuid_generate_random, 
+                       _uuid_generate_time, _uuid_is_null, _uuid_pack, _uuid_parse, 
+                       _uuid_unpack, _uuid_unparse, _uuid_unparse_lower, _uuid_unparse_upper, 
+                       _vasprintf, _vasprintf_l, _vasxprintf, _vasxprintf_exec, _vdprintf, 
+                       _vdprintf_l, _vdxprintf, _vdxprintf_exec, _verr, _verrc, _verrx, 
+                       _vfork, _vfprintf, _vfprintf_l, _vfscanf, _vfscanf_l, _vfwprintf, 
+                       _vfwprintf_l, _vfwscanf, _vfwscanf_l, _vfxprintf, _vfxprintf_exec, 
+                       _vis, _vprintf, _vprintf_l, _vscanf, _vscanf_l, _vsnprintf, 
+                       _vsnprintf_l, _vsprintf, _vsprintf_l, _vsscanf, _vsscanf_l, 
+                       _vswprintf, _vswprintf_l, _vswscanf, _vswscanf_l, _vsxprintf, 
+                       _vsxprintf_exec, _vwarn, _vwarnc, _vwarnx, _vwprintf, _vwprintf_l, 
+                       _vwscanf, _vwscanf_l, _vxprintf, _vxprintf_exec, _wait, '_wait$NOCANCEL', 
+                       _wait3, _waitpid, '_waitpid$NOCANCEL', _warn, _warnc, _warnx, 
+                       _wcpcpy, _wcpncpy, _wcrtomb, _wcrtomb_l, _wcscasecmp, _wcscasecmp_l, 
+                       _wcscat, _wcschr, _wcscmp, _wcscoll, _wcscoll_l, _wcscpy, 
+                       _wcscspn, _wcsdup, _wcsftime, _wcsftime_l, _wcslcat, _wcslcpy, 
+                       _wcslen, _wcsncasecmp, _wcsncasecmp_l, _wcsncat, _wcsncmp, 
+                       _wcsncpy, _wcsnlen, _wcsnrtombs, _wcsnrtombs_l, _wcspbrk, 
+                       _wcsrchr, _wcsrtombs, _wcsrtombs_l, _wcsspn, _wcsstr, _wcstod, 
+                       _wcstod_l, _wcstof, _wcstof_l, _wcstoimax, _wcstoimax_l, _wcstok, 
+                       _wcstol, _wcstol_l, _wcstold, _wcstold_l, _wcstoll, _wcstoll_l, 
+                       _wcstombs, _wcstombs_l, _wcstoul, _wcstoul_l, _wcstoull, _wcstoull_l, 
+                       _wcstoumax, _wcstoumax_l, _wcswidth, _wcswidth_l, _wcsxfrm, 
+                       _wcsxfrm_l, _wctob, _wctob_l, _wctomb, _wctomb_l, _wctrans, 
+                       _wctrans_l, _wctype, _wctype_l, _wcwidth, _wcwidth_l, _wmemchr, 
+                       _wmemcmp, _wmemcpy, _wmemmove, _wmemset, _wordexp, _wordfree, 
+                       _wprintf, _wprintf_l, _wscanf, _wscanf_l, _wtmpxname, _xprintf, 
+                       _xprintf_exec ]
+reexports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _bcmp, _bzero, _index, _memccpy, _memchr, _memcmp, _memcpy, 
+                       _memmove, _memset, _memset_pattern16, _memset_pattern4, _memset_pattern8, 
+                       _strchr, _strcmp, _strcpy, _strlcat, _strlcpy, _strlen, _strncmp, 
+                       _strncpy, _strnlen, _strstr ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           308C9B23-5690-30DE-8008-0C50E7C725C5
+  - target:          x86_64-maccatalyst
+    value:           308C9B23-5690-30DE-8008-0C50E7C725C5
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           89E9EF9E-ED46-307F-B973-6B5C3FB67388
+  - target:          arm64e-maccatalyst
+    value:           89E9EF9E-ED46-307F-B973-6B5C3FB67388
+install-name:    '/usr/lib/system/libsystem_collections.dylib'
+current-version: 1534.40.2
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _os_map_128_clear, _os_map_128_count, _os_map_128_delete, 
+                       _os_map_128_destroy, _os_map_128_find, _os_map_128_foreach, 
+                       _os_map_128_init, _os_map_128_insert, _os_map_32_clear, _os_map_32_count, 
+                       _os_map_32_delete, _os_map_32_destroy, _os_map_32_find, _os_map_32_foreach, 
+                       _os_map_32_init, _os_map_32_insert, _os_map_64_clear, _os_map_64_count, 
+                       _os_map_64_delete, _os_map_64_destroy, _os_map_64_find, _os_map_64_foreach, 
+                       _os_map_64_init, _os_map_64_insert, _os_map_str_clear, _os_map_str_count, 
+                       _os_map_str_delete, _os_map_str_destroy, _os_map_str_entry, 
+                       _os_map_str_find, _os_map_str_foreach, _os_map_str_init, _os_map_str_insert, 
+                       _os_set_32_ptr_clear, _os_set_32_ptr_count, _os_set_32_ptr_delete, 
+                       _os_set_32_ptr_destroy, _os_set_32_ptr_find, _os_set_32_ptr_foreach, 
+                       _os_set_32_ptr_init, _os_set_32_ptr_insert, _os_set_64_ptr_clear, 
+                       _os_set_64_ptr_count, _os_set_64_ptr_delete, _os_set_64_ptr_destroy, 
+                       _os_set_64_ptr_find, _os_set_64_ptr_foreach, _os_set_64_ptr_init, 
+                       _os_set_64_ptr_insert, _os_set_str_ptr_clear, _os_set_str_ptr_count, 
+                       _os_set_str_ptr_delete, _os_set_str_ptr_destroy, _os_set_str_ptr_find, 
+                       _os_set_str_ptr_foreach, _os_set_str_ptr_init, _os_set_str_ptr_insert ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           1CCF39AE-1799-327F-BFA5-5CBBC9511318
+  - target:          x86_64-maccatalyst
+    value:           1CCF39AE-1799-327F-BFA5-5CBBC9511318
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           3C081A70-EBBF-3746-A83F-FC93891BAA71
+  - target:          arm64e-maccatalyst
+    value:           3C081A70-EBBF-3746-A83F-FC93891BAA71
+install-name:    '/usr/lib/system/libsystem_configuration.dylib'
+current-version: 1241.40.2
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __dns_configuration_ack, __libSC_info_fork_child, __libSC_info_fork_parent, 
+                       __libSC_info_fork_prepare, __nwi_config_agent_copy_data, __nwi_state_ack, 
+                       __nwi_state_force_refresh, _config_agent_copy_dns_information, 
+                       _config_agent_copy_proxy_information, _config_agent_free_dns_information, 
+                       _config_agent_free_proxy_information, _config_agent_get_dns_nameservers, 
+                       _config_agent_get_dns_searchdomains, _config_agent_update_proxy_information, 
+                       _dns_configuration_copy, _dns_configuration_free, _dns_configuration_notify_key, 
+                       _is_config_agent_type_dns, _is_config_agent_type_proxy, _nwi_ifstate_compare_rank, 
+                       _nwi_ifstate_get_dns_signature, _nwi_ifstate_get_flags, _nwi_ifstate_get_generation, 
+                       _nwi_ifstate_get_ifname, _nwi_ifstate_get_next, _nwi_ifstate_get_reachability_flags, 
+                       _nwi_ifstate_get_signature, _nwi_ifstate_get_vpn_server, _nwi_state_copy, 
+                       _nwi_state_get_first_ifstate, _nwi_state_get_generation, _nwi_state_get_ifstate, 
+                       _nwi_state_get_interface_names, _nwi_state_get_notify_key, 
+                       _nwi_state_get_reachability_flags, _nwi_state_release ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           B94F5292-7CDC-368F-8D91-0CD73AE80924
+  - target:          x86_64-maccatalyst
+    value:           B94F5292-7CDC-368F-8D91-0CD73AE80924
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           D48AD081-4875-3F66-ABE1-9B646DD03B9C
+  - target:          arm64e-maccatalyst
+    value:           D48AD081-4875-3F66-ABE1-9B646DD03B9C
+install-name:    '/usr/lib/system/libsystem_containermanager.dylib'
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _CONTAINER_CURRENT_MOBILE_UID, _CONTAINER_INSTALLATION_UID, 
+                       _CONTAINER_LINK_ARRAY_NONE, _CONTAINER_NOTIFY_USER_INVALIDATED, 
+                       _CONTAINER_PERSONA_CURRENT, _CONTAINER_PERSONA_PRIMARY, _CONTAINER_SYSTEM_UID, 
+                       __container_init, __container_query_get_servicing_pid, __container_references_get_servicing_pid, 
+                       _container_acquire_sandbox_extension, _container_audit_token_copy_codesign_hash, 
+                       _container_audit_token_copy_codesign_identifier, _container_audit_token_copy_entitlement, 
+                       _container_audit_token_copy_executable_name, _container_audit_token_for_pid, 
+                       _container_audit_token_get_codesign_status, _container_audit_token_get_egid, 
+                       _container_audit_token_get_euid, _container_audit_token_get_pid, 
+                       _container_audit_token_get_platform, _container_audit_token_is_valid, 
+                       _container_base64_decode, _container_base64_decode_string, 
+                       _container_base64_encode, _container_base64_encode_string, 
+                       _container_bundle_copy_data_container, _container_bundle_copy_data_container_path, 
+                       _container_class_for_each_normalized_class, _container_class_normalized, 
+                       _container_class_supports_data_subdirectory, _container_class_supports_randomized_path, 
+                       _container_class_supports_randomized_path_on_current_platform, 
+                       _container_client_copy_decoded_from_xpc_object, _container_client_copy_encoded_xpc_object, 
+                       _container_client_copy_entitlement, _container_client_create_from_audit_token, 
+                       _container_client_get_audit_token, _container_client_get_codesign_identifier, 
+                       _container_client_get_egid, _container_client_get_euid, _container_client_get_persona_unique_string, 
+                       _container_client_get_pid, _container_client_get_platform, 
+                       _container_client_initializer, _container_client_is_alive, 
+                       _container_client_is_platform_binary, _container_client_is_sandboxed, 
+                       _container_client_is_signature_valid, _container_client_is_signed, 
+                       _container_client_is_test_client, _container_codesign_copy_cdhash, 
+                       _container_codesign_copy_cs_identity, _container_codesign_copy_current_identifier, 
+                       _container_codesign_get_self_audit_token, _container_codesign_get_status, 
+                       _container_copy_client, _container_copy_code_signing_info_for_identifier, 
+                       _container_copy_from_path, _container_copy_info, _container_copy_info_value_for_key, 
+                       _container_copy_links_array, _container_copy_object, _container_copy_path, 
+                       _container_copy_persona_unique_strings, _container_copy_sandbox_token, 
+                       _container_copy_unlocalized_description, _container_create_merged_array, 
+                       _container_create_or_lookup, _container_create_or_lookup_app_group_path_by_app_group_identifier, 
+                       _container_create_or_lookup_app_group_paths, _container_create_or_lookup_app_group_paths_for_current_user, 
+                       _container_create_or_lookup_app_group_paths_for_platform, 
+                       _container_create_or_lookup_app_group_paths_from_entitlements, 
+                       _container_create_or_lookup_for_current_user, _container_create_or_lookup_for_platform, 
+                       _container_create_or_lookup_group_container_paths_for_current_user, 
+                       _container_create_or_lookup_path, _container_create_or_lookup_path_for_current_user, 
+                       _container_create_or_lookup_path_for_platform, _container_create_or_lookup_system_group_paths, 
+                       _container_create_or_lookup_user_managed_assets_path, _container_create_or_lookup_user_managed_assets_relative_path, 
+                       _container_delete, _container_delete_all_container_content, 
+                       _container_delete_all_data_container_content, _container_delete_all_data_container_content_for_current_user, 
+                       _container_delete_array_of_containers, _container_delete_user_managed_assets, 
+                       _container_delete_with_class_and_identifier_for_current_user, 
+                       _container_delete_with_uid_class_and_identifier, _container_disk_usage, 
+                       _container_disposition, _container_disposition_for_array, 
+                       _container_error_copy, _container_error_copy_unlocalized_description, 
+                       _container_error_create, _container_error_free, _container_error_get_category, 
+                       _container_error_get_path, _container_error_get_posix_errno, 
+                       _container_error_get_type, _container_error_is_fatal, _container_error_is_file_system_error, 
+                       _container_error_reinitialize, _container_flush_container_cache, 
+                       _container_flush_persona_cache, _container_free_array_of_containers, 
+                       _container_free_client, _container_free_object, _container_frozenset_copyout_external_bytes, 
+                       _container_frozenset_create, _container_frozenset_create_from_external_bytes, 
+                       _container_frozenset_destroy, _container_frozenset_enumerate_matches, 
+                       _container_frozenset_get_container_class_of_container_at_index, 
+                       _container_frozenset_get_count, _container_frozenset_get_extended_count, 
+                       _container_frozenset_get_generation, _container_frozenset_get_identifier_of_container_at_index, 
+                       _container_frozenset_get_is_new_of_container_at_index, _container_frozenset_get_is_transient_of_container_at_index, 
+                       _container_frozenset_get_links_for_container_at_index, _container_frozenset_get_path_of_container_at_index, 
+                       _container_frozenset_get_persona_unique_string_of_container_at_index, 
+                       _container_frozenset_get_uid_of_container_at_index, _container_frozenset_get_unique_path_component_of_container_at_index, 
+                       _container_frozenset_get_uuid_of_container_at_index, _container_frozenset_is_missing_links_of_container_at_index, 
+                       _container_frozenset_is_missing_path_of_container_at_index, 
+                       _container_fs_add_path_component, _container_fs_append_trailing_slash, 
+                       _container_fs_item_exists, _container_fs_item_exists_at, _container_fs_load_plist_at, 
+                       _container_fs_path_at, _container_fs_resolve_dirent_type_at, 
+                       _container_get_all_with_class, _container_get_all_with_class_for_current_user, 
+                       _container_get_class, _container_get_error_description, _container_get_identifier, 
+                       _container_get_path, _container_get_persona_unique_string, 
+                       _container_get_uid, _container_get_unique_path_component, 
+                       _container_group_container_identifiers_for_current_user, _container_internal_get_first_boot_uuid, 
+                       _container_invalidate_code_signing_cache, _container_is_equal, 
+                       _container_is_new, _container_is_transient, _container_link_apply, 
+                       _container_link_copy, _container_link_copy_array, _container_link_copy_container_a, 
+                       _container_link_copy_container_b, _container_link_copy_unlocalized_description, 
+                       _container_link_create, _container_link_create_internal, _container_link_exists, 
+                       _container_link_free, _container_link_free_array, _container_link_get_attributes, 
+                       _container_link_is_implicit, _container_link_remove, _container_log_client_fault_logging_is_enabled, 
+                       _container_log_error, _container_log_error_with_faults, _container_log_ext_error, 
+                       _container_log_ext_error_with_faults, _container_log_handle_for_category, 
+                       _container_log_set_client_fault_logging, _container_object_copy, 
+                       _container_object_create, _container_object_create_blank, 
+                       _container_object_free, _container_object_get_class, _container_object_get_identifier, 
+                       _container_object_get_info, _container_object_get_links, _container_object_get_num_links, 
+                       _container_object_get_path, _container_object_get_persona_unique_string, 
+                       _container_object_get_query, _container_object_get_sandbox_token, 
+                       _container_object_get_uid, _container_object_get_unique_path_component, 
+                       _container_object_get_uuid, _container_object_is_new, _container_object_is_transient, 
+                       _container_object_sandbox_extension_activate, _container_object_set_backing_store_from_query, 
+                       _container_object_set_class, _container_object_set_info, _container_object_set_links, 
+                       _container_object_set_path, _container_object_set_sandbox_token, 
+                       _container_object_set_transient, _container_object_set_unique_path_component, 
+                       _container_object_set_uuid, _container_object_update_metadata, 
+                       _container_operation_complete_background_tasks, _container_operation_delete, 
+                       _container_operation_delete_array, _container_operation_delete_reclaim_disk_space, 
+                       _container_paths_context_create, _container_paths_context_free, 
+                       _container_paths_context_set_class, _container_paths_context_set_flags, 
+                       _container_paths_context_set_persona_unique_string, _container_paths_context_set_transient, 
+                       _container_paths_context_set_uid, _container_paths_copy_container_at, 
+                       _container_paths_copy_container_from_path, _container_paths_copy_container_root_path_for_context, 
+                       _container_paths_enumerate_containers_at, _container_perfect_hash_copyout_external_bytes, 
+                       _container_perfect_hash_count, _container_perfect_hash_create, 
+                       _container_perfect_hash_create_from_external_bytes, _container_perfect_hash_destroy, 
+                       _container_perfect_hash_index_of, _container_perfect_hash_num_indexes, 
+                       _container_perform_data_migration, _container_perform_data_migration_for_current_user, 
+                       _container_perform_with_client_context, _container_persona_verify_path_for_current_persona, 
+                       _container_process_restored_container, _container_pwd_copy_user_home_path, 
+                       _container_query_copy, _container_query_count_results, _container_query_create, 
+                       _container_query_create_from_container, _container_query_free, 
+                       _container_query_get_last_error, _container_query_get_single_result, 
+                       _container_query_iterate_results_sync, _container_query_iterate_results_with_subquery_sync, 
+                       _container_query_operation_set_client, _container_query_operation_set_flags, 
+                       _container_query_operation_set_platform, _container_query_set_class, 
+                       _container_query_set_group_identifiers, _container_query_set_identifiers, 
+                       _container_query_set_include_other_owners, _container_query_set_links, 
+                       _container_query_set_persona_unique_string, _container_query_set_transient, 
+                       _container_query_set_uid, _container_realpath, _container_recreate_structure, 
+                       _container_references_add, _container_references_create, _container_references_free, 
+                       _container_references_get_last_error, _container_references_iterate_by_group_sync, 
+                       _container_references_iterate_by_owner_sync, _container_references_operation_set_flags, 
+                       _container_references_remove, _container_references_set_class, 
+                       _container_references_set_persona_unique_string, _container_references_set_uid, 
+                       _container_regenerate_uuid, _container_repair_user_data, _container_replace, 
+                       _container_retry_test, _container_sandbox_extension_consume, 
+                       _container_sandbox_extension_revoke, _container_sandbox_issue_custom_extension, 
+                       _container_sandbox_issue_extension, _container_serialize_copy_deserialized_reference, 
+                       _container_serialize_copy_serialized_reference, _container_set_code_signing_info_for_identifier, 
+                       _container_set_data_protection_for_current_user, _container_set_info_value, 
+                       _container_set_test_lock, _container_stage_shared_system_content, 
+                       _container_string_rom_copyout_external_bytes, _container_string_rom_count, 
+                       _container_string_rom_create, _container_string_rom_create_from_external_bytes, 
+                       _container_string_rom_destroy, _container_string_rom_index_of, 
+                       _container_string_rom_string_at_index, _container_subdirectories_for_class, 
+                       _container_system_group_path_for_identifier, _container_system_path_for_identifier, 
+                       _container_update_with_container, _container_user_managed_assets_path, 
+                       _container_user_managed_assets_relative_path, _container_xpc_connection_is_shared, 
+                       _container_xpc_create_connection, _container_xpc_decode_container_object, 
+                       _container_xpc_decode_create_container_object_array, _container_xpc_decode_create_link, 
+                       _container_xpc_decode_create_links_array, _container_xpc_decode_error, 
+                       _container_xpc_encode_client_onto_message, _container_xpc_encode_container_array, 
+                       _container_xpc_encode_container_as_object, _container_xpc_encode_container_metadata_as_object, 
+                       _container_xpc_encode_container_object, _container_xpc_encode_error, 
+                       _container_xpc_encode_error_as_object, _container_xpc_encode_link, 
+                       _container_xpc_encode_link_as_object, _container_xpc_get_raw_connection, 
+                       _container_xpc_invalidate_connection, _container_xpc_release, 
+                       _container_xpc_send_async_message, _container_xpc_send_sync_message, 
+                       _container_xpc_send_sync_message_with_object, _container_xpc_set_client_context_during_block, 
+                       _container_xpc_set_use_shared_connection, _container_xpc_shared_copy_connection ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           47275741-03DA-37A9-85B9-541F4DCB1163
+  - target:          x86_64-maccatalyst
+    value:           47275741-03DA-37A9-85B9-541F4DCB1163
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           9F1BA0E0-8227-364B-8CF4-86D6870D6937
+  - target:          arm64e-maccatalyst
+    value:           9F1BA0E0-8227-364B-8CF4-86D6870D6937
+install-name:    '/usr/lib/system/libsystem_coreservices.dylib'
+current-version: 129
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _NSGetNextSearchPathEnumeration, _NSStartSearchPathEnumeration, 
+                       _NSStartSearchPathEnumerationPrivate, ___user_local_dirname, 
+                       ___user_relative_dirname, __append_relative_path_component, 
+                       __dirhelper, __dirhelper_relative, __get_user_dir_suffix, 
+                       __libcoreservices_fork_child, __set_user_dir_suffix, _sysdir_get_next_search_path_enumeration, 
+                       _sysdir_start_search_path_enumeration, _sysdir_start_search_path_enumeration_private ]
+  - targets:         [ x86_64-macos, arm64-macos, arm64e-macos ]
+    symbols:         [ __idle_exit ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           4B2F10CE-2D99-3B79-A05A-87DD03065ACB
+  - target:          x86_64-maccatalyst
+    value:           4B2F10CE-2D99-3B79-A05A-87DD03065ACB
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           859E9F1E-85E4-3469-9733-5846C98B155D
+  - target:          arm64e-maccatalyst
+    value:           859E9F1E-85E4-3469-9733-5846C98B155D
+install-name:    '/usr/lib/system/libsystem_darwin.dylib'
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ ___libdarwin_init, ___os_temporary_resource_shortage, _claimfd_np, 
+                       _close_drop_np, _close_drop_optional_np, _crfprintf_np, _dirstat_np, 
+                       _dirstatat_np, _dup_np, _err_np, _errc_np, _fcheck_np, _memdup2_np, 
+                       _memdup_np, _os_assert_mach, _os_assert_mach_port_status, 
+                       _os_boot_arg_string_to_int, _os_boot_mode_query, _os_crash_get_reporter_port_array, 
+                       _os_crash_port_array_deallocate, _os_crash_set_reporter_port, 
+                       _os_crash_spawnattr_set_reporter_port, _os_enumerate_boot_args, 
+                       _os_enumerate_boot_args_b, _os_enumerate_boot_args_from_buffer, 
+                       _os_enumerate_boot_args_from_buffer_b, _os_flagset_copy_string, 
+                       _os_localtime_file, _os_mach_msg_copy_description, _os_mach_msg_get_audit_trailer, 
+                       _os_mach_msg_get_context_trailer, _os_mach_msg_get_trailer, 
+                       _os_mach_msg_trailer_copy_description, _os_mach_port_copy_description, 
+                       _os_parse_boot_arg_from_buffer_int, _os_parse_boot_arg_from_buffer_string, 
+                       _os_parse_boot_arg_int, _os_parse_boot_arg_string, _os_simple_hash, 
+                       _os_simple_hash_string, _os_simple_hash_string_with_seed, 
+                       _os_simple_hash_with_seed, _os_subcommand_fprintf, _os_subcommand_main, 
+                       _os_subcommand_vfprintf, _os_variant_allows_internal_security_policies, 
+                       _os_variant_allows_security_research, _os_variant_check, _os_variant_copy_description, 
+                       _os_variant_has_factory_content, _os_variant_has_internal_content, 
+                       _os_variant_has_internal_diagnostics, _os_variant_has_internal_ui, 
+                       _os_variant_init_4launchd, _os_variant_is_basesystem, _os_variant_is_darwinos, 
+                       _os_variant_is_recovery, _os_variant_uses_ephemeral_storage, 
+                       _realpath_np, _strerror_np, _strexit_np, _symerror_np, _symexit_np, 
+                       _sysctl_get_data_np, _sysctlbyname_get_data_np, _sysexit_np, 
+                       _vcrfprintf_np, _verr_np, _verrc_np, _vwarn_np, _vwfprintf_np, 
+                       _warn_np, _wfprintf_np, _xferfd_np, _zsnprintf_np ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           C352C6E4-8236-3B91-8ECA-4692191DD227
+  - target:          x86_64-maccatalyst
+    value:           C352C6E4-8236-3B91-8ECA-4692191DD227
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           1122C71F-CFA3-38EB-A329-C647E500C9B1
+  - target:          arm64e-maccatalyst
+    value:           1122C71F-CFA3-38EB-A329-C647E500C9B1
+install-name:    '/usr/lib/system/libsystem_dnssd.dylib'
+current-version: 1790.40.31
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _DNSServiceAddRecord, _DNSServiceAttrCreate, _DNSServiceAttrFree, 
+                       _DNSServiceAttrSetFailoverPolicy, _DNSServiceAttrSetValidationData, 
+                       _DNSServiceAttrSetValidationPolicy, _DNSServiceAttributeCreate, 
+                       _DNSServiceAttributeDeallocate, _DNSServiceAttributeSetAAAAPolicy, 
+                       _DNSServiceAttributeSetTimestamp, _DNSServiceBrowse, _DNSServiceBrowseEx, 
+                       _DNSServiceConstructFullName, _DNSServiceCreateConnection, 
+                       _DNSServiceCreateDelegateConnection, _DNSServiceEnumerateDomains, 
+                       _DNSServiceErrorCodeToString, _DNSServiceGetAddrInfo, _DNSServiceGetAddrInfoEx, 
+                       _DNSServiceGetPID, _DNSServiceGetProperty, _DNSServiceGetValidationData, 
+                       _DNSServiceNATPortMappingCreate, _DNSServiceProcessResult, 
+                       _DNSServiceQueryRecord, _DNSServiceQueryRecordEx, _DNSServiceQueryRecordWithAttribute, 
+                       _DNSServiceReconfirmRecord, _DNSServiceRefDeallocate, _DNSServiceRefSockFD, 
+                       _DNSServiceRegister, _DNSServiceRegisterRecord, _DNSServiceRegisterRecordWithAttribute, 
+                       _DNSServiceRegisterWithAttribute, _DNSServiceRemoveRecord, 
+                       _DNSServiceResolve, _DNSServiceResolveEx, _DNSServiceSendQueuedRequests, 
+                       _DNSServiceSetDefaultDomainForUser, _DNSServiceSetDispatchQueue, 
+                       _DNSServiceSetResolverDefaults, _DNSServiceSleepKeepalive, 
+                       _DNSServiceSleepKeepalive_sockaddr, _DNSServiceUpdateRecord, 
+                       _DNSServiceUpdateRecordWithAttribute, _PeerConnectionRelease, 
+                       _TXTRecordContainsKey, _TXTRecordCreate, _TXTRecordDeallocate, 
+                       _TXTRecordGetBytesPtr, _TXTRecordGetCount, _TXTRecordGetItemAtIndex, 
+                       _TXTRecordGetLength, _TXTRecordGetValuePtr, _TXTRecordRemoveValue, 
+                       _TXTRecordSetValue, _kDNSServiceAttrAllowFailover, _kDNSServiceAttrValidationRequired, 
+                       _kDNSServiceAttributeAAAAFallback ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           2AF1974D-3A00-3461-9FDB-AF641DE4253E
+  - target:          x86_64-maccatalyst
+    value:           2AF1974D-3A00-3461-9FDB-AF641DE4253E
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           C50ECE78-12CE-377F-93BA-B0D8B0D93CE7
+  - target:          arm64e-maccatalyst
+    value:           C50ECE78-12CE-377F-93BA-B0D8B0D93CE7
+install-name:    '/usr/lib/system/libsystem_featureflags.dylib'
+current-version: 71
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __os_feature_enabled_impl, __os_feature_enabled_simple_impl ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           37924254-46CA-3531-9BE4-E9782F4DA626
+  - target:          x86_64-maccatalyst
+    value:           37924254-46CA-3531-9BE4-E9782F4DA626
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           177AEA65-CA0C-38EB-8891-7726D30EC0AB
+  - target:          arm64e-maccatalyst
+    value:           177AEA65-CA0C-38EB-8891-7726D30EC0AB
+install-name:    '/usr/lib/system/libsystem_info.dylib'
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _LI_get_thread_item, _LI_get_thread_list, _LI_ils_create, 
+                       _LI_set_thread_item, _LI_set_thread_list, ___dn_skipname, 
+                       __authenticate, __ds_running, __gai_nat64_can_v4_address_be_synthesized, 
+                       __gai_serv_to_port, __gai_simple, __getaddrinfo_interface_async_call, 
+                       __getlong, __getnameinfo_interface_async_call, __getshort, 
+                       __null_auth, __res, __seterr_reply, __si_disable_opendirectory, 
+                       __yp_dobind, _alias_endent, _alias_getbyname, _alias_getent, 
+                       _alias_setent, _authnone_create, _authunix_create, _authunix_create_default, 
+                       _bindresvport, _bindresvport_sa, _bootparams_endent, _bootparams_getbyname, 
+                       _bootparams_getent, _bootparams_setent, _clnt_broadcast, _clnt_create, 
+                       _clnt_pcreateerror, _clnt_perrno, _clnt_perror, _clnt_spcreateerror, 
+                       _clnt_sperrno, _clnt_sperror, _clntraw_create, _clnttcp_create, 
+                       _clntudp_bufcreate, _clntudp_create, _configuration_profile_copy_property_list, 
+                       _configuration_profile_create_notification_key, _dn_expand, 
+                       _endfsent, _endgrent, _endhostent, _endnetent, _endnetgrent, 
+                       _endprotoent, _endpwent, _endrpcent, _endservent, _ether_aton, 
+                       _ether_hostton, _ether_line, _ether_ntoa, _ether_ntohost, 
+                       _freeaddrinfo, _freehostent, _freeifaddrs, _freeifmaddrs, 
+                       _gL1CacheEnabled, _gai_strerror, _getaddrinfo, _getaddrinfo_async_cancel, 
+                       _getaddrinfo_async_handle_reply, _getaddrinfo_async_receive, 
+                       _getaddrinfo_async_send, _getaddrinfo_async_start, _getdomainname, 
+                       _getfsent, _getfsfile, _getfsspec, _getgrent, _getgrgid, _getgrgid_r, 
+                       _getgrnam, _getgrnam_r, _getgroupcount, _getgrouplist, _getgrouplist_2, 
+                       _getgruuid, _getgruuid_r, _gethostbyaddr, _gethostbyaddr_async_cancel, 
+                       _gethostbyaddr_async_handleReply, _gethostbyaddr_async_start, 
+                       _gethostbyname, _gethostbyname2, _gethostbyname_async_cancel, 
+                       _gethostbyname_async_handleReply, _gethostbyname_async_start, 
+                       _gethostent, _getifaddrs, _getifmaddrs, _getipnodebyaddr, 
+                       _getipnodebyname, _getnameinfo, _getnameinfo_async_cancel, 
+                       _getnameinfo_async_handle_reply, _getnameinfo_async_send, 
+                       _getnameinfo_async_start, _getnetbyaddr, _getnetbyname, _getnetent, 
+                       _getnetgrent, _getprotobyname, _getprotobynumber, _getprotoent, 
+                       _getpwent, _getpwnam, _getpwnam_r, _getpwuid, _getpwuid_r, 
+                       _getpwuuid, _getpwuuid_r, _getrpcbyname, _getrpcbynumber, 
+                       _getrpcent, _getrpcport, _getservbyname, _getservbyport, _getservent, 
+                       _group_from_gid, _h_errno, _herror, _hstrerror, _htonl, _htons, 
+                       _if_freenameindex, _if_indextoname, _if_nameindex, _if_nametoindex, 
+                       _in6addr_any, _in6addr_linklocal_allnodes, _in6addr_linklocal_allrouters, 
+                       _in6addr_linklocal_allv2routers, _in6addr_loopback, _in6addr_nodelocal_allnodes, 
+                       _inet6_opt_append, _inet6_opt_find, _inet6_opt_finish, _inet6_opt_get_val, 
+                       _inet6_opt_init, _inet6_opt_next, _inet6_opt_set_val, _inet6_option_alloc, 
+                       _inet6_option_append, _inet6_option_find, _inet6_option_init, 
+                       _inet6_option_next, _inet6_option_space, _inet6_rth_add, _inet6_rth_getaddr, 
+                       _inet6_rth_init, _inet6_rth_reverse, _inet6_rth_segments, 
+                       _inet6_rth_space, _inet6_rthdr_add, _inet6_rthdr_getaddr, 
+                       _inet6_rthdr_getflags, _inet6_rthdr_init, _inet6_rthdr_lasthop, 
+                       _inet6_rthdr_segments, _inet6_rthdr_space, _initgroups, _innetgr, 
+                       _iruserok, _iruserok_sa, _kvarray_free, _kvbuf_add_dict, _kvbuf_add_key, 
+                       _kvbuf_add_val, _kvbuf_add_val_len, _kvbuf_append_kvbuf, _kvbuf_decode, 
+                       _kvbuf_free, _kvbuf_get_len, _kvbuf_init, _kvbuf_init_zone, 
+                       _kvbuf_make_nonpurgeable, _kvbuf_make_purgeable, _kvbuf_new, 
+                       _kvbuf_new_zone, _kvbuf_next_dict, _kvbuf_next_key, _kvbuf_next_val, 
+                       _kvbuf_next_val_len, _kvbuf_query, _kvbuf_query_key_int, _kvbuf_query_key_uint, 
+                       _kvbuf_query_key_val, _kvbuf_reset, _lookup_close_connections, 
+                       _mbr_check_membership, _mbr_check_membership_by_id, _mbr_check_membership_ext, 
+                       _mbr_check_membership_refresh, _mbr_check_service_membership, 
+                       _mbr_close_connections, _mbr_gid_to_uuid, _mbr_group_name_to_uuid, 
+                       _mbr_identifier_to_uuid, _mbr_identifier_translate, _mbr_reset_cache, 
+                       _mbr_set_identifier_ttl, _mbr_sid_to_string, _mbr_sid_to_uuid, 
+                       _mbr_string_to_sid, _mbr_string_to_uuid, _mbr_uid_to_uuid, 
+                       _mbr_user_name_to_uuid, _mbr_uuid_to_id, _mbr_uuid_to_sid, 
+                       _mbr_uuid_to_sid_type, _mbr_uuid_to_string, _ntohl, _ntohs, 
+                       _pmap_getmaps, _pmap_getport, _pmap_rmtcall, _pmap_set, _pmap_unset, 
+                       _prdb_end, _prdb_get, _prdb_getbyname, _prdb_set, _rcmd, _rcmd_af, 
+                       _res_init, _res_query, _res_search, _rpc_createerr, _rresvport, 
+                       _rresvport_af, _ruserok, _setdomainname, _setfsent, _setgrent, 
+                       _setgroupent, _sethostent, _setnetent, _setnetgrent, _setpassent, 
+                       _setprotoent, _setpwent, _setrpcent, _setservent, _si_addrinfo, 
+                       _si_addrinfo_list, _si_addrinfo_list_from_hostent, _si_addrinfo_v4, 
+                       _si_addrinfo_v4_mapped, _si_addrinfo_v6, _si_alias_all, _si_alias_byname, 
+                       _si_async_call, _si_async_cancel, _si_async_handle_reply, 
+                       _si_destination_compare, _si_destination_compare_no_dependencies, 
+                       _si_fs_all, _si_fs_byfile, _si_fs_byspec, _si_group_all, _si_group_bygid, 
+                       _si_group_byname, _si_group_byuuid, _si_grouplist, _si_host_all, 
+                       _si_host_byaddr, _si_host_byname, _si_in_netgroup, _si_ipnode_byname, 
+                       _si_item_call, _si_item_is_valid, _si_item_match, _si_item_release, 
+                       _si_item_retain, _si_list_add, _si_list_call, _si_list_concat, 
+                       _si_list_next, _si_list_release, _si_list_reset, _si_list_retain, 
+                       _si_mac_all, _si_mac_bymac, _si_mac_byname, _si_module_allows_caching, 
+                       _si_module_name, _si_module_release, _si_module_retain, _si_module_vers, 
+                       _si_module_with_name, _si_nameinfo, _si_netgroup_byname, _si_network_all, 
+                       _si_network_byaddr, _si_network_byname, _si_protocol_all, 
+                       _si_protocol_byname, _si_protocol_bynumber, _si_rpc_all, _si_rpc_byname, 
+                       _si_rpc_bynumber, _si_search, _si_search_module_set_flags, 
+                       _si_service_all, _si_service_byname, _si_service_byport, _si_set_nat64_v4_requires_synthesis, 
+                       _si_set_nat64_v4_synthesize, _si_srv_byname, _si_standardize_mac_address, 
+                       _si_user_all, _si_user_byname, _si_user_byuid, _si_user_byuuid, 
+                       _si_wants_addrinfo, _svc_fdset, _svc_getreq, _svc_getreqset, 
+                       _svc_register, _svc_run, _svc_sendreply, _svc_unregister, 
+                       _svcerr_auth, _svcerr_decode, _svcerr_noproc, _svcerr_noprog, 
+                       _svcerr_progvers, _svcerr_systemerr, _svcerr_weakauth, _svcfd_create, 
+                       _svcraw_create, _svctcp_create, _svcudp_bufcreate, _svcudp_create, 
+                       _user_from_uid, _xdr_array, _xdr_authunix_parms, _xdr_bool, 
+                       _xdr_bytes, _xdr_callhdr, _xdr_callmsg, _xdr_char, _xdr_des_block, 
+                       _xdr_domainname, _xdr_double, _xdr_enum, _xdr_float, _xdr_free, 
+                       _xdr_hyper, _xdr_int, _xdr_int16_t, _xdr_int32_t, _xdr_int64_t, 
+                       _xdr_keydat, _xdr_long, _xdr_longlong_t, _xdr_mapname, _xdr_netobj, 
+                       _xdr_opaque, _xdr_peername, _xdr_pmap, _xdr_pmaplist, _xdr_pointer, 
+                       _xdr_reference, _xdr_replymsg, _xdr_rmtcall_args, _xdr_rmtcallres, 
+                       _xdr_short, _xdr_string, _xdr_u_char, _xdr_u_hyper, _xdr_u_int, 
+                       _xdr_u_int16_t, _xdr_u_int32_t, _xdr_u_int64_t, _xdr_u_long, 
+                       _xdr_u_longlong_t, _xdr_u_short, _xdr_union, _xdr_valdat, 
+                       _xdr_vector, _xdr_void, _xdr_wrapstring, _xdr_x_passwd, _xdr_ypbind_binding, 
+                       _xdr_ypbind_resp, _xdr_ypbind_resptype, _xdr_ypbind_setdom, 
+                       _xdr_ypmaplist, _xdr_yppasswd, _xdr_ypreq_key, _xdr_ypreq_nokey, 
+                       _xdr_ypresp_all, _xdr_ypresp_all_seq, _xdr_ypresp_key_val, 
+                       _xdr_ypresp_maplist, _xdr_ypresp_master, _xdr_ypresp_order, 
+                       _xdr_ypresp_val, _xdr_ypstat, _xdrmem_create, _xdrrec_create, 
+                       _xdrrec_endofrecord, _xdrrec_eof, _xdrrec_skiprecord, _xdrstdio_create, 
+                       _xprt_register, _xprt_unregister, _yp_all, _yp_bind, _yp_first, 
+                       _yp_get_default_domain, _yp_maplist, _yp_master, _yp_match, 
+                       _yp_next, _yp_order, _yp_unbind, _yperr_string, _ypprot_err ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           6D1DB971-27A7-3DBC-A7FF-1D25A88E5282
+  - target:          x86_64-maccatalyst
+    value:           6D1DB971-27A7-3DBC-A7FF-1D25A88E5282
+  - target:          arm64-macos
+    value:           B529197C-5FB5-3ABB-915F-9EB576658F0F
+  - target:          arm64-maccatalyst
+    value:           B529197C-5FB5-3ABB-915F-9EB576658F0F
+  - target:          arm64e-macos
+    value:           66D9DC04-E3C0-329C-B4CA-8C6E2CCA7FD3
+  - target:          arm64e-maccatalyst
+    value:           66D9DC04-E3C0-329C-B4CA-8C6E2CCA7FD3
+install-name:    '/usr/lib/system/libsystem_kernel.dylib'
+current-version: 8792.41.7
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
+    symbols:         [ '_fstat$INODE64', '_fstatat$INODE64', '_fstatfs$INODE64', 
+                       '_getfsstat$INODE64', _i386_get_ldt, _i386_set_ldt, '_lstat$INODE64', 
+                       '_pselect$1050', '_select$1050', '_stat$INODE64', '_statfs$INODE64' ]
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _NDR_record, _____sigwait_nocancel, ____kernelVersionNumber, 
+                       ____kernelVersionString, ___abort_with_payload, ___accept, 
+                       ___accept_nocancel, ___access_extended, ___aio_suspend_nocancel, 
+                       ___bind, ___bsdthread_create, ___bsdthread_ctl, ___bsdthread_register, 
+                       ___bsdthread_terminate, ___carbon_delete, ___channel_get_info, 
+                       ___channel_get_opt, ___channel_open, ___channel_set_opt, ___channel_sync, 
+                       ___chmod, ___chmod_extended, ___close_nocancel, ___coalition, 
+                       ___coalition_info, ___coalition_ledger, ___commpage_gettimeofday, 
+                       ___connect, ___connect_nocancel, ___copyfile, ___csrctl, ___darwin_check_fd_set_overflow, 
+                       ___debug_syscall_reject, ___debug_syscall_reject_config, ___delete, 
+                       ___disable_threadsignal, ___error, ___execve, ___exit, ___fchmod, 
+                       ___fchmod_extended, ___fcntl, ___fcntl_nocancel, ___fork, 
+                       ___fs_snapshot, ___fstat64_extended, ___fstat_extended, ___fsync_nocancel, 
+                       ___get_remove_counter, ___getattrlist, ___getdirentries64, 
+                       ___gethostuuid, ___getlogin, ___getpeername, ___getpid, ___getrlimit, 
+                       ___getsgroups, ___getsockname, ___gettid, ___gettimeofday, 
+                       ___getwgroups, ___guarded_open_dprotected_np, ___guarded_open_np, 
+                       ___identitysvc, ___inc_remove_counter, ___initgroups, ___ioctl, 
+                       ___iopolicysys, ___kdebug_trace, ___kdebug_trace64, ___kdebug_trace_string, 
+                       ___kdebug_typefilter, ___kill, ___kqueue_workloop_ctl, ___lchown, 
+                       ___libkernel_init, ___libkernel_init_after_boot_tasks, ___libkernel_init_late, 
+                       ___libkernel_platform_init, ___libkernel_voucher_init, ___listen, 
+                       ___log_data, ___lseek, ___lstat64_extended, ___lstat_extended, 
+                       ___mac_execve, ___mac_get_fd, ___mac_get_file, ___mac_get_link, 
+                       ___mac_get_mount, ___mac_get_pid, ___mac_get_proc, ___mac_getfsstat, 
+                       ___mac_mount, ___mac_set_fd, ___mac_set_file, ___mac_set_link, 
+                       ___mac_set_proc, ___mac_syscall, ___mach_bridge_remote_time, 
+                       ___mach_eventlink_signal, ___mach_eventlink_signal_wait_until, 
+                       ___mach_eventlink_wait_until, ___map_with_linking_np, ___memorystatus_available_memory, 
+                       ___microstackshot, ___mkdir_extended, ___mkfifo_extended, 
+                       ___mmap, ___mprotect, ___msgctl, ___msgrcv_nocancel, ___msgsnd_nocancel, 
+                       ___msgsys, ___msync, ___msync_nocancel, ___munmap, ___nexus_create, 
+                       ___nexus_deregister, ___nexus_destroy, ___nexus_get_opt, ___nexus_open, 
+                       ___nexus_register, ___nexus_set_opt, ___open, ___open_dprotected_np, 
+                       ___open_extended, ___open_nocancel, ___openat, ___openat_dprotected_np, 
+                       ___openat_nocancel, ___os_nexus_flow_add, ___os_nexus_flow_del, 
+                       ___os_nexus_get_llink_info, ___os_nexus_ifattach, ___os_nexus_ifdetach, 
+                       ___persona, ___pipe, ___poll_nocancel, ___posix_spawn, ___pread_nocancel, 
+                       ___preadv_nocancel, ___proc_info, ___proc_info_extended_id, 
+                       ___process_policy, ___pselect, ___pselect_nocancel, ___psynch_cvbroad, 
+                       ___psynch_cvclrprepost, ___psynch_cvsignal, ___psynch_cvwait, 
+                       ___psynch_mutexdrop, ___psynch_mutexwait, ___psynch_rw_downgrade, 
+                       ___psynch_rw_longrdlock, ___psynch_rw_rdlock, ___psynch_rw_unlock, 
+                       ___psynch_rw_unlock2, ___psynch_rw_upgrade, ___psynch_rw_wrlock, 
+                       ___psynch_rw_yieldwrlock, ___pthread_canceled, ___pthread_chdir, 
+                       ___pthread_fchdir, ___pthread_kill, ___pthread_markcancel, 
+                       ___pthread_sigmask, ___ptrace, ___pwrite_nocancel, ___pwritev_nocancel, 
+                       ___read_nocancel, ___readv_nocancel, ___reboot, ___record_system_event, 
+                       ___recvfrom, ___recvfrom_nocancel, ___recvmsg, ___recvmsg_nocancel, 
+                       ___rename, ___renameat, ___renameatx_np, ___rmdir, ___sandbox_me, 
+                       ___sandbox_mm, ___sandbox_ms, ___sandbox_msp, ___select, ___select_nocancel, 
+                       ___sem_open, ___sem_wait_nocancel, ___semctl, ___semsys, ___semwait_signal, 
+                       ___semwait_signal_nocancel, ___sendmsg, ___sendmsg_nocancel, 
+                       ___sendto, ___sendto_nocancel, ___setattrlist, ___setlogin, 
+                       ___setpriority, ___setregid, ___setreuid, ___setrlimit, ___setsgroups, 
+                       ___settid, ___settid_with_pid, ___settimeofday, ___setwgroups, 
+                       ___sfi_ctl, ___sfi_pidctl, ___shared_region_check_np, ___shared_region_map_and_slide_2_np, 
+                       ___shm_open, ___shmctl, ___shmsys, ___sigaction, ___sigaltstack, 
+                       ___sigreturn, ___sigsuspend, ___sigsuspend_nocancel, ___sigwait, 
+                       ___socketpair, ___stack_snapshot_with_config, ___stat64_extended, 
+                       ___stat_extended, ___syscall, ___syscall_logger, ___sysctl, 
+                       ___sysctlbyname, ___telemetry, ___terminate_with_payload, 
+                       ___thread_selfid, ___thread_selfusage, ___ulock_wait, ___ulock_wait2, 
+                       ___ulock_wake, ___umask_extended, ___unlink, ___unlinkat, 
+                       ___vfork, ___wait4, ___wait4_nocancel, ___waitid_nocancel, 
+                       ___work_interval_ctl, ___workq_kernreturn, ___workq_open, 
+                       ___write_nocancel, ___writev_nocancel, __cpu_capabilities, 
+                       __cpu_has_altivec, __exit, __get_cpu_capabilities, __getprivatesystemidentifier, 
+                       __host_page_size, __init_cpu_capabilities, __kernelrpc_host_create_mach_voucher, 
+                       __kernelrpc_mach_port_allocate, __kernelrpc_mach_port_allocate_full, 
+                       __kernelrpc_mach_port_allocate_name, __kernelrpc_mach_port_allocate_qos, 
+                       __kernelrpc_mach_port_allocate_trap, __kernelrpc_mach_port_assert_attributes, 
+                       __kernelrpc_mach_port_construct, __kernelrpc_mach_port_construct_trap, 
+                       __kernelrpc_mach_port_deallocate, __kernelrpc_mach_port_deallocate_trap, 
+                       __kernelrpc_mach_port_destroy, __kernelrpc_mach_port_destruct, 
+                       __kernelrpc_mach_port_destruct_trap, __kernelrpc_mach_port_dnrequest_info, 
+                       __kernelrpc_mach_port_extract_member, __kernelrpc_mach_port_extract_member_trap, 
+                       __kernelrpc_mach_port_extract_right, __kernelrpc_mach_port_get_attributes, 
+                       __kernelrpc_mach_port_get_attributes_trap, __kernelrpc_mach_port_get_context, 
+                       __kernelrpc_mach_port_get_refs, __kernelrpc_mach_port_get_service_port_info, 
+                       __kernelrpc_mach_port_get_set_status, __kernelrpc_mach_port_get_srights, 
+                       __kernelrpc_mach_port_guard, __kernelrpc_mach_port_guard_trap, 
+                       __kernelrpc_mach_port_guard_with_flags, __kernelrpc_mach_port_insert_member, 
+                       __kernelrpc_mach_port_insert_member_trap, __kernelrpc_mach_port_insert_right, 
+                       __kernelrpc_mach_port_insert_right_trap, __kernelrpc_mach_port_is_connection_for_service, 
+                       __kernelrpc_mach_port_kernel_object, __kernelrpc_mach_port_kobject, 
+                       __kernelrpc_mach_port_kobject_description, __kernelrpc_mach_port_mod_refs, 
+                       __kernelrpc_mach_port_mod_refs_trap, __kernelrpc_mach_port_move_member, 
+                       __kernelrpc_mach_port_move_member_trap, __kernelrpc_mach_port_names, 
+                       __kernelrpc_mach_port_peek, __kernelrpc_mach_port_rename, 
+                       __kernelrpc_mach_port_request_notification, __kernelrpc_mach_port_request_notification_trap, 
+                       __kernelrpc_mach_port_set_attributes, __kernelrpc_mach_port_set_context, 
+                       __kernelrpc_mach_port_set_mscount, __kernelrpc_mach_port_set_seqno, 
+                       __kernelrpc_mach_port_space_basic_info, __kernelrpc_mach_port_space_info, 
+                       __kernelrpc_mach_port_special_reply_port_reset_link, __kernelrpc_mach_port_swap_guard, 
+                       __kernelrpc_mach_port_type, __kernelrpc_mach_port_type_trap, 
+                       __kernelrpc_mach_port_unguard, __kernelrpc_mach_port_unguard_trap, 
+                       __kernelrpc_mach_task_is_self, __kernelrpc_mach_vm_allocate, 
+                       __kernelrpc_mach_vm_allocate_trap, __kernelrpc_mach_vm_deallocate, 
+                       __kernelrpc_mach_vm_deallocate_trap, __kernelrpc_mach_vm_map, 
+                       __kernelrpc_mach_vm_map_trap, __kernelrpc_mach_vm_protect, 
+                       __kernelrpc_mach_vm_protect_trap, __kernelrpc_mach_vm_purgable_control, 
+                       __kernelrpc_mach_vm_purgable_control_trap, __kernelrpc_mach_vm_read, 
+                       __kernelrpc_mach_vm_remap, __kernelrpc_mach_vm_remap_new, 
+                       __kernelrpc_mach_voucher_extract_attr_recipe, __kernelrpc_task_set_port_space, 
+                       __kernelrpc_thread_policy, __kernelrpc_thread_policy_set, 
+                       __kernelrpc_thread_set_policy, __kernelrpc_vm_map, __kernelrpc_vm_purgable_control, 
+                       __kernelrpc_vm_read, __kernelrpc_vm_remap, __kernelrpc_vm_remap_new, 
+                       __mach_errors, __mach_fork_child, __mach_snprintf, __mach_vsnprintf, 
+                       __os_alloc_once_table, __os_xbs_chrooted, __register_gethostuuid_callback, 
+                       __thread_set_tsd_base, _abort_with_payload, _abort_with_reason, 
+                       _accept, '_accept$NOCANCEL', _access, _accessx_np, _acct, 
+                       _act_get_state, _act_set_state, _adjtime, _aio_cancel, _aio_error, 
+                       _aio_fsync, _aio_read, _aio_return, _aio_suspend, '_aio_suspend$NOCANCEL', 
+                       _aio_write, _audit, _audit_session_join, _audit_session_port, 
+                       _audit_session_self, _auditctl, _auditon, _bind, _bootstrap_port, 
+                       _cerror, _cerror_nocancel, _change_fdguard_np, _chdir, _chflags, 
+                       _chmod, _chown, _chroot, _clock_alarm, _clock_alarm_reply, 
+                       _clock_get_attributes, _clock_get_time, _clock_set_attributes, 
+                       _clock_set_time, _clock_sleep, _clock_sleep_trap, _clonefile, 
+                       _clonefileat, _close, '_close$NOCANCEL', _coalition_create, 
+                       _coalition_info_resource_usage, _coalition_info_set_efficiency, 
+                       _coalition_info_set_name, _coalition_ledger_set_logical_writes_limit, 
+                       _coalition_reap, _coalition_terminate, _connect, '_connect$NOCANCEL', 
+                       _connectx, _csops, _csops_audittoken, _csr_check, _csr_get_active_config, 
+                       _debug_control_port_for_pid, _debug_syscall_reject, _debug_syscall_reject_config, 
+                       _denap_boost_assertion_token, _disconnectx, _dup, _dup2, _errno, 
+                       _etap_trace_thread, _exc_server, _exc_server_routine, _exception_raise, 
+                       _exception_raise_state, _exception_raise_state_identity, _exchangedata, 
+                       _execve, _faccessat, _fchdir, _fchflags, _fchmod, _fchmodat, 
+                       _fchown, _fchownat, _fclonefileat, _fcntl, '_fcntl$NOCANCEL', 
+                       _fdatasync, _ffsctl, _fgetattrlist, _fgetxattr, _fhopen, _fileport_makefd, 
+                       _fileport_makeport, _flistxattr, _flock, _fmount, _fpathconf, 
+                       _freadlink, _fremovexattr, _fs_snapshot_create, _fs_snapshot_delete, 
+                       _fs_snapshot_list, _fs_snapshot_mount, _fs_snapshot_rename, 
+                       _fs_snapshot_revert, _fs_snapshot_root, _fsctl, _fsetattrlist, 
+                       _fsetxattr, _fsgetpath, _fsgetpath_ext, _fstat, _fstat64, 
+                       _fstatat, _fstatat64, _fstatfs, _fstatfs64, _fsync, '_fsync$NOCANCEL', 
+                       _ftruncate, _futimens, _futimes, _getattrlist, _getattrlistat, 
+                       _getattrlistbulk, _getaudit, _getaudit_addr, _getauid, _getdirentries, 
+                       _getdirentriesattr, _getdtablesize, _getegid, _getentropy, 
+                       _geteuid, _getfh, _getfsstat, _getfsstat64, _getgid, _getgroups, 
+                       _gethostuuid, _getiopolicy_np, _getitimer, _getpeername, _getpgid, 
+                       _getpgrp, _getpid, _getppid, _getpriority, _getrlimit, _getrusage, 
+                       _getsgroups_np, _getsid, _getsockname, _getsockopt, _getuid, 
+                       _getwgroups_np, _getxattr, _grab_pgo_data, _graftdmg, _guarded_close_np, 
+                       _guarded_kqueue_np, _guarded_open_dprotected_np, _guarded_open_np, 
+                       _guarded_pwrite_np, _guarded_write_np, _guarded_writev_np, 
+                       _host_check_multiuser_mode, _host_create_mach_voucher, _host_create_mach_voucher_trap, 
+                       _host_default_memory_manager, _host_get_UNDServer, _host_get_atm_diagnostic_flag, 
+                       _host_get_boot_info, _host_get_clock_control, _host_get_clock_service, 
+                       _host_get_exception_ports, _host_get_io_main, _host_get_io_master, 
+                       _host_get_multiuser_config_flags, _host_get_special_port, 
+                       _host_info, _host_kernel_version, _host_lockgroup_info, _host_page_size, 
+                       _host_priv_statistics, _host_processor_info, _host_processor_set_priv, 
+                       _host_processor_sets, _host_processors, _host_reboot, _host_register_mach_voucher_attr_manager, 
+                       _host_register_well_known_mach_voucher_attr_manager, _host_request_notification, 
+                       _host_security_create_task_token, _host_security_set_task_token, 
+                       _host_self, _host_self_trap, _host_set_UNDServer, _host_set_atm_diagnostic_flag, 
+                       _host_set_exception_ports, _host_set_multiuser_config_flags, 
+                       _host_set_special_port, _host_statistics, _host_statistics64, 
+                       _host_swap_exception_ports, _host_virtual_physical_table_info, 
+                       _important_boost_assertion_token, _internal_catch_exc_subsystem, 
+                       _ioctl, _issetugid, _kas_info, _kdebug_is_enabled, _kdebug_signpost, 
+                       _kdebug_signpost_end, _kdebug_signpost_start, _kdebug_timestamp, 
+                       _kdebug_timestamp_from_absolute, _kdebug_timestamp_from_continuous, 
+                       _kdebug_trace, _kdebug_trace_string, _kdebug_typefilter, _kdebug_using_continuous_time, 
+                       _kevent, _kevent64, _kevent_id, _kevent_qos, _kext_request, 
+                       _kill, _kmod_control, _kmod_create, _kmod_destroy, _kmod_get_info, 
+                       _kpersona_alloc, _kpersona_dealloc, _kpersona_find, _kpersona_find_by_type, 
+                       _kpersona_get, _kpersona_getpath, _kpersona_info, _kpersona_palloc, 
+                       _kpersona_pidinfo, _kqueue, _lchown, _ledger, _link, _linkat, 
+                       _lio_listio, _listen, _listxattr, _lock_set_create, _lock_set_destroy, 
+                       _log_data_as_kernel, _lseek, _lstat, _lstat64, _mach_absolute_time, 
+                       _mach_approximate_time, _mach_boottime_usec, _mach_continuous_approximate_time, 
+                       _mach_continuous_time, _mach_error, _mach_error_full_diag, 
+                       _mach_error_string, _mach_error_type, _mach_eventlink_associate, 
+                       _mach_eventlink_create, _mach_eventlink_destroy, _mach_eventlink_disassociate, 
+                       _mach_eventlink_signal, _mach_eventlink_signal_wait_until, 
+                       _mach_eventlink_wait_until, _mach_generate_activity_id, _mach_get_times, 
+                       _mach_host_self, _mach_host_special_port_description, _mach_host_special_port_for_id, 
+                       _mach_init, _mach_make_memory_entry, _mach_make_memory_entry_64, 
+                       _mach_memory_entry_access_tracking, _mach_memory_entry_ownership, 
+                       _mach_memory_entry_purgable_control, _mach_memory_info, _mach_memory_object_memory_entry, 
+                       _mach_memory_object_memory_entry_64, _mach_msg, _mach_msg2_internal, 
+                       _mach_msg2_trap, _mach_msg_destroy, _mach_msg_overwrite, _mach_msg_overwrite_trap, 
+                       _mach_msg_priority_encode, _mach_msg_priority_is_pthread_priority, 
+                       _mach_msg_priority_overide_qos, _mach_msg_priority_qos, _mach_msg_priority_relpri, 
+                       _mach_msg_receive, _mach_msg_send, _mach_msg_server, _mach_msg_server_importance, 
+                       _mach_msg_server_once, _mach_msg_trap, _mach_notify_dead_name, 
+                       _mach_notify_no_senders, _mach_notify_port_deleted, _mach_notify_port_destroyed, 
+                       _mach_notify_send_once, _mach_port_allocate, _mach_port_allocate_full, 
+                       _mach_port_allocate_name, _mach_port_allocate_qos, _mach_port_assert_attributes, 
+                       _mach_port_construct, _mach_port_deallocate, _mach_port_destroy, 
+                       _mach_port_destruct, _mach_port_dnrequest_info, _mach_port_extract_member, 
+                       _mach_port_extract_right, _mach_port_get_attributes, _mach_port_get_context, 
+                       _mach_port_get_refs, _mach_port_get_service_port_info, _mach_port_get_set_status, 
+                       _mach_port_get_srights, _mach_port_guard, _mach_port_guard_with_flags, 
+                       _mach_port_insert_member, _mach_port_insert_right, _mach_port_is_connection_for_service, 
+                       _mach_port_kernel_object, _mach_port_kobject, _mach_port_kobject_description, 
+                       _mach_port_mod_refs, _mach_port_move_member, _mach_port_names, 
+                       _mach_port_peek, _mach_port_rename, _mach_port_request_notification, 
+                       _mach_port_set_attributes, _mach_port_set_context, _mach_port_set_mscount, 
+                       _mach_port_set_seqno, _mach_port_space_basic_info, _mach_port_space_info, 
+                       _mach_port_swap_guard, _mach_port_type, _mach_port_unguard, 
+                       _mach_ports_lookup, _mach_ports_register, _mach_reply_port, 
+                       _mach_right_recv_construct, _mach_right_recv_destruct, _mach_right_send_create, 
+                       _mach_right_send_once_consume, _mach_right_send_once_create, 
+                       _mach_right_send_release, _mach_right_send_retain, _mach_sync_ipc_link_monitoring_start, 
+                       _mach_sync_ipc_link_monitoring_stop, _mach_task_is_self, _mach_task_self, 
+                       _mach_task_self_, _mach_task_special_port_description, _mach_task_special_port_for_id, 
+                       _mach_thread_self, _mach_thread_special_port_description, 
+                       _mach_thread_special_port_for_id, _mach_timebase_info, _mach_timebase_info_trap, 
+                       _mach_vm_allocate, _mach_vm_behavior_set, _mach_vm_copy, _mach_vm_deallocate, 
+                       _mach_vm_deferred_reclamation_buffer_init, _mach_vm_deferred_reclamation_buffer_synchronize, 
+                       _mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes, 
+                       _mach_vm_inherit, _mach_vm_machine_attribute, _mach_vm_map, 
+                       _mach_vm_msync, _mach_vm_page_info, _mach_vm_page_query, _mach_vm_page_range_query, 
+                       _mach_vm_protect, _mach_vm_purgable_control, _mach_vm_read, 
+                       _mach_vm_read_list, _mach_vm_read_overwrite, _mach_vm_reclaim_is_available, 
+                       _mach_vm_reclaim_mark_free, _mach_vm_reclaim_mark_used, _mach_vm_reclaim_ringbuffer_init, 
+                       _mach_vm_reclaim_synchronize, _mach_vm_reclaim_update_kernel_accounting, 
+                       _mach_vm_region, _mach_vm_region_recurse, _mach_vm_remap, 
+                       _mach_vm_remap_new, _mach_vm_wire, _mach_vm_write, _mach_voucher_attr_command, 
+                       _mach_voucher_deallocate, _mach_voucher_debug_info, _mach_voucher_extract_all_attr_recipes, 
+                       _mach_voucher_extract_attr_content, _mach_voucher_extract_attr_recipe, 
+                       _mach_voucher_extract_attr_recipe_trap, _mach_wait_until, 
+                       _mach_zone_force_gc, _mach_zone_get_btlog_records, _mach_zone_get_zlog_zones, 
+                       _mach_zone_info, _mach_zone_info_for_largest_zone, _mach_zone_info_for_zone, 
+                       _macx_backing_store_recovery, _macx_backing_store_suspend, 
+                       _macx_swapoff, _macx_swapon, _macx_triggers, _madvise, _memorystatus_control, 
+                       _memorystatus_get_level, _mig_allocate, _mig_dealloc_reply_port, 
+                       _mig_dealloc_special_reply_port, _mig_deallocate, _mig_get_reply_port, 
+                       _mig_get_special_reply_port, _mig_put_reply_port, _mig_reply_setup, 
+                       _mig_strncpy, _mig_strncpy_zerofill, _mincore, _minherit, 
+                       _mk_timer_arm, _mk_timer_arm_leeway, _mk_timer_cancel, _mk_timer_create, 
+                       _mk_timer_destroy, _mkdir, _mkdirat, _mkfifo, _mkfifoat, _mknod, 
+                       _mknodat, _mlock, _mlockall, _mmap, _mount, _mprotect, _mremap_encrypted, 
+                       _msg_receive, _msg_rpc, _msg_send, _msgctl, _msgget, _msgrcv, 
+                       '_msgrcv$NOCANCEL', _msgsnd, '_msgsnd$NOCANCEL', _msgsys, 
+                       _msync, '_msync$NOCANCEL', _munlock, _munlockall, _munmap, 
+                       _necp_client_action, _necp_match_policy, _necp_open, _necp_session_action, 
+                       _necp_session_open, _net_qos_guideline, _netagent_trigger, 
+                       _netname_check_in, _netname_check_out, _netname_look_up, _netname_version, 
+                       _nfsclnt, _nfssvc, _non_boost_assertion_token, _normal_boost_assertion_token, 
+                       _ntp_adjtime, _ntp_gettime, _objc_bp_assist_cfg_np, _open, 
+                       '_open$NOCANCEL', _open_dprotected_np, _openat, '_openat$NOCANCEL', 
+                       _openat_authenticated_np, _openat_dprotected_np, _openbyid_np, 
+                       _os_buflet_get_data_address, _os_buflet_get_data_length, _os_buflet_get_data_limit, 
+                       _os_buflet_get_data_offset, _os_buflet_get_gro_len, _os_buflet_get_next_buf, 
+                       _os_buflet_get_object_address, _os_buflet_get_object_limit, 
+                       _os_buflet_get_object_offset, _os_buflet_set_data_length, 
+                       _os_buflet_set_data_offset, _os_channel_advance_slot, _os_channel_attr_clone, 
+                       _os_channel_attr_create, _os_channel_attr_destroy, _os_channel_attr_get, 
+                       _os_channel_attr_get_key, _os_channel_attr_set, _os_channel_attr_set_key, 
+                       _os_channel_available_slot_count, _os_channel_buflet_alloc, 
+                       _os_channel_buflet_free, _os_channel_configure_interface_advisory, 
+                       _os_channel_create, _os_channel_create_extended, _os_channel_destroy, 
+                       _os_channel_event_free, _os_channel_event_get_event_data, 
+                       _os_channel_event_get_next_event, _os_channel_flow_admissible, 
+                       _os_channel_get_advisory_region, _os_channel_get_fd, _os_channel_get_interface_advisory, 
+                       _os_channel_get_next_event_handle, _os_channel_get_next_slot, 
+                       _os_channel_get_stats_region, _os_channel_is_defunct, _os_channel_packet_alloc, 
+                       _os_channel_packet_free, _os_channel_packet_pool_purge, _os_channel_pending, 
+                       _os_channel_read_attr, _os_channel_read_nexus_extension_info, 
+                       _os_channel_ring_id, _os_channel_ring_notify_time, _os_channel_ring_sync_time, 
+                       _os_channel_rx_ring, _os_channel_set_slot_properties, _os_channel_slot_attach_packet, 
+                       _os_channel_slot_detach_packet, _os_channel_slot_get_packet, 
+                       _os_channel_sync, _os_channel_tx_ring, _os_channel_write_attr, 
+                       _os_copy_and_inet_checksum, _os_cpu_copy_in_cksum, _os_cpu_in_cksum, 
+                       _os_cpu_in_cksum_mbuf, _os_fault_with_payload, _os_inet_checksum, 
+                       _os_nexus_attr_clone, _os_nexus_attr_create, _os_nexus_attr_destroy, 
+                       _os_nexus_attr_get, _os_nexus_attr_set, _os_nexus_controller_add_traffic_rule, 
+                       _os_nexus_controller_alloc_provider_instance, _os_nexus_controller_bind_provider_instance, 
+                       _os_nexus_controller_create, _os_nexus_controller_deregister_provider, 
+                       _os_nexus_controller_destroy, _os_nexus_controller_free_provider_instance, 
+                       _os_nexus_controller_get_fd, _os_nexus_controller_iterate_traffic_rules, 
+                       _os_nexus_controller_read_provider_attr, _os_nexus_controller_register_provider, 
+                       _os_nexus_controller_remove_traffic_rule, _os_nexus_controller_unbind_provider_instance, 
+                       _os_packet_add_buflet, _os_packet_clear_flow_uuid, _os_packet_decrement_use_count, 
+                       _os_packet_finalize, _os_packet_get_aggregation_type, _os_packet_get_buflet_count, 
+                       _os_packet_get_compression_generation_count, _os_packet_get_data_length, 
+                       _os_packet_get_expire_time, _os_packet_get_expiry_action, 
+                       _os_packet_get_flow_uuid, _os_packet_get_group_end, _os_packet_get_group_start, 
+                       _os_packet_get_headroom, _os_packet_get_inet_checksum, _os_packet_get_keep_alive, 
+                       _os_packet_get_link_broadcast, _os_packet_get_link_ethfcs, 
+                       _os_packet_get_link_header_length, _os_packet_get_link_multicast, 
+                       _os_packet_get_next_buflet, _os_packet_get_packetid, _os_packet_get_segment_count, 
+                       _os_packet_get_service_class, _os_packet_get_token, _os_packet_get_trace_id, 
+                       _os_packet_get_traffic_class, _os_packet_get_transport_retransmit, 
+                       _os_packet_get_transport_traffic_background, _os_packet_get_transport_traffic_realtime, 
+                       _os_packet_get_truncated, _os_packet_get_vlan_id, _os_packet_get_vlan_priority, 
+                       _os_packet_get_vlan_tag, _os_packet_get_wake_flag, _os_packet_increment_use_count, 
+                       _os_packet_set_app_metadata, _os_packet_set_compression_generation_count, 
+                       _os_packet_set_expire_time, _os_packet_set_expiry_action, 
+                       _os_packet_set_flow_uuid, _os_packet_set_group_end, _os_packet_set_group_start, 
+                       _os_packet_set_headroom, _os_packet_set_inet_checksum, _os_packet_set_keep_alive, 
+                       _os_packet_set_link_broadcast, _os_packet_set_link_ethfcs, 
+                       _os_packet_set_link_header_length, _os_packet_set_link_multicast, 
+                       _os_packet_set_packetid, _os_packet_set_protocol_segment_size, 
+                       _os_packet_set_service_class, _os_packet_set_token, _os_packet_set_trace_id, 
+                       _os_packet_set_traffic_class, _os_packet_set_transport_last_packet, 
+                       _os_packet_set_transport_retransmit, _os_packet_set_transport_traffic_background, 
+                       _os_packet_set_transport_traffic_realtime, _os_packet_set_tso_flags, 
+                       _os_packet_set_vlan_tag, _os_packet_trace_event, _os_proc_available_memory, 
+                       _panic, _panic_init, _pathconf, _peeloff, _pid_for_task, _pid_hibernate, 
+                       _pid_resume, _pid_shutdown_networking, _pid_shutdown_sockets, 
+                       _pid_suspend, _pipe, _pivot_root, _pkt_subtype_assert_fail, 
+                       _pkt_type_assert_fail, _poll, '_poll$NOCANCEL', _port_obj_init, 
+                       _port_obj_table, _port_obj_table_size, _posix_madvise, _posix_spawn, 
+                       _posix_spawn_file_actions_add_fileportdup2_np, _posix_spawn_file_actions_addchdir_np, 
+                       _posix_spawn_file_actions_addclose, _posix_spawn_file_actions_adddup2, 
+                       _posix_spawn_file_actions_addfchdir_np, _posix_spawn_file_actions_addinherit_np, 
+                       _posix_spawn_file_actions_addopen, _posix_spawn_file_actions_destroy, 
+                       _posix_spawn_file_actions_init, _posix_spawnattr_destroy, 
+                       _posix_spawnattr_disable_ptr_auth_a_keys_np, _posix_spawnattr_get_darwin_role_np, 
+                       _posix_spawnattr_get_qos_clamp_np, _posix_spawnattr_getarchpref_np, 
+                       _posix_spawnattr_getbinpref_np, _posix_spawnattr_getcpumonitor, 
+                       _posix_spawnattr_getflags, _posix_spawnattr_getmacpolicyinfo_np, 
+                       _posix_spawnattr_getpcontrol_np, _posix_spawnattr_getpgroup, 
+                       _posix_spawnattr_getprocesstype_np, _posix_spawnattr_getsigdefault, 
+                       _posix_spawnattr_getsigmask, _posix_spawnattr_init, _posix_spawnattr_set_alt_rosetta_np, 
+                       _posix_spawnattr_set_crash_behavior_deadline_np, _posix_spawnattr_set_crash_behavior_np, 
+                       _posix_spawnattr_set_csm_np, _posix_spawnattr_set_darwin_role_np, 
+                       _posix_spawnattr_set_filedesclimit_ext, _posix_spawnattr_set_gid_np, 
+                       _posix_spawnattr_set_groups_np, _posix_spawnattr_set_importancewatch_port_np, 
+                       _posix_spawnattr_set_jetsam_ttr_np, _posix_spawnattr_set_launch_type_np, 
+                       _posix_spawnattr_set_login_np, _posix_spawnattr_set_max_addr_np, 
+                       _posix_spawnattr_set_persona_gid_np, _posix_spawnattr_set_persona_groups_np, 
+                       _posix_spawnattr_set_persona_np, _posix_spawnattr_set_persona_uid_np, 
+                       _posix_spawnattr_set_platform_np, _posix_spawnattr_set_portlimits_ext, 
+                       _posix_spawnattr_set_ptrauth_task_port_np, _posix_spawnattr_set_qos_clamp_np, 
+                       _posix_spawnattr_set_registered_ports_np, _posix_spawnattr_set_subsystem_root_path_np, 
+                       _posix_spawnattr_set_threadlimit_ext, _posix_spawnattr_set_uid_np, 
+                       _posix_spawnattr_setarchpref_np, _posix_spawnattr_setauditsessionport_np, 
+                       _posix_spawnattr_setbinpref_np, _posix_spawnattr_setcoalition_np, 
+                       _posix_spawnattr_setcpumonitor, _posix_spawnattr_setcpumonitor_default, 
+                       _posix_spawnattr_setexceptionports_np, _posix_spawnattr_setflags, 
+                       _posix_spawnattr_setjetsam_ext, _posix_spawnattr_setmacpolicyinfo_np, 
+                       _posix_spawnattr_setnosmt_np, _posix_spawnattr_setpcontrol_np, 
+                       _posix_spawnattr_setpgroup, _posix_spawnattr_setprocesstype_np, 
+                       _posix_spawnattr_setsigdefault, _posix_spawnattr_setsigmask, 
+                       _posix_spawnattr_setspecialport_np, _pread, '_pread$NOCANCEL', 
+                       _preadv, '_preadv$NOCANCEL', _proc_clear_cpulimits, _proc_clear_delayidlesleep, 
+                       _proc_clear_dirty, _proc_clear_vmpressure, _proc_current_thread_schedinfo, 
+                       _proc_denap_assertion_begin_with_msg, _proc_denap_assertion_complete, 
+                       _proc_disable_apptype, _proc_disable_cpumon, _proc_disable_wakemon, 
+                       _proc_donate_importance_boost, _proc_enable_apptype, _proc_get_cpumon_params, 
+                       _proc_get_dirty, _proc_get_wakemon_params, _proc_importance_assertion_begin_with_msg, 
+                       _proc_importance_assertion_complete, _proc_kmsgbuf, _proc_libversion, 
+                       _proc_list_dynkqueueids, _proc_list_uptrs, _proc_listallpids, 
+                       _proc_listchildpids, _proc_listcoalitions, _proc_listpgrppids, 
+                       _proc_listpids, _proc_listpidspath, _proc_name, _proc_pid_rusage, 
+                       _proc_piddynkqueueinfo, _proc_pidfdinfo, _proc_pidfileportinfo, 
+                       _proc_pidinfo, _proc_pidoriginatorinfo, _proc_pidpath, _proc_pidpath_audittoken, 
+                       _proc_regionfilename, _proc_reset_footprint_interval, _proc_resume_cpumon, 
+                       _proc_rlimit_control, _proc_set_cpumon_defaults, _proc_set_cpumon_params, 
+                       _proc_set_cpumon_params_fatal, _proc_set_csm, _proc_set_delayidlesleep, 
+                       _proc_set_dirty, _proc_set_no_smt, _proc_set_owner_vmpressure, 
+                       _proc_set_wakemon_defaults, _proc_set_wakemon_params, _proc_setcpu_percentage, 
+                       _proc_setpcontrol, _proc_setthread_cpupercent, _proc_setthread_csm, 
+                       _proc_setthread_no_smt, _proc_suppress, _proc_terminate, _proc_terminate_all_rsr, 
+                       _proc_trace_log, _proc_track_dirty, _proc_udata_info, _proc_uuid_policy, 
+                       _processor_assign, _processor_control, _processor_exit, _processor_get_assignment, 
+                       _processor_info, _processor_set_create, _processor_set_default, 
+                       _processor_set_destroy, _processor_set_info, _processor_set_max_priority, 
+                       _processor_set_policy_control, _processor_set_policy_disable, 
+                       _processor_set_policy_enable, _processor_set_stack_usage, 
+                       _processor_set_statistics, _processor_set_tasks, _processor_set_tasks_with_flavor, 
+                       _processor_set_threads, _processor_start, _pselect, '_pselect$DARWIN_EXTSN', 
+                       '_pselect$DARWIN_EXTSN$NOCANCEL', '_pselect$NOCANCEL', _pthread_getugid_np, 
+                       _pthread_setugid_np, _ptrace, _pwrite, '_pwrite$NOCANCEL', 
+                       _pwritev, '_pwritev$NOCANCEL', _quota, _quotactl, _read, '_read$NOCANCEL', 
+                       _readlink, _readlinkat, _readv, '_readv$NOCANCEL', _reboot, 
+                       _reboot_np, _record_system_event_as_kernel, _recvfrom, '_recvfrom$NOCANCEL', 
+                       _recvmsg, '_recvmsg$NOCANCEL', _recvmsg_x, _register_uexc_handler, 
+                       _removexattr, _rename, _rename_ext, _renameat, _renameatx_np, 
+                       _renamex_np, _revoke, _rmdir, _searchfs, _select, '_select$DARWIN_EXTSN', 
+                       '_select$DARWIN_EXTSN$NOCANCEL', '_select$NOCANCEL', _sem_close, 
+                       _sem_destroy, _sem_getvalue, _sem_init, _sem_open, _sem_post, 
+                       _sem_trywait, _sem_unlink, _sem_wait, '_sem_wait$NOCANCEL', 
+                       _semaphore_create, _semaphore_destroy, _semaphore_signal, 
+                       _semaphore_signal_all, _semaphore_signal_all_trap, _semaphore_signal_thread, 
+                       _semaphore_signal_thread_trap, _semaphore_signal_trap, _semaphore_timedwait, 
+                       _semaphore_timedwait_signal, _semaphore_timedwait_signal_trap, 
+                       _semaphore_timedwait_trap, _semaphore_wait, _semaphore_wait_signal, 
+                       _semaphore_wait_signal_trap, _semaphore_wait_trap, _semctl, 
+                       _semget, _semop, _semsys, _sendfile, _sendmsg, '_sendmsg$NOCANCEL', 
+                       _sendmsg_x, _sendto, '_sendto$NOCANCEL', _setattrlist, _setattrlistat, 
+                       _setaudit, _setaudit_addr, _setauid, _setegid, _seteuid, _setgid, 
+                       _setgroups, _setiopolicy_np, _setitimer, _setpgid, _setpriority, 
+                       _setprivexec, _setquota, _setregid, _setreuid, _setrlimit, 
+                       _setsgroups_np, _setsid, _setsockopt, _setuid, _setwgroups_np, 
+                       _setxattr, _sfi_get_class_offtime, _sfi_process_get_flags, 
+                       _sfi_process_set_flags, _sfi_set_class_offtime, _shm_open, 
+                       _shm_unlink, _shmat, _shmctl, _shmdt, _shmget, _shmsys, _shutdown, 
+                       _sigpending, _sigprocmask, _sigsuspend, '_sigsuspend$NOCANCEL', 
+                       _socket, _socket_delegate, _socketpair, _stackshot_capture_with_config, 
+                       _stackshot_config_create, _stackshot_config_dealloc, _stackshot_config_dealloc_buffer, 
+                       _stackshot_config_get_stackshot_buffer, _stackshot_config_get_stackshot_size, 
+                       _stackshot_config_set_delta_timestamp, _stackshot_config_set_flags, 
+                       _stackshot_config_set_pagetable_mask, _stackshot_config_set_pid, 
+                       _stackshot_config_set_size_hint, _stat, _stat64, _statfs, 
+                       _statfs64, _swapon, _swtch, _swtch_pri, _symlink, _symlinkat, 
+                       _sync, _syscall, _syscall_thread_switch, _system_get_sfi_window, 
+                       _system_override, _system_set_sfi_window, _system_version_compat_mode, 
+                       _task_assign, _task_assign_default, _task_create, _task_create_identity_token, 
+                       _task_dyld_process_info_notify_deregister, _task_dyld_process_info_notify_get, 
+                       _task_dyld_process_info_notify_register, _task_for_pid, _task_generate_corpse, 
+                       _task_get_assignment, _task_get_dyld_image_infos, _task_get_emulation_vector, 
+                       _task_get_exc_guard_behavior, _task_get_exception_ports, _task_get_exception_ports_info, 
+                       _task_get_mach_voucher, _task_get_special_port, _task_get_state, 
+                       _task_identity_token_get_task_port, _task_info, _task_inspect, 
+                       _task_inspect_for_pid, _task_map_corpse_info, _task_map_corpse_info_64, 
+                       _task_map_kcdata_object_64, _task_name_for_pid, _task_policy, 
+                       _task_policy_get, _task_policy_set, _task_purgable_info, _task_read_for_pid, 
+                       _task_register_dyld_get_process_state, _task_register_dyld_image_infos, 
+                       _task_register_dyld_set_dyld_state, _task_register_dyld_shared_cache_image_info, 
+                       _task_restartable_ranges_register, _task_restartable_ranges_synchronize, 
+                       _task_resume, _task_resume2, _task_sample, _task_self_, _task_self_trap, 
+                       _task_set_corpse_forking_behavior, _task_set_emulation, _task_set_emulation_vector, 
+                       _task_set_exc_guard_behavior, _task_set_exception_ports, _task_set_info, 
+                       _task_set_mach_voucher, _task_set_phys_footprint_limit, _task_set_policy, 
+                       _task_set_port_space, _task_set_ras_pc, _task_set_special_port, 
+                       _task_set_state, _task_suspend, _task_suspend2, _task_swap_exception_ports, 
+                       _task_swap_mach_voucher, _task_terminate, _task_test_async_upcall_propagation, 
+                       _task_test_sync_upcall, _task_threads, _task_unregister_dyld_image_infos, 
+                       _task_zone_info, _terminate_with_payload, _terminate_with_reason, 
+                       _thread_abort, _thread_abort_safely, _thread_assign, _thread_assign_default, 
+                       _thread_convert_thread_state, _thread_create, _thread_create_running, 
+                       _thread_depress_abort, _thread_destruct_special_reply_port, 
+                       _thread_get_assignment, _thread_get_exception_ports, _thread_get_exception_ports_info, 
+                       _thread_get_mach_voucher, _thread_get_register_pointer_values, 
+                       _thread_get_special_port, _thread_get_special_reply_port, 
+                       _thread_get_state, _thread_info, _thread_policy, _thread_policy_get, 
+                       _thread_policy_set, _thread_resume, _thread_sample, _thread_self_trap, 
+                       _thread_selfcounts, _thread_set_exception_ports, _thread_set_mach_voucher, 
+                       _thread_set_policy, _thread_set_special_port, _thread_set_state, 
+                       _thread_suspend, _thread_swap_exception_ports, _thread_swap_mach_voucher, 
+                       _thread_switch, _thread_terminate, _thread_wire, _tracker_action, 
+                       _truncate, _umask, _undelete, _ungraftdmg, _unlink, _unlinkat, 
+                       _unmount, _usrctl, _utimensat, _utimes, _vfs_purge, _vm_allocate, 
+                       _vm_allocate_cpm, _vm_behavior_set, _vm_copy, _vm_deallocate, 
+                       _vm_inherit, _vm_kernel_page_mask, _vm_kernel_page_shift, 
+                       _vm_kernel_page_size, _vm_machine_attribute, _vm_map, _vm_map_page_query, 
+                       _vm_msync, _vm_page_mask, _vm_page_shift, _vm_page_size, _vm_pressure_monitor, 
+                       _vm_protect, _vm_purgable_control, _vm_read, _vm_read_list, 
+                       _vm_read_overwrite, _vm_region_64, _vm_region_recurse_64, 
+                       _vm_remap, _vm_remap_new, _vm_wire, _vm_write, _voucher_mach_msg_adopt, 
+                       _voucher_mach_msg_clear, _voucher_mach_msg_revert, _voucher_mach_msg_set, 
+                       _vprintf_stderr_func, _wait4, _waitid, '_waitid$NOCANCEL', 
+                       _work_interval_copy_port, _work_interval_create, _work_interval_destroy, 
+                       _work_interval_get_flags_from_port, _work_interval_instance_alloc, 
+                       _work_interval_instance_clear, _work_interval_instance_finish, 
+                       _work_interval_instance_free, _work_interval_instance_get_complexity, 
+                       _work_interval_instance_get_deadline, _work_interval_instance_get_finish, 
+                       _work_interval_instance_get_id, _work_interval_instance_get_start, 
+                       _work_interval_instance_set_complexity, _work_interval_instance_set_deadline, 
+                       _work_interval_instance_set_finish, _work_interval_instance_set_start, 
+                       _work_interval_instance_start, _work_interval_instance_update, 
+                       _work_interval_join, _work_interval_join_port, _work_interval_leave, 
+                       _work_interval_notify, _work_interval_notify_simple, _write, 
+                       '_write$NOCANCEL', _writev, '_writev$NOCANCEL' ]
+  - targets:         [ arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ ___fstat, ___fstatat, ___fstatfs, ___getfsstat, ___lstat, 
+                       ___stat, ___statfs, __current_pid, _mach_absolute_time_kernel, 
+                       _mach_continuous_time_kernel ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst, 
+                   arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           5F7B0A6E-0315-3171-B806-4CCDB23007F4
+  - target:          x86_64-maccatalyst
+    value:           5F7B0A6E-0315-3171-B806-4CCDB23007F4
+  - target:          x86_64h-macos
+    value:           99FD67E1-20A8-36A7-836D-C8F156C98C5D
+  - target:          x86_64h-maccatalyst
+    value:           99FD67E1-20A8-36A7-836D-C8F156C98C5D
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           748648A3-C1FF-3A75-8CE4-95B8334A6D58
+  - target:          arm64e-maccatalyst
+    value:           748648A3-C1FF-3A75-8CE4-95B8334A6D58
+install-name:    '/usr/lib/system/libsystem_m.dylib'
+current-version: 3226.0.1
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst, 
+                       arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst ]
+    symbols:         [ __FE_DFL_DISABLE_SSE_DENORMS_ENV, ___cos_d4, ___cos_f8, ___fpclassify, 
+                       ___inf, ___inff, ___infl, ___isfinite, ___isinf, ___isnan, 
+                       ___isnormal, ___nan, ___signbit, ___sin_d4, ___sin_f8, __simd_acos_d4, 
+                       __simd_acos_d8, __simd_acos_f16, __simd_acos_f8, __simd_acosh_d4, 
+                       __simd_acosh_d8, __simd_acosh_f16, __simd_acosh_f8, __simd_asin_d4, 
+                       __simd_asin_d8, __simd_asin_f16, __simd_asin_f8, __simd_asinh_d4, 
+                       __simd_asinh_d8, __simd_asinh_f16, __simd_asinh_f8, __simd_atan2_d4, 
+                       __simd_atan2_d8, __simd_atan2_f16, __simd_atan2_f8, __simd_atan_d4, 
+                       __simd_atan_d8, __simd_atan_f16, __simd_atan_f8, __simd_atanh_d4, 
+                       __simd_atanh_d8, __simd_atanh_f16, __simd_atanh_f8, __simd_cbrt_d4, 
+                       __simd_cbrt_d8, __simd_cbrt_f16, __simd_cbrt_f8, __simd_cos_d4, 
+                       __simd_cos_d8, __simd_cos_f16, __simd_cos_f8, __simd_cosh_d4, 
+                       __simd_cosh_d8, __simd_cosh_f16, __simd_cosh_f8, __simd_cospi_d4, 
+                       __simd_cospi_d8, __simd_cospi_f16, __simd_cospi_f8, __simd_erf_d4, 
+                       __simd_erf_d8, __simd_erf_f16, __simd_erf_f8, __simd_erfc_d4, 
+                       __simd_erfc_d8, __simd_erfc_f16, __simd_erfc_f8, __simd_exp10_d4, 
+                       __simd_exp10_d8, __simd_exp10_f16, __simd_exp10_f8, __simd_exp2_d4, 
+                       __simd_exp2_d8, __simd_exp2_f16, __simd_exp2_f8, __simd_exp_d4, 
+                       __simd_exp_d8, __simd_exp_f16, __simd_exp_f8, __simd_expm1_d4, 
+                       __simd_expm1_d8, __simd_expm1_f16, __simd_expm1_f8, __simd_fmod_d4, 
+                       __simd_fmod_d8, __simd_fmod_f16, __simd_fmod_f8, __simd_hypot_d4, 
+                       __simd_hypot_d8, __simd_hypot_f16, __simd_hypot_f8, __simd_lgamma_d4, 
+                       __simd_lgamma_d8, __simd_lgamma_f16, __simd_lgamma_f8, __simd_log10_d4, 
+                       __simd_log10_d8, __simd_log10_f16, __simd_log10_f8, __simd_log1p_d4, 
+                       __simd_log1p_d8, __simd_log1p_f16, __simd_log1p_f8, __simd_log2_d4, 
+                       __simd_log2_d8, __simd_log2_f16, __simd_log2_f8, __simd_log_d4, 
+                       __simd_log_d8, __simd_log_f16, __simd_log_f8, __simd_nextafter_d4, 
+                       __simd_nextafter_d8, __simd_nextafter_f16, __simd_nextafter_f8, 
+                       __simd_pow_d4, __simd_pow_d8, __simd_pow_f16, __simd_pow_f8, 
+                       __simd_remainder_d4, __simd_remainder_d8, __simd_remainder_f16, 
+                       __simd_remainder_f8, __simd_round_d4, __simd_round_d8, __simd_round_f16, 
+                       __simd_round_f8, __simd_sin_d4, __simd_sin_d8, __simd_sin_f16, 
+                       __simd_sin_f8, __simd_sinh_d4, __simd_sinh_d8, __simd_sinh_f16, 
+                       __simd_sinh_f8, __simd_sinpi_d4, __simd_sinpi_d8, __simd_sinpi_f16, 
+                       __simd_sinpi_f8, __simd_tan_d4, __simd_tan_d8, __simd_tan_f16, 
+                       __simd_tan_f8, __simd_tanh_d4, __simd_tanh_d8, __simd_tanh_f16, 
+                       __simd_tanh_f8, __simd_tanpi_d4, __simd_tanpi_d8, __simd_tanpi_f16, 
+                       __simd_tanpi_f8, __simd_tgamma_d4, __simd_tgamma_d8, __simd_tgamma_f16, 
+                       __simd_tgamma_f8, '_acos$fenv_access_off', '_acosf$fenv_access_off', 
+                       '_acosh$fenv_access_off', '_acoshf$fenv_access_off', '_acoshl$fenv_access_off', 
+                       '_acosl$fenv_access_off', '_asin$fenv_access_off', '_asinf$fenv_access_off', 
+                       '_asinh$fenv_access_off', '_asinhf$fenv_access_off', '_asinhl$fenv_access_off', 
+                       '_asinl$fenv_access_off', '_atan$fenv_access_off', '_atan2$fenv_access_off', 
+                       '_atan2f$fenv_access_off', '_atan2l$fenv_access_off', '_atanf$fenv_access_off', 
+                       '_atanh$fenv_access_off', '_atanhf$fenv_access_off', '_atanhl$fenv_access_off', 
+                       '_atanl$fenv_access_off', '_cabs$fenv_access_off', '_cabsf$fenv_access_off', 
+                       '_cabsl$fenv_access_off', '_cacos$fenv_access_off', '_cacosf$fenv_access_off', 
+                       '_cacosh$fenv_access_off', '_cacoshf$fenv_access_off', '_cacoshl$fenv_access_off', 
+                       '_cacosl$fenv_access_off', '_carg$fenv_access_off', '_cargf$fenv_access_off', 
+                       '_cargl$fenv_access_off', '_casin$fenv_access_off', '_casinf$fenv_access_off', 
+                       '_casinh$fenv_access_off', '_casinhf$fenv_access_off', '_casinhl$fenv_access_off', 
+                       '_casinl$fenv_access_off', '_catan$fenv_access_off', '_catanf$fenv_access_off', 
+                       '_catanh$fenv_access_off', '_catanhf$fenv_access_off', '_catanhl$fenv_access_off', 
+                       '_catanl$fenv_access_off', '_cbrt$fenv_access_off', '_cbrtf$fenv_access_off', 
+                       '_cbrtl$fenv_access_off', '_ccos$fenv_access_off', '_ccosf$fenv_access_off', 
+                       '_ccosh$fenv_access_off', '_ccoshf$fenv_access_off', '_ccoshl$fenv_access_off', 
+                       '_ccosl$fenv_access_off', '_ceil$fenv_access_off', '_ceilf$fenv_access_off', 
+                       '_ceill$fenv_access_off', '_cexp$fenv_access_off', '_cexpf$fenv_access_off', 
+                       '_cexpl$fenv_access_off', '_cimag$fenv_access_off', '_cimagf$fenv_access_off', 
+                       '_cimagl$fenv_access_off', '_clog$fenv_access_off', '_clogf$fenv_access_off', 
+                       '_clogl$fenv_access_off', '_conj$fenv_access_off', '_conjf$fenv_access_off', 
+                       '_conjl$fenv_access_off', '_copysign$fenv_access_off', '_copysignf$fenv_access_off', 
+                       '_copysignl$fenv_access_off', '_cos$fenv_access_off', '_cosf$fenv_access_off', 
+                       '_cosh$fenv_access_off', '_coshf$fenv_access_off', '_coshl$fenv_access_off', 
+                       '_cosl$fenv_access_off', '_cpow$fenv_access_off', '_cpowf$fenv_access_off', 
+                       '_cpowl$fenv_access_off', '_cproj$fenv_access_off', '_cprojf$fenv_access_off', 
+                       '_cprojl$fenv_access_off', '_creal$fenv_access_off', '_crealf$fenv_access_off', 
+                       '_creall$fenv_access_off', '_csin$fenv_access_off', '_csinf$fenv_access_off', 
+                       '_csinh$fenv_access_off', '_csinhf$fenv_access_off', '_csinhl$fenv_access_off', 
+                       '_csinl$fenv_access_off', '_csqrt$fenv_access_off', '_csqrtf$fenv_access_off', 
+                       '_csqrtl$fenv_access_off', '_ctan$fenv_access_off', '_ctanf$fenv_access_off', 
+                       '_ctanh$fenv_access_off', '_ctanhf$fenv_access_off', '_ctanhl$fenv_access_off', 
+                       '_ctanl$fenv_access_off', _drem, '_erf$fenv_access_off', '_erfc$fenv_access_off', 
+                       '_erfcf$fenv_access_off', '_erfcl$fenv_access_off', '_erff$fenv_access_off', 
+                       '_erfl$fenv_access_off', '_exp$fenv_access_off', '_exp2$fenv_access_off', 
+                       '_exp2f$fenv_access_off', '_exp2l$fenv_access_off', '_expf$fenv_access_off', 
+                       '_expl$fenv_access_off', '_expm1$fenv_access_off', '_expm1f$fenv_access_off', 
+                       '_expm1l$fenv_access_off', '_fabs$fenv_access_off', '_fabsf$fenv_access_off', 
+                       '_fabsl$fenv_access_off', '_fdim$fenv_access_off', '_fdimf$fenv_access_off', 
+                       '_fdiml$fenv_access_off', _fegetexcept, _fesetexcept, _finite, 
+                       '_floor$fenv_access_off', '_floorf$fenv_access_off', '_floorl$fenv_access_off', 
+                       '_fma$fenv_access_off', '_fmaf$fenv_access_off', '_fmal$fenv_access_off', 
+                       '_fmax$fenv_access_off', '_fmaxf$fenv_access_off', '_fmaxl$fenv_access_off', 
+                       '_fmin$fenv_access_off', '_fminf$fenv_access_off', '_fminl$fenv_access_off', 
+                       '_fmod$fenv_access_off', '_fmodf$fenv_access_off', '_fmodl$fenv_access_off', 
+                       '_frexp$fenv_access_off', '_frexpf$fenv_access_off', '_frexpl$fenv_access_off', 
+                       _gamma, '_gamma$fenv_access_off', '_hypot$fenv_access_off', 
+                       '_hypotf$fenv_access_off', '_hypotl$fenv_access_off', '_ilogb$fenv_access_off', 
+                       '_ilogbf$fenv_access_off', '_ilogbl$fenv_access_off', '_ldexp$fenv_access_off', 
+                       '_ldexpf$fenv_access_off', '_ldexpl$fenv_access_off', '_lgamma$fenv_access_off', 
+                       '_lgamma_r$fenv_access_off', '_lgammaf$fenv_access_off', '_lgammaf_r$fenv_access_off', 
+                       '_lgammal$fenv_access_off', '_lgammal_r$fenv_access_off', 
+                       '_llrint$fenv_access_off', '_llrintf$fenv_access_off', '_llrintl$fenv_access_off', 
+                       '_llround$fenv_access_off', '_llroundf$fenv_access_off', '_llroundl$fenv_access_off', 
+                       '_log$fenv_access_off', '_log10$fenv_access_off', '_log10f$fenv_access_off', 
+                       '_log10l$fenv_access_off', '_log1p$fenv_access_off', '_log1pf$fenv_access_off', 
+                       '_log1pl$fenv_access_off', '_log2$fenv_access_off', '_log2f$fenv_access_off', 
+                       '_log2l$fenv_access_off', '_logb$fenv_access_off', '_logbf$fenv_access_off', 
+                       '_logbl$fenv_access_off', '_logf$fenv_access_off', '_logl$fenv_access_off', 
+                       '_lrint$fenv_access_off', '_lrintf$fenv_access_off', '_lrintl$fenv_access_off', 
+                       '_lround$fenv_access_off', '_lroundf$fenv_access_off', '_lroundl$fenv_access_off', 
+                       _matherr, '_modf$fenv_access_off', '_modff$fenv_access_off', 
+                       '_modfl$fenv_access_off', '_nearbyint$fenv_access_off', '_nearbyintf$fenv_access_off', 
+                       '_nearbyintl$fenv_access_off', '_nextafter$fenv_access_off', 
+                       _nextafterd, '_nextafterf$fenv_access_off', '_nextafterl$fenv_access_off', 
+                       '_nexttoward$fenv_access_off', '_nexttowardf$fenv_access_off', 
+                       '_nexttowardl$fenv_access_off', '_pow$fenv_access_off', '_powf$fenv_access_off', 
+                       '_powl$fenv_access_off', '_remainder$fenv_access_off', '_remainderf$fenv_access_off', 
+                       '_remainderl$fenv_access_off', '_remquo$fenv_access_off', 
+                       '_remquof$fenv_access_off', '_remquol$fenv_access_off', '_rint$fenv_access_off', 
+                       '_rintf$fenv_access_off', '_rintl$fenv_access_off', _rinttol, 
+                       '_round$fenv_access_off', '_roundf$fenv_access_off', '_roundl$fenv_access_off', 
+                       _roundtol, '_scalbln$fenv_access_off', '_scalblnf$fenv_access_off', 
+                       '_scalblnl$fenv_access_off', '_scalbn$fenv_access_off', '_scalbnf$fenv_access_off', 
+                       '_scalbnl$fenv_access_off', _significand, '_sin$fenv_access_off', 
+                       '_sinf$fenv_access_off', '_sinh$fenv_access_off', '_sinhf$fenv_access_off', 
+                       '_sinhl$fenv_access_off', '_sinl$fenv_access_off', '_sqrt$fenv_access_off', 
+                       '_sqrtf$fenv_access_off', '_sqrtl$fenv_access_off', '_tan$fenv_access_off', 
+                       '_tanf$fenv_access_off', '_tanh$fenv_access_off', '_tanhf$fenv_access_off', 
+                       '_tanhl$fenv_access_off', '_tanl$fenv_access_off', '_tgamma$fenv_access_off', 
+                       '_tgammaf$fenv_access_off', '_tgammal$fenv_access_off', '_trunc$fenv_access_off', 
+                       '_truncf$fenv_access_off', '_truncl$fenv_access_off' ]
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst, 
+                       arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __FE_DFL_ENV, ___Libm_version, ___cos_d2, ___cos_f4, ___cospi, 
+                       ___cospif, ___exp10, ___exp10f, ___fegetfltrounds, ___fpclassifyd, 
+                       ___fpclassifyf, ___fpclassifyl, ___inline_isfinited, ___inline_isfinitef, 
+                       ___inline_isfinitel, ___inline_isinfd, ___inline_isinff, ___inline_isinfl, 
+                       ___inline_isnand, ___inline_isnanf, ___inline_isnanl, ___inline_isnormald, 
+                       ___inline_isnormalf, ___inline_isnormall, ___inline_signbitd, 
+                       ___inline_signbitf, ___inline_signbitl, ___invert_d2, ___invert_d3, 
+                       ___invert_d4, ___invert_f2, ___invert_f3, ___invert_f4, ___isfinited, 
+                       ___isfinitef, ___isfinitel, ___isinfd, ___isinff, ___isinfl, 
+                       ___isnand, ___isnanf, ___isnanl, ___isnormald, ___isnormalf, 
+                       ___isnormall, ___math_errhandling, ___signbitd, ___signbitf, 
+                       ___signbitl, ___sin_d2, ___sin_f4, ___sincos, ___sincos_stret, 
+                       ___sincosf, ___sincosf_stret, ___sincospi, ___sincospi_stret, 
+                       ___sincospif, ___sincospif_stret, ___sinpi, ___sinpif, ___tanpi, 
+                       ___tanpif, __simd_acos_d2, __simd_acos_f4, __simd_acosh_d2, 
+                       __simd_acosh_f4, __simd_asin_d2, __simd_asin_f4, __simd_asinh_d2, 
+                       __simd_asinh_f4, __simd_atan2_d2, __simd_atan2_f4, __simd_atan_d2, 
+                       __simd_atan_f4, __simd_atanh_d2, __simd_atanh_f4, __simd_cbrt_d2, 
+                       __simd_cbrt_f4, __simd_cos_d2, __simd_cos_f4, __simd_cosh_d2, 
+                       __simd_cosh_f4, __simd_cospi_d2, __simd_cospi_f4, __simd_erf_d2, 
+                       __simd_erf_f4, __simd_erfc_d2, __simd_erfc_f4, __simd_exp10_d2, 
+                       __simd_exp10_f4, __simd_exp2_d2, __simd_exp2_f4, __simd_exp_d2, 
+                       __simd_exp_f4, __simd_expm1_d2, __simd_expm1_f4, __simd_fma_d2, 
+                       __simd_fma_f4, __simd_fmod_d2, __simd_fmod_f4, __simd_hypot_d2, 
+                       __simd_hypot_f4, __simd_incircle_pd2, __simd_incircle_pf2, 
+                       __simd_insphere_pd3, __simd_insphere_pf3, __simd_lgamma_d2, 
+                       __simd_lgamma_f4, __simd_log10_d2, __simd_log10_f4, __simd_log1p_d2, 
+                       __simd_log1p_f4, __simd_log2_d2, __simd_log2_f4, __simd_log_d2, 
+                       __simd_log_f4, __simd_nextafter_d2, __simd_nextafter_f4, __simd_orient_pd2, 
+                       __simd_orient_pd3, __simd_orient_pf2, __simd_orient_pf3, __simd_orient_vd2, 
+                       __simd_orient_vd3, __simd_orient_vf2, __simd_orient_vf3, __simd_pow_d2, 
+                       __simd_pow_f4, __simd_remainder_d2, __simd_remainder_f4, __simd_round_d2, 
+                       __simd_round_f4, __simd_sin_d2, __simd_sin_f4, __simd_sincos_d2, 
+                       __simd_sincos_f4, __simd_sincospi_d2, __simd_sincospi_f4, 
+                       __simd_sinh_d2, __simd_sinh_f4, __simd_sinpi_d2, __simd_sinpi_f4, 
+                       __simd_tan_d2, __simd_tan_f4, __simd_tanh_d2, __simd_tanh_f4, 
+                       __simd_tanpi_d2, __simd_tanpi_f4, __simd_tgamma_d2, __simd_tgamma_f4, 
+                       _acos, _acosf, _acosh, _acoshf, _acoshl, _acosl, _asin, _asinf, 
+                       _asinh, _asinhf, _asinhl, _asinl, _atan, _atan2, _atan2f, 
+                       _atan2l, _atanf, _atanh, _atanhf, _atanhl, _atanl, _cabs, 
+                       _cabsf, _cabsl, _cacos, _cacosf, _cacosh, _cacoshf, _cacoshl, 
+                       _cacosl, _carg, _cargf, _cargl, _casin, _casinf, _casinh, 
+                       _casinhf, _casinhl, _casinl, _catan, _catanf, _catanh, _catanhf, 
+                       _catanhl, _catanl, _cbrt, _cbrtf, _cbrtl, _ccos, _ccosf, _ccosh, 
+                       _ccoshf, _ccoshl, _ccosl, _ceil, _ceilf, _ceill, _cexp, _cexpf, 
+                       _cexpl, _cimag, _cimagf, _cimagl, _clog, _clogf, _clogl, _conj, 
+                       _conjf, _conjl, _copysign, _copysignf, _copysignl, _cos, _cosf, 
+                       _cosh, _coshf, _coshl, _cosl, _cpow, _cpowf, _cpowl, _cproj, 
+                       _cprojf, _cprojl, _creal, _crealf, _creall, _csin, _csinf, 
+                       _csinh, _csinhf, _csinhl, _csinl, _csqrt, _csqrtf, _csqrtl, 
+                       _ctan, _ctanf, _ctanh, _ctanhf, _ctanhl, _ctanl, _erf, _erfc, 
+                       _erfcf, _erfcl, _erff, _erfl, _exp, _exp2, _exp2f, _exp2l, 
+                       _expf, _expl, _expm1, _expm1f, _expm1l, _fabs, _fabsf, _fabsl, 
+                       _fdim, _fdimf, _fdiml, _feclearexcept, _fegetenv, _fegetexceptflag, 
+                       _fegetround, _feholdexcept, _feraiseexcept, _fesetenv, _fesetexceptflag, 
+                       _fesetround, _fetestexcept, _feupdateenv, _floor, _floorf, 
+                       _floorl, _fma, _fmaf, _fmal, _fmax, _fmaxf, _fmaxl, _fmin, 
+                       _fminf, _fminl, _fmod, _fmodf, _fmodl, _frexp, _frexpf, _frexpl, 
+                       _hypot, _hypotf, _hypotl, _ilogb, _ilogbf, _ilogbl, _isinf, 
+                       _isnan, _j0, _j1, _jn, _ldexp, _ldexpf, _ldexpl, _lgamma, 
+                       _lgamma_r, _lgammaf, _lgammaf_r, _lgammal, _lgammal_r, _llrint, 
+                       _llrintf, _llrintl, _llround, _llroundf, _llroundl, _log, 
+                       _log10, _log10f, _log10l, _log1p, _log1pf, _log1pl, _log2, 
+                       _log2f, _log2l, _logb, _logbf, _logbl, _logf, _logl, _lrint, 
+                       _lrintf, _lrintl, _lround, _lroundf, _lroundl, _matrix_identity_double2x2, 
+                       _matrix_identity_double3x3, _matrix_identity_double4x4, _matrix_identity_float2x2, 
+                       _matrix_identity_float3x3, _matrix_identity_float4x4, _modf, 
+                       _modff, _modfl, _nan, _nanf, _nanl, _nearbyint, _nearbyintf, 
+                       _nearbyintl, _nextafter, _nextafterf, _nextafterl, _nexttoward, 
+                       _nexttowardf, _nexttowardl, _pow, _powf, _powl, _remainder, 
+                       _remainderf, _remainderl, _remquo, _remquof, _remquol, _rint, 
+                       _rintf, _rintl, _round, _roundf, _roundl, _scalb, _scalbln, 
+                       _scalblnf, _scalblnl, _scalbn, _scalbnf, _scalbnl, _signgam, 
+                       _sin, _sinf, _sinh, _sinhf, _sinhl, _sinl, _sqrt, _sqrtf, 
+                       _sqrtl, _tan, _tanf, _tanh, _tanhf, _tanhl, _tanl, _tgamma, 
+                       _tgammaf, _tgammal, _trunc, _truncf, _truncl, _y0, _y1, _yn ]
+  - targets:         [ arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __FE_DFL_DISABLE_DENORMS_ENV ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           D95D8C17-9F95-3076-A449-FBC4D1E9AD57
+  - target:          x86_64-maccatalyst
+    value:           D95D8C17-9F95-3076-A449-FBC4D1E9AD57
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           030A8CB7-CD53-32E1-A0CC-6AC7D7DE93F1
+  - target:          arm64e-maccatalyst
+    value:           030A8CB7-CD53-32E1-A0CC-6AC7D7DE93F1
+install-name:    '/usr/lib/system/libsystem_malloc.dylib'
+current-version: 409.40.6
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ ___mach_stack_logging_copy_uniquing_table, ___mach_stack_logging_enumerate_records, 
+                       ___mach_stack_logging_frames_for_uniqued_stack, ___mach_stack_logging_get_frames, 
+                       ___mach_stack_logging_get_frames_for_stackid, ___mach_stack_logging_set_file_path, 
+                       ___mach_stack_logging_shared_memory_address, ___mach_stack_logging_stackid_for_vm_region, 
+                       ___mach_stack_logging_start_reading, ___mach_stack_logging_stop_reading, 
+                       ___mach_stack_logging_uniquing_table_copy_from_serialized, 
+                       ___mach_stack_logging_uniquing_table_read_stack, ___mach_stack_logging_uniquing_table_release, 
+                       ___mach_stack_logging_uniquing_table_retain, ___mach_stack_logging_uniquing_table_serialize, 
+                       ___mach_stack_logging_uniquing_table_sizeof, ___malloc_init, 
+                       ___malloc_late_init, __malloc_fork_child, __malloc_fork_parent, 
+                       __malloc_fork_prepare, __malloc_no_asl_log, __os_cpu_number_override, 
+                       _aligned_alloc, _calloc, _free, _mag_set_thread_index, _malloc, 
+                       _malloc_check_counter, _malloc_check_each, _malloc_check_start, 
+                       _malloc_claimed_address, _malloc_create_legacy_default_zone, 
+                       _malloc_create_zone, _malloc_debug, _malloc_default_purgeable_zone, 
+                       _malloc_default_zone, _malloc_destroy_zone, _malloc_engaged_nano, 
+                       _malloc_enter_process_memory_limit_warn_mode, _malloc_error, 
+                       _malloc_freezedry, _malloc_get_all_zones, _malloc_get_thread_options, 
+                       _malloc_get_zone_name, _malloc_good_size, _malloc_jumpstart, 
+                       _malloc_logger, _malloc_make_nonpurgeable, _malloc_make_purgeable, 
+                       _malloc_memory_event_handler, _malloc_num_zones, _malloc_num_zones_allocated, 
+                       _malloc_printf, _malloc_register_stack_logger, _malloc_set_thread_options, 
+                       _malloc_set_zone_name, _malloc_singlethreaded, _malloc_size, 
+                       _malloc_zero_on_free_disable, _malloc_zone_batch_free, _malloc_zone_batch_malloc, 
+                       _malloc_zone_calloc, _malloc_zone_check, _malloc_zone_claimed_address, 
+                       _malloc_zone_disable_discharge_checking, _malloc_zone_discharge, 
+                       _malloc_zone_enable_discharge_checking, _malloc_zone_enumerate_discharged_pointers, 
+                       _malloc_zone_free, _malloc_zone_from_ptr, _malloc_zone_log, 
+                       _malloc_zone_malloc, _malloc_zone_memalign, _malloc_zone_pressure_relief, 
+                       _malloc_zone_print, _malloc_zone_print_ptr_info, _malloc_zone_realloc, 
+                       _malloc_zone_register, _malloc_zone_statistics, _malloc_zone_unregister, 
+                       _malloc_zone_valloc, _malloc_zones, _mstats, _pgm_diagnose_fault_from_crash_reporter, 
+                       _pgm_disable_for_current_thread, _posix_memalign, _quarantine_diagnose_fault_from_crash_reporter, 
+                       _realloc, '_reallocarray$DARWIN_EXTSN', '_reallocarrayf$DARWIN_EXTSN', 
+                       _scalable_zone_info, _scalable_zone_statistics, _set_malloc_singlethreaded, 
+                       _stack_logging_enable_logging, _szone_check_counter, _szone_check_modulo, 
+                       _szone_check_start, _tiny_print_region_free_list, _turn_off_stack_logging, 
+                       _turn_on_stack_logging, _valloc, _vfree, _zeroify_scalable_zone ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           33130846-6A1D-33AA-BC75-06695EFCBF20
+  - target:          x86_64-maccatalyst
+    value:           33130846-6A1D-33AA-BC75-06695EFCBF20
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           4972C105-1F4D-38BF-87C0-4724101B2CFA
+  - target:          arm64e-maccatalyst
+    value:           4972C105-1F4D-38BF-87C0-4724101B2CFA
+install-name:    '/usr/lib/system/libsystem_networkextension.dylib'
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _NEHelperCacheAddRedirectedAddress, _NEHelperCacheClearRedirectedAddresses, 
+                       _NEHelperCacheClearUUIDs, _NEHelperCacheCopyAppUUIDMapping, 
+                       _NEHelperCacheCopyAppUUIDMappingExtended, _NEHelperCacheCopyAppUUIDMappingForUIDExtended, 
+                       _NEHelperCacheCopySigningIdentifierMapping, _NEHelperCacheSetDomainDictionaries, 
+                       _NEHelperCacheSetRoutes, _NEHelperCopyAggregatePathRules, 
+                       _NEHelperCopyAppInfo, _NEHelperCopyCurrentNetworkAsync, _NEHelperCopyCurrentNetworkInfo, 
+                       _NEHelperCopyPerAppDomains, _NEHelperCopyResponse, _NEHelperGetIKESocket, 
+                       _NEHelperGetIKESocketWithResult, _NEHelperGetKernelControlSocket, 
+                       _NEHelperGetKernelControlSocketExtended, _NEHelperGetNECPSessionFD, 
+                       _NEHelperGetPFKeySocket, _NEHelperHandleConfigurationsChangedBySC, 
+                       _NEHelperInit, _NEHelperInterfaceRemoveAddress, _NEHelperInterfaceSetAddress, 
+                       _NEHelperInterfaceSetAddressWithLifetime, _NEHelperInterfaceSetMTU, 
+                       _NEHelperInterfaceSetOption, _NEHelperSendRequest, _NEHelperSettingsRemove, 
+                       _NEHelperSettingsSetArray, _NEHelperSettingsSetBool, _NEHelperSettingsSetNumber, 
+                       _NEHelperVPNConfigurationExists, _NEHelperVPNSetEnabled, _g_ne_read_uuid_cache, 
+                       _g_ne_uuid_cache_hit, _ne_copy_cached_bundle_identifier_for_uuid, 
+                       _ne_copy_cached_preferred_bundle_for_bundle_identifier, _ne_copy_cached_uuids_for_bundle_identifier, 
+                       _ne_copy_signature_info_for_pid, _ne_copy_signing_identifier_for_pid, 
+                       _ne_copy_uuid_cache, _ne_force_reset_uuid_cache, _ne_get_configuration_generation, 
+                       _ne_is_sockaddr_valid, _ne_log_large_obj, _ne_log_obj, _ne_print_backtrace, 
+                       _ne_privacy_dns_netagent_id, _ne_privacy_proxy_netagent_id, 
+                       _ne_session_add_necp_drop_dest_from_dest_list, _ne_session_add_necp_drop_dest_from_path, 
+                       _ne_session_address_matches_subnets, _ne_session_agent_get_advisory, 
+                       _ne_session_agent_get_advisory_interface_index, _ne_session_always_on_vpn_configs_present, 
+                       _ne_session_always_on_vpn_configs_present_at_boot, _ne_session_app_vpn_configs_present, 
+                       _ne_session_cancel, _ne_session_clear_caches, _ne_session_content_filter_configs_present, 
+                       _ne_session_copy_app_data_from_flow_divert_socket, _ne_session_copy_app_data_from_flow_divert_token, 
+                       _ne_session_copy_os_version_string, _ne_session_copy_policy_match, 
+                       _ne_session_copy_security_session_info, _ne_session_copy_socket_attributes, 
+                       _ne_session_copy_socket_domain_attributes, _ne_session_create, 
+                       _ne_session_disable_restrictions, _ne_session_dns_proxy_configs_present, 
+                       _ne_session_dns_settings_configs_present, _ne_session_establish_ipc, 
+                       _ne_session_fallback_advisory, _ne_session_fallback_default, 
+                       _ne_session_get_config_id_from_network_agent, _ne_session_get_configuration_id, 
+                       _ne_session_get_info, _ne_session_get_info2, _ne_session_get_status, 
+                       _ne_session_info_type_to_string, _ne_session_initialize_necp_drop_all, 
+                       _ne_session_is_always_on_vpn_enabled, _ne_session_is_safeboot, 
+                       _ne_session_local_communication_configs_present, _ne_session_local_communication_send_info, 
+                       _ne_session_manager_get_pid, _ne_session_manager_has_active_sessions, 
+                       _ne_session_manager_is_running, _ne_session_on_demand_configs_present, 
+                       _ne_session_path_controller_configs_present, _ne_session_policy_copy_flow_divert_token, 
+                       _ne_session_policy_copy_flow_divert_token_with_key, _ne_session_policy_match_get_filter_unit, 
+                       _ne_session_policy_match_get_flow_divert_unit, _ne_session_policy_match_get_scoped_interface_index, 
+                       _ne_session_policy_match_get_service, _ne_session_policy_match_get_service_action, 
+                       _ne_session_policy_match_get_service_type, _ne_session_policy_match_is_drop, 
+                       _ne_session_policy_match_is_flow_divert, _ne_session_policy_match_service_is_registered, 
+                       _ne_session_release, _ne_session_retain, _ne_session_send_barrier, 
+                       _ne_session_service_get_dns_service_id, _ne_session_service_get_dns_service_id_for_interface, 
+                       _ne_session_service_matches_address, _ne_session_service_matches_address_for_interface, 
+                       _ne_session_set_event_handler, _ne_session_set_socket_attributes, 
+                       _ne_session_set_socket_context_attribute, _ne_session_set_socket_tracker_attributes, 
+                       _ne_session_should_disable_nexus, _ne_session_start, _ne_session_start_on_behalf_of, 
+                       _ne_session_start_with_options, _ne_session_status_to_string, 
+                       _ne_session_stop, _ne_session_stop_all_with_plugin_type, _ne_session_stop_reason_to_string, 
+                       _ne_session_type_to_string, _ne_session_use_as_system_vpn, 
+                       _ne_session_vod_evaluate_connection_present, _ne_session_vpn_include_all_networks_configs_present, 
+                       _ne_socket_set_attribution, _ne_socket_set_domains, _ne_socket_set_is_app_initiated, 
+                       _ne_socket_set_website_attribution, _ne_tracker_build_cache, 
+                       _ne_tracker_build_trie, _ne_tracker_check_info_changed, _ne_tracker_clear_cache, 
+                       _ne_tracker_context_get_domain, _ne_tracker_context_get_domain_owner, 
+                       _ne_tracker_context_is_from_app_list, _ne_tracker_context_is_from_web_list, 
+                       _ne_tracker_get_ddg_dictionary, _ne_tracker_lookup_app_domains, 
+                       _ne_tracker_set_test_domains, _ne_tracker_validate_domain, 
+                       _ne_trie_free, _ne_trie_has_high_ascii, _ne_trie_init, _ne_trie_init_from_file, 
+                       _ne_trie_insert, _ne_trie_save_to_file, _ne_trie_search, _necp_drop_dest_copy_dest_entry_list, 
+                       _nehelper_copy_connection_for_delegate_class, _nehelper_queue, 
+                       _nelog_is_debug_logging_enabled, _nelog_is_extra_vpn_logging_enabled, 
+                       _nelog_is_info_logging_enabled ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           1F9FBDD3-694A-3FF7-A232-F07DF4845ABE
+  - target:          x86_64-maccatalyst
+    value:           1F9FBDD3-694A-3FF7-A232-F07DF4845ABE
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           B2C5AAD6-13E5-3E2E-8DFC-601BAED4AA96
+  - target:          arm64e-maccatalyst
+    value:           B2C5AAD6-13E5-3E2E-8DFC-601BAED4AA96
+install-name:    '/usr/lib/system/libsystem_notify.dylib'
+current-version: 306
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __notify_fork_child, _notify_cancel, _notify_check, _notify_dump_status, 
+                       _notify_get_event, _notify_get_state, _notify_is_valid_token, 
+                       _notify_monitor_file, _notify_peek, _notify_post, _notify_register_check, 
+                       _notify_register_dispatch, _notify_register_file_descriptor, 
+                       _notify_register_mach_port, _notify_register_plain, _notify_register_signal, 
+                       _notify_resume, _notify_resume_pid, _notify_set_options, _notify_set_state, 
+                       _notify_simple_post, _notify_suspend, _notify_suspend_pid ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           F07558DB-8B15-3D96-93F9-3A61BBD52F25
+  - target:          x86_64-maccatalyst
+    value:           F07558DB-8B15-3D96-93F9-3A61BBD52F25
+  - target:          arm64-macos
+    value:           372B6A5F-EE6F-3F9C-84D1-E8027DB6FA17
+  - target:          arm64-maccatalyst
+    value:           372B6A5F-EE6F-3F9C-84D1-E8027DB6FA17
+  - target:          arm64e-macos
+    value:           78189670-2F47-332C-9A59-A210157AA97B
+  - target:          arm64e-maccatalyst
+    value:           78189670-2F47-332C-9A59-A210157AA97B
+install-name:    '/usr/lib/system/libsystem_platform.dylib'
+current-version: 288
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
+    symbols:         [ '_OSAtomicFifoDequeue$VARIANT$PFZ', '_OSAtomicFifoDequeue$VARIANT$UnfairLock', 
+                       '_OSAtomicFifoEnqueue$VARIANT$PFZ', '_OSAtomicFifoEnqueue$VARIANT$UnfairLock', 
+                       ___no_overread_variant_setup, __sigtramp, _bzero_sse_np, _longjmperror, 
+                       _memmove_sse_np, _memset_pattern16_sse_np, _memset_pattern4_sse_np, 
+                       _memset_pattern8_sse_np, _memset_sse_np ]
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _OSAtomicAdd32, _OSAtomicAdd32Barrier, _OSAtomicAdd64, _OSAtomicAdd64Barrier, 
+                       _OSAtomicAnd32, _OSAtomicAnd32Barrier, _OSAtomicAnd32Orig, 
+                       _OSAtomicAnd32OrigBarrier, _OSAtomicCompareAndSwap32, _OSAtomicCompareAndSwap32Barrier, 
+                       _OSAtomicCompareAndSwap64, _OSAtomicCompareAndSwap64Barrier, 
+                       _OSAtomicCompareAndSwapInt, _OSAtomicCompareAndSwapIntBarrier, 
+                       _OSAtomicCompareAndSwapLong, _OSAtomicCompareAndSwapLongBarrier, 
+                       _OSAtomicCompareAndSwapPtr, _OSAtomicCompareAndSwapPtrBarrier, 
+                       _OSAtomicDecrement32, _OSAtomicDecrement32Barrier, _OSAtomicDecrement64, 
+                       _OSAtomicDecrement64Barrier, _OSAtomicDequeue, _OSAtomicEnqueue, 
+                       _OSAtomicFifoDequeue, _OSAtomicFifoEnqueue, _OSAtomicIncrement32, 
+                       _OSAtomicIncrement32Barrier, _OSAtomicIncrement64, _OSAtomicIncrement64Barrier, 
+                       _OSAtomicOr32, _OSAtomicOr32Barrier, _OSAtomicOr32Orig, _OSAtomicOr32OrigBarrier, 
+                       _OSAtomicTestAndClear, _OSAtomicTestAndClearBarrier, _OSAtomicTestAndSet, 
+                       _OSAtomicTestAndSetBarrier, _OSAtomicXor32, _OSAtomicXor32Barrier, 
+                       _OSAtomicXor32Orig, _OSAtomicXor32OrigBarrier, _OSMemoryBarrier, 
+                       _OSSpinLockLock, _OSSpinLockTry, _OSSpinLockUnlock, __OSSpinLockLockSlow, 
+                       ___bzero, ___libplatform_init, ___os_log_simple_offset, ___os_once_reset, 
+                       ___platform_sigaction, __longjmp, __os_alloc_once, __os_lock_type_eliding, 
+                       __os_lock_type_handoff, __os_lock_type_nospin, __os_lock_type_spin, 
+                       __os_lock_type_transactional, __os_lock_type_unfair, __os_log_simple, 
+                       __os_log_simple_parse, __os_log_simple_parse_identifiers, 
+                       __os_log_simple_parse_message, __os_log_simple_parse_subsystem, 
+                       __os_log_simple_parse_timestamp, __os_log_simple_parse_type, 
+                       __os_log_simple_reinit_4launchd, __os_log_simple_send, __os_log_simple_shim, 
+                       __os_nospin_lock_lock, __os_nospin_lock_trylock, __os_nospin_lock_unlock, 
+                       __os_once, __os_semaphore_create, __os_semaphore_dispose, 
+                       __os_semaphore_signal, __os_semaphore_wait, __platform_bzero, 
+                       __platform_memccpy, __platform_memchr, __platform_memcmp, 
+                       __platform_memcmp_zero_aligned8, __platform_memmove, __platform_memset, 
+                       __platform_memset_pattern16, __platform_memset_pattern4, __platform_memset_pattern8, 
+                       __platform_strchr, __platform_strcmp, __platform_strcpy, __platform_strlcat, 
+                       __platform_strlcpy, __platform_strlen, __platform_strncmp, 
+                       __platform_strncpy, __platform_strnlen, __platform_strstr, 
+                       __setjmp, __simple_asl_get_fd, __simple_asl_log, __simple_asl_log_prog, 
+                       __simple_asl_msg_new, __simple_asl_msg_set, __simple_asl_send, 
+                       __simple_dprintf, __simple_esappend, __simple_esprintf, __simple_getenv, 
+                       __simple_put, __simple_putline, __simple_salloc, __simple_sappend, 
+                       __simple_sfree, __simple_sprintf, __simple_sresize, __simple_string, 
+                       __simple_vdprintf, __simple_vesprintf, __simple_vsprintf, 
+                       __spin_lock, __spin_lock_try, __spin_unlock, _ffs, _ffsl, 
+                       _ffsll, _fls, _flsl, _flsll, _getcontext, _longjmp, _makecontext, 
+                       _os_lock_lock, _os_lock_trylock, _os_lock_unlock, _os_log_simple_now, 
+                       _os_log_simple_type_from_asl, _os_unfair_lock_assert_not_owner, 
+                       _os_unfair_lock_assert_owner, _os_unfair_lock_lock, _os_unfair_lock_lock_no_tsd, 
+                       _os_unfair_lock_lock_with_options, _os_unfair_lock_trylock, 
+                       _os_unfair_lock_unlock, _os_unfair_lock_unlock_no_tsd, _os_unfair_recursive_lock_lock_with_options, 
+                       _os_unfair_recursive_lock_owned, _os_unfair_recursive_lock_trylock, 
+                       _os_unfair_recursive_lock_tryunlock4objc, _os_unfair_recursive_lock_unlock, 
+                       _os_unfair_recursive_lock_unlock_forked_child, _platform_task_attach, 
+                       _platform_task_copy_next_thread, _platform_task_detach, _platform_task_is_64_bit, 
+                       _platform_task_perform, _platform_task_resume_threads, _platform_task_suspend_threads, 
+                       _platform_task_update_threads, _platform_thread_abort_safely, 
+                       _platform_thread_get_pthread, _platform_thread_get_state, 
+                       _platform_thread_get_unique_id, _platform_thread_info, _platform_thread_perform, 
+                       _platform_thread_release, _platform_thread_resume, _platform_thread_set_state, 
+                       _platform_thread_suspend, _setcontext, _setjmp, _siglongjmp, 
+                       _sigsetjmp, _spin_lock, _spin_lock_try, _spin_unlock, _swapcontext, 
+                       _sys_cache_control, _sys_dcache_flush, _sys_icache_invalidate ]
+  - targets:         [ arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __ctx_done ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           13B5E252-77D1-31E1-888D-1C5F4426EA87
+  - target:          x86_64-maccatalyst
+    value:           13B5E252-77D1-31E1-888D-1C5F4426EA87
+  - target:          arm64-macos
+    value:           030D2641-514F-373F-9688-582D9D3B369A
+  - target:          arm64-maccatalyst
+    value:           030D2641-514F-373F-9688-582D9D3B369A
+  - target:          arm64e-macos
+    value:           886CACA0-5762-3640-8DB2-3FA3B911C062
+  - target:          arm64e-maccatalyst
+    value:           886CACA0-5762-3640-8DB2-3FA3B911C062
+install-name:    '/usr/lib/system/libsystem_pthread.dylib'
+current-version: 514
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ ____chkstk_darwin, ___is_threaded, ___pthread_init, ___pthread_late_init, 
+                       ___pthread_workqueue_setkill, ___unix_conforming, __pthread_atfork_child, 
+                       __pthread_atfork_child_handlers, __pthread_atfork_parent, 
+                       __pthread_atfork_parent_handlers, __pthread_atfork_prepare, 
+                       __pthread_atfork_prepare_handlers, __pthread_clear_qos_tsd, 
+                       __pthread_exit_if_canceled, __pthread_fork_child, __pthread_fork_child_postinit, 
+                       __pthread_fork_parent, __pthread_fork_prepare, __pthread_is_threaded, 
+                       __pthread_mutex_enable_legacy_mode, __pthread_override_qos_class_end_direct, 
+                       __pthread_override_qos_class_start_direct, __pthread_qos_class_and_override_decode, 
+                       __pthread_qos_class_and_override_encode, __pthread_qos_class_decode, 
+                       __pthread_qos_class_encode, __pthread_qos_class_encode_workqueue, 
+                       __pthread_qos_override_end_direct, __pthread_qos_override_start_direct, 
+                       __pthread_sched_pri_decode, __pthread_sched_pri_encode, __pthread_self, 
+                       __pthread_set_properties_self, __pthread_set_self, __pthread_setspecific_static, 
+                       __pthread_start, __pthread_tsd_shared_cache_first, __pthread_tsd_shared_cache_last, 
+                       __pthread_workloop_create, __pthread_workloop_destroy, __pthread_workqueue_add_cooperativethreads, 
+                       __pthread_workqueue_addthreads, __pthread_workqueue_asynchronous_override_add, 
+                       __pthread_workqueue_asynchronous_override_reset_all_self, 
+                       __pthread_workqueue_asynchronous_override_reset_self, __pthread_workqueue_init, 
+                       __pthread_workqueue_init_with_kevent, __pthread_workqueue_init_with_workloop, 
+                       __pthread_workqueue_override_reset, __pthread_workqueue_override_start_direct, 
+                       __pthread_workqueue_override_start_direct_check_owner, __pthread_workqueue_set_event_manager_priority, 
+                       __pthread_workqueue_should_narrow, __pthread_workqueue_supported, 
+                       __pthread_wqthread, __pthread_yield_to_enqueuer_4dispatch, 
+                       _cthread_yield, _posix_spawnattr_get_qos_class_np, _posix_spawnattr_set_qos_class_np, 
+                       _pthread_atfork, _pthread_attr_destroy, _pthread_attr_get_qos_class_np, 
+                       _pthread_attr_getdetachstate, _pthread_attr_getguardsize, 
+                       _pthread_attr_getinheritsched, _pthread_attr_getschedparam, 
+                       _pthread_attr_getschedpolicy, _pthread_attr_getscope, _pthread_attr_getstack, 
+                       _pthread_attr_getstackaddr, _pthread_attr_getstacksize, _pthread_attr_init, 
+                       _pthread_attr_set_qos_class_np, _pthread_attr_setcpupercent_np, 
+                       _pthread_attr_setdetachstate, _pthread_attr_setguardsize, 
+                       _pthread_attr_setinheritsched, _pthread_attr_setschedparam, 
+                       _pthread_attr_setschedpolicy, _pthread_attr_setscope, _pthread_attr_setstack, 
+                       _pthread_attr_setstackaddr, _pthread_attr_setstacksize, _pthread_cancel, 
+                       _pthread_chdir_np, _pthread_cond_broadcast, _pthread_cond_destroy, 
+                       _pthread_cond_init, _pthread_cond_signal, _pthread_cond_signal_thread_np, 
+                       _pthread_cond_timedwait, '_pthread_cond_timedwait$NOCANCEL', 
+                       _pthread_cond_timedwait_relative_np, _pthread_cond_wait, '_pthread_cond_wait$NOCANCEL', 
+                       _pthread_condattr_destroy, _pthread_condattr_getpshared, _pthread_condattr_init, 
+                       _pthread_condattr_setpshared, _pthread_cpu_number_np, _pthread_create, 
+                       _pthread_create_from_mach_thread, _pthread_create_suspended_np, 
+                       _pthread_create_with_workgroup_np, _pthread_current_stack_contains_np, 
+                       _pthread_dependency_fulfill_np, _pthread_dependency_init_np, 
+                       _pthread_dependency_wait_np, _pthread_detach, _pthread_equal, 
+                       _pthread_exit, _pthread_fchdir_np, _pthread_from_mach_thread_np, 
+                       _pthread_get_qos_class_np, _pthread_get_stackaddr_np, _pthread_get_stacksize_np, 
+                       _pthread_getconcurrency, _pthread_getname_np, _pthread_getschedparam, 
+                       _pthread_getspecific, _pthread_install_workgroup_functions_np, 
+                       _pthread_introspection_getspecific_np, _pthread_introspection_hook_install, 
+                       _pthread_introspection_setspecific_np, _pthread_is_threaded_np, 
+                       _pthread_jit_write_freeze_callbacks_np, _pthread_jit_write_protect_np, 
+                       _pthread_jit_write_protect_supported_np, _pthread_jit_write_with_callback_np, 
+                       _pthread_join, '_pthread_join$NOCANCEL', _pthread_key_create, 
+                       _pthread_key_delete, _pthread_key_init_np, _pthread_kill, 
+                       _pthread_layout_offsets, _pthread_mach_thread_np, _pthread_main_np, 
+                       _pthread_main_thread_np, _pthread_mutex_destroy, _pthread_mutex_getprioceiling, 
+                       _pthread_mutex_init, _pthread_mutex_lock, _pthread_mutex_setprioceiling, 
+                       _pthread_mutex_trylock, _pthread_mutex_unlock, _pthread_mutexattr_destroy, 
+                       _pthread_mutexattr_getpolicy_np, _pthread_mutexattr_getprioceiling, 
+                       _pthread_mutexattr_getprotocol, _pthread_mutexattr_getpshared, 
+                       _pthread_mutexattr_gettype, _pthread_mutexattr_init, _pthread_mutexattr_setpolicy_np, 
+                       _pthread_mutexattr_setprioceiling, _pthread_mutexattr_setprotocol, 
+                       _pthread_mutexattr_setpshared, _pthread_mutexattr_settype, 
+                       _pthread_once, _pthread_override_qos_class_end_np, _pthread_override_qos_class_start_np, 
+                       _pthread_prefer_alternate_amx_self, _pthread_prefer_alternate_cluster_self, 
+                       _pthread_qos_max_parallelism, _pthread_rwlock_destroy, _pthread_rwlock_init, 
+                       _pthread_rwlock_rdlock, _pthread_rwlock_tryrdlock, _pthread_rwlock_trywrlock, 
+                       _pthread_rwlock_unlock, _pthread_rwlock_wrlock, _pthread_rwlockattr_destroy, 
+                       _pthread_rwlockattr_getpshared, _pthread_rwlockattr_init, 
+                       _pthread_rwlockattr_setpshared, _pthread_self, _pthread_self_is_exiting_np, 
+                       _pthread_set_fixedpriority_self, _pthread_set_qos_class_np, 
+                       _pthread_set_qos_class_self_np, _pthread_set_timeshare_self, 
+                       _pthread_setcancelstate, _pthread_setcanceltype, _pthread_setconcurrency, 
+                       _pthread_setname_np, _pthread_setschedparam, _pthread_setspecific, 
+                       _pthread_sigmask, _pthread_stack_frame_decode_np, _pthread_testcancel, 
+                       _pthread_threadid_np, _pthread_time_constraint_max_parallelism, 
+                       _pthread_workqueue_addthreads_np, _pthread_workqueue_setdispatch_np, 
+                       _pthread_workqueue_setdispatchoffset_np, _pthread_workqueue_setup, 
+                       _pthread_yield_np, _qos_class_main, _qos_class_self, _sched_get_priority_max, 
+                       _sched_get_priority_min, _sched_yield, _sigwait, '_sigwait$NOCANCEL', 
+                       _start_wqthread, _thread_chkstk_darwin, _thread_start ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           A064D0A7-139F-33E5-959C-7067CF94DC2E
+  - target:          x86_64-maccatalyst
+    value:           A064D0A7-139F-33E5-959C-7067CF94DC2E
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           3ADBD543-3E57-332F-972C-A958D9E4FBF8
+  - target:          arm64e-maccatalyst
+    value:           3ADBD543-3E57-332F-972C-A958D9E4FBF8
+install-name:    '/usr/lib/system/libsystem_sandbox.dylib'
+current-version: 1845.41.2
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _APP_SANDBOX_IOKIT_CLIENT, _APP_SANDBOX_MACH, _APP_SANDBOX_READ, 
+                       _APP_SANDBOX_READ_WRITE, _IOS_SANDBOX_APPLICATION_GROUP, _IOS_SANDBOX_CONTAINER, 
+                       _SANDBOX_CHECK_ALLOW_APPROVAL, _SANDBOX_CHECK_CANONICAL, _SANDBOX_CHECK_NOFOLLOW, 
+                       _SANDBOX_CHECK_NO_APPROVAL, _SANDBOX_CHECK_NO_REPORT, _SANDBOX_CHECK_POSIX_READABLE, 
+                       _SANDBOX_EXTENSION_CANONICAL, _SANDBOX_EXTENSION_DEFAULT, 
+                       _SANDBOX_EXTENSION_MACL_LEARNING, _SANDBOX_EXTENSION_MAGIC, 
+                       _SANDBOX_EXTENSION_NOFOLLOW, _SANDBOX_EXTENSION_NO_REPORT, 
+                       _SANDBOX_EXTENSION_NO_STORAGE_CLASS, _SANDBOX_EXTENSION_PREFIXMATCH, 
+                       _SANDBOX_EXTENSION_UNRESOLVED, _SANDBOX_EXTENSION_USER_INTENT, 
+                       __amkrtemp, __sandbox_in_a_container, __sandbox_register_app_bundle_0, 
+                       __sandbox_register_app_bundle_1, _gpu_bundle_find_trusted, 
+                       _gpu_bundle_is_path_trusted, _kSBXProfileNoInternet, _kSBXProfileNoNetwork, 
+                       _kSBXProfileNoWrite, _kSBXProfileNoWriteExceptTemporary, _kSBXProfilePureComputation, 
+                       _kSandboxAppBundleAnySigningId, _kSandboxAppBundlePlatformTeamId, 
+                       _rootless_allows_task_for_pid, _rootless_apply, _rootless_apply_internal, 
+                       _rootless_apply_relative, _rootless_check_datavault_flag, 
+                       _rootless_check_restricted_flag, _rootless_check_trusted, 
+                       _rootless_check_trusted_class, _rootless_check_trusted_fd, 
+                       _rootless_convert_to_datavault, _rootless_manifest_free, _rootless_manifest_parse, 
+                       _rootless_mkdir_datavault, _rootless_mkdir_nounlink, _rootless_mkdir_restricted, 
+                       _rootless_preflight, _rootless_protected_volume, _rootless_register_trusted_storage_class, 
+                       _rootless_remove_datavault_in_favor_of_static_storage_class, 
+                       _rootless_remove_restricted_in_favor_of_static_storage_class, 
+                       _rootless_restricted_environment, _rootless_suspend, _rootless_trusted_by_self_token, 
+                       _rootless_verify_trusted_by_self_token, _sandbox_builtin_query, 
+                       _sandbox_check, _sandbox_check_bulk, _sandbox_check_by_audit_token, 
+                       _sandbox_check_by_reference, _sandbox_check_by_uniqueid, _sandbox_check_message_filter_integer, 
+                       _sandbox_check_message_filter_string, _sandbox_consume_extension, 
+                       _sandbox_consume_fs_extension, _sandbox_consume_mach_extension, 
+                       _sandbox_container_path_for_audit_token, _sandbox_container_path_for_pid, 
+                       _sandbox_enable_root_translation, _sandbox_enable_state_flag, 
+                       _sandbox_extension_consume, _sandbox_extension_issue_file, 
+                       _sandbox_extension_issue_file_to_process, _sandbox_extension_issue_file_to_process_by_pid, 
+                       _sandbox_extension_issue_file_to_self, _sandbox_extension_issue_generic, 
+                       _sandbox_extension_issue_generic_to_process, _sandbox_extension_issue_generic_to_process_by_pid, 
+                       _sandbox_extension_issue_iokit_registry_entry_class, _sandbox_extension_issue_iokit_registry_entry_class_to_process, 
+                       _sandbox_extension_issue_iokit_registry_entry_class_to_process_by_pid, 
+                       _sandbox_extension_issue_iokit_user_client_class, _sandbox_extension_issue_mach, 
+                       _sandbox_extension_issue_mach_to_process, _sandbox_extension_issue_mach_to_process_by_pid, 
+                       _sandbox_extension_issue_posix_ipc, _sandbox_extension_reap, 
+                       _sandbox_extension_release, _sandbox_extension_release_file, 
+                       _sandbox_extension_update_file, _sandbox_free_error, _sandbox_get_container_expected, 
+                       _sandbox_init, _sandbox_init_from_pid, _sandbox_init_with_extensions, 
+                       _sandbox_init_with_parameters, _sandbox_issue_extension, _sandbox_issue_fs_extension, 
+                       _sandbox_issue_fs_rw_extension, _sandbox_issue_mach_extension, 
+                       _sandbox_message_filter_query, _sandbox_message_filter_release, 
+                       _sandbox_message_filter_retain, _sandbox_note, _sandbox_passthrough_access, 
+                       _sandbox_proc_getcontainer, _sandbox_proc_getprofilename, 
+                       _sandbox_query_approval_policy_for_path, _sandbox_query_user_intent_for_process_with_audit_token, 
+                       _sandbox_reference_release, _sandbox_reference_retain_by_audit_token, 
+                       _sandbox_register_app_bundle, _sandbox_register_app_bundle_exception, 
+                       _sandbox_register_app_bundle_package_exception, _sandbox_register_bastion_profile, 
+                       _sandbox_register_sync_root, _sandbox_release_fs_extension, 
+                       _sandbox_requests_integrity_protection_for_preference_domain, 
+                       _sandbox_set_container_path_for_application_group, _sandbox_set_container_path_for_application_group_with_persona, 
+                       _sandbox_set_container_path_for_audit_token, _sandbox_set_container_path_for_signing_id, 
+                       _sandbox_set_container_path_for_signing_id_with_persona, _sandbox_spawnattrs_getcontainer, 
+                       _sandbox_spawnattrs_getprofilename, _sandbox_spawnattrs_init, 
+                       _sandbox_spawnattrs_setcontainer, _sandbox_spawnattrs_setprofilename, 
+                       _sandbox_suspend, _sandbox_unregister_app_bundle, _sandbox_unregister_bastion_profile, 
+                       _sandbox_unsuspend ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           15425DC5-5AEF-3711-A6B1-E3979FBEC662
+  - target:          x86_64-maccatalyst
+    value:           15425DC5-5AEF-3711-A6B1-E3979FBEC662
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           B8D75446-A5A3-3D0C-9C89-B65092333CD2
+  - target:          arm64e-maccatalyst
+    value:           B8D75446-A5A3-3D0C-9C89-B65092333CD2
+install-name:    '/usr/lib/system/libsystem_secinit.dylib'
+current-version: 119.40.2
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __libsecinit_initializer, _libsecinit_delete_all_data_container_content_for_current_user, 
+                       _libsecinit_fileoperation_save, _libsecinit_fileoperation_set_attributes, 
+                       _libsecinit_fileoperation_symlink ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           CA62E5A0-80F0-3798-B8B6-71088A61F03C
+  - target:          x86_64-maccatalyst
+    value:           CA62E5A0-80F0-3798-B8B6-71088A61F03C
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           DE393954-A39B-305C-BF0D-CF7563473762
+  - target:          arm64e-maccatalyst
+    value:           DE393954-A39B-305C-BF0D-CF7563473762
+install-name:    '/usr/lib/system/libsystem_symptoms.dylib'
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __symptoms_daemon_fallback_initial_disposition, __symptoms_daemon_fallback_subseq_disposition, 
+                       __symptoms_is_daemon_fallback_blacklisted, _symptom_framework_init, 
+                       _symptom_framework_set_version, _symptom_new, _symptom_send, 
+                       _symptom_send_immediate, _symptom_set_additional_qualifier, 
+                       _symptom_set_qualifier ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           EBFC896A-380B-39AB-949F-06BEADFCDBF8
+  - target:          x86_64-maccatalyst
+    value:           EBFC896A-380B-39AB-949F-06BEADFCDBF8
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           73557AF9-086C-3CB4-9E95-CA1D774CAA41
+  - target:          arm64e-maccatalyst
+    value:           73557AF9-086C-3CB4-9E95-CA1D774CAA41
+install-name:    '/usr/lib/system/libsystem_trace.dylib'
+current-version: 1406.0.15
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __libtrace_fork_child, __libtrace_init, __os_activity_create, 
+                       __os_activity_current, __os_activity_initiate, __os_activity_initiate_f, 
+                       __os_activity_label_useraction, __os_activity_none, __os_activity_set_breadcrumb, 
+                       __os_activity_start, __os_activity_stream_entry_encode, __os_log_create, 
+                       __os_log_debug, __os_log_debug_impl, __os_log_default, __os_log_disabled, 
+                       __os_log_error, __os_log_error_impl, __os_log_fault, __os_log_fault_impl, 
+                       __os_log_get_nscf_formatter, __os_log_impl, __os_log_internal, 
+                       __os_log_pack_fill, __os_log_pack_size, __os_log_preferences_compute, 
+                       __os_log_preferences_copy_cache, __os_log_preferences_load, 
+                       __os_log_preferences_load_sysprefs, __os_log_release, __os_log_send_and_compose_impl, 
+                       __os_log_set_nscf_formatter, __os_signpost_emit_impl, __os_signpost_emit_unreliably_with_name_impl, 
+                       __os_signpost_emit_with_name_impl, __os_signpost_pack_fill, 
+                       __os_signpost_pack_send, __os_state_request_for_pidlist, __os_trace_app_cryptex_sysprefsdir_path, 
+                       __os_trace_atm_diagnostic_config, __os_trace_basesystem_storage_available, 
+                       __os_trace_calloc, __os_trace_commpage_compute, __os_trace_fdscandir_b, 
+                       __os_trace_get_boot_uuid, __os_trace_get_image_info, __os_trace_get_mode_for_pid, 
+                       __os_trace_get_times_now, __os_trace_getxattr_at, __os_trace_intprefsdir_path, 
+                       __os_trace_is_development_build, __os_trace_lazy_init_completed_4libxpc, 
+                       __os_trace_log_simple, __os_trace_macho_for_each_slice, __os_trace_malloc, 
+                       __os_trace_memdup, __os_trace_mmap, __os_trace_mmap_at, __os_trace_mmap_offset, 
+                       __os_trace_mode_match_4tests, __os_trace_os_cryptex_sysprefsdir_path, 
+                       __os_trace_prefs_latest_version_4tests, __os_trace_prefsdir_path, 
+                       __os_trace_read_file_at, __os_trace_read_plist_at, __os_trace_realloc, 
+                       __os_trace_scandir_free_namelist, __os_trace_sect_names, __os_trace_set_diagnostic_flags, 
+                       __os_trace_set_mode_for_pid, __os_trace_strdup, __os_trace_sysprefsdir_path, 
+                       __os_trace_update_with_datavolume_4launchd, __os_trace_with_buffer, 
+                       __os_trace_write, __os_trace_writev, __os_trace_zalloc, _os_activity_apply, 
+                       _os_activity_apply_f, _os_activity_diagnostic_for_pid, _os_activity_end, 
+                       _os_activity_for_task_thread, _os_activity_for_thread, _os_activity_get_active, 
+                       _os_activity_get_identifier, _os_activity_iterate_activities, 
+                       _os_activity_iterate_breadcrumbs, _os_activity_iterate_messages, 
+                       _os_activity_iterate_processes, _os_activity_messages_for_thread, 
+                       _os_activity_scope_enter, _os_activity_scope_leave, _os_log_backtrace_copy_description, 
+                       _os_log_backtrace_copy_serialized_buffer, _os_log_backtrace_create_from_buffer, 
+                       _os_log_backtrace_create_from_current, _os_log_backtrace_create_from_pcs, 
+                       _os_log_backtrace_create_from_return_address, _os_log_backtrace_destroy, 
+                       _os_log_backtrace_get_frames, _os_log_backtrace_get_length, 
+                       _os_log_backtrace_print_to_blob, _os_log_backtrace_serialize_to_blob, 
+                       _os_log_create, _os_log_errors_count, _os_log_fault_default_callback, 
+                       _os_log_faults_count, _os_log_fmt_compose, _os_log_fmt_convert_trace, 
+                       _os_log_fmt_extract_pubdata, _os_log_fmt_get_plugin, _os_log_get_type, 
+                       _os_log_is_debug_enabled, _os_log_is_enabled, _os_log_pack_compose, 
+                       _os_log_pack_send, _os_log_pack_send_and_compose, _os_log_set_client_type, 
+                       _os_log_set_enabled, _os_log_set_fault_callback, _os_log_shim_enabled, 
+                       _os_log_shim_legacy_logging_enabled, _os_log_shim_with_CFString, 
+                       _os_log_type_enabled, _os_log_with_args, _os_signpost_enabled, 
+                       _os_signpost_id_generate, _os_signpost_id_make_with_pointer, 
+                       _os_signpost_set_introspection_hook_4Perf, _os_state_add_handler, 
+                       _os_state_remove_handler, _os_trace_debug_enabled, _os_trace_get_mode, 
+                       _os_trace_get_type, _os_trace_info_enabled, _os_trace_set_mode ]
+    objc-classes:    [ OS_os_log ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           31C10303-6B57-3219-8DEF-ED784DCC67BA
+  - target:          x86_64-maccatalyst
+    value:           31C10303-6B57-3219-8DEF-ED784DCC67BA
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           60F56A64-C75D-3E87-B275-E1FB9D078C5E
+  - target:          arm64e-maccatalyst
+    value:           60F56A64-C75D-3E87-B275-E1FB9D078C5E
+install-name:    '/usr/lib/system/libunwind.dylib'
+current-version: 202.100
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst ]
+    symbols:         [ '$ld$hide$os10.4$__Unwind_Backtrace', '$ld$hide$os10.4$__Unwind_DeleteException', 
+                       '$ld$hide$os10.4$__Unwind_FindEnclosingFunction', '$ld$hide$os10.4$__Unwind_Find_FDE', 
+                       '$ld$hide$os10.4$__Unwind_ForcedUnwind', '$ld$hide$os10.4$__Unwind_GetCFA', 
+                       '$ld$hide$os10.4$__Unwind_GetDataRelBase', '$ld$hide$os10.4$__Unwind_GetGR', 
+                       '$ld$hide$os10.4$__Unwind_GetIP', '$ld$hide$os10.4$__Unwind_GetIPInfo', 
+                       '$ld$hide$os10.4$__Unwind_GetLanguageSpecificData', '$ld$hide$os10.4$__Unwind_GetRegionStart', 
+                       '$ld$hide$os10.4$__Unwind_GetTextRelBase', '$ld$hide$os10.4$__Unwind_RaiseException', 
+                       '$ld$hide$os10.4$__Unwind_Resume', '$ld$hide$os10.4$__Unwind_Resume_or_Rethrow', 
+                       '$ld$hide$os10.4$__Unwind_SetGR', '$ld$hide$os10.4$__Unwind_SetIP', 
+                       '$ld$hide$os10.4$___deregister_frame', '$ld$hide$os10.4$___deregister_frame_info', 
+                       '$ld$hide$os10.4$___deregister_frame_info_bases', '$ld$hide$os10.4$___register_frame', 
+                       '$ld$hide$os10.4$___register_frame_info', '$ld$hide$os10.4$___register_frame_info_bases', 
+                       '$ld$hide$os10.4$___register_frame_info_table', '$ld$hide$os10.4$___register_frame_info_table_bases', 
+                       '$ld$hide$os10.4$___register_frame_table', '$ld$hide$os10.5$__Unwind_Backtrace', 
+                       '$ld$hide$os10.5$__Unwind_DeleteException', '$ld$hide$os10.5$__Unwind_FindEnclosingFunction', 
+                       '$ld$hide$os10.5$__Unwind_Find_FDE', '$ld$hide$os10.5$__Unwind_ForcedUnwind', 
+                       '$ld$hide$os10.5$__Unwind_GetCFA', '$ld$hide$os10.5$__Unwind_GetDataRelBase', 
+                       '$ld$hide$os10.5$__Unwind_GetGR', '$ld$hide$os10.5$__Unwind_GetIP', 
+                       '$ld$hide$os10.5$__Unwind_GetIPInfo', '$ld$hide$os10.5$__Unwind_GetLanguageSpecificData', 
+                       '$ld$hide$os10.5$__Unwind_GetRegionStart', '$ld$hide$os10.5$__Unwind_GetTextRelBase', 
+                       '$ld$hide$os10.5$__Unwind_RaiseException', '$ld$hide$os10.5$__Unwind_Resume', 
+                       '$ld$hide$os10.5$__Unwind_Resume_or_Rethrow', '$ld$hide$os10.5$__Unwind_SetGR', 
+                       '$ld$hide$os10.5$__Unwind_SetIP', '$ld$hide$os10.5$___deregister_frame', 
+                       '$ld$hide$os10.5$___deregister_frame_info', '$ld$hide$os10.5$___deregister_frame_info_bases', 
+                       '$ld$hide$os10.5$___register_frame', '$ld$hide$os10.5$___register_frame_info', 
+                       '$ld$hide$os10.5$___register_frame_info_bases', '$ld$hide$os10.5$___register_frame_info_table', 
+                       '$ld$hide$os10.5$___register_frame_info_table_bases', '$ld$hide$os10.5$___register_frame_table', 
+                       '$ld$hide$os10.6$___deregister_frame_info', '$ld$hide$os10.6$___deregister_frame_info_bases', 
+                       '$ld$hide$os10.6$___register_frame_info', '$ld$hide$os10.6$___register_frame_info_bases', 
+                       '$ld$hide$os10.6$___register_frame_info_table', '$ld$hide$os10.6$___register_frame_info_table_bases', 
+                       '$ld$hide$os10.6$___register_frame_table', ___deregister_frame_info, 
+                       ___deregister_frame_info_bases, ___register_frame_info, ___register_frame_info_bases, 
+                       ___register_frame_info_table, ___register_frame_info_table_bases, 
+                       ___register_frame_table ]
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ __Unwind_Backtrace, __Unwind_DeleteException, __Unwind_FindEnclosingFunction, 
+                       __Unwind_Find_FDE, __Unwind_ForcedUnwind, __Unwind_GetCFA, 
+                       __Unwind_GetDataRelBase, __Unwind_GetGR, __Unwind_GetIP, __Unwind_GetIPInfo, 
+                       __Unwind_GetLanguageSpecificData, __Unwind_GetRegionStart, 
+                       __Unwind_GetTextRelBase, __Unwind_RaiseException, __Unwind_Resume, 
+                       __Unwind_Resume_or_Rethrow, __Unwind_SetGR, __Unwind_SetIP, 
+                       ___deregister_frame, ___register_frame, ___unw_add_dynamic_fde, 
+                       ___unw_remove_dynamic_fde, _unw_get_fpreg, _unw_get_proc_info, 
+                       _unw_get_proc_name, _unw_get_reg, _unw_getcontext, _unw_init_local, 
+                       _unw_is_fpreg, _unw_is_signal_frame, _unw_iterate_dwarf_unwind_cache, 
+                       _unw_local_addr_space, _unw_regname, _unw_resume, _unw_set_fpreg, 
+                       _unw_set_reg, _unw_step ]
+--- !tapi-tbd
+tbd-version:     4
+targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                   arm64e-macos, arm64e-maccatalyst ]
+uuids:
+  - target:          x86_64-macos
+    value:           38124BDF-4424-32BF-A60B-B4E96BC0EF70
+  - target:          x86_64-maccatalyst
+    value:           38124BDF-4424-32BF-A60B-B4E96BC0EF70
+  - target:          arm64-macos
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64-maccatalyst
+    value:           00000000-0000-0000-0000-000000000000
+  - target:          arm64e-macos
+    value:           44992A1E-D222-3D40-841D-E2CF9E26F67E
+  - target:          arm64e-maccatalyst
+    value:           44992A1E-D222-3D40-841D-E2CF9E26F67E
+install-name:    '/usr/lib/system/libxpc.dylib'
+current-version: 2462.41.2
+parent-umbrella:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    umbrella:        System
+exports:
+  - targets:         [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 
+                       arm64e-macos, arm64e-maccatalyst ]
+    symbols:         [ _XPC_ACTIVITY_ALLOW_BATTERY, _XPC_ACTIVITY_APP_REFRESH, _XPC_ACTIVITY_CHECK_IN, 
+                       _XPC_ACTIVITY_COMMUNICATES_WITH_PAIRED_DEVICE, _XPC_ACTIVITY_CPU_INTENSIVE, 
+                       _XPC_ACTIVITY_DELAY, _XPC_ACTIVITY_DESIRED_MOTION_STATE, _XPC_ACTIVITY_DISK_INTENSIVE, 
+                       _XPC_ACTIVITY_DO_IT_LATER, _XPC_ACTIVITY_DUET_ACTIVITY_SCHEDULER_DATA, 
+                       _XPC_ACTIVITY_DUET_ATTRIBUTE_COST, _XPC_ACTIVITY_DUET_ATTRIBUTE_NAME, 
+                       _XPC_ACTIVITY_DUET_ATTRIBUTE_VALUE, _XPC_ACTIVITY_DUET_RELATED_APPLICATIONS, 
+                       _XPC_ACTIVITY_EXCLUSIVE, _XPC_ACTIVITY_EXPECTED_DURATION, 
+                       _XPC_ACTIVITY_GRACE_PERIOD, _XPC_ACTIVITY_GROUP_CONCURRENCY_LIMIT, 
+                       _XPC_ACTIVITY_GROUP_NAME, _XPC_ACTIVITY_INTERVAL, _XPC_ACTIVITY_INTERVAL_15_MIN, 
+                       _XPC_ACTIVITY_INTERVAL_1_DAY, _XPC_ACTIVITY_INTERVAL_1_HOUR, 
+                       _XPC_ACTIVITY_INTERVAL_1_MIN, _XPC_ACTIVITY_INTERVAL_30_MIN, 
+                       _XPC_ACTIVITY_INTERVAL_4_HOURS, _XPC_ACTIVITY_INTERVAL_5_MIN, 
+                       _XPC_ACTIVITY_INTERVAL_7_DAYS, _XPC_ACTIVITY_INTERVAL_8_HOURS, 
+                       _XPC_ACTIVITY_INVOLVED_PROCESSES, _XPC_ACTIVITY_MAY_REBOOT_DEVICE, 
+                       _XPC_ACTIVITY_MEMORY_INTENSIVE, _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE, 
+                       _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE_MOVING, _XPC_ACTIVITY_MOTION_STATE_AUTOMOTIVE_STATIONARY, 
+                       _XPC_ACTIVITY_MOTION_STATE_CYCLING, _XPC_ACTIVITY_MOTION_STATE_RUNNING, 
+                       _XPC_ACTIVITY_MOTION_STATE_STATIONARY, _XPC_ACTIVITY_MOTION_STATE_WALKING, 
+                       _XPC_ACTIVITY_NETWORK_DOWNLOAD_SIZE, _XPC_ACTIVITY_NETWORK_TRANSFER_BIDIRECTIONAL, 
+                       _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION, _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION_DOWNLOAD, 
+                       _XPC_ACTIVITY_NETWORK_TRANSFER_DIRECTION_UPLOAD, _XPC_ACTIVITY_NETWORK_TRANSFER_ENDPOINT, 
+                       _XPC_ACTIVITY_NETWORK_TRANSFER_PARAMETERS, _XPC_ACTIVITY_NETWORK_TRANSFER_SIZE, 
+                       _XPC_ACTIVITY_NETWORK_UPLOAD_SIZE, _XPC_ACTIVITY_POST_INSTALL, 
+                       _XPC_ACTIVITY_POWER_NAP, _XPC_ACTIVITY_PREVENT_DEVICE_SLEEP, 
+                       _XPC_ACTIVITY_PRIORITY, _XPC_ACTIVITY_PRIORITY_MAINTENANCE, 
+                       _XPC_ACTIVITY_PRIORITY_UTILITY, _XPC_ACTIVITY_RANDOM_INITIAL_DELAY, 
+                       _XPC_ACTIVITY_REPEATING, _XPC_ACTIVITY_REPLY_ENDPOINT, _XPC_ACTIVITY_REQUIRES_BUDDY_COMPLETE, 
+                       _XPC_ACTIVITY_REQUIRES_CLASS_A, _XPC_ACTIVITY_REQUIRES_CLASS_B, 
+                       _XPC_ACTIVITY_REQUIRES_CLASS_C, _XPC_ACTIVITY_REQUIRE_BATTERY_LEVEL, 
+                       _XPC_ACTIVITY_REQUIRE_HDD_SPINNING, _XPC_ACTIVITY_REQUIRE_INEXPENSIVE_NETWORK_CONNECTIVITY, 
+                       _XPC_ACTIVITY_REQUIRE_NETWORK_CONNECTIVITY, _XPC_ACTIVITY_REQUIRE_SCREEN_SLEEP, 
+                       _XPC_ACTIVITY_REQUIRE_SIGNIFICANT_USER_INACTIVITY, _XPC_ACTIVITY_RUN_WHEN_APP_FOREGROUNDED, 
+                       _XPC_ACTIVITY_SEQUENCE_NUMBER, _XPC_ACTIVITY_SHOULD_WAKE_DEVICE, 
+                       _XPC_ACTIVITY_USER_REQUESTED_BACKUP_TASK, _XPC_ACTIVITY_USES_DATA_BUDGETING, 
+                       _XPC_ACTIVITY_USES_DUET_POWER_BUDGETING, _XPC_COALITION_INFO_KEY_BUNDLE_IDENTIFIER, 
+                       _XPC_COALITION_INFO_KEY_CID, _XPC_COALITION_INFO_KEY_NAME, 
+                       _XPC_COALITION_INFO_KEY_RESOURCE_USAGE_BLOB, __availability_version_check, 
+                       __launch_job_routine, __launch_job_routine_async, __launch_msg2, 
+                       __launch_server_test_routine, __launch_service_stats_copy_4ppse_impl, 
+                       __libxpc_initializer, __spawn_via_launchd, __system_ios_support_version_copy_string_sysctl, 
+                       __system_version_copy_string_plist, __system_version_copy_string_sysctl, 
+                       __system_version_fallback, __system_version_parse_string, 
+                       __vproc_get_last_exit_status, __vproc_grab_subset, __vproc_kickstart_by_label, 
+                       __vproc_log, __vproc_log_error, __vproc_logv, __vproc_pid_is_managed, 
+                       __vproc_post_fork_ping, __vproc_send_signal_by_label, __vproc_set_global_on_demand, 
+                       __vproc_standby_begin, __vproc_standby_count, __vproc_standby_end, 
+                       __vproc_standby_timeout, __vproc_transaction_begin, __vproc_transaction_count, 
+                       __vproc_transaction_count_for_pid, __vproc_transaction_end, 
+                       __vproc_transaction_set_clean_callback, __vproc_transaction_try_exit, 
+                       __vproc_transactions_enable, __vprocmgr_detach_from_console, 
+                       __vprocmgr_getsocket, __vprocmgr_init, __vprocmgr_log_drain, 
+                       __vprocmgr_log_forward, __vprocmgr_move_subset_to_user, __vprocmgr_switch_to_session, 
+                       __xpc_bool_create_distinct, __xpc_bool_false, __xpc_bool_set_value, 
+                       __xpc_bool_true, __xpc_connection_get_parent_4test, __xpc_connection_get_recvp_4test, 
+                       __xpc_connection_set_event_handler_f, __xpc_data_set_value, 
+                       __xpc_dictionary_create_reply_with_port, __xpc_dictionary_extract_mach_send, 
+                       __xpc_dictionary_extract_reply_msg_id, __xpc_dictionary_extract_reply_port, 
+                       __xpc_dictionary_get_reply_msg_id, __xpc_dictionary_set_remote_connection, 
+                       __xpc_dictionary_set_reply_msg_id, __xpc_domain_routine, __xpc_double_set_value, 
+                       __xpc_error_connection_interrupted, __xpc_error_connection_invalid, 
+                       __xpc_error_key_description, __xpc_error_peer_code_signing_requirement, 
+                       __xpc_error_termination_imminent, __xpc_event_key_name, __xpc_event_key_stream_name, 
+                       __xpc_fd_get_port, __xpc_int64_set_value, __xpc_payload_create_from_mach_msg, 
+                       __xpc_pipe_handle_mig, __xpc_pipe_interface_routine, __xpc_pipe_interface_routine_async, 
+                       __xpc_pipe_interface_simpleroutine, __xpc_runtime_get_entitlements_data, 
+                       __xpc_runtime_get_self_entitlements, __xpc_runtime_is_app_sandboxed, 
+                       __xpc_service_last_xref_cancel, __xpc_service_routine, __xpc_shmem_get_mach_port, 
+                       __xpc_spawnattr_binprefs_pack, __xpc_spawnattr_binprefs_size, 
+                       __xpc_spawnattr_binprefs_unpack, __xpc_spawnattr_pack_bytes, 
+                       __xpc_spawnattr_pack_string, __xpc_spawnattr_pack_string_fragment, 
+                       __xpc_spawnattr_unpack_bytes, __xpc_spawnattr_unpack_string, 
+                       __xpc_spawnattr_unpack_strings, __xpc_string_set_value, __xpc_type_activity, 
+                       __xpc_type_array, __xpc_type_base, __xpc_type_bool, __xpc_type_bundle, 
+                       __xpc_type_connection, __xpc_type_data, __xpc_type_date, __xpc_type_dictionary, 
+                       __xpc_type_double, __xpc_type_endpoint, __xpc_type_error, 
+                       __xpc_type_fd, __xpc_type_file_transfer, __xpc_type_int64, 
+                       __xpc_type_mach_recv, __xpc_type_mach_send, __xpc_type_mach_send_once, 
+                       __xpc_type_null, __xpc_type_pipe, __xpc_type_pointer, __xpc_type_rich_error, 
+                       __xpc_type_serializer, __xpc_type_service, __xpc_type_service_instance, 
+                       __xpc_type_session, __xpc_type_shmem, __xpc_type_string, __xpc_type_uint64, 
+                       __xpc_type_uuid, __xpc_vtables, _bootstrap_check_in, _bootstrap_check_in2, 
+                       _bootstrap_check_in3, _bootstrap_create_server, _bootstrap_create_service, 
+                       _bootstrap_get_root, _bootstrap_info, _bootstrap_init, _bootstrap_look_up, 
+                       _bootstrap_look_up2, _bootstrap_look_up3, _bootstrap_look_up_per_user, 
+                       _bootstrap_lookup_children, _bootstrap_parent, _bootstrap_register, 
+                       _bootstrap_register2, _bootstrap_status, _bootstrap_strerror, 
+                       _bootstrap_subset, _bootstrap_unprivileged, _create_and_switch_to_per_session_launchd, 
+                       _launch_activate_socket, _launch_active_user_switch, _launch_add_external_service, 
+                       _launch_bootout_user_service_4coresim, _launch_copy_busy_extension_instances, 
+                       _launch_copy_endpoints_properties_for_pid, _launch_copy_extension_properties, 
+                       _launch_copy_extension_properties_for_pid, _launch_copy_properties_for_pid_4assertiond, 
+                       _launch_create_persona, _launch_cryptex_terminate, _launch_data_alloc, 
+                       _launch_data_array_get_count, _launch_data_array_get_index, 
+                       _launch_data_array_set_index, _launch_data_copy, _launch_data_dict_get_count, 
+                       _launch_data_dict_insert, _launch_data_dict_iterate, _launch_data_dict_lookup, 
+                       _launch_data_dict_remove, _launch_data_free, _launch_data_get_bool, 
+                       _launch_data_get_errno, _launch_data_get_fd, _launch_data_get_integer, 
+                       _launch_data_get_machport, _launch_data_get_opaque, _launch_data_get_opaque_size, 
+                       _launch_data_get_real, _launch_data_get_string, _launch_data_get_type, 
+                       _launch_data_new_bool, _launch_data_new_errno, _launch_data_new_fd, 
+                       _launch_data_new_integer, _launch_data_new_machport, _launch_data_new_opaque, 
+                       _launch_data_new_real, _launch_data_new_string, _launch_data_pack, 
+                       _launch_data_set_bool, _launch_data_set_errno, _launch_data_set_fd, 
+                       _launch_data_set_integer, _launch_data_set_machport, _launch_data_set_opaque, 
+                       _launch_data_set_real, _launch_data_set_string, _launch_data_unpack, 
+                       _launch_destroy_persona, _launch_disable_directory, _launch_enable_directory, 
+                       _launch_extension_check_in_live_4UIKit, _launch_extension_property_bundle_id, 
+                       _launch_extension_property_host_bundle_id, _launch_extension_property_host_pid, 
+                       _launch_extension_property_path, _launch_extension_property_pid, 
+                       _launch_extension_property_version, _launch_extension_property_xpc_bundle, 
+                       _launch_get_fd, _launch_get_service_enabled, _launch_get_system_service_enabled, 
+                       _launch_load_mounted_jetsam_properties, _launch_msg, _launch_path_for_user_service_4coresim, 
+                       _launch_perfcheck_property_endpoint_active, _launch_perfcheck_property_endpoint_event, 
+                       _launch_perfcheck_property_endpoint_name, _launch_perfcheck_property_endpoint_needs_activation, 
+                       _launch_perfcheck_property_endpoints, _launch_remove_external_service, 
+                       _launch_service_instance_copy_uuids, _launch_service_instance_create, 
+                       _launch_service_instance_remove, _launch_service_stats_disable_4ppse, 
+                       _launch_service_stats_enable_4ppse, _launch_service_stats_is_enabled_4ppse, 
+                       _launch_set_service_enabled, _launch_set_system_service_enabled, 
+                       _launch_socket_service_check_in, _launch_version_for_user_service_4coresim, 
+                       _launch_wait, _launchd_close, _launchd_fdopen, _launchd_getfd, 
+                       _launchd_msg_recv, _launchd_msg_send, _load_launchd_jobs_at_loginwindow_prompt, 
+                       _mpm_uncork_fork, _mpm_wait, _os_system_version_get_current_version, 
+                       _os_system_version_get_ios_support_version, _os_system_version_sim_get_current_host_version, 
+                       _os_transaction_copy_description, _os_transaction_create, 
+                       _os_transaction_get_description, _os_transaction_get_timestamp, 
+                       _os_transaction_needs_more_time, _place_hold_on_real_loginwindow, 
+                       _reboot2, _reboot3, _vproc_release, _vproc_retain, _vproc_standby_begin, 
+                       _vproc_standby_end, _vproc_swap_complex, _vproc_swap_integer, 
+                       _vproc_swap_string, _vproc_transaction_begin, _vproc_transaction_end, 
+                       _vprocmgr_lookup_vproc, _xpc_activity_add_eligibility_changed_handler, 
+                       _xpc_activity_copy_criteria, _xpc_activity_copy_dispatch_queue, 
+                       _xpc_activity_copy_identifier, _xpc_activity_debug, _xpc_activity_defer_until_network_change, 
+                       _xpc_activity_defer_until_percentage, _xpc_activity_get_percentage, 
+                       _xpc_activity_get_state, _xpc_activity_list, _xpc_activity_register, 
+                       _xpc_activity_remove_eligibility_changed_handler, _xpc_activity_run, 
+                       _xpc_activity_set_completion_status, _xpc_activity_set_criteria, 
+                       _xpc_activity_set_network_threshold, _xpc_activity_set_state, 
+                       _xpc_activity_should_be_data_budgeted, _xpc_activity_should_defer, 
+                       _xpc_activity_unregister, _xpc_add_bundle, _xpc_add_bundles_for_domain, 
+                       _xpc_array_append_value, _xpc_array_apply, _xpc_array_apply_f, 
+                       _xpc_array_copy_mach_send, _xpc_array_create, _xpc_array_create_connection, 
+                       _xpc_array_create_empty, _xpc_array_dup_fd, _xpc_array_get_array, 
+                       _xpc_array_get_bool, _xpc_array_get_count, _xpc_array_get_data, 
+                       _xpc_array_get_date, _xpc_array_get_dictionary, _xpc_array_get_double, 
+                       _xpc_array_get_int64, _xpc_array_get_pointer, _xpc_array_get_string, 
+                       _xpc_array_get_uint64, _xpc_array_get_uuid, _xpc_array_get_value, 
+                       _xpc_array_set_bool, _xpc_array_set_connection, _xpc_array_set_data, 
+                       _xpc_array_set_date, _xpc_array_set_double, _xpc_array_set_fd, 
+                       _xpc_array_set_int64, _xpc_array_set_mach_send, _xpc_array_set_pointer, 
+                       _xpc_array_set_string, _xpc_array_set_uint64, _xpc_array_set_uuid, 
+                       _xpc_array_set_value, _xpc_atfork_child, _xpc_atfork_parent, 
+                       _xpc_atfork_prepare, _xpc_binprefs_add, _xpc_binprefs_alloc, 
+                       _xpc_binprefs_copy, _xpc_binprefs_copy_description, _xpc_binprefs_count, 
+                       _xpc_binprefs_cpu_subtype, _xpc_binprefs_cpu_type, _xpc_binprefs_equal, 
+                       _xpc_binprefs_init, _xpc_binprefs_is_noop, _xpc_binprefs_set_psattr, 
+                       _xpc_bool_create, _xpc_bool_get_value, _xpc_bundle_copy_info_dictionary, 
+                       _xpc_bundle_copy_normalized_cryptex_path, _xpc_bundle_copy_resource_path, 
+                       _xpc_bundle_copy_services, _xpc_bundle_create, _xpc_bundle_create_from_origin, 
+                       _xpc_bundle_create_main, _xpc_bundle_get_error, _xpc_bundle_get_executable_path, 
+                       _xpc_bundle_get_info_dictionary, _xpc_bundle_get_path, _xpc_bundle_get_property, 
+                       _xpc_bundle_get_xpcservice_dictionary, _xpc_bundle_populate, 
+                       _xpc_bundle_resolve, _xpc_bundle_resolve_on_queue, _xpc_bundle_resolve_sync, 
+                       _xpc_coalition_copy_info, _xpc_coalition_history_pipe_async, 
+                       _xpc_connection_activate, _xpc_connection_cancel, _xpc_connection_copy_bundle_id, 
+                       _xpc_connection_copy_entitlement_value, _xpc_connection_copy_invalidation_reason, 
+                       _xpc_connection_create, _xpc_connection_create_from_endpoint, 
+                       _xpc_connection_create_listener, _xpc_connection_create_mach_service, 
+                       _xpc_connection_enable_sim2host_4sim, _xpc_connection_enable_termination_imminent_event, 
+                       _xpc_connection_get_asid, _xpc_connection_get_audit_token, 
+                       _xpc_connection_get_bs_type, _xpc_connection_get_context, 
+                       _xpc_connection_get_egid, _xpc_connection_get_euid, _xpc_connection_get_filter_policy_id_4test, 
+                       _xpc_connection_get_instance, _xpc_connection_get_name, _xpc_connection_get_peer_instance, 
+                       _xpc_connection_get_pid, _xpc_connection_is_extension, _xpc_connection_kill, 
+                       _xpc_connection_resume, _xpc_connection_send_barrier, _xpc_connection_send_message, 
+                       _xpc_connection_send_message_with_reply, _xpc_connection_send_message_with_reply_sync, 
+                       _xpc_connection_send_notification, _xpc_connection_set_bootstrap, 
+                       _xpc_connection_set_bs_type, _xpc_connection_set_context, 
+                       _xpc_connection_set_event_channel, _xpc_connection_set_event_handler, 
+                       _xpc_connection_set_finalizer_f, _xpc_connection_set_instance, 
+                       _xpc_connection_set_instance_binpref, _xpc_connection_set_legacy, 
+                       _xpc_connection_set_non_launching, _xpc_connection_set_oneshot_instance, 
+                       _xpc_connection_set_peer_code_signing_requirement, _xpc_connection_set_privileged, 
+                       _xpc_connection_set_qos_class_fallback, _xpc_connection_set_qos_class_floor, 
+                       _xpc_connection_set_target_queue, _xpc_connection_set_target_uid, 
+                       _xpc_connection_set_target_user_session_uid, _xpc_connection_suspend, 
+                       _xpc_copy, _xpc_copy_bootstrap, _xpc_copy_clean_description, 
+                       _xpc_copy_code_signing_identity_for_token, _xpc_copy_debug_description, 
+                       _xpc_copy_description, _xpc_copy_domain, _xpc_copy_entitlement_for_self, 
+                       _xpc_copy_entitlement_for_token, _xpc_copy_entitlements_data_for_token, 
+                       _xpc_copy_entitlements_for_pid, _xpc_copy_entitlements_for_self, 
+                       _xpc_copy_event, _xpc_copy_event_entitlements, _xpc_copy_short_description, 
+                       _xpc_create_from_ce_der, _xpc_create_from_ce_der_with_key, 
+                       _xpc_create_from_plist, _xpc_create_from_plist_descriptor, 
+                       _xpc_create_from_serialization, _xpc_create_from_serialization_with_ool, 
+                       _xpc_create_reply_with_format, _xpc_create_reply_with_format_and_arguments, 
+                       _xpc_create_with_format, _xpc_create_with_format_and_arguments, 
+                       _xpc_data_create, _xpc_data_create_with_dispatch_data, _xpc_data_get_bytes, 
+                       _xpc_data_get_bytes_ptr, _xpc_data_get_bytes_ptr_and_length, 
+                       _xpc_data_get_inline_max, _xpc_data_get_length, _xpc_date_create, 
+                       _xpc_date_create_absolute, _xpc_date_create_from_current, 
+                       _xpc_date_get_value, _xpc_date_get_value_absolute, _xpc_date_is_int64_range, 
+                       _xpc_dictionary_apply, _xpc_dictionary_apply_f, _xpc_dictionary_copy_basic_description, 
+                       _xpc_dictionary_copy_mach_send, _xpc_dictionary_create, _xpc_dictionary_create_connection, 
+                       _xpc_dictionary_create_empty, _xpc_dictionary_create_reply, 
+                       _xpc_dictionary_dup_fd, _xpc_dictionary_expects_reply, _xpc_dictionary_extract_mach_recv, 
+                       _xpc_dictionary_get_array, _xpc_dictionary_get_audit_token, 
+                       _xpc_dictionary_get_bool, _xpc_dictionary_get_connection, 
+                       _xpc_dictionary_get_count, _xpc_dictionary_get_data, _xpc_dictionary_get_date, 
+                       _xpc_dictionary_get_dictionary, _xpc_dictionary_get_double, 
+                       _xpc_dictionary_get_int64, _xpc_dictionary_get_pointer, _xpc_dictionary_get_remote_connection, 
+                       _xpc_dictionary_get_string, _xpc_dictionary_get_uint64, _xpc_dictionary_get_uuid, 
+                       _xpc_dictionary_get_value, _xpc_dictionary_handoff_reply, 
+                       _xpc_dictionary_handoff_reply_f, _xpc_dictionary_send_reply, 
+                       _xpc_dictionary_set_bool, _xpc_dictionary_set_connection, 
+                       _xpc_dictionary_set_data, _xpc_dictionary_set_date, _xpc_dictionary_set_double, 
+                       _xpc_dictionary_set_fd, _xpc_dictionary_set_int64, _xpc_dictionary_set_mach_recv, 
+                       _xpc_dictionary_set_mach_send, _xpc_dictionary_set_pointer, 
+                       _xpc_dictionary_set_string, _xpc_dictionary_set_uint64, _xpc_dictionary_set_uuid, 
+                       _xpc_dictionary_set_value, _xpc_double_create, _xpc_double_get_value, 
+                       _xpc_endpoint_compare, _xpc_endpoint_copy_listener_port_4sim, 
+                       _xpc_endpoint_create, _xpc_endpoint_create_bs_named, _xpc_endpoint_create_mach_port_4sim, 
+                       _xpc_endpoint_get_bs_job_handle, _xpc_equal, _xpc_event_publisher_activate, 
+                       _xpc_event_publisher_copy_event, _xpc_event_publisher_create, 
+                       _xpc_event_publisher_fire, _xpc_event_publisher_fire_noboost, 
+                       _xpc_event_publisher_fire_with_reply, _xpc_event_publisher_fire_with_reply_sync, 
+                       _xpc_event_publisher_get_subscriber_asid, _xpc_event_publisher_set_error_handler, 
+                       _xpc_event_publisher_set_event, _xpc_event_publisher_set_handler, 
+                       _xpc_event_publisher_set_initial_load_completed_handler_4remoted, 
+                       _xpc_event_publisher_set_subscriber_keepalive, _xpc_event_stream_check_in, 
+                       _xpc_event_stream_check_in2, _xpc_exit_reason_get_label, _xpc_extension_type_init, 
+                       _xpc_fd_create, _xpc_fd_dup, _xpc_file_transfer_cancel, _xpc_file_transfer_copy_io, 
+                       _xpc_file_transfer_create_with_fd, _xpc_file_transfer_create_with_path, 
+                       _xpc_file_transfer_get_size, _xpc_file_transfer_get_transfer_id, 
+                       _xpc_file_transfer_send_finished, _xpc_file_transfer_set_transport_writing_callbacks, 
+                       _xpc_file_transfer_write_finished, _xpc_file_transfer_write_to_fd, 
+                       _xpc_file_transfer_write_to_path, _xpc_generate_audit_token, 
+                       _xpc_get_attachment_endpoint, _xpc_get_class4NSXPC, _xpc_get_event_name, 
+                       _xpc_get_instance, _xpc_get_type, _xpc_handle_service, _xpc_handle_subservice, 
+                       _xpc_hash, _xpc_impersonate_user, _xpc_init_services, _xpc_inspect_copy_description, 
+                       _xpc_inspect_copy_description_local, _xpc_inspect_copy_short_description, 
+                       _xpc_inspect_copy_short_description_local, _xpc_install_remote_hooks, 
+                       _xpc_int64_create, _xpc_int64_get_value, _xpc_is_kind_of_xpc_object4NSXPC, 
+                       _xpc_mach_recv_create, _xpc_mach_recv_extract_right, _xpc_mach_send_copy_right, 
+                       _xpc_mach_send_create, _xpc_mach_send_create_with_disposition, 
+                       _xpc_mach_send_get_right, _xpc_mach_send_once_create, _xpc_mach_send_once_extract_right, 
+                       _xpc_main, _xpc_make_serialization, _xpc_make_serialization_with_ool, 
+                       _xpc_null_create, _xpc_pipe_create, _xpc_pipe_create_from_port, 
+                       _xpc_pipe_create_reply_from_port, _xpc_pipe_create_with_user_session_uid, 
+                       _xpc_pipe_invalidate, _xpc_pipe_receive, _xpc_pipe_routine, 
+                       _xpc_pipe_routine_async, _xpc_pipe_routine_forward, _xpc_pipe_routine_reply, 
+                       _xpc_pipe_routine_with_flags, _xpc_pipe_simpleroutine, _xpc_pipe_try_receive, 
+                       _xpc_pointer_create, _xpc_pointer_get_value, _xpc_receive_mach_msg, 
+                       _xpc_receive_remote_msg, _xpc_release, _xpc_retain, _xpc_rich_error_can_retry, 
+                       _xpc_rich_error_copy_description, _xpc_service_attach, _xpc_service_attach_with_flags, 
+                       _xpc_service_create, _xpc_service_create_from_specifier, _xpc_service_get_rendezvous_token, 
+                       _xpc_service_instance_dup2, _xpc_service_instance_get_context, 
+                       _xpc_service_instance_get_host_pid, _xpc_service_instance_get_pid, 
+                       _xpc_service_instance_get_type, _xpc_service_instance_is_configurable, 
+                       _xpc_service_instance_run, _xpc_service_instance_set_binpref, 
+                       _xpc_service_instance_set_context, _xpc_service_instance_set_cwd, 
+                       _xpc_service_instance_set_endpoint, _xpc_service_instance_set_environment, 
+                       _xpc_service_instance_set_finalizer_f, _xpc_service_instance_set_jetsam_properties, 
+                       _xpc_service_instance_set_path, _xpc_service_instance_set_start_suspended, 
+                       _xpc_service_kickstart, _xpc_service_kickstart_with_flags, 
+                       _xpc_service_set_attach_handler, _xpc_session_activate, _xpc_session_cancel, 
+                       _xpc_session_copy_description, _xpc_session_create_mach_service, 
+                       _xpc_session_create_xpc_endpoint, _xpc_session_create_xpc_service, 
+                       _xpc_session_send_message, _xpc_session_send_message_with_reply_async, 
+                       _xpc_session_send_message_with_reply_sync, _xpc_session_set_cancel_handler, 
+                       _xpc_session_set_incoming_message_handler, _xpc_session_set_target_user_session_uid, 
+                       _xpc_set_event, _xpc_set_event_state, _xpc_set_event_stream_handler, 
+                       _xpc_set_event_with_flags, _xpc_set_idle_handler, _xpc_shmem_create, 
+                       _xpc_shmem_create_readonly, _xpc_shmem_get_length, _xpc_shmem_map, 
+                       _xpc_strerror, _xpc_string_create, _xpc_string_create_no_copy, 
+                       _xpc_string_create_with_format, _xpc_string_create_with_format_and_arguments, 
+                       _xpc_string_get_length, _xpc_string_get_string_ptr, _xpc_test_symbols_exported, 
+                       _xpc_track_activity, _xpc_transaction_begin, _xpc_transaction_end, 
+                       _xpc_transaction_exit_clean, _xpc_transaction_interrupt_clean_exit, 
+                       _xpc_transactions_enable, _xpc_traverse_serialized_data, _xpc_type_get_name, 
+                       _xpc_uint64_create, _xpc_uint64_get_value, _xpc_user_sessions_enabled, 
+                       _xpc_user_sessions_get_foreground_uid, _xpc_user_sessions_get_session_uid, 
+                       _xpc_uuid_create, _xpc_uuid_get_bytes ]
+    objc-classes:    [ OS_xpc_object ]
+...
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/_limits.h b/lib/libc/include/aarch64-macos.13-none/arm/_limits.h
new file mode 100644
index 0000000000000000000000000000000000000000..8cb2759402654ace478fbe1aedc9f9ba09251ed1
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/_limits.h
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2004-2007 Apple Inc. All rights reserved.
+ */
+#ifndef _ARM__LIMITS_H_
+#define _ARM__LIMITS_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#define __DARWIN_CLK_TCK                100     /* ticks per second */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _ARM__LIMITS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/_mcontext.h b/lib/libc/include/aarch64-macos.13-none/arm/_mcontext.h
new file mode 100644
index 0000000000000000000000000000000000000000..26b83ce221f82e994138976bd65755a5f430aef5
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/_mcontext.h
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2003-2012 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 __ARM_MCONTEXT_H_
+#define __ARM_MCONTEXT_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#include  /* __DARWIN_UNIX03 */
+#include 
+#include 
+
+#ifndef _STRUCT_MCONTEXT32
+#if __DARWIN_UNIX03
+#define _STRUCT_MCONTEXT32        struct __darwin_mcontext32
+_STRUCT_MCONTEXT32
+{
+	_STRUCT_ARM_EXCEPTION_STATE     __es;
+	_STRUCT_ARM_THREAD_STATE        __ss;
+	_STRUCT_ARM_VFP_STATE           __fs;
+};
+
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_MCONTEXT32        struct mcontext32
+_STRUCT_MCONTEXT32
+{
+	_STRUCT_ARM_EXCEPTION_STATE     es;
+	_STRUCT_ARM_THREAD_STATE        ss;
+	_STRUCT_ARM_VFP_STATE           fs;
+};
+
+#endif /* __DARWIN_UNIX03 */
+#endif /* _STRUCT_MCONTEXT32 */
+
+
+#ifndef _STRUCT_MCONTEXT64
+#if __DARWIN_UNIX03
+#define _STRUCT_MCONTEXT64      struct __darwin_mcontext64
+_STRUCT_MCONTEXT64
+{
+	_STRUCT_ARM_EXCEPTION_STATE64   __es;
+	_STRUCT_ARM_THREAD_STATE64      __ss;
+	_STRUCT_ARM_NEON_STATE64        __ns;
+};
+
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_MCONTEXT64      struct mcontext64
+_STRUCT_MCONTEXT64
+{
+	_STRUCT_ARM_EXCEPTION_STATE64   es;
+	_STRUCT_ARM_THREAD_STATE64      ss;
+	_STRUCT_ARM_NEON_STATE64        ns;
+};
+#endif /* __DARWIN_UNIX03 */
+#endif /* _STRUCT_MCONTEXT32 */
+
+#ifndef _MCONTEXT_T
+#define _MCONTEXT_T
+#if defined(__arm64__)
+typedef _STRUCT_MCONTEXT64      *mcontext_t;
+#define _STRUCT_MCONTEXT _STRUCT_MCONTEXT64
+#else
+typedef _STRUCT_MCONTEXT32      *mcontext_t;
+#define _STRUCT_MCONTEXT        _STRUCT_MCONTEXT32
+#endif
+#endif /* _MCONTEXT_T */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif /* __ARM_MCONTEXT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/_param.h b/lib/libc/include/aarch64-macos.13-none/arm/_param.h
new file mode 100644
index 0000000000000000000000000000000000000000..10b9edf2f3e689800cb21cd9892ee11bca6de5a5
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/_param.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+ */
+
+#ifndef _ARM__PARAM_H_
+#define _ARM__PARAM_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#include 
+
+/*
+ * Round p (pointer or byte index) up to a correctly-aligned value for all
+ * data types (int, long, ...).   The result is unsigned int and must be
+ * cast to any desired pointer type.
+ */
+#define __DARWIN_ALIGNBYTES     (sizeof(__darwin_size_t) - 1)
+#define __DARWIN_ALIGN(p)       ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES)
+
+#define      __DARWIN_ALIGNBYTES32     (sizeof(__uint32_t) - 1)
+#define       __DARWIN_ALIGN32(p)       ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32)
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif /* _ARM__PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/_types.h b/lib/libc/include/aarch64-macos.13-none/arm/_types.h
new file mode 100644
index 0000000000000000000000000000000000000000..403ec44048fade2e5125b58883474ab83b95c505
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/_types.h
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ */
+#ifndef _BSD_ARM__TYPES_H_
+#define _BSD_ARM__TYPES_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+/*
+ * This header file contains integer types.  It's intended to also contain
+ * flotaing point and other arithmetic types, as needed, later.
+ */
+
+#ifdef __GNUC__
+typedef __signed char           __int8_t;
+#else   /* !__GNUC__ */
+typedef char                    __int8_t;
+#endif  /* !__GNUC__ */
+typedef unsigned char           __uint8_t;
+typedef short                   __int16_t;
+typedef unsigned short          __uint16_t;
+typedef int                     __int32_t;
+typedef unsigned int            __uint32_t;
+typedef long long               __int64_t;
+typedef unsigned long long      __uint64_t;
+
+typedef long                    __darwin_intptr_t;
+typedef unsigned int            __darwin_natural_t;
+
+/*
+ * The rune type below is declared to be an ``int'' instead of the more natural
+ * ``unsigned long'' or ``long''.  Two things are happening here.  It is not
+ * unsigned so that EOF (-1) can be naturally assigned to it and used.  Also,
+ * it looks like 10646 will be a 31 bit standard.  This means that if your
+ * ints cannot hold 32 bits, you will be in trouble.  The reason an int was
+ * chosen over a long is that the is*() and to*() routines take ints (says
+ * ANSI C), but they use __darwin_ct_rune_t instead of int.  By changing it
+ * here, you lose a bit of ANSI conformance, but your programs will still
+ * work.
+ *
+ * NOTE: rune_t is not covered by ANSI nor other standards, and should not
+ * be instantiated outside of lib/libc/locale.  Use wchar_t.  wchar_t and
+ * rune_t must be the same type.  Also wint_t must be no narrower than
+ * wchar_t, and should also be able to hold all members of the largest
+ * character set plus one extra value (WEOF). wint_t must be at least 16 bits.
+ */
+
+typedef int                     __darwin_ct_rune_t;     /* ct_rune_t */
+
+/*
+ * mbstate_t is an opaque object to keep conversion state, during multibyte
+ * stream conversions.  The content must not be referenced by user programs.
+ */
+typedef union {
+	char            __mbstate8[128];
+	long long       _mbstateL;                      /* for alignment */
+} __mbstate_t;
+
+typedef __mbstate_t             __darwin_mbstate_t;     /* mbstate_t */
+
+#if defined(__PTRDIFF_TYPE__)
+typedef __PTRDIFF_TYPE__        __darwin_ptrdiff_t;     /* ptr1 - ptr2 */
+#elif defined(__LP64__)
+typedef long                    __darwin_ptrdiff_t;     /* ptr1 - ptr2 */
+#else
+typedef int                     __darwin_ptrdiff_t;     /* ptr1 - ptr2 */
+#endif /* __GNUC__ */
+
+#if defined(__SIZE_TYPE__)
+typedef __SIZE_TYPE__           __darwin_size_t;        /* sizeof() */
+#else
+typedef unsigned long           __darwin_size_t;        /* sizeof() */
+#endif
+
+#if (__GNUC__ > 2)
+typedef __builtin_va_list       __darwin_va_list;       /* va_list */
+#else
+typedef void *                  __darwin_va_list;       /* va_list */
+#endif
+
+#if defined(__WCHAR_TYPE__)
+typedef __WCHAR_TYPE__          __darwin_wchar_t;       /* wchar_t */
+#else
+typedef __darwin_ct_rune_t      __darwin_wchar_t;       /* wchar_t */
+#endif
+
+typedef __darwin_wchar_t        __darwin_rune_t;        /* rune_t */
+
+#if defined(__WINT_TYPE__)
+typedef __WINT_TYPE__           __darwin_wint_t;        /* wint_t */
+#else
+typedef __darwin_ct_rune_t      __darwin_wint_t;        /* wint_t */
+#endif
+
+typedef unsigned long           __darwin_clock_t;       /* clock() */
+typedef __uint32_t              __darwin_socklen_t;     /* socklen_t (duh) */
+typedef long                    __darwin_ssize_t;       /* byte count or error */
+typedef long                    __darwin_time_t;        /* time() */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _BSD_ARM__TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/arch.h b/lib/libc/include/aarch64-macos.13-none/arm/arch.h
new file mode 100644
index 0000000000000000000000000000000000000000..b8b25e55d3e9ab89599ead861f0fe149da497780
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/arch.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2007 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 _ARM_ARCH_H
+#define _ARM_ARCH_H
+
+#if defined (__arm__) || defined (__arm64__)
+
+/* Collect the __ARM_ARCH_*__ compiler flags into something easier to use. */
+#if defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7S__) || defined (__ARM_ARCH_7F__) || defined (__ARM_ARCH_7K__)
+#define _ARM_ARCH_7
+#endif
+
+#if defined (_ARM_ARCH_7) || defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6ZK__)
+#define _ARM_ARCH_6K
+#endif
+
+#if defined (_ARM_ARCH_7) || defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__)
+#define _ARM_ARCH_6Z
+#endif
+
+#if defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) || \
+        defined (_ARM_ARCH_6Z) || defined (_ARM_ARCH_6K)
+#define _ARM_ARCH_6
+#endif
+
+#if defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5E__) || \
+        defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5TEJ__)
+#define _ARM_ARCH_5E
+#endif
+
+#if defined (_ARM_ARCH_5E) || defined (__ARM_ARCH_5__) || \
+        defined (__ARM_ARCH_5T__)
+#define _ARM_ARCH_5
+#endif
+
+#if defined (_ARM_ARCH_5) || defined (__ARM_ARCH_4T__)
+#define _ARM_ARCH_4T
+#endif
+
+#if defined (_ARM_ARCH_4T) || defined (__ARM_ARCH_4__)
+#define _ARM_ARCH_4
+#endif
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/endian.h b/lib/libc/include/aarch64-macos.13-none/arm/endian.h
new file mode 100644
index 0000000000000000000000000000000000000000..851f2eafe2fc2bea8e9e66b5df0245529d4c5aa8
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/endian.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ */
+/*
+ * Copyright 1995 NeXT Computer, Inc. All rights reserved.
+ */
+/*
+ * Copyright (c) 1987, 1991, 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.
+ *
+ *	@(#)endian.h	8.1 (Berkeley) 6/11/93
+ */
+
+#ifndef _ARM__ENDIAN_H_
+#define _ARM__ENDIAN_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#include 
+/*
+ * Define _NOQUAD if the compiler does NOT support 64-bit integers.
+ */
+/* #define _NOQUAD */
+
+/*
+ * Define the order of 32-bit words in 64-bit words.
+ */
+#define _QUAD_HIGHWORD 1
+#define _QUAD_LOWWORD 0
+
+/*
+ * Definitions for byte order, according to byte significance from low
+ * address to high.
+ */
+#define __DARWIN_LITTLE_ENDIAN  1234    /* LSB first: i386, vax */
+#define __DARWIN_BIG_ENDIAN     4321    /* MSB first: 68000, ibm, net */
+#define __DARWIN_PDP_ENDIAN     3412    /* LSB first in word, MSW first in long */
+
+#define __DARWIN_BYTE_ORDER     __DARWIN_LITTLE_ENDIAN
+
+#if     defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+
+#define LITTLE_ENDIAN   __DARWIN_LITTLE_ENDIAN
+#define BIG_ENDIAN      __DARWIN_BIG_ENDIAN
+#define PDP_ENDIAN      __DARWIN_PDP_ENDIAN
+
+#define BYTE_ORDER      __DARWIN_BYTE_ORDER
+
+#include 
+
+#endif /* defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) */
+#endif /* defined (__arm__) || defined (__arm64__) */
+#endif /* !_ARM__ENDIAN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/limits.h b/lib/libc/include/aarch64-macos.13-none/arm/limits.h
new file mode 100644
index 0000000000000000000000000000000000000000..21de9a758bc8f4ae83b902d0851a39f7e0aa3f55
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/limits.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
+ */
+/*
+ * Copyright (c) 1988, 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.
+ *
+ *	@(#)limits.h	8.3 (Berkeley) 1/4/94
+ */
+
+#ifndef _ARM_LIMITS_H_
+#define _ARM_LIMITS_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#include 
+#include 
+
+#define CHAR_BIT        8               /* number of bits in a char */
+#define MB_LEN_MAX      6               /* Allow 31 bit UTF2 */
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+#define CLK_TCK         __DARWIN_CLK_TCK        /* ticks per second */
+#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * According to ANSI (section 2.2.4.2), the values below must be usable by
+ * #if preprocessing directives.  Additionally, the expression must have the
+ * same type as would an expression that is an object of the corresponding
+ * type converted according to the integral promotions.  The subtraction for
+ * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an
+ * unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
+ * These numbers work for pcc as well.  The UINT_MAX and ULONG_MAX values
+ * are written as hex so that GCC will be quiet about large integer constants.
+ */
+#define SCHAR_MAX       127             /* min value for a signed char */
+#define SCHAR_MIN       (-128)          /* max value for a signed char */
+
+#define UCHAR_MAX       255             /* max value for an unsigned char */
+#define CHAR_MAX        127             /* max value for a char */
+#define CHAR_MIN        (-128)          /* min value for a char */
+
+#define USHRT_MAX       65535           /* max value for an unsigned short */
+#define SHRT_MAX        32767           /* max value for a short */
+#define SHRT_MIN        (-32768)        /* min value for a short */
+
+#define UINT_MAX        0xffffffff      /* max value for an unsigned int */
+#define INT_MAX         2147483647      /* max value for an int */
+#define INT_MIN         (-2147483647-1) /* min value for an int */
+
+#ifdef __LP64__
+#define ULONG_MAX       0xffffffffffffffffUL    /* max unsigned long */
+#define LONG_MAX        0x7fffffffffffffffL     /* max signed long */
+#define LONG_MIN        (-0x7fffffffffffffffL-1) /* min signed long */
+#else /* !__LP64__ */
+#define ULONG_MAX       0xffffffffUL    /* max unsigned long */
+#define LONG_MAX        2147483647L     /* max signed long */
+#define LONG_MIN        (-2147483647L-1) /* min signed long */
+#endif /* __LP64__ */
+
+#define ULLONG_MAX      0xffffffffffffffffULL   /* max unsigned long long */
+#define LLONG_MAX       0x7fffffffffffffffLL    /* max signed long long */
+#define LLONG_MIN       (-0x7fffffffffffffffLL-1) /* min signed long long */
+
+#if !defined(_ANSI_SOURCE)
+#ifdef __LP64__
+#define LONG_BIT        64
+#else /* !__LP64__ */
+#define LONG_BIT        32
+#endif /* __LP64__ */
+#define SSIZE_MAX       LONG_MAX        /* max value for a ssize_t */
+#define WORD_BIT        32
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
+#define SIZE_T_MAX      ULONG_MAX       /* max value for a size_t */
+
+#define UQUAD_MAX       ULLONG_MAX
+#define QUAD_MAX        LLONG_MAX
+#define QUAD_MIN        LLONG_MIN
+
+#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
+#endif /* !_ANSI_SOURCE */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif /* _ARM_LIMITS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/param.h b/lib/libc/include/aarch64-macos.13-none/arm/param.h
new file mode 100644
index 0000000000000000000000000000000000000000..f36fa322cb59abd698147db43be629522093344b
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/param.h
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2000-2010 Apple Inc. All rights reserved.
+ */
+/*-
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * 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.
+ *
+ *	@(#)param.h	8.1 (Berkeley) 4/4/95
+ */
+
+/*
+ * Machine dependent constants for ARM
+ */
+
+#ifndef _ARM_PARAM_H_
+#define _ARM_PARAM_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#include 
+
+/*
+ * Round p (pointer or byte index) up to a correctly-aligned value for all
+ * data types (int, long, ...).   The result is unsigned int and must be
+ * cast to any desired pointer type.
+ */
+#define ALIGNBYTES      __DARWIN_ALIGNBYTES
+#define ALIGN(p)        __DARWIN_ALIGN(p)
+
+#define NBPG            4096            /* bytes/page */
+#define PGOFSET         (NBPG-1)        /* byte offset into page */
+#define PGSHIFT         12              /* LOG2(NBPG) */
+
+#define DEV_BSIZE       512
+#define DEV_BSHIFT      9               /* log2(DEV_BSIZE) */
+#define BLKDEV_IOSIZE   2048
+#define MAXPHYS         (64 * 1024)     /* max raw I/O transfer size */
+
+#define CLSIZE          1
+#define CLSIZELOG2      0
+
+/*
+ * Constants related to network buffer management.
+ * MCLBYTES must be no larger than CLBYTES (the software page size), and,
+ * on machines that exchange pages of input or output buffers with mbuf
+ * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
+ * of the hardware page size.
+ */
+#define MSIZESHIFT      8                       /* 256 */
+#define MSIZE           (1 << MSIZESHIFT)       /* size of an mbuf */
+#define MCLSHIFT        11                      /* 2048 */
+#define MCLBYTES        (1 << MCLSHIFT)         /* size of an mbuf cluster */
+#define MBIGCLSHIFT     12                      /* 4096 */
+#define MBIGCLBYTES     (1 << MBIGCLSHIFT)      /* size of a big cluster */
+#define M16KCLSHIFT     14                      /* 16384 */
+#define M16KCLBYTES     (1 << M16KCLSHIFT)      /* size of a jumbo cluster */
+
+#define MCLOFSET        (MCLBYTES - 1)
+#ifndef NMBCLUSTERS
+#define NMBCLUSTERS     CONFIG_NMBCLUSTERS      /* cl map size */
+#endif
+
+/*
+ * Some macros for units conversion
+ */
+/* Core clicks (NeXT_page_size bytes) to segments and vice versa */
+#define ctos(x) (x)
+#define stoc(x) (x)
+
+/* Core clicks (4096 bytes) to disk blocks */
+#define ctod(x) ((x)<<(PGSHIFT-DEV_BSHIFT))
+#define dtoc(x) ((x)>>(PGSHIFT-DEV_BSHIFT))
+#define dtob(x) ((x)<>PGSHIFT)
+
+#ifdef __APPLE__
+#define  btodb(bytes, devBlockSize)         \
+	((unsigned)(bytes) / devBlockSize)
+#define  dbtob(db, devBlockSize)            \
+	((unsigned)(db) * devBlockSize)
+#else
+#define btodb(bytes)                    /* calculates (bytes / DEV_BSIZE) */ \
+	((unsigned)(bytes) >> DEV_BSHIFT)
+#define dbtob(db)                       /* calculates (db * DEV_BSIZE) */ \
+	((unsigned)(db) << DEV_BSHIFT)
+#endif
+
+/*
+ * Map a ``block device block'' to a file system block.
+ * This should be device dependent, and will be if we
+ * add an entry to cdevsw/bdevsw for that purpose.
+ * For now though just use DEV_BSIZE.
+ */
+#define bdbtofsb(bn)    ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
+
+/*
+ * Macros to decode (and encode) processor status word.
+ */
+#define STATUS_WORD(rpl, ipl)   (((ipl) << 8) | (rpl))
+#define USERMODE(x)             (((x) & 3) == 3)
+#define BASEPRI(x)              (((x) & (255 << 8)) == 0)
+
+
+#if     defined(KERNEL) || defined(STANDALONE)
+#define DELAY(n) delay(n)
+
+#else   /* defined(KERNEL) || defined(STANDALONE) */
+#define DELAY(n)        { int N = (n); while (--N > 0); }
+#endif  /* defined(KERNEL) || defined(STANDALONE) */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif /* _ARM_PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/signal.h b/lib/libc/include/aarch64-macos.13-none/arm/signal.h
new file mode 100644
index 0000000000000000000000000000000000000000..4a8b96b383e3caf3c2439a90a7c82464f7836cfe
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/signal.h
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2000-2009 Apple, Inc. All rights reserved.
+ */
+/*
+ * Copyright (c) 1992 NeXT Computer, Inc.
+ *
+ */
+
+#ifndef _ARM_SIGNAL_
+#define _ARM_SIGNAL_ 1
+
+#if defined (__arm__) || defined (__arm64__)
+
+#include 
+
+#ifndef _ANSI_SOURCE
+typedef int sig_atomic_t;
+#endif /* ! _ANSI_SOURCE */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _ARM_SIGNAL_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/arm/types.h b/lib/libc/include/aarch64-macos.13-none/arm/types.h
new file mode 100644
index 0000000000000000000000000000000000000000..6cc1f453c9bf9b7edc9ff22b78943b5c1ef98f7b
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/arm/types.h
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2000-2008 Apple Inc. All rights reserved.
+ */
+/*
+ * Copyright 1995 NeXT Computer, Inc. All rights reserved.
+ */
+/*
+ * Copyright (c) 1990, 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.
+ *
+ *	@(#)types.h	8.3 (Berkeley) 1/5/94
+ */
+
+#ifndef _ARM_MACHTYPES_H_
+#define _ARM_MACHTYPES_H_
+#define _MACHTYPES_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#ifndef __ASSEMBLER__
+#include 
+#include 
+/*
+ * Basic integral types.  Omit the typedef if
+ * not possible for a machine/compiler combination.
+ */
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+#if __LP64__
+typedef int64_t                 register_t;
+#else
+typedef int32_t                 register_t;
+#endif
+
+#include 
+#include 
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+/* These types are used for reserving the largest possible size. */
+#ifdef __arm64__
+typedef u_int64_t               user_addr_t;
+typedef u_int64_t               user_size_t;
+typedef int64_t                 user_ssize_t;
+typedef int64_t                 user_long_t;
+typedef u_int64_t               user_ulong_t;
+typedef int64_t                 user_time_t;
+typedef int64_t                 user_off_t;
+#else
+typedef u_int32_t               user_addr_t;
+typedef u_int32_t               user_size_t;
+typedef int32_t                 user_ssize_t;
+typedef int32_t                 user_long_t;
+typedef u_int32_t               user_ulong_t;
+typedef int32_t                 user_time_t;
+typedef int64_t                 user_off_t;
+#endif
+
+#define USER_ADDR_NULL  ((user_addr_t) 0)
+#define CAST_USER_ADDR_T(a_ptr)   ((user_addr_t)((uintptr_t)(a_ptr)))
+
+
+#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/* This defines the size of syscall arguments after copying into the kernel: */
+#if defined(__arm__)
+typedef u_int32_t               syscall_arg_t;
+#elif defined(__arm64__)
+typedef u_int64_t               syscall_arg_t;
+#else
+#error Unknown architecture.
+#endif
+
+#endif /* __ASSEMBLER__ */
+#endif /* defined (__arm__) || defined (__arm64__) */
+#endif  /* _ARM_MACHTYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomic.h b/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomic.h
new file mode 100644
index 0000000000000000000000000000000000000000..37ef16ce445423016650031200d2f0b4423f732a
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomic.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2004-2016 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@
+ */
+
+#ifndef _OSATOMIC_H_
+#define _OSATOMIC_H_
+
+/*! @header
+ * These are deprecated legacy interfaces for atomic and synchronization
+ * operations.
+ *
+ * Define OSATOMIC_USE_INLINED=1 to get inline implementations of the
+ * OSAtomic interfaces in terms of the  primitives.
+ *
+ * Define OSSPINLOCK_USE_INLINED=1 to get inline implementations of the
+ * OSSpinLock interfaces in terms of the  primitives.
+ *
+ * These are intended as a transition convenience, direct use of those
+ * primitives should be preferred.
+ */
+
+#include 
+
+#include "OSAtomicDeprecated.h"
+#include "OSSpinLockDeprecated.h"
+#include "OSAtomicQueue.h"
+
+#endif /* _OSATOMIC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomicDeprecated.h b/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomicDeprecated.h
new file mode 100644
index 0000000000000000000000000000000000000000..6dc880b0d4d0bf5e8646b378cc3360c90ffaed41
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomicDeprecated.h
@@ -0,0 +1,1266 @@
+/*
+ * Copyright (c) 2004-2016 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@
+ */
+
+#ifndef _OSATOMIC_DEPRECATED_H_
+#define _OSATOMIC_DEPRECATED_H_
+
+/*! @header
+ * These are deprecated legacy interfaces for atomic operations.
+ * The C11 interfaces in  resp. C++11 interfaces in 
+ * should be used instead.
+ *
+ * Define OSATOMIC_USE_INLINED=1 to get inline implementations of these
+ * interfaces in terms of the  resp.  primitives.
+ * This is intended as a transition convenience, direct use of those primitives
+ * is preferred.
+ */
+
+#include    
+
+#if !(defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED)
+
+#include    
+#include    
+#include    
+#include    
+
+#ifndef OSATOMIC_DEPRECATED
+#define OSATOMIC_DEPRECATED 1
+#ifndef __cplusplus
+#define OSATOMIC_BARRIER_DEPRECATED_MSG(_r) \
+		"Use " #_r "() from  instead"
+#define OSATOMIC_DEPRECATED_MSG(_r) \
+		"Use " #_r "_explicit(memory_order_relaxed) from  instead"
+#else
+#define OSATOMIC_BARRIER_DEPRECATED_MSG(_r) \
+		"Use std::" #_r "() from  instead"
+#define OSATOMIC_DEPRECATED_MSG(_r) \
+		"Use std::" #_r "_explicit(std::memory_order_relaxed) from  instead"
+#endif
+#define OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(_r) \
+	__OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r))
+#define OSATOMIC_DEPRECATED_REPLACE_WITH(_r) \
+	__OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSATOMIC_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSATOMIC_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSATOMIC_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSATOMIC_DEPRECATED_MSG(_r))
+#else
+#undef OSATOMIC_DEPRECATED
+#define OSATOMIC_DEPRECATED 0
+#define OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(_r)
+#define OSATOMIC_DEPRECATED_REPLACE_WITH(_r)
+#endif
+
+/*
+ * WARNING: all addresses passed to these functions must be "naturally aligned",
+ * i.e. int32_t pointers must be 32-bit aligned (low 2 bits of
+ * address are zeroes), and int64_t pointers must be 64-bit
+ * aligned (low 3 bits of address are zeroes.).
+ * Note that this is not the default alignment of the int64_t type
+ * in the iOS ARMv7 ABI, see
+ * {@link //apple_ref/doc/uid/TP40009021-SW8 iPhoneOSABIReference}
+ *
+ * Note that some versions of the atomic functions incorporate memory barriers
+ * and some do not.  Barriers strictly order memory access on weakly-ordered
+ * architectures such as ARM.  All loads and stores that appear (in sequential
+ * program order) before the barrier are guaranteed to complete before any
+ * load or store that appears after the barrier.
+ *
+ * The barrier operation is typically a no-op on uniprocessor systems and
+ * fully enabled on multiprocessor systems. On some platforms, such as ARM,
+ * the barrier can be quite expensive.
+ *
+ * Most code should use the barrier functions to ensure that memory shared
+ * between threads is properly synchronized.  For example, if you want to
+ * initialize a shared data structure and then atomically increment a variable
+ * to indicate that the initialization is complete, you must use
+ * {@link OSAtomicIncrement32Barrier} to ensure that the stores to your data
+ * structure complete before the atomic increment.
+ *
+ * Likewise, the consumer of that data structure must use
+ * {@link OSAtomicDecrement32Barrier},
+ * in order to ensure that their loads of the structure are not executed before
+ * the atomic decrement.  On the other hand, if you are simply incrementing a
+ * global counter, then it is safe and potentially faster to use
+ * {@link OSAtomicIncrement32}.
+ *
+ * If you are unsure which version to use, prefer the barrier variants as they
+ * are safer.
+ *
+ * For the kernel-space version of this header, see
+ * {@link //apple_ref/doc/header/OSAtomic.h OSAtomic.h (Kernel Framework)}
+ *
+ * @apiuid //apple_ref/doc/header/user_space_OSAtomic.h
+ */
+
+__BEGIN_DECLS
+
+/*! @typedef OSAtomic_int64_aligned64_t
+ * 64-bit aligned int64_t type.
+ * Use for variables whose addresses are passed to OSAtomic*64() functions to
+ * get the compiler to generate the required alignment.
+ */
+
+#if __has_attribute(aligned)
+typedef int64_t __attribute__((__aligned__((sizeof(int64_t)))))
+		OSAtomic_int64_aligned64_t;
+#else
+typedef int64_t OSAtomic_int64_aligned64_t;
+#endif
+
+/*! @group Arithmetic functions
+    All functions in this group return the new value.
+ */
+
+/*! @abstract Atomically adds two 32-bit values.
+    @discussion
+	This function adds the value given by __theAmount to the
+	value in the memory location referenced by __theValue,
+ 	storing the result back to that memory location atomically.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int32_t	OSAtomicAdd32( int32_t __theAmount, volatile int32_t *__theValue );
+
+
+/*! @abstract Atomically adds two 32-bit values.
+    @discussion
+	This function adds the value given by __theAmount to the
+	value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicAdd32}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int32_t	OSAtomicAdd32Barrier( int32_t __theAmount, volatile int32_t *__theValue );
+
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10 || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_1 || TARGET_OS_DRIVERKIT
+
+/*! @abstract Atomically increments a 32-bit value.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
+int32_t	OSAtomicIncrement32( volatile int32_t *__theValue );
+
+
+/*! @abstract Atomically increments a 32-bit value with a barrier.
+    @discussion
+	This function is equivalent to {@link OSAtomicIncrement32}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
+int32_t	OSAtomicIncrement32Barrier( volatile int32_t *__theValue );
+
+
+/*! @abstract Atomically decrements a 32-bit value.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_sub)
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
+int32_t	OSAtomicDecrement32( volatile int32_t *__theValue );
+
+
+/*! @abstract Atomically decrements a 32-bit value with a barrier.
+    @discussion
+	This function is equivalent to {@link OSAtomicDecrement32}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_sub)
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
+int32_t	OSAtomicDecrement32Barrier( volatile int32_t *__theValue );
+
+#else
+__inline static
+int32_t	OSAtomicIncrement32( volatile int32_t *__theValue )
+            { return OSAtomicAdd32(  1, __theValue); }
+
+__inline static
+int32_t	OSAtomicIncrement32Barrier( volatile int32_t *__theValue )
+            { return OSAtomicAdd32Barrier(  1, __theValue); }
+
+__inline static
+int32_t	OSAtomicDecrement32( volatile int32_t *__theValue )
+            { return OSAtomicAdd32( -1, __theValue); }
+
+__inline static
+int32_t	OSAtomicDecrement32Barrier( volatile int32_t *__theValue )
+            { return OSAtomicAdd32Barrier( -1, __theValue); }
+#endif
+
+
+/*! @abstract Atomically adds two 64-bit values.
+    @discussion
+	This function adds the value given by __theAmount to the
+	value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int64_t	OSAtomicAdd64( int64_t __theAmount,
+		volatile OSAtomic_int64_aligned64_t *__theValue );
+
+
+/*! @abstract Atomically adds two 64-bit values with a barrier.
+    @discussion
+	This function adds the value given by __theAmount to the
+	value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicAdd64}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_3_2)
+int64_t	OSAtomicAdd64Barrier( int64_t __theAmount,
+		volatile OSAtomic_int64_aligned64_t *__theValue );
+
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10 || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_1 || TARGET_OS_DRIVERKIT
+
+/*! @abstract Atomically increments a 64-bit value.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
+int64_t	OSAtomicIncrement64( volatile OSAtomic_int64_aligned64_t *__theValue );
+
+
+/*! @abstract Atomically increments a 64-bit value with a barrier.
+    @discussion
+	This function is equivalent to {@link OSAtomicIncrement64}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
+int64_t	OSAtomicIncrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue );
+
+
+/*! @abstract Atomically decrements a 64-bit value.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_sub)
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
+int64_t	OSAtomicDecrement64( volatile OSAtomic_int64_aligned64_t *__theValue );
+
+
+/*! @abstract Atomically decrements a 64-bit value with a barrier.
+    @discussion
+	This function is equivalent to {@link OSAtomicDecrement64}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_sub)
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
+int64_t	OSAtomicDecrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue );
+
+#else
+__inline static
+int64_t	OSAtomicIncrement64( volatile OSAtomic_int64_aligned64_t *__theValue )
+            { return OSAtomicAdd64(  1, __theValue); }
+
+__inline static
+int64_t	OSAtomicIncrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue )
+            { return OSAtomicAdd64Barrier(  1, __theValue); }
+
+__inline static
+int64_t	OSAtomicDecrement64( volatile OSAtomic_int64_aligned64_t *__theValue )
+            { return OSAtomicAdd64( -1, __theValue); }
+
+__inline static
+int64_t	OSAtomicDecrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue )
+            { return OSAtomicAdd64Barrier( -1, __theValue); }
+#endif
+
+
+/*! @group Boolean functions (AND, OR, XOR)
+ *
+ * @discussion Functions in this group come in four variants for each operation:
+ * with and without barriers, and functions that return the original value or
+ * the result value of the operation.
+ *
+ * The "Orig" versions return the original value, (before the operation); the non-Orig
+ * versions return the value after the operation.  All are layered on top of
+ * {@link OSAtomicCompareAndSwap32} and similar.
+ */
+
+/*! @abstract Atomic bitwise OR of two 32-bit values.
+    @discussion
+	This function performs the bitwise OR of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int32_t	OSAtomicOr32( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise OR of two 32-bit values with barrier.
+    @discussion
+	This function performs the bitwise OR of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicOr32}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int32_t	OSAtomicOr32Barrier( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise OR of two 32-bit values returning original.
+    @discussion
+	This function performs the bitwise OR of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+    @result Returns the original value referenced by __theValue.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
+int32_t	OSAtomicOr32Orig( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise OR of two 32-bit values returning original with barrier.
+    @discussion
+	This function performs the bitwise OR of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicOr32Orig}
+	except that it also introduces a barrier.
+    @result Returns the original value referenced by __theValue.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
+int32_t	OSAtomicOr32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+
+
+/*! @abstract Atomic bitwise AND of two 32-bit values.
+    @discussion
+	This function performs the bitwise AND of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int32_t	OSAtomicAnd32( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise AND of two 32-bit values with barrier.
+    @discussion
+	This function performs the bitwise AND of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicAnd32}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int32_t	OSAtomicAnd32Barrier( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise AND of two 32-bit values returning original.
+    @discussion
+	This function performs the bitwise AND of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+    @result Returns the original value referenced by __theValue.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
+int32_t	OSAtomicAnd32Orig( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise AND of two 32-bit values returning original with barrier.
+    @discussion
+	This function performs the bitwise AND of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicAnd32Orig}
+	except that it also introduces a barrier.
+    @result Returns the original value referenced by __theValue.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
+int32_t	OSAtomicAnd32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+
+
+/*! @abstract Atomic bitwise XOR of two 32-bit values.
+    @discussion
+	This function performs the bitwise XOR of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+    @result Returns the new value.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_xor)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int32_t	OSAtomicXor32( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise XOR of two 32-bit values with barrier.
+    @discussion
+	This function performs the bitwise XOR of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicXor32}
+	except that it also introduces a barrier.
+    @result Returns the new value.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_xor)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+int32_t	OSAtomicXor32Barrier( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise XOR of two 32-bit values returning original.
+    @discussion
+	This function performs the bitwise XOR of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+    @result Returns the original value referenced by __theValue.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_xor)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
+int32_t	OSAtomicXor32Orig( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @abstract Atomic bitwise XOR of two 32-bit values returning original with barrier.
+    @discussion
+	This function performs the bitwise XOR of the value given by __theMask
+	with the value in the memory location referenced by __theValue,
+	storing the result back to that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicXor32Orig}
+	except that it also introduces a barrier.
+    @result Returns the original value referenced by __theValue.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_xor)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
+int32_t	OSAtomicXor32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue );
+
+
+/*! @group Compare and swap
+ * Functions in this group return true if the swap occured.  There are several versions,
+ * depending on data type and on whether or not a barrier is used.
+ */
+
+
+/*! @abstract Compare and swap for 32-bit values.
+    @discussion
+	This function compares the value in __oldValue to the value
+	in the memory location referenced by __theValue.  If the values
+	match, this function stores the value from __newValue into
+	that memory location atomically.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+bool    OSAtomicCompareAndSwap32( int32_t __oldValue, int32_t __newValue, volatile int32_t *__theValue );
+
+
+/*! @abstract Compare and swap for 32-bit values with barrier.
+    @discussion
+	This function compares the value in __oldValue to the value
+	in the memory location referenced by __theValue.  If the values
+	match, this function stores the value from __newValue into
+	that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwap32}
+	except that it also introduces a barrier.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+bool    OSAtomicCompareAndSwap32Barrier( int32_t __oldValue, int32_t __newValue, volatile int32_t *__theValue );
+
+
+/*! @abstract Compare and swap pointers.
+    @discussion
+	This function compares the pointer stored in __oldValue to the pointer
+	in the memory location referenced by __theValue.  If the pointers
+	match, this function stores the pointer from __newValue into
+	that memory location atomically.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
+bool	OSAtomicCompareAndSwapPtr( void *__oldValue, void *__newValue, void * volatile *__theValue );
+
+
+/*! @abstract Compare and swap pointers with barrier.
+    @discussion
+	This function compares the pointer stored in __oldValue to the pointer
+	in the memory location referenced by __theValue.  If the pointers
+	match, this function stores the pointer from __newValue into
+	that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwapPtr}
+	except that it also introduces a barrier.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
+bool	OSAtomicCompareAndSwapPtrBarrier( void *__oldValue, void *__newValue, void * volatile *__theValue );
+
+
+/*! @abstract Compare and swap for int values.
+    @discussion
+	This function compares the value in __oldValue to the value
+	in the memory location referenced by __theValue.  If the values
+	match, this function stores the value from __newValue into
+	that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwap32}.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
+bool	OSAtomicCompareAndSwapInt( int __oldValue, int __newValue, volatile int *__theValue );
+
+
+/*! @abstract Compare and swap for int values.
+    @discussion
+	This function compares the value in __oldValue to the value
+	in the memory location referenced by __theValue.  If the values
+	match, this function stores the value from __newValue into
+	that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwapInt}
+	except that it also introduces a barrier.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwap32Barrier}.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
+bool	OSAtomicCompareAndSwapIntBarrier( int __oldValue, int __newValue, volatile int *__theValue );
+
+
+/*! @abstract Compare and swap for long values.
+    @discussion
+	This function compares the value in __oldValue to the value
+	in the memory location referenced by __theValue.  If the values
+	match, this function stores the value from __newValue into
+	that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwap32} on 32-bit architectures,
+	or {@link OSAtomicCompareAndSwap64} on 64-bit architectures.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
+bool	OSAtomicCompareAndSwapLong( long __oldValue, long __newValue, volatile long *__theValue );
+
+
+/*! @abstract Compare and swap for long values.
+    @discussion
+	This function compares the value in __oldValue to the value
+	in the memory location referenced by __theValue.  If the values
+	match, this function stores the value from __newValue into
+	that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwapLong}
+	except that it also introduces a barrier.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwap32} on 32-bit architectures,
+	or {@link OSAtomicCompareAndSwap64} on 64-bit architectures.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
+bool	OSAtomicCompareAndSwapLongBarrier( long __oldValue, long __newValue, volatile long *__theValue );
+
+
+/*! @abstract Compare and swap for uint64_t values.
+    @discussion
+	This function compares the value in __oldValue to the value
+	in the memory location referenced by __theValue.  If the values
+	match, this function stores the value from __newValue into
+	that memory location atomically.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+bool    OSAtomicCompareAndSwap64( int64_t __oldValue, int64_t __newValue,
+		volatile OSAtomic_int64_aligned64_t *__theValue );
+
+
+/*! @abstract Compare and swap for uint64_t values.
+    @discussion
+	This function compares the value in __oldValue to the value
+	in the memory location referenced by __theValue.  If the values
+	match, this function stores the value from __newValue into
+	that memory location atomically.
+
+	This function is equivalent to {@link OSAtomicCompareAndSwap64}
+	except that it also introduces a barrier.
+    @result Returns TRUE on a match, FALSE otherwise.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_3_2)
+bool    OSAtomicCompareAndSwap64Barrier( int64_t __oldValue, int64_t __newValue,
+		volatile OSAtomic_int64_aligned64_t *__theValue );
+
+
+/* Test and set.
+ * They return the original value of the bit, and operate on bit (0x80>>(n&7))
+ * in byte ((char*)theAddress + (n>>3)).
+ */
+/*! @abstract Atomic test and set
+    @discussion
+	This function tests a bit in the value referenced by
+	__theAddress and if it is not set, sets it.
+
+	The bit is chosen by the value of __n such that the
+	operation will be performed on bit (0x80 >> (__n & 7))
+	of byte ((char *)__theAddress + (n >> 3)).
+
+	For example, if __theAddress points to a 64-bit value,
+	to compare the value of the most significant bit, you would specify
+	56 for __n.
+    @result
+	Returns the original value of the bit being tested.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+bool    OSAtomicTestAndSet( uint32_t __n, volatile void *__theAddress );
+
+
+/*! @abstract Atomic test and set with barrier
+    @discussion
+	This function tests a bit in the value referenced by __theAddress
+	and if it is not set, sets it.
+
+	The bit is chosen by the value of __n such that the
+	operation will be performed on bit (0x80 >> (__n & 7))
+	of byte ((char *)__theAddress + (n >> 3)).
+
+	For example, if __theAddress points to a 64-bit value,
+	to compare the value of the most significant bit, you would specify
+	56 for __n.
+
+	This function is equivalent to {@link OSAtomicTestAndSet}
+	except that it also introduces a barrier.
+    @result
+	Returns the original value of the bit being tested.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+bool    OSAtomicTestAndSetBarrier( uint32_t __n, volatile void *__theAddress );
+
+
+
+/*! @abstract Atomic test and clear
+    @discussion
+	This function tests a bit in the value referenced by __theAddress
+	and if it is not cleared, clears it.
+
+	The bit is chosen by the value of __n such that the
+	operation will be performed on bit (0x80 >> (__n & 7))
+	of byte ((char *)__theAddress + (n >> 3)).
+
+	For example, if __theAddress points to a 64-bit value,
+	to compare the value of the most significant bit, you would specify
+	56 for __n.
+
+    @result
+	Returns the original value of the bit being tested.
+ */
+OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+bool    OSAtomicTestAndClear( uint32_t __n, volatile void *__theAddress );
+
+
+/*! @abstract Atomic test and clear
+    @discussion
+	This function tests a bit in the value referenced by __theAddress
+	and if it is not cleared, clears it.
+
+	The bit is chosen by the value of __n such that the
+	operation will be performed on bit (0x80 >> (__n & 7))
+	of byte ((char *)__theAddress + (n >> 3)).
+
+	For example, if __theAddress points to a 64-bit value,
+	to compare the value of the most significant bit, you would specify
+	56 for __n.
+
+	This function is equivalent to {@link OSAtomicTestAndSet}
+	except that it also introduces a barrier.
+    @result
+	Returns the original value of the bit being tested.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+bool    OSAtomicTestAndClearBarrier( uint32_t __n, volatile void *__theAddress );
+
+
+/*! @group Memory barriers */
+
+/*! @abstract Memory barrier.
+    @discussion
+	This function serves as both a read and write barrier.
+ */
+OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_thread_fence)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+void    OSMemoryBarrier( void );
+
+__END_DECLS
+
+#else // defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED
+
+/*
+ * Inline implementations of the legacy OSAtomic interfaces in terms of
+ * C11  resp. C++11  primitives.
+ * Direct use of those primitives is preferred.
+ */
+
+#include 
+
+#include 
+#include 
+#include 
+
+#ifdef __cplusplus
+extern "C++" {
+#if !(__has_include() && __has_extension(cxx_atomic))
+#error Cannot use inlined OSAtomic without  and C++11 atomics
+#endif
+#include 
+typedef std::atomic _OSAtomic_uint8_t;
+typedef std::atomic _OSAtomic_int32_t;
+typedef std::atomic _OSAtomic_uint32_t;
+typedef std::atomic _OSAtomic_int64_t;
+typedef std::atomic _OSAtomic_void_ptr_t;
+#define OSATOMIC_STD(_a) std::_a
+__BEGIN_DECLS
+#else
+#if !(__has_include() && __has_extension(c_atomic))
+#error Cannot use inlined OSAtomic without  and C11 atomics
+#endif
+#include 
+typedef _Atomic(uint8_t) _OSAtomic_uint8_t;
+typedef _Atomic(int32_t) _OSAtomic_int32_t;
+typedef _Atomic(uint32_t) _OSAtomic_uint32_t;
+typedef _Atomic(int64_t) _OSAtomic_int64_t;
+typedef _Atomic(void*) _OSAtomic_void_ptr_t;
+#define OSATOMIC_STD(_a) _a
+#endif
+
+#if __has_extension(c_alignof) && __has_attribute(aligned)
+typedef int64_t __attribute__((__aligned__(_Alignof(_OSAtomic_int64_t))))
+		OSAtomic_int64_aligned64_t;
+#elif __has_attribute(aligned)
+typedef int64_t __attribute__((__aligned__((sizeof(_OSAtomic_int64_t)))))
+		OSAtomic_int64_aligned64_t;
+#else
+typedef int64_t OSAtomic_int64_aligned64_t;
+#endif
+
+#if __has_attribute(always_inline)
+#define OSATOMIC_INLINE static __inline __attribute__((__always_inline__))
+#else
+#define OSATOMIC_INLINE static __inline
+#endif
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicAdd32(int32_t __theAmount, volatile int32_t *__theValue)
+{
+	return (OSATOMIC_STD(atomic_fetch_add_explicit)(
+			(volatile _OSAtomic_int32_t*) __theValue, __theAmount,
+			OSATOMIC_STD(memory_order_relaxed)) + __theAmount);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicAdd32Barrier(int32_t __theAmount, volatile int32_t *__theValue)
+{
+	return (OSATOMIC_STD(atomic_fetch_add_explicit)(
+			(volatile _OSAtomic_int32_t*) __theValue, __theAmount,
+			OSATOMIC_STD(memory_order_seq_cst)) + __theAmount);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicIncrement32(volatile int32_t *__theValue)
+{
+	return OSAtomicAdd32(1, __theValue);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicIncrement32Barrier(volatile int32_t *__theValue)
+{
+	return OSAtomicAdd32Barrier(1, __theValue);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicDecrement32(volatile int32_t *__theValue)
+{
+	return OSAtomicAdd32(-1, __theValue);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicDecrement32Barrier(volatile int32_t *__theValue)
+{
+	return OSAtomicAdd32Barrier(-1, __theValue);
+}
+
+OSATOMIC_INLINE
+int64_t
+OSAtomicAdd64(int64_t __theAmount,
+		volatile OSAtomic_int64_aligned64_t *__theValue)
+{
+	return (OSATOMIC_STD(atomic_fetch_add_explicit)(
+			(volatile _OSAtomic_int64_t*) __theValue, __theAmount,
+			OSATOMIC_STD(memory_order_relaxed)) + __theAmount);
+}
+
+OSATOMIC_INLINE
+int64_t
+OSAtomicAdd64Barrier(int64_t __theAmount,
+		volatile OSAtomic_int64_aligned64_t *__theValue)
+{
+	return (OSATOMIC_STD(atomic_fetch_add_explicit)(
+			(volatile _OSAtomic_int64_t*) __theValue, __theAmount,
+			OSATOMIC_STD(memory_order_seq_cst)) + __theAmount);
+}
+
+OSATOMIC_INLINE
+int64_t
+OSAtomicIncrement64(volatile OSAtomic_int64_aligned64_t *__theValue)
+{
+	return OSAtomicAdd64(1, __theValue);
+}
+
+OSATOMIC_INLINE
+int64_t
+OSAtomicIncrement64Barrier(volatile OSAtomic_int64_aligned64_t *__theValue)
+{
+	return OSAtomicAdd64Barrier(1, __theValue);
+}
+
+OSATOMIC_INLINE
+int64_t
+OSAtomicDecrement64(volatile OSAtomic_int64_aligned64_t *__theValue)
+{
+	return OSAtomicAdd64(-1, __theValue);
+}
+
+OSATOMIC_INLINE
+int64_t
+OSAtomicDecrement64Barrier(volatile OSAtomic_int64_aligned64_t *__theValue)
+{
+	return OSAtomicAdd64Barrier(-1, __theValue);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicOr32(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_relaxed)) | __theMask);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicOr32Barrier(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_seq_cst)) | __theMask);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicOr32Orig(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicOr32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_seq_cst)));
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicAnd32(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_relaxed)) & __theMask);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicAnd32Barrier(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_seq_cst)) & __theMask);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicAnd32Orig(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicAnd32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_seq_cst)));
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicXor32(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_relaxed)) ^ __theMask);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicXor32Barrier(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_seq_cst)) ^ __theMask);
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicXor32Orig(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+int32_t
+OSAtomicXor32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue)
+{
+	return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)(
+			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
+			OSATOMIC_STD(memory_order_seq_cst)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwap32(int32_t __oldValue, int32_t __newValue,
+		volatile int32_t *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile _OSAtomic_int32_t*)__theValue, &__oldValue, __newValue,
+			OSATOMIC_STD(memory_order_relaxed),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwap32Barrier(int32_t __oldValue, int32_t __newValue,
+		volatile int32_t *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile _OSAtomic_int32_t*)__theValue, &__oldValue, __newValue,
+			OSATOMIC_STD(memory_order_seq_cst),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwapPtr(void *__oldValue, void *__newValue,
+		void * volatile *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile _OSAtomic_void_ptr_t*)__theValue, &__oldValue, __newValue,
+			OSATOMIC_STD(memory_order_relaxed),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwapPtrBarrier(void *__oldValue, void *__newValue,
+		void * volatile *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile _OSAtomic_void_ptr_t*)__theValue, &__oldValue, __newValue,
+			OSATOMIC_STD(memory_order_seq_cst),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwapInt(int __oldValue, int __newValue,
+		volatile int *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile OSATOMIC_STD(atomic_int)*)__theValue, &__oldValue,
+			__newValue, OSATOMIC_STD(memory_order_relaxed),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwapIntBarrier(int __oldValue, int __newValue,
+		volatile int *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile OSATOMIC_STD(atomic_int)*)__theValue, &__oldValue,
+			__newValue, OSATOMIC_STD(memory_order_seq_cst),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwapLong(long __oldValue, long __newValue,
+		volatile long *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile OSATOMIC_STD(atomic_long)*)__theValue, &__oldValue,
+			__newValue, OSATOMIC_STD(memory_order_relaxed),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwapLongBarrier(long __oldValue, long __newValue,
+		volatile long *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile OSATOMIC_STD(atomic_long)*)__theValue, &__oldValue,
+			__newValue, OSATOMIC_STD(memory_order_seq_cst),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwap64(int64_t __oldValue, int64_t __newValue,
+		volatile OSAtomic_int64_aligned64_t *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile _OSAtomic_int64_t*)__theValue, &__oldValue, __newValue,
+			OSATOMIC_STD(memory_order_relaxed),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicCompareAndSwap64Barrier(int64_t __oldValue, int64_t __newValue,
+		volatile OSAtomic_int64_aligned64_t *__theValue)
+{
+	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
+			(volatile _OSAtomic_int64_t*)__theValue, &__oldValue, __newValue,
+			OSATOMIC_STD(memory_order_seq_cst),
+			OSATOMIC_STD(memory_order_relaxed)));
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicTestAndSet(uint32_t __n, volatile void *__theAddress)
+{
+	uintptr_t a = (uintptr_t)__theAddress + (__n >> 3);
+	uint8_t v = (0x80u >> (__n & 7));
+	return (OSATOMIC_STD(atomic_fetch_or_explicit)((_OSAtomic_uint8_t*)a, v,
+			OSATOMIC_STD(memory_order_relaxed)) & v);
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicTestAndSetBarrier(uint32_t __n, volatile void *__theAddress)
+{
+	uintptr_t a = (uintptr_t)__theAddress + (__n >> 3);
+	uint8_t v = (0x80u >> (__n & 7));
+	return (OSATOMIC_STD(atomic_fetch_or_explicit)((_OSAtomic_uint8_t*)a, v,
+			OSATOMIC_STD(memory_order_seq_cst)) & v);
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicTestAndClear(uint32_t __n, volatile void *__theAddress)
+{
+	uintptr_t a = (uintptr_t)__theAddress + (__n >> 3);
+	uint8_t v = (0x80u >> (__n & 7));
+	return (OSATOMIC_STD(atomic_fetch_and_explicit)((_OSAtomic_uint8_t*)a,
+			(uint8_t)~v, OSATOMIC_STD(memory_order_relaxed)) & v);
+}
+
+OSATOMIC_INLINE
+bool
+OSAtomicTestAndClearBarrier(uint32_t __n, volatile void *__theAddress)
+{
+	uintptr_t a = (uintptr_t)__theAddress + (__n >> 3);
+	uint8_t v = (0x80u >> (__n & 7));
+	return (OSATOMIC_STD(atomic_fetch_and_explicit)((_OSAtomic_uint8_t*)a,
+			(uint8_t)~v, OSATOMIC_STD(memory_order_seq_cst)) & v);
+}
+
+OSATOMIC_INLINE
+void
+OSMemoryBarrier(void)
+{
+	OSATOMIC_STD(atomic_thread_fence)(OSATOMIC_STD(memory_order_seq_cst));
+}
+
+#undef OSATOMIC_INLINE
+#undef OSATOMIC_STD
+#ifdef __cplusplus
+__END_DECLS
+} // extern "C++"
+#endif
+
+#endif // defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED
+
+#if TARGET_OS_OSX || TARGET_OS_DRIVERKIT
+
+__BEGIN_DECLS
+
+/*! @group Lockless atomic fifo enqueue and dequeue
+ * These routines manipulate singly-linked FIFO lists.
+ *
+ * This API is deprecated and no longer recommended
+ */
+
+/*! @abstract The data structure for a fifo queue head.
+    @discussion
+	You should always initialize a fifo queue head structure with the
+	initialization vector {@link OS_ATOMIC_FIFO_QUEUE_INIT} before use.
+ */
+#if defined(__LP64__)
+
+typedef	volatile struct {
+	void	*opaque1;
+	void	*opaque2;
+	int	 opaque3;
+} __attribute__ ((aligned (16))) OSFifoQueueHead;
+
+#else
+
+typedef	volatile struct {
+	void	*opaque1;
+	void	*opaque2;
+	int	 opaque3;
+} OSFifoQueueHead;
+
+#endif
+/*! @abstract The initialization vector for a fifo queue head. */
+#define OS_ATOMIC_FIFO_QUEUE_INIT   { NULL, NULL, 0 }
+
+/*! @abstract Enqueue an element onto a list.
+    @discussion
+	Memory barriers are incorporated as needed to permit thread-safe access
+	to the queue element.
+    @param __list
+	The list on which you want to enqueue the element.
+    @param __new
+	The element to add.
+    @param __offset
+	The "offset" parameter is the offset (in bytes) of the link field
+	from the beginning of the data structure being queued (__new).
+	The link field should be a pointer type.
+	The __offset value needs to be same for all enqueuing and
+	dequeuing operations on the same list, even if different structure types
+	are enqueued on that list.  The use of offsetset(), defined in
+	stddef.h is the common way to specify the __offset
+	value.
+
+	@note
+	This API is deprecated and no longer recommended
+ */
+__API_DEPRECATED("No longer supported", macos(10.7, 11.0))
+void  OSAtomicFifoEnqueue( OSFifoQueueHead *__list, void *__new, size_t __offset);
+
+/*! @abstract Dequeue an element from a list.
+    @discussion
+	Memory barriers are incorporated as needed to permit thread-safe access
+	to the queue element.
+    @param __list
+	The list from which you want to dequeue an element.
+    @param __offset
+	The "offset" parameter is the offset (in bytes) of the link field
+	from the beginning of the data structure being dequeued (__new).
+	The link field should be a pointer type.
+	The __offset value needs to be same for all enqueuing and
+	dequeuing operations on the same list, even if different structure types
+	are enqueued on that list.  The use of offsetset(), defined in
+	stddef.h is the common way to specify the __offset
+	value.
+    @result
+	Returns the oldest enqueued element, or NULL if the
+	list is empty.
+
+	@note
+	This API is deprecated and no longer recommended
+ */
+__API_DEPRECATED("No longer supported", macos(10.7, 11.0))
+void* OSAtomicFifoDequeue( OSFifoQueueHead *__list, size_t __offset);
+
+__END_DECLS
+
+#endif /* TARGET_OS_OSX || TARGET_OS_DRIVERKIT */
+
+#endif /* _OSATOMIC_DEPRECATED_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomicQueue.h b/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomicQueue.h
new file mode 100644
index 0000000000000000000000000000000000000000..66033fc8345be13b0cb943fc78b98237348f8189
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/libkern/OSAtomicQueue.h
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2004-2016 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@
+ */
+
+#ifndef _OSATOMICQUEUE_H_
+#define _OSATOMICQUEUE_H_
+
+#include    
+#include    
+#include    
+#include    
+#include    "OSAtomicDeprecated.h"
+
+#include    
+
+/*! @header Lockless atomic enqueue and dequeue
+ * These routines manipulate singly-linked LIFO lists.
+ */
+
+__BEGIN_DECLS
+
+/*! @abstract The data structure for a queue head.
+    @discussion
+	You should always initialize a queue head structure with the
+	initialization vector {@link OS_ATOMIC_QUEUE_INIT} before use.
+ */
+#if defined(__LP64__)
+
+typedef volatile struct {
+	void	*opaque1;
+	long	 opaque2;
+} __attribute__ ((aligned (16))) OSQueueHead;
+
+#else
+
+typedef volatile struct {
+	void	*opaque1;
+	long	 opaque2;
+} OSQueueHead;
+
+#endif
+
+/*! @abstract The initialization vector for a queue head. */
+#define	OS_ATOMIC_QUEUE_INIT	{ NULL, 0 }
+
+/*! @abstract Enqueue an element onto a list.
+    @discussion
+	Memory barriers are incorporated as needed to permit thread-safe access
+	to the queue element.
+    @param __list
+	The list on which you want to enqueue the element.
+    @param __new
+	The element to add.
+    @param __offset
+	The "offset" parameter is the offset (in bytes) of the link field
+	from the beginning of the data structure being queued (__new).
+	The link field should be a pointer type.
+	The __offset value needs to be same for all enqueuing and
+	dequeuing operations on the same list, even if different structure types
+	are enqueued on that list.  The use of offsetset(), defined in
+	stddef.h is the common way to specify the __offset
+	value.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_4_0)
+void  OSAtomicEnqueue( OSQueueHead *__list, void *__new, size_t __offset);
+
+
+/*! @abstract Dequeue an element from a list.
+    @discussion
+	Memory barriers are incorporated as needed to permit thread-safe access
+	to the queue element.
+    @param __list
+	The list from which you want to dequeue an element.
+    @param __offset
+	The "offset" parameter is the offset (in bytes) of the link field
+	from the beginning of the data structure being dequeued (__new).
+	The link field should be a pointer type.
+	The __offset value needs to be same for all enqueuing and
+	dequeuing operations on the same list, even if different structure types
+	are enqueued on that list.  The use of offsetset(), defined in
+	stddef.h is the common way to specify the __offset
+	value.
+	IMPORTANT: the memory backing the link field of a queue element must not be
+	unmapped after OSAtomicDequeue() returns until all concurrent calls to
+	OSAtomicDequeue() for the same list on other threads have also returned,
+	as they may still be accessing that memory location.
+    @result
+	Returns the most recently enqueued element, or NULL if the
+	list is empty.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_4_0)
+void* OSAtomicDequeue( OSQueueHead *__list, size_t __offset);
+
+__END_DECLS
+
+#endif /* _OSATOMICQUEUE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/libkern/OSSpinLockDeprecated.h b/lib/libc/include/aarch64-macos.13-none/libkern/OSSpinLockDeprecated.h
new file mode 100644
index 0000000000000000000000000000000000000000..a654a7bbc2d8cf3a02c77cd4f2af942f7eca09bb
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/libkern/OSSpinLockDeprecated.h
@@ -0,0 +1,212 @@
+/*
+ * Copyright (c) 2004-2016 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@
+ */
+
+#ifndef _OSSPINLOCK_DEPRECATED_H_
+#define _OSSPINLOCK_DEPRECATED_H_
+
+/*! @header
+ * These are deprecated legacy interfaces for userspace spinlocks.
+ *
+ * These interfaces should no longer be used, particularily in situations where
+ * threads of differing priorities may contend on the same spinlock.
+ *
+ * The interfaces in  should be used instead in cases where a very
+ * low-level lock primitive is required. In general however, using higher level
+ * synchronization primitives such as those provided by the pthread or dispatch
+ * subsystems should be preferred.
+ *
+ * Define OSSPINLOCK_USE_INLINED=1 to get inline implementations of these
+ * interfaces in terms of the  primitives. This is intended as a
+ * transition convenience, direct use of those primitives is preferred.
+ */
+
+#ifndef OSSPINLOCK_DEPRECATED
+#define OSSPINLOCK_DEPRECATED 1
+#define OSSPINLOCK_DEPRECATED_MSG(_r) "Use " #_r "() from  instead"
+#define OSSPINLOCK_DEPRECATED_REPLACE_WITH(_r) \
+	__OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSSPINLOCK_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSSPINLOCK_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSSPINLOCK_DEPRECATED_MSG(_r)) \
+	__OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSSPINLOCK_DEPRECATED_MSG(_r))
+#else
+#undef OSSPINLOCK_DEPRECATED
+#define OSSPINLOCK_DEPRECATED 0
+#define OSSPINLOCK_DEPRECATED_REPLACE_WITH(_r)
+#endif
+
+#if !(defined(OSSPINLOCK_USE_INLINED) && OSSPINLOCK_USE_INLINED)
+
+#include    
+#include    
+#include    
+#include    
+#include    
+
+__BEGIN_DECLS
+
+/*! @abstract The default value for an OSSpinLock.
+    @discussion
+	The convention is that unlocked is zero, locked is nonzero.
+ */
+#define	OS_SPINLOCK_INIT    0
+
+
+/*! @abstract Data type for a spinlock.
+    @discussion
+	You should always initialize a spinlock to {@link OS_SPINLOCK_INIT} before
+	using it.
+ */
+typedef int32_t OSSpinLock OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock);
+
+
+/*! @abstract Locks a spinlock if it would not block
+    @result
+	Returns false if the lock was already held by another thread,
+	true if it took the lock successfully.
+ */
+OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_trylock)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+bool    OSSpinLockTry( volatile OSSpinLock *__lock );
+
+
+/*! @abstract Locks a spinlock
+    @discussion
+	Although the lock operation spins, it employs various strategies to back
+	off if the lock is held.
+ */
+OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_lock)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+void    OSSpinLockLock( volatile OSSpinLock *__lock );
+
+
+/*! @abstract Unlocks a spinlock */
+OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_unlock)
+__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
+void    OSSpinLockUnlock( volatile OSSpinLock *__lock );
+
+__END_DECLS
+
+#else /* OSSPINLOCK_USE_INLINED */
+
+/*
+ * Inline implementations of the legacy OSSpinLock interfaces in terms of the
+ * of the  primitives. Direct use of those primitives is preferred.
+ *
+ * NOTE: the locked value of os_unfair_lock is implementation defined and
+ * subject to change, code that relies on the specific locked value used by the
+ * legacy OSSpinLock interface WILL break when using these inline
+ * implementations in terms of os_unfair_lock.
+ */
+
+#if !OSSPINLOCK_USE_INLINED_TRANSPARENT
+
+#include 
+
+__BEGIN_DECLS
+
+#if __has_attribute(always_inline)
+#define OSSPINLOCK_INLINE static __inline
+#else
+#define OSSPINLOCK_INLINE static __inline __attribute__((__always_inline__))
+#endif
+
+#define OS_SPINLOCK_INIT 0
+typedef int32_t OSSpinLock;
+
+#if  __has_extension(c_static_assert)
+_Static_assert(sizeof(OSSpinLock) == sizeof(os_unfair_lock),
+		"Incompatible os_unfair_lock type");
+#endif
+
+OSSPINLOCK_INLINE
+void
+OSSpinLockLock(volatile OSSpinLock *__lock)
+{
+	os_unfair_lock_t lock = (os_unfair_lock_t)__lock;
+	return os_unfair_lock_lock(lock);
+}
+
+OSSPINLOCK_INLINE
+bool
+OSSpinLockTry(volatile OSSpinLock *__lock)
+{
+	os_unfair_lock_t lock = (os_unfair_lock_t)__lock;
+	return os_unfair_lock_trylock(lock);
+}
+
+OSSPINLOCK_INLINE
+void
+OSSpinLockUnlock(volatile OSSpinLock *__lock)
+{
+	os_unfair_lock_t lock = (os_unfair_lock_t)__lock;
+	return os_unfair_lock_unlock(lock);
+}
+
+#undef OSSPINLOCK_INLINE
+
+__END_DECLS
+
+#else /* OSSPINLOCK_USE_INLINED_TRANSPARENT */
+
+#include    
+#include    
+#include    
+#include    
+#include    
+
+#define OS_NOSPIN_LOCK_AVAILABILITY \
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) \
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0)
+
+__BEGIN_DECLS
+
+#define OS_SPINLOCK_INIT 0
+typedef int32_t OSSpinLock OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock);
+typedef volatile OSSpinLock *_os_nospin_lock_t
+		OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_t);
+
+OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_lock)
+OS_NOSPIN_LOCK_AVAILABILITY
+void _os_nospin_lock_lock(_os_nospin_lock_t lock);
+#undef OSSpinLockLock
+#define OSSpinLockLock(lock) _os_nospin_lock_lock(lock)
+
+OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_trylock)
+OS_NOSPIN_LOCK_AVAILABILITY
+bool _os_nospin_lock_trylock(_os_nospin_lock_t lock);
+#undef OSSpinLockTry
+#define OSSpinLockTry(lock) _os_nospin_lock_trylock(lock)
+
+OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_unlock)
+OS_NOSPIN_LOCK_AVAILABILITY
+void _os_nospin_lock_unlock(_os_nospin_lock_t lock);
+#undef OSSpinLockUnlock
+#define OSSpinLockUnlock(lock) _os_nospin_lock_unlock(lock)
+
+__END_DECLS
+
+#endif /* OSSPINLOCK_USE_INLINED_TRANSPARENT */
+
+#endif /* OSSPINLOCK_USE_INLINED */
+
+#endif /* _OSSPINLOCK_DEPRECATED_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/libkern/arm/OSByteOrder.h b/lib/libc/include/aarch64-macos.13-none/libkern/arm/OSByteOrder.h
new file mode 100644
index 0000000000000000000000000000000000000000..f89a24b53f69754087888a8eaa316cbf706f1f81
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/libkern/arm/OSByteOrder.h
@@ -0,0 +1,216 @@
+/*
+ * Copyright (c) 1999-2007 Apple Inc. All rights reserved.
+ */
+
+#ifndef _OS_OSBYTEORDERARM_H
+#define _OS_OSBYTEORDERARM_H
+
+#include 
+#include  /* for _ARM_ARCH_6 */
+
+/* Generic byte swapping functions. */
+
+__DARWIN_OS_INLINE
+uint16_t
+_OSSwapInt16(
+	uint16_t        _data
+	)
+{
+	/* Reduces to 'rev16' with clang */
+	return (uint16_t)(_data << 8 | _data >> 8);
+}
+
+__DARWIN_OS_INLINE
+uint32_t
+_OSSwapInt32(
+	uint32_t        _data
+	)
+{
+#if defined(__llvm__)
+	_data = __builtin_bswap32(_data);
+#else
+	/* This actually generates the best code */
+	_data = (((_data ^ (_data >> 16 | (_data << 16))) & 0xFF00FFFF) >> 8) ^ (_data >> 8 | _data << 24);
+#endif
+
+	return _data;
+}
+
+__DARWIN_OS_INLINE
+uint64_t
+_OSSwapInt64(
+	uint64_t        _data
+	)
+{
+#if defined(__llvm__)
+	return __builtin_bswap64(_data);
+#else
+	union {
+		uint64_t _ull;
+		uint32_t _ul[2];
+	} _u;
+
+	/* This actually generates the best code */
+	_u._ul[0] = (uint32_t)(_data >> 32);
+	_u._ul[1] = (uint32_t)(_data & 0xffffffff);
+	_u._ul[0] = _OSSwapInt32(_u._ul[0]);
+	_u._ul[1] = _OSSwapInt32(_u._ul[1]);
+	return _u._ull;
+#endif
+}
+
+/* Functions for byte reversed loads. */
+
+struct _OSUnalignedU16 {
+	volatile uint16_t __val;
+} __attribute__((__packed__));
+
+struct _OSUnalignedU32 {
+	volatile uint32_t __val;
+} __attribute__((__packed__));
+
+struct _OSUnalignedU64 {
+	volatile uint64_t __val;
+} __attribute__((__packed__));
+
+#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
+__DARWIN_OS_INLINE
+uint16_t
+_OSReadSwapInt16(
+	const volatile void   * _base,
+	uintptr_t       _offset
+	)
+{
+	return _OSSwapInt16(((struct _OSUnalignedU16 *)((uintptr_t)_base + _offset))->__val);
+}
+#else
+__DARWIN_OS_INLINE
+uint16_t
+OSReadSwapInt16(
+	const volatile void   * _base,
+	uintptr_t       _offset
+	)
+{
+	return _OSSwapInt16(((struct _OSUnalignedU16 *)((uintptr_t)_base + _offset))->__val);
+}
+#endif
+
+#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
+__DARWIN_OS_INLINE
+uint32_t
+_OSReadSwapInt32(
+	const volatile void   * _base,
+	uintptr_t       _offset
+	)
+{
+	return _OSSwapInt32(((struct _OSUnalignedU32 *)((uintptr_t)_base + _offset))->__val);
+}
+#else
+__DARWIN_OS_INLINE
+uint32_t
+OSReadSwapInt32(
+	const volatile void   * _base,
+	uintptr_t       _offset
+	)
+{
+	return _OSSwapInt32(((struct _OSUnalignedU32 *)((uintptr_t)_base + _offset))->__val);
+}
+#endif
+
+#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
+__DARWIN_OS_INLINE
+uint64_t
+_OSReadSwapInt64(
+	const volatile void   * _base,
+	uintptr_t       _offset
+	)
+{
+	return _OSSwapInt64(((struct _OSUnalignedU64 *)((uintptr_t)_base + _offset))->__val);
+}
+#else
+__DARWIN_OS_INLINE
+uint64_t
+OSReadSwapInt64(
+	const volatile void   * _base,
+	uintptr_t       _offset
+	)
+{
+	return _OSSwapInt64(((struct _OSUnalignedU64 *)((uintptr_t)_base + _offset))->__val);
+}
+#endif
+
+/* Functions for byte reversed stores. */
+
+#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
+__DARWIN_OS_INLINE
+void
+_OSWriteSwapInt16(
+	volatile void   * _base,
+	uintptr_t       _offset,
+	uint16_t        _data
+	)
+{
+	((struct _OSUnalignedU16 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt16(_data);
+}
+#else
+__DARWIN_OS_INLINE
+void
+OSWriteSwapInt16(
+	volatile void   * _base,
+	uintptr_t       _offset,
+	uint16_t        _data
+	)
+{
+	((struct _OSUnalignedU16 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt16(_data);
+}
+#endif
+
+#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
+__DARWIN_OS_INLINE
+void
+_OSWriteSwapInt32(
+	volatile void   * _base,
+	uintptr_t       _offset,
+	uint32_t        _data
+	)
+{
+	((struct _OSUnalignedU32 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt32(_data);
+}
+#else
+__DARWIN_OS_INLINE
+void
+OSWriteSwapInt32(
+	volatile void   * _base,
+	uintptr_t       _offset,
+	uint32_t        _data
+	)
+{
+	((struct _OSUnalignedU32 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt32(_data);
+}
+#endif
+
+#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
+__DARWIN_OS_INLINE
+void
+_OSWriteSwapInt64(
+	volatile void    * _base,
+	uintptr_t        _offset,
+	uint64_t         _data
+	)
+{
+	((struct _OSUnalignedU64 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt64(_data);
+}
+#else
+__DARWIN_OS_INLINE
+void
+OSWriteSwapInt64(
+	volatile void    * _base,
+	uintptr_t        _offset,
+	uint64_t         _data
+	)
+{
+	((struct _OSUnalignedU64 *)((uintptr_t)_base + _offset))->__val = _OSSwapInt64(_data);
+}
+#endif
+
+#endif /* ! _OS_OSBYTEORDERARM_H */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/_structs.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/_structs.h
new file mode 100644
index 0000000000000000000000000000000000000000..5bc9ee2f2dbe33947cec005676a1011e42308379
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/_structs.h
@@ -0,0 +1,683 @@
+/*
+ * Copyright (c) 2004-2007 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+#ifndef _MACH_ARM__STRUCTS_H_
+#define _MACH_ARM__STRUCTS_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#include  /* __DARWIN_UNIX03 */
+#include  /* __uint32_t */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_EXCEPTION_STATE struct __darwin_arm_exception_state
+_STRUCT_ARM_EXCEPTION_STATE
+{
+	__uint32_t __exception; /* number of arm exception taken */
+	__uint32_t __fsr;       /* Fault status */
+	__uint32_t __far;       /* Virtual Fault Address */
+};
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_ARM_EXCEPTION_STATE struct arm_exception_state
+_STRUCT_ARM_EXCEPTION_STATE
+{
+	__uint32_t exception;   /* number of arm exception taken */
+	__uint32_t fsr;         /* Fault status */
+	__uint32_t far;         /* Virtual Fault Address */
+};
+#endif /* __DARWIN_UNIX03 */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_EXCEPTION_STATE64 struct __darwin_arm_exception_state64
+_STRUCT_ARM_EXCEPTION_STATE64
+{
+	__uint64_t __far;       /* Virtual Fault Address */
+	__uint32_t __esr;       /* Exception syndrome */
+	__uint32_t __exception; /* number of arm exception taken */
+};
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_ARM_EXCEPTION_STATE64 struct arm_exception_state64
+_STRUCT_ARM_EXCEPTION_STATE64
+{
+	__uint64_t far;         /* Virtual Fault Address */
+	__uint32_t esr;         /* Exception syndrome */
+	__uint32_t exception;   /* number of arm exception taken */
+};
+#endif /* __DARWIN_UNIX03 */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_THREAD_STATE struct __darwin_arm_thread_state
+_STRUCT_ARM_THREAD_STATE
+{
+	__uint32_t __r[13]; /* General purpose register r0-r12 */
+	__uint32_t __sp;    /* Stack pointer r13 */
+	__uint32_t __lr;    /* Link register r14 */
+	__uint32_t __pc;    /* Program counter r15 */
+	__uint32_t __cpsr;  /* Current program status register */
+};
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_ARM_THREAD_STATE struct arm_thread_state
+_STRUCT_ARM_THREAD_STATE
+{
+	__uint32_t r[13];   /* General purpose register r0-r12 */
+	__uint32_t sp;      /* Stack pointer r13 */
+	__uint32_t lr;      /* Link register r14 */
+	__uint32_t pc;      /* Program counter r15 */
+	__uint32_t cpsr;    /* Current program status register */
+};
+#endif /* __DARWIN_UNIX03 */
+
+
+/*
+ * By default, the pointer fields in the arm_thread_state64_t structure are
+ * opaque on the arm64e architecture and require the use of accessor macros.
+ * This mode can also be enabled on the arm64 architecture by building with
+ * -D__DARWIN_OPAQUE_ARM_THREAD_STATE64=1.
+ */
+#if defined(__arm64__) && defined(__LP64__)
+
+#if __has_feature(ptrauth_calls)
+#define __DARWIN_OPAQUE_ARM_THREAD_STATE64 1
+#define __DARWIN_PTRAUTH_ARM_THREAD_STATE64 1
+#endif /* __has_feature(ptrauth_calls) */
+
+#ifndef __DARWIN_OPAQUE_ARM_THREAD_STATE64
+#define __DARWIN_OPAQUE_ARM_THREAD_STATE64 0
+#endif
+
+#else /* defined(__arm64__) && defined(__LP64__) */
+
+#undef __DARWIN_OPAQUE_ARM_THREAD_STATE64
+#define __DARWIN_OPAQUE_ARM_THREAD_STATE64 0
+
+#endif /* defined(__arm64__) && defined(__LP64__) */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_THREAD_STATE64 struct __darwin_arm_thread_state64
+#if __DARWIN_OPAQUE_ARM_THREAD_STATE64
+_STRUCT_ARM_THREAD_STATE64
+{
+	__uint64_t __x[29];     /* General purpose registers x0-x28 */
+	void*      __opaque_fp; /* Frame pointer x29 */
+	void*      __opaque_lr; /* Link register x30 */
+	void*      __opaque_sp; /* Stack pointer x31 */
+	void*      __opaque_pc; /* Program counter */
+	__uint32_t __cpsr;      /* Current program status register */
+	__uint32_t __opaque_flags; /* Flags describing structure format */
+};
+#else /* __DARWIN_OPAQUE_ARM_THREAD_STATE64 */
+_STRUCT_ARM_THREAD_STATE64
+{
+	__uint64_t __x[29]; /* General purpose registers x0-x28 */
+	__uint64_t __fp;    /* Frame pointer x29 */
+	__uint64_t __lr;    /* Link register x30 */
+	__uint64_t __sp;    /* Stack pointer x31 */
+	__uint64_t __pc;    /* Program counter */
+	__uint32_t __cpsr;  /* Current program status register */
+	__uint32_t __pad;   /* Same size for 32-bit or 64-bit clients */
+};
+#endif /* __DARWIN_OPAQUE_ARM_THREAD_STATE64 */
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_ARM_THREAD_STATE64 struct arm_thread_state64
+#if __DARWIN_OPAQUE_ARM_THREAD_STATE64
+_STRUCT_ARM_THREAD_STATE64
+{
+	__uint64_t x[29];       /* General purpose registers x0-x28 */
+	void*      __opaque_fp; /* Frame pointer x29 */
+	void*      __opaque_lr; /* Link register x30 */
+	void*      __opaque_sp; /* Stack pointer x31 */
+	void*      __opaque_pc; /* Program counter */
+	__uint32_t cpsr;        /* Current program status register */
+	__uint32_t __opaque_flags; /* Flags describing structure format */
+};
+#else /* __DARWIN_OPAQUE_ARM_THREAD_STATE64 */
+_STRUCT_ARM_THREAD_STATE64
+{
+	__uint64_t x[29]; /* General purpose registers x0-x28 */
+	__uint64_t fp;    /* Frame pointer x29 */
+	__uint64_t lr;    /* Link register x30 */
+	__uint64_t sp;    /* Stack pointer x31 */
+	__uint64_t pc;    /* Program counter */
+	__uint32_t cpsr;  /* Current program status register */
+	__uint32_t __pad; /* Same size for 32-bit or 64-bit clients */
+};
+#endif /* __DARWIN_OPAQUE_ARM_THREAD_STATE64 */
+#endif /* __DARWIN_UNIX03 */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL && defined(__arm64__)
+
+/* Accessor macros for arm_thread_state64_t pointer fields */
+
+#if __has_feature(ptrauth_calls) && defined(__LP64__)
+#include 
+
+#if !__DARWIN_OPAQUE_ARM_THREAD_STATE64 || !__DARWIN_PTRAUTH_ARM_THREAD_STATE64
+#error "Invalid configuration"
+#endif
+
+#define __DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH 0x1
+#define __DARWIN_ARM_THREAD_STATE64_FLAGS_IB_SIGNED_LR 0x2
+#define __DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_PC 0x4
+#define __DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_LR 0x8
+
+#define __DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK 0xff000000
+
+/* Return pc field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_pc(ts) \
+	__extension__ ({ const _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts); \
+	(uintptr_t)(__tsp->__opaque_pc && !(__tsp->__opaque_flags &       \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?                   \
+	ptrauth_auth_data(__tsp->__opaque_pc,                             \
+	ptrauth_key_process_independent_code,                             \
+	((__tsp->__opaque_flags &                                         \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_PC) == 0 &&       \
+	(__tsp->__opaque_flags &                                          \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK)) ?             \
+	ptrauth_blend_discriminator((void *)(unsigned long)               \
+	(__tsp->__opaque_flags &                                          \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK),               \
+	ptrauth_string_discriminator("pc")) :                             \
+	ptrauth_string_discriminator("pc")) : __tsp->__opaque_pc); })
+/* Return pc field of arm_thread_state64_t as a function pointer. May return
+ * NULL if a valid function pointer cannot be constructed, the caller should
+ * fall back to the __darwin_arm_thread_state64_get_pc() macro in that case. */
+#define __darwin_arm_thread_state64_get_pc_fptr(ts) \
+	__extension__ ({ const _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts); \
+	(__tsp->__opaque_pc && !(__tsp->__opaque_flags &                  \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?                   \
+	ptrauth_auth_function(__tsp->__opaque_pc,                         \
+	ptrauth_key_process_independent_code,                             \
+	((__tsp->__opaque_flags &                                         \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_PC) == 0 &&       \
+	(__tsp->__opaque_flags &                                          \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK)) ?             \
+	ptrauth_blend_discriminator((void *)(unsigned long)               \
+	(__tsp->__opaque_flags &                                          \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK),               \
+	ptrauth_string_discriminator("pc")) :                             \
+	ptrauth_string_discriminator("pc")) : NULL); })
+/* Set pc field of arm_thread_state64_t to a function pointer */
+#define __darwin_arm_thread_state64_set_pc_fptr(ts, fptr) \
+	__extension__ ({ _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts);   \
+	__typeof__(fptr) __f = (fptr); __tsp->__opaque_pc =           \
+	(__f ? (!(__tsp->__opaque_flags &                             \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?               \
+	ptrauth_auth_and_resign(__f, ptrauth_key_function_pointer, 0, \
+	ptrauth_key_process_independent_code,                         \
+	(__tsp->__opaque_flags &                                      \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK) ?          \
+	ptrauth_blend_discriminator((void *)(unsigned long)           \
+	(__tsp->__opaque_flags &                                      \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK),           \
+	ptrauth_string_discriminator("pc")) :                         \
+	ptrauth_string_discriminator("pc")) : ptrauth_auth_data(__f,  \
+	ptrauth_key_function_pointer, 0)) : __f);                     \
+	__tsp->__opaque_flags &=                                      \
+	~__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_PC; })
+/* Return lr field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_lr(ts) \
+	__extension__ ({ const _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts); \
+	(uintptr_t)(__tsp->__opaque_lr && !(__tsp->__opaque_flags & (     \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH |                    \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_IB_SIGNED_LR)) ?                \
+	ptrauth_auth_data(__tsp->__opaque_lr,                             \
+	ptrauth_key_process_independent_code,                             \
+	((__tsp->__opaque_flags &                                         \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_LR) == 0 &&       \
+	(__tsp->__opaque_flags &                                          \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK)) ?             \
+	ptrauth_blend_discriminator((void *)(unsigned long)               \
+	(__tsp->__opaque_flags &                                          \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK),               \
+	ptrauth_string_discriminator("lr")) :                             \
+	ptrauth_string_discriminator("lr")) : __tsp->__opaque_lr); })
+/* Return lr field of arm_thread_state64_t as a function pointer. May return
+ * NULL if a valid function pointer cannot be constructed, the caller should
+ * fall back to the __darwin_arm_thread_state64_get_lr() macro in that case. */
+#define __darwin_arm_thread_state64_get_lr_fptr(ts) \
+	__extension__ ({ const _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts); \
+	(__tsp->__opaque_lr && !(__tsp->__opaque_flags & (                \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH |                    \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_IB_SIGNED_LR)) ?                \
+	ptrauth_auth_function(__tsp->__opaque_lr,                         \
+	ptrauth_key_process_independent_code,                             \
+	((__tsp->__opaque_flags &                                         \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_LR) == 0 &&       \
+	(__tsp->__opaque_flags &                                          \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK)) ?             \
+	ptrauth_blend_discriminator((void *)(unsigned long)               \
+	(__tsp->__opaque_flags &                                          \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK),               \
+	ptrauth_string_discriminator("lr")) :                             \
+	ptrauth_string_discriminator("lr")) : NULL); })
+/* Set lr field of arm_thread_state64_t to a function pointer */
+#define __darwin_arm_thread_state64_set_lr_fptr(ts, fptr) \
+	__extension__ ({ _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts);            \
+	__typeof__(fptr) __f = (fptr); __tsp->__opaque_lr =                    \
+	(__f ? (!(__tsp->__opaque_flags &                                      \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ? (__tsp->__opaque_flags \
+	&= ~__DARWIN_ARM_THREAD_STATE64_FLAGS_IB_SIGNED_LR ,                   \
+	ptrauth_auth_and_resign(__f, ptrauth_key_function_pointer, 0,          \
+	ptrauth_key_process_independent_code,                                  \
+	(__tsp->__opaque_flags &                                               \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK) ?                   \
+	ptrauth_blend_discriminator((void *)(unsigned long)                    \
+	(__tsp->__opaque_flags &                                               \
+	__DARWIN_ARM_THREAD_STATE64_USER_DIVERSIFIER_MASK),                    \
+	ptrauth_string_discriminator("lr")) :                                  \
+	ptrauth_string_discriminator("lr"))) : ptrauth_auth_data(__f,          \
+	ptrauth_key_function_pointer, 0)) : __f); __tsp->__opaque_flags &=     \
+	~__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_LR; })
+/* Return sp field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_sp(ts) \
+	__extension__ ({ const _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts); \
+	(uintptr_t)(__tsp->__opaque_sp && !(__tsp->__opaque_flags &       \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?                   \
+	ptrauth_auth_data(__tsp->__opaque_sp,                             \
+	ptrauth_key_process_independent_data,                             \
+	ptrauth_string_discriminator("sp")) : __tsp->__opaque_sp); })
+/* Set sp field of arm_thread_state64_t to a data pointer value */
+#define __darwin_arm_thread_state64_set_sp(ts, ptr) \
+	__extension__ ({ _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts); \
+	void *__p = (void*)(uintptr_t)(ptr); __tsp->__opaque_sp =   \
+	(__p && !(__tsp->__opaque_flags &                           \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?             \
+	ptrauth_sign_unauthenticated(__p,                           \
+	ptrauth_key_process_independent_data,                       \
+	ptrauth_string_discriminator("sp")) : __p); })
+/* Return fp field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_fp(ts) \
+	__extension__ ({ const _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts); \
+	(uintptr_t)(__tsp->__opaque_fp && !(__tsp->__opaque_flags &       \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?                   \
+	ptrauth_auth_data(__tsp->__opaque_fp,                             \
+	ptrauth_key_process_independent_data,                             \
+	ptrauth_string_discriminator("fp")) : __tsp->__opaque_fp); })
+/* Set fp field of arm_thread_state64_t to a data pointer value */
+#define __darwin_arm_thread_state64_set_fp(ts, ptr) \
+	__extension__ ({ _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts); \
+	void *__p = (void*)(uintptr_t)(ptr); __tsp->__opaque_fp =   \
+	(__p && !(__tsp->__opaque_flags &                           \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ?             \
+	ptrauth_sign_unauthenticated(__p,                           \
+	ptrauth_key_process_independent_data,                       \
+	ptrauth_string_discriminator("fp")) : __p); })
+
+/* Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t */
+#define __darwin_arm_thread_state64_ptrauth_strip(ts) \
+	__extension__ ({ _STRUCT_ARM_THREAD_STATE64 *__tsp = &(ts);               \
+	__tsp->__opaque_pc = ((__tsp->__opaque_flags &                            \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ? __tsp->__opaque_pc :      \
+	ptrauth_strip(__tsp->__opaque_pc, ptrauth_key_process_independent_code)); \
+	__tsp->__opaque_lr = ((__tsp->__opaque_flags &                            \
+	(__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH |                           \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_IB_SIGNED_LR)) ? __tsp->__opaque_lr :   \
+	ptrauth_strip(__tsp->__opaque_lr, ptrauth_key_process_independent_code)); \
+	__tsp->__opaque_sp = ((__tsp->__opaque_flags &                            \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ? __tsp->__opaque_sp :      \
+	ptrauth_strip(__tsp->__opaque_sp, ptrauth_key_process_independent_data)); \
+	__tsp->__opaque_fp = ((__tsp->__opaque_flags &                            \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH) ? __tsp->__opaque_fp :      \
+	ptrauth_strip(__tsp->__opaque_fp, ptrauth_key_process_independent_data)); \
+	__tsp->__opaque_flags |=                                                  \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_NO_PTRAUTH; __tsp->__opaque_flags &=    \
+	~(__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_PC |                    \
+	__DARWIN_ARM_THREAD_STATE64_FLAGS_KERNEL_SIGNED_LR); })
+
+#else /* __has_feature(ptrauth_calls) && defined(__LP64__) */
+
+#if __DARWIN_OPAQUE_ARM_THREAD_STATE64
+
+#ifndef __LP64__
+#error "Invalid configuration"
+#endif
+
+/* Return pc field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_pc(ts) \
+	((uintptr_t)((ts).__opaque_pc))
+/* Return pc field of arm_thread_state64_t as a function pointer */
+#define __darwin_arm_thread_state64_get_pc_fptr(ts) \
+	((ts).__opaque_pc)
+/* Set pc field of arm_thread_state64_t to a function pointer */
+#define __darwin_arm_thread_state64_set_pc_fptr(ts, fptr) \
+	((ts).__opaque_pc = (fptr))
+/* Return lr field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_lr(ts) \
+	((uintptr_t)((ts).__opaque_lr))
+/* Return lr field of arm_thread_state64_t as a function pointer */
+#define __darwin_arm_thread_state64_get_lr_fptr(ts) \
+	((ts).__opaque_lr)
+/* Set lr field of arm_thread_state64_t to a function pointer */
+#define __darwin_arm_thread_state64_set_lr_fptr(ts, fptr) \
+	((ts).__opaque_lr = (fptr))
+/* Return sp field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_sp(ts) \
+	((uintptr_t)((ts).__opaque_sp))
+/* Set sp field of arm_thread_state64_t to a data pointer value */
+#define __darwin_arm_thread_state64_set_sp(ts, ptr) \
+	((ts).__opaque_sp = (void*)(uintptr_t)(ptr))
+/* Return fp field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_fp(ts) \
+	((uintptr_t)((ts).__opaque_fp))
+/* Set fp field of arm_thread_state64_t to a data pointer value */
+#define __darwin_arm_thread_state64_set_fp(ts, ptr) \
+	((ts).__opaque_fp = (void*)(uintptr_t)(ptr))
+/* Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t */
+#define __darwin_arm_thread_state64_ptrauth_strip(ts) \
+	(void)(ts)
+
+#else /* __DARWIN_OPAQUE_ARM_THREAD_STATE64 */
+#if __DARWIN_UNIX03
+
+/* Return pc field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_pc(ts) \
+	((ts).__pc)
+/* Return pc field of arm_thread_state64_t as a function pointer */
+#define __darwin_arm_thread_state64_get_pc_fptr(ts) \
+	((void*)(uintptr_t)((ts).__pc))
+/* Set pc field of arm_thread_state64_t to a function pointer */
+#define __darwin_arm_thread_state64_set_pc_fptr(ts, fptr) \
+	((ts).__pc = (uintptr_t)(fptr))
+/* Return lr field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_lr(ts) \
+	((ts).__lr)
+/* Return lr field of arm_thread_state64_t as a function pointer */
+#define __darwin_arm_thread_state64_get_lr_fptr(ts) \
+	((void*)(uintptr_t)((ts).__lr))
+/* Set lr field of arm_thread_state64_t to a function pointer */
+#define __darwin_arm_thread_state64_set_lr_fptr(ts, fptr) \
+	((ts).__lr = (uintptr_t)(fptr))
+/* Return sp field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_sp(ts) \
+	((ts).__sp)
+/* Set sp field of arm_thread_state64_t to a data pointer value */
+#define __darwin_arm_thread_state64_set_sp(ts, ptr) \
+	((ts).__sp = (uintptr_t)(ptr))
+/* Return fp field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_fp(ts) \
+	((ts).__fp)
+/* Set fp field of arm_thread_state64_t to a data pointer value */
+#define __darwin_arm_thread_state64_set_fp(ts, ptr) \
+	((ts).__fp = (uintptr_t)(ptr))
+/* Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t */
+#define __darwin_arm_thread_state64_ptrauth_strip(ts) \
+	(void)(ts)
+
+#else /* __DARWIN_UNIX03 */
+
+/* Return pc field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_pc(ts) \
+	((ts).pc)
+/* Return pc field of arm_thread_state64_t as a function pointer */
+#define __darwin_arm_thread_state64_get_pc_fptr(ts) \
+	((void*)(uintptr_t)((ts).pc))
+/* Set pc field of arm_thread_state64_t to a function pointer */
+#define __darwin_arm_thread_state64_set_pc_fptr(ts, fptr) \
+	((ts).pc = (uintptr_t)(fptr))
+/* Return lr field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_lr(ts) \
+	((ts).lr)
+/* Return lr field of arm_thread_state64_t as a function pointer */
+#define __darwin_arm_thread_state64_get_lr_fptr(ts) \
+	((void*)(uintptr_t)((ts).lr))
+/* Set lr field of arm_thread_state64_t to a function pointer */
+#define __darwin_arm_thread_state64_set_lr_fptr(ts, fptr) \
+	((ts).lr = (uintptr_t)(fptr))
+/* Return sp field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_sp(ts) \
+	((ts).sp)
+/* Set sp field of arm_thread_state64_t to a data pointer value */
+#define __darwin_arm_thread_state64_set_sp(ts, ptr) \
+	((ts).sp = (uintptr_t)(ptr))
+/* Return fp field of arm_thread_state64_t as a data pointer value */
+#define __darwin_arm_thread_state64_get_fp(ts) \
+	((ts).fp)
+/* Set fp field of arm_thread_state64_t to a data pointer value */
+#define __darwin_arm_thread_state64_set_fp(ts, ptr) \
+	((ts).fp = (uintptr_t)(ptr))
+/* Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t */
+#define __darwin_arm_thread_state64_ptrauth_strip(ts) \
+	(void)(ts)
+
+#endif /* __DARWIN_UNIX03 */
+#endif /* __DARWIN_OPAQUE_ARM_THREAD_STATE64 */
+
+#endif /* __has_feature(ptrauth_calls) && defined(__LP64__) */
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL && defined(__arm64__) */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_VFP_STATE struct __darwin_arm_vfp_state
+_STRUCT_ARM_VFP_STATE
+{
+	__uint32_t __r[64];
+	__uint32_t __fpscr;
+};
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_ARM_VFP_STATE struct arm_vfp_state
+_STRUCT_ARM_VFP_STATE
+{
+	__uint32_t r[64];
+	__uint32_t fpscr;
+};
+#endif /* __DARWIN_UNIX03 */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_NEON_STATE64 struct __darwin_arm_neon_state64
+#define _STRUCT_ARM_NEON_STATE   struct __darwin_arm_neon_state
+
+#if defined(__arm64__)
+_STRUCT_ARM_NEON_STATE64
+{
+	__uint128_t __v[32];
+	__uint32_t  __fpsr;
+	__uint32_t  __fpcr;
+};
+
+_STRUCT_ARM_NEON_STATE
+{
+	__uint128_t __v[16];
+	__uint32_t  __fpsr;
+	__uint32_t  __fpcr;
+};
+#elif defined(__arm__)
+/*
+ * No 128-bit intrinsic for ARM; leave it opaque for now.
+ */
+_STRUCT_ARM_NEON_STATE64
+{
+	char opaque[(32 * 16) + (2 * sizeof(__uint32_t))];
+} __attribute__((aligned(16)));
+
+_STRUCT_ARM_NEON_STATE
+{
+	char opaque[(16 * 16) + (2 * sizeof(__uint32_t))];
+} __attribute__((aligned(16)));
+
+#else
+#error Unknown architecture.
+#endif
+
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_ARM_NEON_STATE64 struct arm_neon_state64
+#define _STRUCT_ARM_NEON_STATE struct arm_neon_state
+
+#if defined(__arm64__)
+_STRUCT_ARM_NEON_STATE64
+{
+	__uint128_t q[32];
+	uint32_t    fpsr;
+	uint32_t    fpcr;
+};
+
+_STRUCT_ARM_NEON_STATE
+{
+	__uint128_t q[16];
+	uint32_t    fpsr;
+	uint32_t    fpcr;
+};
+#elif defined(__arm__)
+/*
+ * No 128-bit intrinsic for ARM; leave it opaque for now.
+ */
+_STRUCT_ARM_NEON_STATE64
+{
+	char opaque[(32 * 16) + (2 * sizeof(__uint32_t))];
+} __attribute__((aligned(16)));
+
+_STRUCT_ARM_NEON_STATE
+{
+	char opaque[(16 * 16) + (2 * sizeof(__uint32_t))];
+} __attribute__((aligned(16)));
+
+#else
+#error Unknown architecture.
+#endif
+
+#endif /* __DARWIN_UNIX03 */
+
+
+#define _STRUCT_ARM_PAGEIN_STATE struct __arm_pagein_state
+_STRUCT_ARM_PAGEIN_STATE
+{
+	int __pagein_error;
+};
+
+/*
+ * Debug State
+ */
+#if defined(__arm__)
+/* Old-fashioned debug state is only for ARM */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_DEBUG_STATE struct __darwin_arm_debug_state
+_STRUCT_ARM_DEBUG_STATE
+{
+	__uint32_t __bvr[16];
+	__uint32_t __bcr[16];
+	__uint32_t __wvr[16];
+	__uint32_t __wcr[16];
+};
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_ARM_DEBUG_STATE struct arm_debug_state
+_STRUCT_ARM_DEBUG_STATE
+{
+	__uint32_t bvr[16];
+	__uint32_t bcr[16];
+	__uint32_t wvr[16];
+	__uint32_t wcr[16];
+};
+#endif /* __DARWIN_UNIX03 */
+
+#elif defined(__arm64__)
+
+/* ARM's arm_debug_state is ARM64's arm_legacy_debug_state */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_LEGACY_DEBUG_STATE struct __arm_legacy_debug_state
+_STRUCT_ARM_LEGACY_DEBUG_STATE
+{
+	__uint32_t __bvr[16];
+	__uint32_t __bcr[16];
+	__uint32_t __wvr[16];
+	__uint32_t __wcr[16];
+};
+#else /* __DARWIN_UNIX03 */
+#define _STRUCT_ARM_LEGACY_DEBUG_STATE struct arm_legacy_debug_state
+_STRUCT_ARM_LEGACY_DEBUG_STATE
+{
+	__uint32_t bvr[16];
+	__uint32_t bcr[16];
+	__uint32_t wvr[16];
+	__uint32_t wcr[16];
+};
+#endif /* __DARWIN_UNIX03 */
+#else
+#error unknown architecture
+#endif
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_DEBUG_STATE32 struct __darwin_arm_debug_state32
+_STRUCT_ARM_DEBUG_STATE32
+{
+	__uint32_t __bvr[16];
+	__uint32_t __bcr[16];
+	__uint32_t __wvr[16];
+	__uint32_t __wcr[16];
+	__uint64_t __mdscr_el1; /* Bit 0 is SS (Hardware Single Step) */
+};
+
+#define _STRUCT_ARM_DEBUG_STATE64 struct __darwin_arm_debug_state64
+_STRUCT_ARM_DEBUG_STATE64
+{
+	__uint64_t __bvr[16];
+	__uint64_t __bcr[16];
+	__uint64_t __wvr[16];
+	__uint64_t __wcr[16];
+	__uint64_t __mdscr_el1; /* Bit 0 is SS (Hardware Single Step) */
+};
+#else /* !__DARWIN_UNIX03 */
+#define _STRUCT_ARM_DEBUG_STATE32 struct arm_debug_state32
+_STRUCT_ARM_DEBUG_STATE32
+{
+	__uint32_t bvr[16];
+	__uint32_t bcr[16];
+	__uint32_t wvr[16];
+	__uint32_t wcr[16];
+	__uint64_t mdscr_el1; /* Bit 0 is SS (Hardware Single Step) */
+};
+
+#define _STRUCT_ARM_DEBUG_STATE64 struct arm_debug_state64
+_STRUCT_ARM_DEBUG_STATE64
+{
+	__uint64_t bvr[16];
+	__uint64_t bcr[16];
+	__uint64_t wvr[16];
+	__uint64_t wcr[16];
+	__uint64_t mdscr_el1; /* Bit 0 is SS (Hardware Single Step) */
+};
+#endif /* __DARWIN_UNIX03 */
+
+#if __DARWIN_UNIX03
+#define _STRUCT_ARM_CPMU_STATE64 struct __darwin_arm_cpmu_state64
+_STRUCT_ARM_CPMU_STATE64
+{
+	__uint64_t __ctrs[16];
+};
+#else /* __DARWIN_UNIX03 */
+#define _STRUCT_ARM_CPMU_STATE64 struct arm_cpmu_state64
+_STRUCT_ARM_CPMU_STATE64
+{
+	__uint64_t ctrs[16];
+};
+#endif /* !__DARWIN_UNIX03 */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif /* _MACH_ARM__STRUCTS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/boolean.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/boolean.h
new file mode 100644
index 0000000000000000000000000000000000000000..9cdf7c237ea74c8a361cf7398692eeaa5fd9847c
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/boolean.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2000-2007 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	boolean.h
+ *
+ *	Boolean type, for ARM.
+ */
+
+#ifndef _MACH_ARM_BOOLEAN_H_
+#define _MACH_ARM_BOOLEAN_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+typedef int             boolean_t;
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _MACH_ARM_BOOLEAN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/exception.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/exception.h
new file mode 100644
index 0000000000000000000000000000000000000000..c27dec1b56e43f60442f5c34cbbc38bbb55e3442
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/exception.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2007 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 _MACH_ARM_EXCEPTION_H_
+#define _MACH_ARM_EXCEPTION_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#define EXC_TYPES_COUNT         14      /* incl. illegal exception 0 */
+
+#define EXC_MASK_MACHINE         0
+
+#define EXCEPTION_CODE_MAX       2      /*  code and subcode */
+
+
+/*
+ *	Trap numbers as defined by the hardware exception vectors.
+ */
+
+/*
+ *      EXC_BAD_INSTRUCTION
+ */
+
+#define EXC_ARM_UNDEFINED       1       /* Undefined */
+
+/*
+ *      EXC_ARITHMETIC
+ */
+
+#define EXC_ARM_FP_UNDEFINED    0       /* Undefined Floating Point Exception */
+#define EXC_ARM_FP_IO           1       /* Invalid Floating Point Operation */
+#define EXC_ARM_FP_DZ           2       /* Floating Point Divide by Zero */
+#define EXC_ARM_FP_OF           3       /* Floating Point Overflow */
+#define EXC_ARM_FP_UF           4       /* Floating Point Underflow */
+#define EXC_ARM_FP_IX           5       /* Inexact Floating Point Result */
+#define EXC_ARM_FP_ID           6       /* Floating Point Denormal Input */
+
+/*
+ *      EXC_BAD_ACCESS
+ *      Note: do not conflict with kern_return_t values returned by vm_fault
+ */
+
+#define EXC_ARM_DA_ALIGN        0x101   /* Alignment Fault */
+#define EXC_ARM_DA_DEBUG        0x102   /* Debug (watch/break) Fault */
+#define EXC_ARM_SP_ALIGN        0x103   /* SP Alignment Fault */
+#define EXC_ARM_SWP             0x104   /* SWP instruction */
+#define EXC_ARM_PAC_FAIL        0x105   /* PAC authentication failure */
+
+/*
+ *	EXC_BREAKPOINT
+ */
+
+#define EXC_ARM_BREAKPOINT      1       /* breakpoint trap */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _MACH_ARM_EXCEPTION_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/kern_return.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/kern_return.h
new file mode 100644
index 0000000000000000000000000000000000000000..bfa07951b3f952173351d3c833b3de8af8f56a99
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/kern_return.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2000-2007 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	kern_return.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
+ *	Date:	1985
+ *
+ *	Machine-dependent kernel return definitions.
+ */
+
+#ifndef _MACH_ARM_KERN_RETURN_H_
+#define _MACH_ARM_KERN_RETURN_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#ifndef ASSEMBLER
+typedef int             kern_return_t;
+#endif  /* ASSEMBLER */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _MACH_ARM_KERN_RETURN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/processor_info.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/processor_info.h
new file mode 100644
index 0000000000000000000000000000000000000000..a302fbfcd35e2a1325ceb32dbd928bc46ce32de4
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/processor_info.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2007-2018 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 _MACH_ARM_PROCESSOR_INFO_H_
+#define _MACH_ARM_PROCESSOR_INFO_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#define PROCESSOR_CPU_STAT   0x10000003 /* Low-level CPU statistics */
+#define PROCESSOR_CPU_STAT64 0x10000004 /* Low-level CPU statistics, in full 64-bit */
+
+#include  /* uint32_t, uint64_t */
+
+struct processor_cpu_stat {
+	uint32_t irq_ex_cnt;
+	uint32_t ipi_cnt;
+	uint32_t timer_cnt;
+	uint32_t undef_ex_cnt;
+	uint32_t unaligned_cnt;
+	uint32_t vfp_cnt;
+	uint32_t vfp_shortv_cnt;
+	uint32_t data_ex_cnt;
+	uint32_t instr_ex_cnt;
+};
+
+typedef struct processor_cpu_stat  processor_cpu_stat_data_t;
+typedef struct processor_cpu_stat *processor_cpu_stat_t;
+#define PROCESSOR_CPU_STAT_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(processor_cpu_stat_data_t) / sizeof(natural_t)))
+
+struct processor_cpu_stat64 {
+	uint64_t irq_ex_cnt;
+	uint64_t ipi_cnt;
+	uint64_t timer_cnt;
+	uint64_t undef_ex_cnt;
+	uint64_t unaligned_cnt;
+	uint64_t vfp_cnt;
+	uint64_t vfp_shortv_cnt;
+	uint64_t data_ex_cnt;
+	uint64_t instr_ex_cnt;
+	uint64_t pmi_cnt;
+} __attribute__((packed, aligned(4)));
+
+typedef struct processor_cpu_stat64  processor_cpu_stat64_data_t;
+typedef struct processor_cpu_stat64 *processor_cpu_stat64_t;
+#define PROCESSOR_CPU_STAT64_COUNT ((mach_msg_type_number_t) \
+	        (sizeof(processor_cpu_stat64_data_t) / sizeof(integer_t)))
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif /* _MACH_ARM_PROCESSOR_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/rpc.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/rpc.h
new file mode 100644
index 0000000000000000000000000000000000000000..cb100ece01e37a2fa9af596077ffdb1d07f6b316
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/rpc.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2000-2007 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+
+#ifndef _MACH_ARM_RPC_H_
+#define _MACH_ARM_RPC_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif /* _MACH_ARM_RPC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/thread_state.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/thread_state.h
new file mode 100644
index 0000000000000000000000000000000000000000..d72a3c201307505324eb08295c65b3776893a7f1
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/thread_state.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2000-2007 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+
+#ifndef _MACH_ARM_THREAD_STATE_H_
+#define _MACH_ARM_THREAD_STATE_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+/* Size of maximum exported thread state in words */
+#define ARM_THREAD_STATE_MAX    (1296)    /* Size of biggest state possible */
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _MACH_ARM_THREAD_STATE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/thread_status.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/thread_status.h
new file mode 100644
index 0000000000000000000000000000000000000000..f270b61fc6edaeb1ccf0a40c612ed64705de849d
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/thread_status.h
@@ -0,0 +1,236 @@
+/*
+ * Copyright (c) 2007 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@
+ */
+/*
+ * FILE_ID: thread_status.h
+ */
+
+
+#ifndef _ARM_THREAD_STATUS_H_
+#define _ARM_THREAD_STATUS_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#include 
+#include 
+#include 
+#include 
+
+
+/*
+ *    Support for determining the state of a thread
+ */
+
+
+/*
+ *  Flavors
+ */
+
+#define ARM_THREAD_STATE         1
+#define ARM_UNIFIED_THREAD_STATE ARM_THREAD_STATE
+#define ARM_VFP_STATE            2
+#define ARM_EXCEPTION_STATE      3
+#define ARM_DEBUG_STATE          4 /* pre-armv8 */
+#define THREAD_STATE_NONE        5
+#define ARM_THREAD_STATE64       6
+#define ARM_EXCEPTION_STATE64    7
+//      ARM_THREAD_STATE_LAST    8 /* legacy */
+#define ARM_THREAD_STATE32       9
+
+
+/* API */
+#define ARM_DEBUG_STATE32        14
+#define ARM_DEBUG_STATE64        15
+#define ARM_NEON_STATE           16
+#define ARM_NEON_STATE64         17
+#define ARM_CPMU_STATE64         18
+
+
+#define ARM_PAGEIN_STATE         27
+
+#ifndef ARM_STATE_FLAVOR_IS_OTHER_VALID
+#define ARM_STATE_FLAVOR_IS_OTHER_VALID(_flavor_) 0
+#endif
+
+#define VALID_THREAD_STATE_FLAVOR(x) \
+	((x == ARM_THREAD_STATE) ||           \
+	 (x == ARM_VFP_STATE) ||              \
+	 (x == ARM_EXCEPTION_STATE) ||        \
+	 (x == ARM_DEBUG_STATE) ||            \
+	 (x == THREAD_STATE_NONE) ||          \
+	 (x == ARM_THREAD_STATE32) ||         \
+	 (x == ARM_THREAD_STATE64) ||         \
+	 (x == ARM_EXCEPTION_STATE64) ||      \
+	 (x == ARM_NEON_STATE) ||             \
+	 (x == ARM_NEON_STATE64) ||           \
+	 (x == ARM_DEBUG_STATE32) ||          \
+	 (x == ARM_DEBUG_STATE64) ||          \
+	 (x == ARM_PAGEIN_STATE) ||           \
+	 (ARM_STATE_FLAVOR_IS_OTHER_VALID(x)))
+
+struct arm_state_hdr {
+	uint32_t flavor;
+	uint32_t count;
+};
+typedef struct arm_state_hdr arm_state_hdr_t;
+
+typedef _STRUCT_ARM_THREAD_STATE   arm_thread_state_t;
+typedef _STRUCT_ARM_THREAD_STATE   arm_thread_state32_t;
+typedef _STRUCT_ARM_THREAD_STATE64 arm_thread_state64_t;
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL && defined(__arm64__)
+
+/* Accessor macros for arm_thread_state64_t pointer fields */
+
+/* Return pc field of arm_thread_state64_t as a data pointer value */
+#define arm_thread_state64_get_pc(ts) \
+	        __darwin_arm_thread_state64_get_pc(ts)
+/* Return pc field of arm_thread_state64_t as a function pointer. May return
+ * NULL if a valid function pointer cannot be constructed, the caller should
+ * fall back to the arm_thread_state64_get_pc() macro in that case. */
+#define arm_thread_state64_get_pc_fptr(ts) \
+	        __darwin_arm_thread_state64_get_pc_fptr(ts)
+/* Set pc field of arm_thread_state64_t to a function pointer */
+#define arm_thread_state64_set_pc_fptr(ts, fptr) \
+	        __darwin_arm_thread_state64_set_pc_fptr(ts, fptr)
+/* Return lr field of arm_thread_state64_t as a data pointer value */
+#define arm_thread_state64_get_lr(ts) \
+	        __darwin_arm_thread_state64_get_lr(ts)
+/* Return lr field of arm_thread_state64_t as a function pointer. May return
+ * NULL if a valid function pointer cannot be constructed, the caller should
+ * fall back to the arm_thread_state64_get_lr() macro in that case. */
+#define arm_thread_state64_get_lr_fptr(ts) \
+	        __darwin_arm_thread_state64_get_lr_fptr(ts)
+/* Set lr field of arm_thread_state64_t to a function pointer */
+#define arm_thread_state64_set_lr_fptr(ts, fptr) \
+	        __darwin_arm_thread_state64_set_lr_fptr(ts, fptr)
+/* Return sp field of arm_thread_state64_t as a data pointer value */
+#define arm_thread_state64_get_sp(ts) \
+	        __darwin_arm_thread_state64_get_sp(ts)
+/* Set sp field of arm_thread_state64_t to a data pointer value */
+#define arm_thread_state64_set_sp(ts, ptr) \
+	        __darwin_arm_thread_state64_set_sp(ts, ptr)
+/* Return fp field of arm_thread_state64_t as a data pointer value */
+#define arm_thread_state64_get_fp(ts) \
+	        __darwin_arm_thread_state64_get_fp(ts)
+/* Set fp field of arm_thread_state64_t to a data pointer value */
+#define arm_thread_state64_set_fp(ts, ptr) \
+	        __darwin_arm_thread_state64_set_fp(ts, ptr)
+/* Strip ptr auth bits from pc, lr, sp and fp field of arm_thread_state64_t */
+#define arm_thread_state64_ptrauth_strip(ts) \
+	        __darwin_arm_thread_state64_ptrauth_strip(ts)
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL && defined(__arm64__) */
+
+struct arm_unified_thread_state {
+	arm_state_hdr_t ash;
+	union {
+		arm_thread_state32_t ts_32;
+		arm_thread_state64_t ts_64;
+	} uts;
+};
+#define ts_32 uts.ts_32
+#define ts_64 uts.ts_64
+typedef struct arm_unified_thread_state arm_unified_thread_state_t;
+
+#define ARM_THREAD_STATE_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_thread_state_t)/sizeof(uint32_t)))
+#define ARM_THREAD_STATE32_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_thread_state32_t)/sizeof(uint32_t)))
+#define ARM_THREAD_STATE64_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_thread_state64_t)/sizeof(uint32_t)))
+#define ARM_UNIFIED_THREAD_STATE_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_unified_thread_state_t)/sizeof(uint32_t)))
+
+
+typedef _STRUCT_ARM_VFP_STATE         arm_vfp_state_t;
+typedef _STRUCT_ARM_NEON_STATE        arm_neon_state_t;
+typedef _STRUCT_ARM_NEON_STATE        arm_neon_state32_t;
+typedef _STRUCT_ARM_NEON_STATE64      arm_neon_state64_t;
+
+
+typedef _STRUCT_ARM_EXCEPTION_STATE   arm_exception_state_t;
+typedef _STRUCT_ARM_EXCEPTION_STATE   arm_exception_state32_t;
+typedef _STRUCT_ARM_EXCEPTION_STATE64 arm_exception_state64_t;
+
+typedef _STRUCT_ARM_DEBUG_STATE32     arm_debug_state32_t;
+typedef _STRUCT_ARM_DEBUG_STATE64     arm_debug_state64_t;
+
+typedef _STRUCT_ARM_PAGEIN_STATE      arm_pagein_state_t;
+
+/*
+ * Otherwise not ARM64 kernel and we must preserve legacy ARM definitions of
+ * arm_debug_state for binary compatability of userland consumers of this file.
+ */
+#if defined(__arm__)
+typedef _STRUCT_ARM_DEBUG_STATE        arm_debug_state_t;
+#elif defined(__arm64__)
+typedef _STRUCT_ARM_LEGACY_DEBUG_STATE arm_debug_state_t;
+#else /* defined(__arm__) */
+#error Undefined architecture
+#endif /* defined(__arm__) */
+
+#define ARM_VFP_STATE_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_vfp_state_t)/sizeof(uint32_t)))
+
+#define ARM_EXCEPTION_STATE_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_exception_state_t)/sizeof(uint32_t)))
+
+#define ARM_EXCEPTION_STATE64_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_exception_state64_t)/sizeof(uint32_t)))
+
+#define ARM_DEBUG_STATE_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_debug_state_t)/sizeof(uint32_t)))
+
+#define ARM_DEBUG_STATE32_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_debug_state32_t)/sizeof(uint32_t)))
+
+#define ARM_PAGEIN_STATE_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_pagein_state_t)/sizeof(uint32_t)))
+
+#define ARM_DEBUG_STATE64_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_debug_state64_t)/sizeof(uint32_t)))
+
+#define ARM_NEON_STATE_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_neon_state_t)/sizeof(uint32_t)))
+
+#define ARM_NEON_STATE64_COUNT ((mach_msg_type_number_t) \
+	(sizeof (arm_neon_state64_t)/sizeof(uint32_t)))
+
+#define MACHINE_THREAD_STATE       ARM_THREAD_STATE
+#define MACHINE_THREAD_STATE_COUNT ARM_UNIFIED_THREAD_STATE_COUNT
+
+
+/*
+ * Largest state on this machine:
+ */
+#define THREAD_MACHINE_STATE_MAX THREAD_STATE_MAX
+
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif /* _ARM_THREAD_STATUS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/vm_param.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/vm_param.h
new file mode 100644
index 0000000000000000000000000000000000000000..6915e15f85eb85f505e0ed191026cb56fefa5014
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/vm_param.h
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2007 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@
+ */
+/*
+ * FILE_ID: vm_param.h
+ */
+
+/*
+ *	ARM machine dependent virtual memory parameters.
+ */
+
+#ifndef _MACH_ARM_VM_PARAM_H_
+#define _MACH_ARM_VM_PARAM_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+
+
+#if !defined (KERNEL) && !defined (__ASSEMBLER__)
+#include 
+#endif
+
+#define BYTE_SIZE       8       /* byte size in bits */
+
+
+#define PAGE_SHIFT                      vm_page_shift
+#define PAGE_SIZE                       vm_page_size
+#define PAGE_MASK                       vm_page_mask
+
+#define VM_PAGE_SIZE            vm_page_size
+
+#define machine_ptob(x)         ((x) << PAGE_SHIFT)
+
+
+#define PAGE_MAX_SHIFT          14
+#define PAGE_MAX_SIZE           (1 << PAGE_MAX_SHIFT)
+#define PAGE_MAX_MASK           (PAGE_MAX_SIZE-1)
+
+#define PAGE_MIN_SHIFT          12
+#define PAGE_MIN_SIZE           (1 << PAGE_MIN_SHIFT)
+#define PAGE_MIN_MASK           (PAGE_MIN_SIZE-1)
+
+#define VM_MAX_PAGE_ADDRESS     MACH_VM_MAX_ADDRESS
+
+#ifndef __ASSEMBLER__
+
+
+#if defined (__arm__)
+
+#define VM_MIN_ADDRESS          ((vm_address_t) 0x00000000)
+#define VM_MAX_ADDRESS          ((vm_address_t) 0x80000000)
+
+/* system-wide values */
+#define MACH_VM_MIN_ADDRESS     ((mach_vm_offset_t) 0)
+#define MACH_VM_MAX_ADDRESS     ((mach_vm_offset_t) VM_MAX_ADDRESS)
+
+#elif defined (__arm64__)
+
+#define VM_MIN_ADDRESS          ((vm_address_t) 0x0000000000000000ULL)
+#define VM_MAX_ADDRESS          ((vm_address_t) 0x00000000F0000000ULL)
+
+/* system-wide values */
+#define MACH_VM_MIN_ADDRESS_RAW 0x0ULL
+#define MACH_VM_MAX_ADDRESS_RAW 0x00007FFFFE000000ULL
+
+#define MACH_VM_MIN_ADDRESS     ((mach_vm_offset_t) MACH_VM_MIN_ADDRESS_RAW)
+#define MACH_VM_MAX_ADDRESS     ((mach_vm_offset_t) MACH_VM_MAX_ADDRESS_RAW)
+
+#define MACH_VM_MIN_GPU_CARVEOUT_ADDRESS_RAW 0x0000001000000000ULL
+#define MACH_VM_MAX_GPU_CARVEOUT_ADDRESS_RAW 0x0000007000000000ULL
+#define MACH_VM_MIN_GPU_CARVEOUT_ADDRESS     ((mach_vm_offset_t) MACH_VM_MIN_GPU_CARVEOUT_ADDRESS_RAW)
+#define MACH_VM_MAX_GPU_CARVEOUT_ADDRESS     ((mach_vm_offset_t) MACH_VM_MAX_GPU_CARVEOUT_ADDRESS_RAW)
+
+#else /* defined(__arm64__) */
+#error architecture not supported
+#endif
+
+#define VM_MAP_MIN_ADDRESS      VM_MIN_ADDRESS
+#define VM_MAP_MAX_ADDRESS      VM_MAX_ADDRESS
+
+
+#endif  /* !__ASSEMBLER__ */
+
+#define SWI_SYSCALL     0x80
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _MACH_ARM_VM_PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/aarch64-macos.13-none/mach/arm/vm_types.h b/lib/libc/include/aarch64-macos.13-none/mach/arm/vm_types.h
new file mode 100644
index 0000000000000000000000000000000000000000..396923d4c2a278e101fbae8a9e51d6520041d467
--- /dev/null
+++ b/lib/libc/include/aarch64-macos.13-none/mach/arm/vm_types.h
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2000-2007 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	vm_types.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date: 1985
+ *
+ *	Header file for VM data types.  ARM version.
+ */
+
+#ifndef _MACH_ARM_VM_TYPES_H_
+#define _MACH_ARM_VM_TYPES_H_
+
+#if defined (__arm__) || defined (__arm64__)
+
+#ifndef ASSEMBLER
+
+#include 
+#include 
+#include 
+#include 
+
+/*
+ * natural_t and integer_t are Mach's legacy types for machine-
+ * independent integer types (unsigned, and signed, respectively).
+ * Their original purpose was to define other types in a machine/
+ * compiler independent way.
+ *
+ * They also had an implicit "same size as pointer" characteristic
+ * to them (i.e. Mach's traditional types are very ILP32 or ILP64
+ * centric).  We will likely support x86 ABIs that do not follow
+ * either ofthese models (specifically LP64).  Therefore, we had to
+ * make a choice between making these types scale with pointers or stay
+ * tied to integers.  Because their use is predominantly tied to
+ * to the size of an integer, we are keeping that association and
+ * breaking free from pointer size guarantees.
+ *
+ * New use of these types is discouraged.
+ */
+typedef __darwin_natural_t      natural_t;
+typedef int                     integer_t;
+
+/*
+ * A vm_offset_t is a type-neutral pointer,
+ * e.g. an offset into a virtual memory space.
+ */
+#ifdef __LP64__
+typedef uintptr_t               vm_offset_t __kernel_ptr_semantics;
+typedef uintptr_t               vm_size_t;
+
+typedef uint64_t                mach_vm_address_t __kernel_ptr_semantics;
+typedef uint64_t                mach_vm_offset_t __kernel_ptr_semantics;
+typedef uint64_t                mach_vm_size_t;
+
+typedef uint64_t                vm_map_offset_t __kernel_ptr_semantics;
+typedef uint64_t                vm_map_address_t __kernel_ptr_semantics;
+typedef uint64_t                vm_map_size_t;
+#else
+typedef natural_t               vm_offset_t __kernel_ptr_semantics;
+/*
+ * A vm_size_t is the proper type for e.g.
+ * expressing the difference between two
+ * vm_offset_t entities.
+ */
+typedef natural_t               vm_size_t;
+
+/*
+ * This new type is independent of a particular vm map's
+ * implementation size - and represents appropriate types
+ * for all possible maps.  This is used for interfaces
+ * where the size of the map is not known - or we don't
+ * want to have to distinguish.
+ */
+#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0)
+typedef uint32_t                mach_vm_address_t;
+typedef uint32_t                mach_vm_offset_t;
+typedef uint32_t                mach_vm_size_t;
+#else
+typedef uint64_t                mach_vm_address_t __kernel_ptr_semantics;
+typedef uint64_t                mach_vm_offset_t __kernel_ptr_semantics;
+typedef uint64_t                mach_vm_size_t;
+#endif
+
+typedef uint32_t                vm_map_offset_t __kernel_ptr_semantics;
+typedef uint32_t                vm_map_address_t __kernel_ptr_semantics;
+typedef uint32_t                vm_map_size_t;
+#endif /* __LP64__ */
+
+
+typedef uint32_t                vm32_offset_t;
+typedef uint32_t                vm32_address_t;
+typedef uint32_t                vm32_size_t;
+
+typedef vm_offset_t             mach_port_context_t;
+
+
+#endif  /* ASSEMBLER */
+
+/*
+ * If composing messages by hand (please do not)
+ */
+#define MACH_MSG_TYPE_INTEGER_T MACH_MSG_TYPE_INTEGER_32
+
+#endif /* defined (__arm__) || defined (__arm64__) */
+
+#endif  /* _MACH_ARM_VM_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos-any/TargetConditionals.h b/lib/libc/include/any-macos-any/TargetConditionals.h
new file mode 100644
index 0000000000000000000000000000000000000000..020e96ee9b891219c391a43a1fad2c4d24254a02
--- /dev/null
+++ b/lib/libc/include/any-macos-any/TargetConditionals.h
@@ -0,0 +1,525 @@
+/*
+ * Copyright (c) 2000-2014 by 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@
+ */
+ 
+/*
+     File:       TargetConditionals.h
+ 
+     Contains:   Autoconfiguration of TARGET_ conditionals for Mac OS X and iPhone
+     
+                 Note:  TargetConditionals.h in 3.4 Universal Interfaces works
+                        with all compilers.  This header only recognizes compilers
+                        known to run on Mac OS X.
+  
+*/
+
+#ifndef __TARGETCONDITIONALS__
+#define __TARGETCONDITIONALS__
+
+/*
+ *
+ *  TARGET_CPU_*
+ *  These conditionals specify which microprocessor instruction set is being
+ *  generated.  At most one of these is true, the rest are false.
+ *
+ *      TARGET_CPU_PPC          - Compiler is generating PowerPC instructions for 32-bit mode
+ *      TARGET_CPU_PPC64        - Compiler is generating PowerPC instructions for 64-bit mode
+ *      TARGET_CPU_68K          - Compiler is generating 680x0 instructions
+ *      TARGET_CPU_X86          - Compiler is generating x86 instructions for 32-bit mode
+ *      TARGET_CPU_X86_64       - Compiler is generating x86 instructions for 64-bit mode
+ *      TARGET_CPU_ARM          - Compiler is generating ARM instructions for 32-bit mode
+ *      TARGET_CPU_ARM64        - Compiler is generating ARM instructions for 64-bit mode
+ *      TARGET_CPU_MIPS         - Compiler is generating MIPS instructions
+ *      TARGET_CPU_SPARC        - Compiler is generating Sparc instructions
+ *      TARGET_CPU_ALPHA        - Compiler is generating Dec Alpha instructions
+ *
+ *
+ *  TARGET_OS_*
+ *  These conditionals specify in which Operating System the generated code will
+ *  run.  Indention is used to show which conditionals are evolutionary subclasses.
+ *
+ *  The MAC/WIN32/UNIX conditionals are mutually exclusive.
+ *  The IOS/TV/WATCH conditionals are mutually exclusive.
+ *
+ *
+ *      TARGET_OS_WIN32           - Generated code will run under WIN32 API
+ *      TARGET_OS_WINDOWS         - Generated code will run under Windows
+ *      TARGET_OS_UNIX            - Generated code will run under some Unix (not OSX)
+ *      TARGET_OS_LINUX           - Generated code will run under Linux
+ *      TARGET_OS_MAC             - Generated code will run under Mac OS X variant
+ *         TARGET_OS_OSX          - Generated code will run under OS X devices
+ *         TARGET_OS_IPHONE          - Generated code for firmware, devices, or simulator
+ *            TARGET_OS_IOS             - Generated code will run under iOS
+ *            TARGET_OS_TV              - Generated code will run under Apple TV OS
+ *            TARGET_OS_WATCH           - Generated code will run under Apple Watch OS
+ *            TARGET_OS_BRIDGE          - Generated code will run under Bridge devices
+ *            TARGET_OS_MACCATALYST     - Generated code will run under macOS
+ *         TARGET_OS_DRIVERKIT          - Generated code will run under macOS, iOS, Apple TV OS, or Apple Watch OS
+ *         TARGET_OS_SIMULATOR      - Generated code will run under a simulator
+ *
+ *      TARGET_OS_EMBEDDED        - DEPRECATED: Use TARGET_OS_IPHONE and/or TARGET_OS_SIMULATOR instead
+ *      TARGET_IPHONE_SIMULATOR   - DEPRECATED: Same as TARGET_OS_SIMULATOR
+ *      TARGET_OS_NANO            - DEPRECATED: Same as TARGET_OS_WATCH
+ *
+ *    +---------------------------------------------------------------------------+
+ *    |                             TARGET_OS_MAC                                 |
+ *    | +-----+ +-------------------------------------------------+ +-----------+ |
+ *    | |     | |                  TARGET_OS_IPHONE               | |           | |
+ *    | |     | | +-----------------+ +----+ +-------+ +--------+ | |           | |
+ *    | |     | | |       IOS       | |    | |       | |        | | |           | |
+ *    | | OSX | | | +-------------+ | | TV | | WATCH | | BRIDGE | | | DRIVERKIT | |
+ *    | |     | | | | MACCATALYST | | |    | |       | |        | | |           | |
+ *    | |     | | | +-------------+ | |    | |       | |        | | |           | |
+ *    | |     | | +-----------------+ +----+ +-------+ +--------+ | |           | |
+ *    | +-----+ +-------------------------------------------------+ +-----------+ |
+ *    +---------------------------------------------------------------------------+
+
+ *  TARGET_RT_*
+ *  These conditionals specify in which runtime the generated code will
+ *  run. This is needed when the OS and CPU support more than one runtime
+ *  (e.g. Mac OS X supports CFM and mach-o).
+ *
+ *      TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers
+ *      TARGET_RT_BIG_ENDIAN    - Generated code uses big endian format for integers
+ *      TARGET_RT_64_BIT        - Generated code uses 64-bit pointers
+ *      TARGET_RT_MAC_CFM       - TARGET_OS_MAC is true and CFM68K or PowerPC CFM (TVectors) are used
+ *      TARGET_RT_MAC_MACHO     - TARGET_OS_MAC is true and Mach-O/dlyd runtime is used
+ */
+ 
+ /*
+ * TARGET_OS conditionals can be enabled via clang preprocessor extensions:
+ *
+ *      __is_target_arch
+ *      __is_target_vendor
+ *      __is_target_os
+ *      __is_target_environment
+ *
+ *  "-target=x86_64-apple-ios12-macabi"
+ *      TARGET_OS_MAC=1
+ *      TARGET_OS_IPHONE=1
+ *      TARGET_OS_IOS=1
+ *      TARGET_OS_MACCATALYST=1
+ *
+ *  "-target=x86_64-apple-ios12-simulator"
+ *      TARGET_OS_MAC=1
+ *      TARGET_OS_IPHONE=1
+ *      TARGET_OS_IOS=1
+ *      TARGET_OS_SIMULATOR=1
+ *
+ * DYNAMIC_TARGETS_ENABLED indicates that the core TARGET_OS macros were enabled via clang preprocessor extensions.
+ * If this value is not set, the macro enablements will fall back to the static behavior.
+ * It is disabled by default.
+ */
+
+#if defined(__has_builtin)
+ #if __has_builtin(__is_target_arch)
+  #if __has_builtin(__is_target_vendor)
+   #if __has_builtin(__is_target_os)
+    #if __has_builtin(__is_target_environment)
+
+    /* "-target=x86_64-apple-ios12-macabi" */
+    /* "-target=arm64-apple-ios12-macabi" */
+    /* "-target=arm64e-apple-ios12-macabi" */
+    #if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(macabi)
+        #define TARGET_OS_OSX               0
+        #define TARGET_OS_IPHONE            1
+        #define TARGET_OS_IOS               1
+        #define TARGET_OS_WATCH             0
+        
+        #define TARGET_OS_TV                0
+        #define TARGET_OS_SIMULATOR         0
+        #define TARGET_OS_EMBEDDED          0    
+        #define TARGET_OS_RTKIT             0
+        #define TARGET_OS_MACCATALYST       1
+        #define TARGET_OS_MACCATALYST            1
+
+        #ifndef TARGET_OS_UIKITFORMAC
+         #define TARGET_OS_UIKITFORMAC      1
+        #endif
+        #define TARGET_OS_DRIVERKIT         0
+        #define DYNAMIC_TARGETS_ENABLED     1
+    #endif 
+
+    /* "-target=x86_64-apple-ios12-simulator" */
+    /* "-target=arm64-apple-ios12-simulator" */
+    /* "-target=arm64e-apple-ios12-simulator" */
+    #if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(simulator)
+        #define TARGET_OS_OSX               0
+        #define TARGET_OS_IPHONE            1
+        #define TARGET_OS_IOS               1
+        #define TARGET_OS_WATCH             0
+        
+        #define TARGET_OS_TV                0
+        #define TARGET_OS_SIMULATOR         1
+        #define TARGET_OS_EMBEDDED          0    
+        #define TARGET_OS_RTKIT             0
+        #define TARGET_OS_MACCATALYST       0
+        #define TARGET_OS_MACCATALYST            0
+
+        #ifndef TARGET_OS_UIKITFORMAC
+         #define TARGET_OS_UIKITFORMAC      0
+        #endif
+        #define TARGET_OS_DRIVERKIT         0
+        #define DYNAMIC_TARGETS_ENABLED     1
+    #endif 
+
+
+
+    /* "-target=x86_64-apple-driverkit19.0" */
+    /* "-target=arm64-apple-driverkit19.0" */
+    /* "-target=arm64e-apple-driverkit19.0" */
+    #if __is_target_vendor(apple) && __is_target_os(driverkit)
+        #define TARGET_OS_OSX               0
+        #define TARGET_OS_IPHONE            0
+        #define TARGET_OS_IOS               0
+        #define TARGET_OS_WATCH             0
+        
+        #define TARGET_OS_TV                0
+        #define TARGET_OS_SIMULATOR         0
+        #define TARGET_OS_EMBEDDED          0
+        #define TARGET_OS_RTKIT             0
+        #define TARGET_OS_MACCATALYST       0
+        #define TARGET_OS_MACCATALYST            0
+
+        #ifndef TARGET_OS_UIKITFORMAC
+         #define TARGET_OS_UIKITFORMAC      0
+        #endif
+        #define TARGET_OS_DRIVERKIT         1
+        #define DYNAMIC_TARGETS_ENABLED     1
+    #endif
+
+    #endif /* #if __has_builtin(__is_target_environment) */
+   #endif /* #if __has_builtin(__is_target_os) */
+  #endif /* #if __has_builtin(__is_target_vendor) */
+ #endif /* #if __has_builtin(__is_target_arch) */
+#endif /* #if defined(__has_builtin) */
+
+
+#ifndef DYNAMIC_TARGETS_ENABLED
+ #define DYNAMIC_TARGETS_ENABLED   0
+#endif /* DYNAMIC_TARGETS_ENABLED */
+
+/*
+ *    gcc based compiler used on Mac OS X
+ */
+#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )
+    #define TARGET_OS_MAC               1
+    #define TARGET_OS_WIN32             0
+    #define TARGET_OS_WINDOWS           0
+    #define TARGET_OS_UNIX              0
+    #define TARGET_OS_LINUX             0
+
+    #if !DYNAMIC_TARGETS_ENABLED
+        #define TARGET_OS_OSX               1
+        #define TARGET_OS_IPHONE            0
+        #define TARGET_OS_IOS               0
+        #define TARGET_OS_WATCH             0
+        
+        #define TARGET_OS_TV                0
+        #define TARGET_OS_MACCATALYST       0
+        #define TARGET_OS_MACCATALYST            0
+
+        #ifndef TARGET_OS_UIKITFORMAC
+         #define TARGET_OS_UIKITFORMAC      0
+        #endif
+        #define TARGET_OS_SIMULATOR         0
+        #define TARGET_OS_EMBEDDED          0 
+        #define TARGET_OS_RTKIT             0 
+        #define TARGET_OS_DRIVERKIT         0
+    #endif
+    
+    #define TARGET_IPHONE_SIMULATOR     TARGET_OS_SIMULATOR /* deprecated */
+    #define TARGET_OS_NANO              TARGET_OS_WATCH /* deprecated */ 
+
+    #define TARGET_ABI_USES_IOS_VALUES  (!TARGET_CPU_X86_64 || (TARGET_OS_IPHONE && !TARGET_OS_MACCATALYST))
+    #if defined(__ppc__)
+        #define TARGET_CPU_PPC          1
+        #define TARGET_CPU_PPC64        0
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          0
+        #define TARGET_CPU_X86_64       0
+        #define TARGET_CPU_ARM          0
+        #define TARGET_CPU_ARM64        0
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0   
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_LITTLE_ENDIAN 0
+        #define TARGET_RT_BIG_ENDIAN    1
+        #define TARGET_RT_64_BIT        0
+        #ifdef __MACOS_CLASSIC__
+           #define TARGET_RT_MAC_CFM    1
+           #define TARGET_RT_MAC_MACHO  0
+        #else
+           #define TARGET_RT_MAC_CFM    0
+           #define TARGET_RT_MAC_MACHO  1
+       #endif
+    #elif defined(__ppc64__) 
+        #define TARGET_CPU_PPC          0
+        #define TARGET_CPU_PPC64        1
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          0
+        #define TARGET_CPU_X86_64       0
+        #define TARGET_CPU_ARM          0
+        #define TARGET_CPU_ARM64        0
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0   
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_LITTLE_ENDIAN 0
+        #define TARGET_RT_BIG_ENDIAN    1
+        #define TARGET_RT_64_BIT        1
+        #define TARGET_RT_MAC_CFM       0
+        #define TARGET_RT_MAC_MACHO     1
+    #elif defined(__i386__) 
+        #define TARGET_CPU_PPC          0
+        #define TARGET_CPU_PPC64        0
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          1
+        #define TARGET_CPU_X86_64       0
+        #define TARGET_CPU_ARM          0
+        #define TARGET_CPU_ARM64        0
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_MAC_CFM       0
+        #define TARGET_RT_MAC_MACHO     1
+        #define TARGET_RT_LITTLE_ENDIAN 1
+        #define TARGET_RT_BIG_ENDIAN    0
+        #define TARGET_RT_64_BIT        0
+    #elif defined(__x86_64__) 
+        #define TARGET_CPU_PPC          0
+        #define TARGET_CPU_PPC64        0
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          0
+        #define TARGET_CPU_X86_64       1
+        #define TARGET_CPU_ARM          0
+        #define TARGET_CPU_ARM64        0
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_MAC_CFM       0
+        #define TARGET_RT_MAC_MACHO     1
+        #define TARGET_RT_LITTLE_ENDIAN 1
+        #define TARGET_RT_BIG_ENDIAN    0
+        #define TARGET_RT_64_BIT        1
+    #elif defined(__arm__) 
+        #define TARGET_CPU_PPC          0
+        #define TARGET_CPU_PPC64        0
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          0
+        #define TARGET_CPU_X86_64       0
+        #define TARGET_CPU_ARM          1
+        #define TARGET_CPU_ARM64        0
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_MAC_CFM       0
+        #define TARGET_RT_MAC_MACHO     1
+        #define TARGET_RT_LITTLE_ENDIAN 1
+        #define TARGET_RT_BIG_ENDIAN    0
+        #define TARGET_RT_64_BIT        0
+    #elif defined(__arm64__)
+        #define TARGET_CPU_PPC          0
+        #define TARGET_CPU_PPC64        0
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          0
+        #define TARGET_CPU_X86_64       0
+        #define TARGET_CPU_ARM          0
+        #define TARGET_CPU_ARM64        1
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_MAC_CFM       0
+        #define TARGET_RT_MAC_MACHO     1
+        #define TARGET_RT_LITTLE_ENDIAN 1
+        #define TARGET_RT_BIG_ENDIAN    0
+        #if __LP64__
+          #define TARGET_RT_64_BIT      1
+        #else
+          #define TARGET_RT_64_BIT      0
+        #endif
+    #else
+        #error unrecognized GNU C compiler
+    #endif
+
+
+
+/*
+ *   CodeWarrior compiler from Metrowerks/Motorola
+ */
+#elif defined(__MWERKS__)
+    #define TARGET_OS_MAC               1
+    #define TARGET_OS_WIN32             0
+    #define TARGET_OS_WINDOWS           0
+    #define TARGET_OS_UNIX              0
+    #define TARGET_OS_LINUX             0
+    #define TARGET_OS_EMBEDDED          0
+    #if defined(__POWERPC__)
+        #define TARGET_CPU_PPC          1
+        #define TARGET_CPU_PPC64        0
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          0
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_LITTLE_ENDIAN 0
+        #define TARGET_RT_BIG_ENDIAN    1
+    #elif defined(__INTEL__)
+        #define TARGET_CPU_PPC          0
+        #define TARGET_CPU_PPC64        0
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          1
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_LITTLE_ENDIAN 1
+        #define TARGET_RT_BIG_ENDIAN    0
+    #else
+        #error unknown Metrowerks CPU type
+    #endif
+    #define TARGET_RT_64_BIT            0
+    #ifdef __MACH__
+        #define TARGET_RT_MAC_CFM       0
+        #define TARGET_RT_MAC_MACHO     1
+    #else
+        #define TARGET_RT_MAC_CFM       1
+        #define TARGET_RT_MAC_MACHO     0
+    #endif
+
+/*
+ *   unknown compiler
+ */
+#else
+    #if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC
+        #define TARGET_CPU_PPC64    0
+        #define TARGET_CPU_68K      0
+        #define TARGET_CPU_X86      0
+        #define TARGET_CPU_X86_64   0
+        #define TARGET_CPU_ARM      0
+        #define TARGET_CPU_ARM64    0
+        #define TARGET_CPU_MIPS     0
+        #define TARGET_CPU_SPARC    0
+        #define TARGET_CPU_ALPHA    0
+    #elif defined(TARGET_CPU_PPC64) && TARGET_CPU_PPC64
+        #define TARGET_CPU_PPC      0
+        #define TARGET_CPU_68K      0
+        #define TARGET_CPU_X86      0
+        #define TARGET_CPU_X86_64   0
+        #define TARGET_CPU_ARM      0
+        #define TARGET_CPU_ARM64    0
+        #define TARGET_CPU_MIPS     0
+        #define TARGET_CPU_SPARC    0
+        #define TARGET_CPU_ALPHA    0
+    #elif defined(TARGET_CPU_X86) && TARGET_CPU_X86
+        #define TARGET_CPU_PPC      0
+        #define TARGET_CPU_PPC64    0
+        #define TARGET_CPU_X86_64   0
+        #define TARGET_CPU_68K      0
+        #define TARGET_CPU_ARM      0
+        #define TARGET_CPU_ARM64    0
+        #define TARGET_CPU_MIPS     0
+        #define TARGET_CPU_SPARC    0
+        #define TARGET_CPU_ALPHA    0
+    #elif defined(TARGET_CPU_X86_64) && TARGET_CPU_X86_64
+        #define TARGET_CPU_PPC      0
+        #define TARGET_CPU_PPC64    0
+        #define TARGET_CPU_X86      0
+        #define TARGET_CPU_68K      0
+        #define TARGET_CPU_ARM      0
+        #define TARGET_CPU_ARM64    0
+        #define TARGET_CPU_MIPS     0
+        #define TARGET_CPU_SPARC    0
+        #define TARGET_CPU_ALPHA    0
+    #elif defined(TARGET_CPU_ARM) && TARGET_CPU_ARM
+        #define TARGET_CPU_PPC      0
+        #define TARGET_CPU_PPC64    0
+        #define TARGET_CPU_X86      0
+        #define TARGET_CPU_X86_64   0
+        #define TARGET_CPU_68K      0
+        #define TARGET_CPU_ARM64    0
+        #define TARGET_CPU_MIPS     0
+        #define TARGET_CPU_SPARC    0
+        #define TARGET_CPU_ALPHA    0
+    #elif defined(TARGET_CPU_ARM64) && TARGET_CPU_ARM64
+        #define TARGET_CPU_PPC      0
+        #define TARGET_CPU_PPC64    0
+        #define TARGET_CPU_X86      0
+        #define TARGET_CPU_X86_64   0
+        #define TARGET_CPU_68K      0
+        #define TARGET_CPU_ARM      0
+        #define TARGET_CPU_MIPS     0
+        #define TARGET_CPU_SPARC    0
+        #define TARGET_CPU_ALPHA    0
+    #else
+        /*
+            NOTE:   If your compiler errors out here then support for your compiler 
+            has not yet been added to TargetConditionals.h.  
+            
+            TargetConditionals.h is designed to be plug-and-play.  It auto detects
+            which compiler is being run and configures the TARGET_ conditionals
+            appropriately.  
+            
+            The short term work around is to set the TARGET_CPU_ and TARGET_OS_
+            on the command line to the compiler (e.g. -DTARGET_CPU_MIPS=1 -DTARGET_OS_UNIX=1)
+            
+            The long term solution is to add a new case to this file which
+            auto detects your compiler and sets up the TARGET_ conditionals.
+            Then submit the changes to Apple Computer.
+        */
+        #error TargetConditionals.h: unknown compiler (see comment above)
+        #define TARGET_CPU_PPC    0
+        #define TARGET_CPU_68K    0
+        #define TARGET_CPU_X86    0
+        #define TARGET_CPU_ARM    0
+        #define TARGET_CPU_ARM64  0
+        #define TARGET_CPU_MIPS   0
+        #define TARGET_CPU_SPARC  0
+        #define TARGET_CPU_ALPHA  0
+    #endif
+    #define TARGET_OS_MAC                1
+    #define TARGET_OS_WIN32              0
+    #define TARGET_OS_WINDOWS            0
+    #define TARGET_OS_UNIX               0
+    #define TARGET_OS_LINUX              0
+    #define TARGET_OS_EMBEDDED           0
+    #if TARGET_CPU_PPC || TARGET_CPU_PPC64
+        #define TARGET_RT_BIG_ENDIAN     1
+        #define TARGET_RT_LITTLE_ENDIAN  0
+    #else
+        #define TARGET_RT_BIG_ENDIAN     0
+        #define TARGET_RT_LITTLE_ENDIAN  1
+    #endif
+    #if TARGET_CPU_PPC64 || TARGET_CPU_X86_64
+        #define TARGET_RT_64_BIT         1
+    #else
+        #define TARGET_RT_64_BIT         0
+    #endif
+    #ifdef __MACH__
+        #define TARGET_RT_MAC_MACHO      1
+        #define TARGET_RT_MAC_CFM        0
+    #else
+        #define TARGET_RT_MAC_MACHO      0
+        #define TARGET_RT_MAC_CFM        1
+    #endif
+    
+#endif
+
+#endif  /* __TARGETCONDITIONALS__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos-any/copyfile.h b/lib/libc/include/any-macos-any/copyfile.h
deleted file mode 100644
index 50239ee191213c6a88eabd4e5bee72604b27a94f..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos-any/copyfile.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (c) 2004-2019 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@
- */
-#ifndef _COPYFILE_H_ /* version 0.1 */
-#define _COPYFILE_H_
-
-/*
- * This API facilitates the copying of files and their associated
- * metadata.  There are several open source projects that need
- * modifications to support preserving extended attributes and ACLs
- * and this API collapses several hundred lines of modifications into
- * one or two calls.
- */
-
-/* private */
-#include 
-#include 
-
-__BEGIN_DECLS
-struct _copyfile_state;
-typedef struct _copyfile_state * copyfile_state_t;
-typedef uint32_t copyfile_flags_t;
-
-/* public */
-
-/* receives:
- *   from	path to source file system object
- *   to		path to destination file system object
- *   state	opaque blob for future extensibility
- *		Must be NULL in current implementation
- *   flags	(described below)
- * returns:
- *   int	negative for error
- */
-
-int copyfile(const char *from, const char *to, copyfile_state_t state, copyfile_flags_t flags);
-int fcopyfile(int from_fd, int to_fd, copyfile_state_t, copyfile_flags_t flags);
-
-int copyfile_state_free(copyfile_state_t);
-copyfile_state_t copyfile_state_alloc(void);
-
-
-int copyfile_state_get(copyfile_state_t s, uint32_t flag, void * dst);
-int copyfile_state_set(copyfile_state_t s, uint32_t flag, const void * src);
-
-typedef int (*copyfile_callback_t)(int, int, copyfile_state_t, const char *, const char *, void *);
-
-#define COPYFILE_STATE_SRC_FD		1
-#define COPYFILE_STATE_SRC_FILENAME	2
-#define COPYFILE_STATE_DST_FD		3
-#define COPYFILE_STATE_DST_FILENAME	4
-#define COPYFILE_STATE_QUARANTINE	5
-#define	COPYFILE_STATE_STATUS_CB	6
-#define	COPYFILE_STATE_STATUS_CTX	7
-#define	COPYFILE_STATE_COPIED		8
-#define	COPYFILE_STATE_XATTRNAME	9
-#define	COPYFILE_STATE_WAS_CLONED	10
-
-
-#define	COPYFILE_DISABLE_VAR	"COPYFILE_DISABLE"
-
-/* flags for copyfile */
-
-#define COPYFILE_ACL	    (1<<0)
-#define COPYFILE_STAT	    (1<<1)
-#define COPYFILE_XATTR	    (1<<2)
-#define COPYFILE_DATA	    (1<<3)
-
-#define COPYFILE_SECURITY   (COPYFILE_STAT | COPYFILE_ACL)
-#define COPYFILE_METADATA   (COPYFILE_SECURITY | COPYFILE_XATTR)
-#define COPYFILE_ALL	    (COPYFILE_METADATA | COPYFILE_DATA)
-
-#define	COPYFILE_RECURSIVE	(1<<15)	/* Descend into hierarchies */
-#define COPYFILE_CHECK		(1<<16) /* return flags for xattr or acls if set */
-#define COPYFILE_EXCL		(1<<17) /* fail if destination exists */
-#define COPYFILE_NOFOLLOW_SRC	(1<<18) /* don't follow if source is a symlink */
-#define COPYFILE_NOFOLLOW_DST	(1<<19) /* don't follow if dst is a symlink */
-#define COPYFILE_MOVE		(1<<20) /* unlink src after copy */
-#define COPYFILE_UNLINK		(1<<21) /* unlink dst before copy */
-#define COPYFILE_NOFOLLOW	(COPYFILE_NOFOLLOW_SRC | COPYFILE_NOFOLLOW_DST)
-
-#define COPYFILE_PACK		(1<<22)
-#define COPYFILE_UNPACK		(1<<23)
-
-#define COPYFILE_CLONE		(1<<24)
-#define COPYFILE_CLONE_FORCE	(1<<25)
-
-#define COPYFILE_RUN_IN_PLACE	(1<<26)
-
-#define COPYFILE_DATA_SPARSE	(1<<27)
-
-#define COPYFILE_PRESERVE_DST_TRACKED	(1<<28)
-
-#define COPYFILE_VERBOSE	(1<<30)
-
-#define	COPYFILE_RECURSE_ERROR	0
-#define	COPYFILE_RECURSE_FILE	1
-#define	COPYFILE_RECURSE_DIR	2
-#define	COPYFILE_RECURSE_DIR_CLEANUP	3
-#define	COPYFILE_COPY_DATA	4
-#define	COPYFILE_COPY_XATTR	5
-
-#define	COPYFILE_START		1
-#define	COPYFILE_FINISH		2
-#define	COPYFILE_ERR		3
-#define	COPYFILE_PROGRESS	4
-
-#define	COPYFILE_CONTINUE	0
-#define	COPYFILE_SKIP	1
-#define	COPYFILE_QUIT	2
-
-__END_DECLS
-
-#endif /* _COPYFILE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos-any/mach/mach_init.h b/lib/libc/include/any-macos-any/mach/mach_init.h
new file mode 100644
index 0000000000000000000000000000000000000000..fbce7117c763451b59cd8d05a53e249cf71c2159
--- /dev/null
+++ b/lib/libc/include/any-macos-any/mach/mach_init.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 1999 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@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987,1986 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+/*
+ *	Items provided by the Mach environment initialization.
+ */
+
+#ifndef _MACH_INIT_
+#define _MACH_INIT_     1
+
+#include 
+#include 
+#include 
+
+#include 
+
+#include 
+
+/*
+ *	Kernel-related ports; how a task/thread controls itself
+ */
+
+__BEGIN_DECLS
+extern mach_port_t mach_host_self(void);
+extern mach_port_t mach_thread_self(void);
+__API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.3))
+extern boolean_t mach_task_is_self(task_name_t task);
+extern kern_return_t host_page_size(host_t, vm_size_t *);
+
+extern mach_port_t      mach_task_self_;
+#define mach_task_self() mach_task_self_
+#define current_task()  mach_task_self()
+
+__END_DECLS
+#include 
+__BEGIN_DECLS
+
+/*
+ *	Other important ports in the Mach user environment
+ */
+
+extern  mach_port_t     bootstrap_port;
+
+/*
+ *	Where these ports occur in the "mach_ports_register"
+ *	collection... only servers or the runtime library need know.
+ */
+
+#define NAME_SERVER_SLOT        0
+#define ENVIRONMENT_SLOT        1
+#define SERVICE_SLOT            2
+
+#define MACH_PORTS_SLOTS_USED   3
+
+/*
+ *	fprintf_stderr uses vprintf_stderr_func to produce
+ *	error messages, this can be overridden by a user
+ *	application to point to a user-specified output function
+ */
+extern int (*vprintf_stderr_func)(const char *format, va_list ap) __printflike(1, 0);
+
+__END_DECLS
+
+#endif  /* _MACH_INIT_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos-any/mach/task_info.h b/lib/libc/include/any-macos-any/mach/task_info.h
new file mode 100644
index 0000000000000000000000000000000000000000..09395e2c245066d13b241e1f65abafe5f8291fa8
--- /dev/null
+++ b/lib/libc/include/any-macos-any/mach/task_info.h
@@ -0,0 +1,539 @@
+/*
+ * Copyright (c) 2000-2007, 2015 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ *	Machine-independent task information structures and definitions.
+ *
+ *	The definitions in this file are exported to the user.  The kernel
+ *	will translate its internal data structures to these structures
+ *	as appropriate.
+ *
+ */
+
+#ifndef _MACH_TASK_INFO_H_
+#define _MACH_TASK_INFO_H_
+
+#include 
+#include 
+#include 
+#include 
+#include  /* for vm_extmod_statistics_data_t */
+#include 
+
+#include 
+
+/*
+ *	Generic information structure to allow for expansion.
+ */
+typedef natural_t       task_flavor_t;
+typedef integer_t       *task_info_t;           /* varying array of int */
+
+/* Deprecated, use per structure _data_t's instead */
+#define TASK_INFO_MAX   (1024)          /* maximum array size */
+typedef integer_t       task_info_data_t[TASK_INFO_MAX];
+
+/*
+ *	Currently defined information structures.
+ */
+
+#pragma pack(push, 4)
+
+/* Don't use this, use MACH_TASK_BASIC_INFO instead */
+#define TASK_BASIC_INFO_32      4       /* basic information */
+#define TASK_BASIC2_INFO_32      6
+
+struct task_basic_info_32 {
+	integer_t       suspend_count;  /* suspend count for task */
+	natural_t       virtual_size;   /* virtual memory size (bytes) */
+	natural_t       resident_size;  /* resident memory size (bytes) */
+	time_value_t    user_time;      /* total user run time for
+	                                 *  terminated threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  terminated threads */
+	policy_t        policy;         /* default policy for new threads */
+};
+typedef struct task_basic_info_32       task_basic_info_32_data_t;
+typedef struct task_basic_info_32       *task_basic_info_32_t;
+#define TASK_BASIC_INFO_32_COUNT   \
+	        (sizeof(task_basic_info_32_data_t) / sizeof(natural_t))
+
+/* Don't use this, use MACH_TASK_BASIC_INFO instead */
+struct task_basic_info_64 {
+	integer_t       suspend_count;  /* suspend count for task */
+#if defined(__arm__) || defined(__arm64__)
+	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
+	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
+#else /* defined(__arm__) || defined(__arm64__) */
+	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
+	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
+#endif /* defined(__arm__) || defined(__arm64__) */
+	time_value_t    user_time;      /* total user run time for
+	                                 *  terminated threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  terminated threads */
+	policy_t        policy;         /* default policy for new threads */
+};
+typedef struct task_basic_info_64       task_basic_info_64_data_t;
+typedef struct task_basic_info_64       *task_basic_info_64_t;
+
+#if defined(__arm__) || defined(__arm64__)
+	#if   defined(__arm__) && defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0)
+/*
+ * Note: arm64 can't use the old flavor.  If you somehow manage to,
+ * you can cope with the nonsense data yourself.
+ */
+	#define TASK_BASIC_INFO_64      5
+	#define TASK_BASIC_INFO_64_COUNT   \
+	        (sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
+
+	#else
+
+	#define TASK_BASIC_INFO_64              TASK_BASIC_INFO_64_2
+	#define TASK_BASIC_INFO_64_COUNT        TASK_BASIC_INFO_64_2_COUNT
+	#endif
+#else /* defined(__arm__) || defined(__arm64__) */
+#define TASK_BASIC_INFO_64      5       /* 64-bit capable basic info */
+#define TASK_BASIC_INFO_64_COUNT   \
+	        (sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
+#endif
+
+
+/* localized structure - cannot be safely passed between tasks of differing sizes */
+/* Don't use this, use MACH_TASK_BASIC_INFO instead */
+struct task_basic_info {
+	integer_t       suspend_count;  /* suspend count for task */
+	vm_size_t       virtual_size;   /* virtual memory size (bytes) */
+	vm_size_t       resident_size;  /* resident memory size (bytes) */
+	time_value_t    user_time;      /* total user run time for
+	                                 *  terminated threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  terminated threads */
+	policy_t        policy;         /* default policy for new threads */
+};
+
+typedef struct task_basic_info          task_basic_info_data_t;
+typedef struct task_basic_info          *task_basic_info_t;
+#define TASK_BASIC_INFO_COUNT   \
+	        (sizeof(task_basic_info_data_t) / sizeof(natural_t))
+#if !defined(__LP64__)
+#define TASK_BASIC_INFO TASK_BASIC_INFO_32
+#else
+#define TASK_BASIC_INFO TASK_BASIC_INFO_64
+#endif
+
+
+
+#define TASK_EVENTS_INFO        2       /* various event counts */
+
+struct task_events_info {
+	integer_t       faults;         /* number of page faults */
+	integer_t       pageins;        /* number of actual pageins */
+	integer_t       cow_faults;     /* number of copy-on-write faults */
+	integer_t       messages_sent;  /* number of messages sent */
+	integer_t       messages_received; /* number of messages received */
+	integer_t       syscalls_mach;  /* number of mach system calls */
+	integer_t       syscalls_unix;  /* number of unix system calls */
+	integer_t       csw;            /* number of context switches */
+};
+typedef struct task_events_info         task_events_info_data_t;
+typedef struct task_events_info         *task_events_info_t;
+#define TASK_EVENTS_INFO_COUNT          ((mach_msg_type_number_t) \
+	        (sizeof(task_events_info_data_t) / sizeof(natural_t)))
+
+#define TASK_THREAD_TIMES_INFO  3       /* total times for live threads -
+	                                 *  only accurate if suspended */
+
+struct task_thread_times_info {
+	time_value_t    user_time;      /* total user run time for
+	                                 *  live threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  live threads */
+};
+
+typedef struct task_thread_times_info   task_thread_times_info_data_t;
+typedef struct task_thread_times_info   *task_thread_times_info_t;
+#define TASK_THREAD_TIMES_INFO_COUNT    ((mach_msg_type_number_t) \
+	        (sizeof(task_thread_times_info_data_t) / sizeof(natural_t)))
+
+#define TASK_ABSOLUTETIME_INFO  1
+
+struct task_absolutetime_info {
+	uint64_t                total_user;
+	uint64_t                total_system;
+	uint64_t                threads_user;   /* existing threads only */
+	uint64_t                threads_system;
+};
+
+typedef struct task_absolutetime_info   task_absolutetime_info_data_t;
+typedef struct task_absolutetime_info   *task_absolutetime_info_t;
+#define TASK_ABSOLUTETIME_INFO_COUNT    ((mach_msg_type_number_t) \
+	        (sizeof (task_absolutetime_info_data_t) / sizeof (natural_t)))
+
+#define TASK_KERNELMEMORY_INFO  7
+
+struct task_kernelmemory_info {
+	uint64_t                total_palloc;   /* private kernel mem alloc'ed */
+	uint64_t                total_pfree;    /* private kernel mem freed */
+	uint64_t                total_salloc;   /* shared kernel mem alloc'ed */
+	uint64_t                total_sfree;    /* shared kernel mem freed */
+};
+
+typedef struct task_kernelmemory_info   task_kernelmemory_info_data_t;
+typedef struct task_kernelmemory_info   *task_kernelmemory_info_t;
+#define TASK_KERNELMEMORY_INFO_COUNT    ((mach_msg_type_number_t) \
+	        (sizeof (task_kernelmemory_info_data_t) / sizeof (natural_t)))
+
+#define TASK_SECURITY_TOKEN             13
+#define TASK_SECURITY_TOKEN_COUNT       ((mach_msg_type_number_t) \
+	        (sizeof(security_token_t) / sizeof(natural_t)))
+
+#define TASK_AUDIT_TOKEN                15
+#define TASK_AUDIT_TOKEN_COUNT  \
+	        (sizeof(audit_token_t) / sizeof(natural_t))
+
+
+#define TASK_AFFINITY_TAG_INFO          16      /* This is experimental. */
+
+struct task_affinity_tag_info {
+	integer_t               set_count;
+	integer_t               min;
+	integer_t               max;
+	integer_t               task_count;
+};
+typedef struct task_affinity_tag_info   task_affinity_tag_info_data_t;
+typedef struct task_affinity_tag_info   *task_affinity_tag_info_t;
+#define TASK_AFFINITY_TAG_INFO_COUNT    \
+	        (sizeof(task_affinity_tag_info_data_t) / sizeof(natural_t))
+
+#define TASK_DYLD_INFO                  17
+
+struct task_dyld_info {
+	mach_vm_address_t       all_image_info_addr;
+	mach_vm_size_t          all_image_info_size;
+	integer_t               all_image_info_format;
+};
+typedef struct task_dyld_info   task_dyld_info_data_t;
+typedef struct task_dyld_info   *task_dyld_info_t;
+#define TASK_DYLD_INFO_COUNT    \
+	        (sizeof(task_dyld_info_data_t) / sizeof(natural_t))
+#define TASK_DYLD_ALL_IMAGE_INFO_32     0       /* format value */
+#define TASK_DYLD_ALL_IMAGE_INFO_64     1       /* format value */
+
+#if defined(__arm__) || defined(__arm64__)
+
+/* Don't use this, use MACH_TASK_BASIC_INFO instead */
+/* Compatibility for old 32-bit mach_vm_*_t */
+#define TASK_BASIC_INFO_64_2     18       /* 64-bit capable basic info */
+
+struct task_basic_info_64_2 {
+	integer_t       suspend_count;  /* suspend count for task */
+	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
+	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
+	time_value_t    user_time;      /* total user run time for
+	                                 *  terminated threads */
+	time_value_t    system_time;    /* total system run time for
+	                                 *  terminated threads */
+	policy_t        policy;         /* default policy for new threads */
+};
+typedef struct task_basic_info_64_2       task_basic_info_64_2_data_t;
+typedef struct task_basic_info_64_2       *task_basic_info_64_2_t;
+#define TASK_BASIC_INFO_64_2_COUNT   \
+	        (sizeof(task_basic_info_64_2_data_t) / sizeof(natural_t))
+#endif
+
+#define TASK_EXTMOD_INFO                        19
+
+struct task_extmod_info {
+	unsigned char   task_uuid[16];
+	vm_extmod_statistics_data_t             extmod_statistics;
+};
+typedef struct task_extmod_info task_extmod_info_data_t;
+typedef struct task_extmod_info *task_extmod_info_t;
+#define TASK_EXTMOD_INFO_COUNT  \
+	        (sizeof(task_extmod_info_data_t) / sizeof(natural_t))
+
+
+#define MACH_TASK_BASIC_INFO     20         /* always 64-bit basic info */
+struct mach_task_basic_info {
+	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
+	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
+	mach_vm_size_t  resident_size_max;  /* maximum resident memory size (bytes) */
+	time_value_t    user_time;          /* total user run time for
+	                                     *  terminated threads */
+	time_value_t    system_time;        /* total system run time for
+	                                     *  terminated threads */
+	policy_t        policy;             /* default policy for new threads */
+	integer_t       suspend_count;      /* suspend count for task */
+};
+typedef struct mach_task_basic_info       mach_task_basic_info_data_t;
+typedef struct mach_task_basic_info       *mach_task_basic_info_t;
+#define MACH_TASK_BASIC_INFO_COUNT   \
+	        (sizeof(mach_task_basic_info_data_t) / sizeof(natural_t))
+
+
+#define TASK_POWER_INFO 21
+
+struct task_power_info {
+	uint64_t                total_user;
+	uint64_t                total_system;
+	uint64_t                task_interrupt_wakeups;
+	uint64_t                task_platform_idle_wakeups;
+	uint64_t                task_timer_wakeups_bin_1;
+	uint64_t                task_timer_wakeups_bin_2;
+};
+
+typedef struct task_power_info  task_power_info_data_t;
+typedef struct task_power_info  *task_power_info_t;
+#define TASK_POWER_INFO_COUNT   ((mach_msg_type_number_t) \
+	        (sizeof (task_power_info_data_t) / sizeof (natural_t)))
+
+
+
+#define TASK_VM_INFO            22
+#define TASK_VM_INFO_PURGEABLE  23
+struct task_vm_info {
+	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
+	integer_t       region_count;       /* number of memory regions */
+	integer_t       page_size;
+	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
+	mach_vm_size_t  resident_size_peak; /* peak resident size (bytes) */
+
+	mach_vm_size_t  device;
+	mach_vm_size_t  device_peak;
+	mach_vm_size_t  internal;
+	mach_vm_size_t  internal_peak;
+	mach_vm_size_t  external;
+	mach_vm_size_t  external_peak;
+	mach_vm_size_t  reusable;
+	mach_vm_size_t  reusable_peak;
+	mach_vm_size_t  purgeable_volatile_pmap;
+	mach_vm_size_t  purgeable_volatile_resident;
+	mach_vm_size_t  purgeable_volatile_virtual;
+	mach_vm_size_t  compressed;
+	mach_vm_size_t  compressed_peak;
+	mach_vm_size_t  compressed_lifetime;
+
+	/* added for rev1 */
+	mach_vm_size_t  phys_footprint;
+
+	/* added for rev2 */
+	mach_vm_address_t       min_address;
+	mach_vm_address_t       max_address;
+
+	/* added for rev3 */
+	int64_t ledger_phys_footprint_peak;
+	int64_t ledger_purgeable_nonvolatile;
+	int64_t ledger_purgeable_novolatile_compressed;
+	int64_t ledger_purgeable_volatile;
+	int64_t ledger_purgeable_volatile_compressed;
+	int64_t ledger_tag_network_nonvolatile;
+	int64_t ledger_tag_network_nonvolatile_compressed;
+	int64_t ledger_tag_network_volatile;
+	int64_t ledger_tag_network_volatile_compressed;
+	int64_t ledger_tag_media_footprint;
+	int64_t ledger_tag_media_footprint_compressed;
+	int64_t ledger_tag_media_nofootprint;
+	int64_t ledger_tag_media_nofootprint_compressed;
+	int64_t ledger_tag_graphics_footprint;
+	int64_t ledger_tag_graphics_footprint_compressed;
+	int64_t ledger_tag_graphics_nofootprint;
+	int64_t ledger_tag_graphics_nofootprint_compressed;
+	int64_t ledger_tag_neural_footprint;
+	int64_t ledger_tag_neural_footprint_compressed;
+	int64_t ledger_tag_neural_nofootprint;
+	int64_t ledger_tag_neural_nofootprint_compressed;
+
+	/* added for rev4 */
+	uint64_t limit_bytes_remaining;
+
+	/* added for rev5 */
+	integer_t decompressions;
+
+	/* added for rev6 */
+	int64_t ledger_swapins;
+};
+typedef struct task_vm_info     task_vm_info_data_t;
+typedef struct task_vm_info     *task_vm_info_t;
+#define TASK_VM_INFO_COUNT      ((mach_msg_type_number_t) \
+	        (sizeof (task_vm_info_data_t) / sizeof (natural_t)))
+#define TASK_VM_INFO_REV6_COUNT TASK_VM_INFO_COUNT
+#define TASK_VM_INFO_REV5_COUNT /* doesn't include ledger swapins */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV6_COUNT - 2))
+#define TASK_VM_INFO_REV4_COUNT /* doesn't include decompressions */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV5_COUNT - 1))
+#define TASK_VM_INFO_REV3_COUNT /* doesn't include limit bytes */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV4_COUNT - 2))
+#define TASK_VM_INFO_REV2_COUNT /* doesn't include extra ledgers info */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV3_COUNT - 42))
+#define TASK_VM_INFO_REV1_COUNT /* doesn't include min and max address */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV2_COUNT - 4))
+#define TASK_VM_INFO_REV0_COUNT /* doesn't include phys_footprint */ \
+	((mach_msg_type_number_t) (TASK_VM_INFO_REV1_COUNT - 2))
+
+typedef struct vm_purgeable_info        task_purgable_info_t;
+
+
+#define TASK_TRACE_MEMORY_INFO  24  /* no longer supported */
+struct task_trace_memory_info {
+	uint64_t  user_memory_address;  /* address of start of trace memory buffer */
+	uint64_t  buffer_size;                  /* size of buffer in bytes */
+	uint64_t  mailbox_array_size;   /* size of mailbox area in bytes */
+};
+typedef struct task_trace_memory_info task_trace_memory_info_data_t;
+typedef struct task_trace_memory_info * task_trace_memory_info_t;
+#define TASK_TRACE_MEMORY_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(task_trace_memory_info_data_t) / sizeof(natural_t)))
+
+#define TASK_WAIT_STATE_INFO  25    /* deprecated. */
+struct task_wait_state_info {
+	uint64_t  total_wait_state_time;        /* Time that all threads past and present have been in a wait state */
+	uint64_t  total_wait_sfi_state_time;    /* Time that threads have been in SFI wait (should be a subset of total wait state time */
+	uint32_t  _reserved[4];
+};
+typedef struct task_wait_state_info task_wait_state_info_data_t;
+typedef struct task_wait_state_info * task_wait_state_info_t;
+#define TASK_WAIT_STATE_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(task_wait_state_info_data_t) / sizeof(natural_t)))
+
+#define TASK_POWER_INFO_V2      26
+
+typedef struct {
+	uint64_t                task_gpu_utilisation;
+	uint64_t                task_gpu_stat_reserved0;
+	uint64_t                task_gpu_stat_reserved1;
+	uint64_t                task_gpu_stat_reserved2;
+} gpu_energy_data;
+
+typedef gpu_energy_data *gpu_energy_data_t;
+struct task_power_info_v2 {
+	task_power_info_data_t  cpu_energy;
+	gpu_energy_data gpu_energy;
+#if defined(__arm__) || defined(__arm64__)
+	uint64_t                task_energy;
+#endif /* defined(__arm__) || defined(__arm64__) */
+	uint64_t                task_ptime;
+	uint64_t                task_pset_switches;
+};
+
+typedef struct task_power_info_v2       task_power_info_v2_data_t;
+typedef struct task_power_info_v2       *task_power_info_v2_t;
+#define TASK_POWER_INFO_V2_COUNT_OLD    \
+	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) - sizeof(uint64_t)*2) / sizeof (natural_t))
+#define TASK_POWER_INFO_V2_COUNT        \
+	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) / sizeof (natural_t)))
+
+#define TASK_VM_INFO_PURGEABLE_ACCOUNT 27 /* Used for xnu purgeable vm unit tests */
+
+
+#define TASK_FLAGS_INFO  28                     /* return t_flags field */
+struct task_flags_info {
+	uint32_t        flags;                          /* task flags */
+};
+typedef struct task_flags_info task_flags_info_data_t;
+typedef struct task_flags_info * task_flags_info_t;
+#define TASK_FLAGS_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(task_flags_info_data_t) / sizeof (natural_t)))
+
+#define TF_LP64         0x00000001 /* task has 64-bit addressing */
+#define TF_64B_DATA     0x00000002 /* task has 64-bit data registers */
+
+#define TASK_DEBUG_INFO_INTERNAL    29 /* Used for kernel internal development tests. */
+
+
+/*
+ * Type to control EXC_GUARD delivery options for a task
+ * via task_get/set_exc_guard_behavior interface(s).
+ */
+typedef uint32_t task_exc_guard_behavior_t;
+
+/* EXC_GUARD optional delivery settings on a per-task basis */
+#define TASK_EXC_GUARD_NONE                  0x00
+#define TASK_EXC_GUARD_VM_DELIVER            0x01 /* Deliver virtual memory EXC_GUARD exceptions */
+#define TASK_EXC_GUARD_VM_ONCE               0x02 /* Deliver them only once */
+#define TASK_EXC_GUARD_VM_CORPSE             0x04 /* Deliver them via a forked corpse */
+#define TASK_EXC_GUARD_VM_FATAL              0x08 /* Virtual Memory EXC_GUARD delivery is fatal */
+#define TASK_EXC_GUARD_VM_ALL                0x0f
+
+#define TASK_EXC_GUARD_MP_DELIVER            0x10 /* Deliver mach port EXC_GUARD exceptions */
+#define TASK_EXC_GUARD_MP_ONCE               0x20 /* Deliver them only once */
+#define TASK_EXC_GUARD_MP_CORPSE             0x40 /* Deliver them via a forked corpse */
+#define TASK_EXC_GUARD_MP_FATAL              0x80 /* mach port EXC_GUARD delivery is fatal */
+#define TASK_EXC_GUARD_MP_ALL                0xf0
+
+#define TASK_EXC_GUARD_ALL                   0xff /* All optional deliver settings */
+
+
+/*
+ * Type to control corpse forking options for a task
+ * via task_get/set_corpse_forking_behavior interface(s).
+ */
+typedef uint32_t task_corpse_forking_behavior_t;
+
+#define TASK_CORPSE_FORKING_DISABLED_MEM_DIAG  0x01 /* Disable corpse forking because the task is running under a diagnostic tool */
+
+
+/*
+ * Obsolete interfaces.
+ */
+
+#define TASK_SCHED_TIMESHARE_INFO       10
+#define TASK_SCHED_RR_INFO              11
+#define TASK_SCHED_FIFO_INFO            12
+
+#define TASK_SCHED_INFO                 14
+
+#pragma pack(pop)
+
+#endif  /* _MACH_TASK_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos-any/spawn.h b/lib/libc/include/any-macos-any/spawn.h
new file mode 100644
index 0000000000000000000000000000000000000000..981e8fb96a08270f899df66992c730cdb2904f53
--- /dev/null
+++ b/lib/libc/include/any-macos-any/spawn.h
@@ -0,0 +1,185 @@
+/*
+ * Copyright (c) 2006, 2010 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@
+ */
+
+
+#ifndef _SPAWN_H_
+#define _SPAWN_H_
+
+/*
+ * [SPN] Support for _POSIX_SPAWN
+ */
+
+#include 
+#include <_types.h>
+#include  /* shared types */
+
+#include 
+
+/*
+ * [SPN] Inclusion of the  header may make visible symbols defined
+ * in the , , and  headers.
+ */
+#include 
+#include 
+#include 
+
+/*
+ * Opaque types for use with posix_spawn() family functions.  Internals are
+ * not defined, and should not be accessed directly.  Types are defined as
+ * mandated by POSIX.
+ */
+typedef  void *posix_spawnattr_t;
+typedef  void *posix_spawn_file_actions_t;
+
+__BEGIN_DECLS
+/*
+ * gcc under c99 mode won't compile "[ __restrict]" by itself.  As a workaround,
+ * a dummy argument name is added.
+ */
+
+int     posix_spawn(pid_t * __restrict, const char * __restrict,
+    const posix_spawn_file_actions_t *,
+    const posix_spawnattr_t * __restrict,
+    char *const __argv[__restrict],
+    char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnp(pid_t * __restrict, const char * __restrict,
+    const posix_spawn_file_actions_t *,
+    const posix_spawnattr_t * __restrict,
+    char *const __argv[__restrict],
+    char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0));
+
+int     posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int,
+    int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_addopen(
+	posix_spawn_file_actions_t * __restrict, int,
+	const char * __restrict, int, mode_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_init(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_destroy(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getsigdefault(const posix_spawnattr_t * __restrict,
+    sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getflags(const posix_spawnattr_t * __restrict,
+    short * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getpgroup(const posix_spawnattr_t * __restrict,
+    pid_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getsigmask(const posix_spawnattr_t * __restrict,
+    sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_init(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setsigdefault(posix_spawnattr_t * __restrict,
+    const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setflags(posix_spawnattr_t *, short) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setsigmask(posix_spawnattr_t * __restrict,
+    const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+#if 0   /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */
+int     posix_spawnattr_setschedparam(posix_spawnattr_t * __restrict,
+    const struct sched_param * __restrict);
+int     posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int);
+int     posix_spawnattr_getschedparam(const posix_spawnattr_t * __restrict,
+    struct sched_param * __restrict);
+int     posix_spawnattr_getschedpolicy(const posix_spawnattr_t * __restrict,
+    int * __restrict);
+#endif  /* 0 */
+
+__END_DECLS
+
+#if     !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Darwin-specific extensions below
+ */
+#include 
+#include 
+#include 
+
+#include 
+
+__BEGIN_DECLS
+
+int     posix_spawnattr_getbinpref_np(const posix_spawnattr_t * __restrict,
+    size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_getarchpref_np(const posix_spawnattr_t * __restrict,
+    size_t, cpu_type_t *__restrict, cpu_subtype_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(11.0), ios(14.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setauditsessionport_np(posix_spawnattr_t * __restrict,
+    mach_port_t) __API_AVAILABLE(macos(10.6), ios(3.2));
+
+int     posix_spawnattr_setbinpref_np(posix_spawnattr_t * __restrict,
+    size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setarchpref_np(posix_spawnattr_t * __restrict,
+    size_t, cpu_type_t *__restrict, cpu_subtype_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(11.0), ios(14.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setexceptionports_np(posix_spawnattr_t * __restrict,
+    exception_mask_t, mach_port_t,
+    exception_behavior_t, thread_state_flavor_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setspecialport_np(posix_spawnattr_t * __restrict,
+    mach_port_t, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawnattr_setnosmt_np(const posix_spawnattr_t * __restrict attr) __API_AVAILABLE(macos(11.0));
+
+/*
+ * Set CPU Security Mitigation on the spawned process
+ * This attribute affects all threads and is inherited on fork and exec
+ */
+int     posix_spawnattr_set_csm_np(const posix_spawnattr_t * __restrict attr, uint32_t flags) __API_AVAILABLE(macos(11.0));
+/*
+ * flags for CPU Security Mitigation attribute
+ * POSIX_SPAWN_NP_CSM_ALL should be used in most cases,
+ * the individual flags are provided only for performance evaluation etc
+ */
+#define POSIX_SPAWN_NP_CSM_ALL         0x0001
+#define POSIX_SPAWN_NP_CSM_NOSMT       0x0002
+#define POSIX_SPAWN_NP_CSM_TECS        0x0004
+
+int     posix_spawn_file_actions_addinherit_np(posix_spawn_file_actions_t *,
+    int) __API_AVAILABLE(macos(10.7), ios(4.3)) __API_UNAVAILABLE(watchos, tvos);
+
+int     posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *,
+    const char * __restrict) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos);
+
+int     posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *,
+    int) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos);
+
+__END_DECLS
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#endif  /* _SPAWN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos-any/sys/attr.h b/lib/libc/include/any-macos-any/sys/attr.h
new file mode 100644
index 0000000000000000000000000000000000000000..79a912cd1efdc9aed65bd4fa8c495ef3e78859b5
--- /dev/null
+++ b/lib/libc/include/any-macos-any/sys/attr.h
@@ -0,0 +1,592 @@
+/*
+ * 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 
+
+#ifdef __APPLE_API_UNSTABLE
+#include 
+#include 
+#include 
+#include 
+
+#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  /* 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 .)
+ *
+ * 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_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                      0xF087FFFF
+
+/*
+ * 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
diff --git a/lib/libc/include/any-macos-any/sys/stdio.h b/lib/libc/include/any-macos-any/sys/stdio.h
index c51c1b9c7dc72475954596a9e8c383573930aa7b..da56fdf6c96aafea97634954b11f0ce3948758b0 100644
--- a/lib/libc/include/any-macos-any/sys/stdio.h
+++ b/lib/libc/include/any-macos-any/sys/stdio.h
@@ -31,6 +31,14 @@
 
 #include 
 
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define RENAME_SECLUDE                  0x00000001
+#define RENAME_SWAP                     0x00000002
+#define RENAME_EXCL                     0x00000004
+#define RENAME_RESERVED1                0x00000008
+#define RENAME_NOFOLLOW_ANY             0x00000010
+#endif
+
 #if __DARWIN_C_LEVEL >= 200809L
 #include 
 
@@ -40,9 +48,6 @@ int     renameat(int, const char *, int, const char *) __OSX_AVAILABLE_STARTING(
 
 #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
 
-#define RENAME_SECLUDE          0x00000001
-#define RENAME_SWAP                     0x00000002
-#define RENAME_EXCL                     0x00000004
 int renamex_np(const char *, const char *, unsigned int) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
 int renameatx_np(int, const char *, int, const char *, unsigned int) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
 
diff --git a/lib/libc/include/any-macos-any/sys/unistd.h b/lib/libc/include/any-macos-any/sys/unistd.h
deleted file mode 100644
index 53d0331b0603ad2c133d75cf83546bff58c8e167..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos-any/sys/unistd.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 2000-2013 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@
- */
-/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
-/*
- * Copyright (c) 1989, 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.
- *
- *	@(#)unistd.h	8.2 (Berkeley) 1/7/94
- */
-
-#ifndef _SYS_UNISTD_H_
-#define _SYS_UNISTD_H_
-
-#include 
-
-/*
- * Although we have saved user/group IDs, we do not use them in setuid
- * as described in POSIX 1003.1, because the feature does not work for
- * root.  We use the saved IDs in seteuid/setegid, which are not currently
- * part of the POSIX 1003.1 specification.
- */
-#ifdef  _NOT_AVAILABLE
-#define _POSIX_SAVED_IDS        /* saved set-user-ID and set-group-ID */
-#endif
-
-#define _POSIX_VERSION          200112L
-#define _POSIX2_VERSION         200112L
-
-/* execution-time symbolic constants */
-/* may disable terminal special characters */
-#include 
-
-#define _POSIX_THREAD_KEYS_MAX 128
-
-/* access function */
-#define F_OK            0       /* test for existence of file */
-#define X_OK            (1<<0)  /* test for execute or search permission */
-#define W_OK            (1<<1)  /* test for write permission */
-#define R_OK            (1<<2)  /* test for read permission */
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-/*
- * Extended access functions.
- * Note that we depend on these matching the definitions in sys/kauth.h,
- * but with the bits shifted left by 8.
- */
-#define _READ_OK        (1<<9)  /* read file data / read directory */
-#define _WRITE_OK       (1<<10) /* write file data / add file to directory */
-#define _EXECUTE_OK     (1<<11) /* execute file / search in directory*/
-#define _DELETE_OK      (1<<12) /* delete file / delete directory */
-#define _APPEND_OK      (1<<13) /* append to file / add subdirectory to directory */
-#define _RMFILE_OK      (1<<14) /* - / remove file from directory */
-#define _RATTR_OK       (1<<15) /* read basic attributes */
-#define _WATTR_OK       (1<<16) /* write basic attributes */
-#define _REXT_OK        (1<<17) /* read extended attributes */
-#define _WEXT_OK        (1<<18) /* write extended attributes */
-#define _RPERM_OK       (1<<19) /* read permissions */
-#define _WPERM_OK       (1<<20) /* write permissions */
-#define _CHOWN_OK       (1<<21) /* change ownership */
-
-#define _ACCESS_EXTENDED_MASK (_READ_OK | _WRITE_OK | _EXECUTE_OK | \
-	                        _DELETE_OK | _APPEND_OK | \
-	                        _RMFILE_OK | _REXT_OK | \
-	                        _WEXT_OK | _RATTR_OK | _WATTR_OK | _RPERM_OK | \
-	                        _WPERM_OK | _CHOWN_OK)
-#endif
-
-/* whence values for lseek(2) */
-#include 
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-/* whence values for lseek(2); renamed by POSIX 1003.1 */
-#define L_SET           SEEK_SET
-#define L_INCR          SEEK_CUR
-#define L_XTND          SEEK_END
-#endif
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-struct accessx_descriptor {
-	unsigned int ad_name_offset;
-	int ad_flags;
-	int ad_pad[2];
-};
-#define ACCESSX_MAX_DESCRIPTORS 100
-#define ACCESSX_MAX_TABLESIZE   (16 * 1024)
-#endif
-
-/* configurable pathname variables */
-#define _PC_LINK_MAX             1
-#define _PC_MAX_CANON            2
-#define _PC_MAX_INPUT            3
-#define _PC_NAME_MAX             4
-#define _PC_PATH_MAX             5
-#define _PC_PIPE_BUF             6
-#define _PC_CHOWN_RESTRICTED     7
-#define _PC_NO_TRUNC             8
-#define _PC_VDISABLE             9
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define _PC_NAME_CHARS_MAX       10
-#define _PC_CASE_SENSITIVE               11
-#define _PC_CASE_PRESERVING              12
-#define _PC_EXTENDED_SECURITY_NP        13
-#define _PC_AUTH_OPAQUE_NP      14
-#endif
-
-#define _PC_2_SYMLINKS          15      /* Symlink supported in directory */
-#define _PC_ALLOC_SIZE_MIN      16      /* Minimum storage actually allocated */
-#define _PC_ASYNC_IO            17      /* Async I/O [AIO] supported? */
-#define _PC_FILESIZEBITS        18      /* # of bits to represent file size */
-#define _PC_PRIO_IO             19      /* Priority I/O [PIO] supported? */
-#define _PC_REC_INCR_XFER_SIZE  20      /* Recommended increment for next two */
-#define _PC_REC_MAX_XFER_SIZE   21      /* Recommended max file transfer size */
-#define _PC_REC_MIN_XFER_SIZE   22      /* Recommended min file transfer size */
-#define _PC_REC_XFER_ALIGN      23      /* Recommended buffer alignment */
-#define _PC_SYMLINK_MAX         24      /* Max # of bytes in symlink name */
-#define _PC_SYNC_IO             25      /* Sync I/O [SIO] supported? */
-#define _PC_XATTR_SIZE_BITS     26      /* # of bits to represent maximum xattr size */
-#define _PC_MIN_HOLE_SIZE       27      /* Recommended minimum hole size for sparse files */
-
-/* configurable system strings */
-#define _CS_PATH                 1
-
-#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
-
-#include 
-#include 
-#include <_types/_uint64_t.h>
-#include <_types/_uint32_t.h>
-#include 
-
-__BEGIN_DECLS
-
-int     getattrlistbulk(int, void *, void *, size_t, uint64_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-int     getattrlistat(int, const char *, void *, void *, size_t, unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-int     setattrlistat(int, const char *, void *, void *, size_t, uint32_t) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
-
-__END_DECLS
-
-#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
-
-#if __DARWIN_C_LEVEL >= 200809L
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-__BEGIN_DECLS
-
-int     faccessat(int, const char *, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-int     fchownat(int, const char *, uid_t, gid_t, int)  __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-int     linkat(int, const char *, int, const char *, int)       __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-ssize_t readlinkat(int, const char *, char *, size_t)   __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-int     symlinkat(const char *, int, const char *) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-int     unlinkat(int, const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-
-__END_DECLS
-
-#endif /* __DARWIN_C_LEVEL >= 200809L */
-
-#endif /* !_SYS_UNISTD_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos-any/time.h b/lib/libc/include/any-macos-any/time.h
new file mode 100644
index 0000000000000000000000000000000000000000..a0f9897ea4a19471f55f8b0c14ba2f87520ff135
--- /dev/null
+++ b/lib/libc/include/any-macos-any/time.h
@@ -0,0 +1,208 @@
+/*
+ * Copyright (c) 2000 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@
+ */
+/*
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * 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.
+ *
+ *	@(#)time.h	8.3 (Berkeley) 1/21/94
+ */
+
+#ifndef _TIME_H_
+#define	_TIME_H_
+
+#include <_types.h>
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+struct tm {
+	int	tm_sec;		/* seconds after the minute [0-60] */
+	int	tm_min;		/* minutes after the hour [0-59] */
+	int	tm_hour;	/* hours since midnight [0-23] */
+	int	tm_mday;	/* day of the month [1-31] */
+	int	tm_mon;		/* months since January [0-11] */
+	int	tm_year;	/* years since 1900 */
+	int	tm_wday;	/* days since Sunday [0-6] */
+	int	tm_yday;	/* days since January 1 [0-365] */
+	int	tm_isdst;	/* Daylight Savings Time flag */
+	long	tm_gmtoff;	/* offset from UTC in seconds */
+	char	*tm_zone;	/* timezone abbreviation */
+};
+
+#if __DARWIN_UNIX03
+#define CLOCKS_PER_SEC  ((clock_t)1000000)	/* [XSI] */
+#else /* !__DARWIN_UNIX03 */
+#include 	/* Include file containing CLK_TCK. */
+
+#define CLOCKS_PER_SEC  ((clock_t)(__DARWIN_CLK_TCK))
+#endif /* __DARWIN_UNIX03 */
+
+#ifndef _ANSI_SOURCE
+extern char *tzname[];
+#endif
+
+extern int getdate_err;
+#if __DARWIN_UNIX03
+extern long timezone __DARWIN_ALIAS(timezone);
+#endif /* __DARWIN_UNIX03 */
+extern int daylight;
+
+__BEGIN_DECLS
+char *asctime(const struct tm *);
+clock_t clock(void) __DARWIN_ALIAS(clock);
+char *ctime(const time_t *);
+double difftime(time_t, time_t);
+struct tm *getdate(const char *);
+struct tm *gmtime(const time_t *);
+struct tm *localtime(const time_t *);
+time_t mktime(struct tm *) __DARWIN_ALIAS(mktime);
+size_t strftime(char * __restrict, size_t, const char * __restrict, const struct tm * __restrict) __DARWIN_ALIAS(strftime);
+char *strptime(const char * __restrict, const char * __restrict, struct tm * __restrict) __DARWIN_ALIAS(strptime);
+time_t time(time_t *);
+
+#ifndef _ANSI_SOURCE
+void tzset(void);
+#endif /* not ANSI */
+
+/* [TSF] Thread safe functions */
+char *asctime_r(const struct tm * __restrict, char * __restrict);
+char *ctime_r(const time_t *, char *);
+struct tm *gmtime_r(const time_t * __restrict, struct tm * __restrict);
+struct tm *localtime_r(const time_t * __restrict, struct tm * __restrict);
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+time_t posix2time(time_t);
+#if !__DARWIN_UNIX03
+char *timezone(int, int);
+#endif /* !__DARWIN_UNIX03 */
+void tzsetwall(void);
+time_t time2posix(time_t);
+time_t timelocal(struct tm * const);
+time_t timegm(struct tm * const);
+#endif /* neither ANSI nor POSIX */
+
+#if !defined(_ANSI_SOURCE)
+int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp) __DARWIN_ALIAS_C(nanosleep);
+#endif
+
+#if !defined(_DARWIN_FEATURE_CLOCK_GETTIME) || _DARWIN_FEATURE_CLOCK_GETTIME != 0
+#if __DARWIN_C_LEVEL >= 199309L
+#if __has_feature(enumerator_attributes)
+#define __CLOCK_AVAILABILITY __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0)
+#else
+#define __CLOCK_AVAILABILITY
+#endif
+
+typedef enum {
+_CLOCK_REALTIME __CLOCK_AVAILABILITY = 0,
+#define CLOCK_REALTIME _CLOCK_REALTIME
+_CLOCK_MONOTONIC __CLOCK_AVAILABILITY = 6,
+#define CLOCK_MONOTONIC _CLOCK_MONOTONIC
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+_CLOCK_MONOTONIC_RAW __CLOCK_AVAILABILITY = 4,
+#define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW
+_CLOCK_MONOTONIC_RAW_APPROX __CLOCK_AVAILABILITY = 5,
+#define CLOCK_MONOTONIC_RAW_APPROX _CLOCK_MONOTONIC_RAW_APPROX
+_CLOCK_UPTIME_RAW __CLOCK_AVAILABILITY = 8,
+#define CLOCK_UPTIME_RAW _CLOCK_UPTIME_RAW
+_CLOCK_UPTIME_RAW_APPROX __CLOCK_AVAILABILITY = 9,
+#define CLOCK_UPTIME_RAW_APPROX _CLOCK_UPTIME_RAW_APPROX
+#endif
+_CLOCK_PROCESS_CPUTIME_ID __CLOCK_AVAILABILITY = 12,
+#define CLOCK_PROCESS_CPUTIME_ID _CLOCK_PROCESS_CPUTIME_ID
+_CLOCK_THREAD_CPUTIME_ID __CLOCK_AVAILABILITY = 16
+#define CLOCK_THREAD_CPUTIME_ID _CLOCK_THREAD_CPUTIME_ID
+} clockid_t;
+
+__CLOCK_AVAILABILITY
+int clock_getres(clockid_t __clock_id, struct timespec *__res);
+
+__CLOCK_AVAILABILITY
+int clock_gettime(clockid_t __clock_id, struct timespec *__tp);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+__CLOCK_AVAILABILITY
+__uint64_t clock_gettime_nsec_np(clockid_t __clock_id);
+#endif
+
+__OSX_AVAILABLE(10.12) __IOS_PROHIBITED
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+int clock_settime(clockid_t __clock_id, const struct timespec *__tp);
+
+#undef __CLOCK_AVAILABILITY
+#endif /* __DARWIN_C_LEVEL */
+#endif /* _DARWIN_FEATURE_CLOCK_GETTIME */
+
+#if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL) || \
+        (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
+        (defined(__cplusplus) && __cplusplus >= 201703L)
+/* ISO/IEC 9899:201x 7.27.2.5 The timespec_get function */
+#define TIME_UTC	1	/* time elapsed since epoch */
+__API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0))
+int timespec_get(struct timespec *ts, int base);
+#endif
+
+__END_DECLS
+
+#ifdef _USE_EXTENDED_LOCALES_
+#include 
+#endif /* _USE_EXTENDED_LOCALES_ */
+
+#endif /* !_TIME_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.11-any/copyfile.h b/lib/libc/include/any-macos.11-any/copyfile.h
new file mode 100644
index 0000000000000000000000000000000000000000..50239ee191213c6a88eabd4e5bee72604b27a94f
--- /dev/null
+++ b/lib/libc/include/any-macos.11-any/copyfile.h
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) 2004-2019 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@
+ */
+#ifndef _COPYFILE_H_ /* version 0.1 */
+#define _COPYFILE_H_
+
+/*
+ * This API facilitates the copying of files and their associated
+ * metadata.  There are several open source projects that need
+ * modifications to support preserving extended attributes and ACLs
+ * and this API collapses several hundred lines of modifications into
+ * one or two calls.
+ */
+
+/* private */
+#include 
+#include 
+
+__BEGIN_DECLS
+struct _copyfile_state;
+typedef struct _copyfile_state * copyfile_state_t;
+typedef uint32_t copyfile_flags_t;
+
+/* public */
+
+/* receives:
+ *   from	path to source file system object
+ *   to		path to destination file system object
+ *   state	opaque blob for future extensibility
+ *		Must be NULL in current implementation
+ *   flags	(described below)
+ * returns:
+ *   int	negative for error
+ */
+
+int copyfile(const char *from, const char *to, copyfile_state_t state, copyfile_flags_t flags);
+int fcopyfile(int from_fd, int to_fd, copyfile_state_t, copyfile_flags_t flags);
+
+int copyfile_state_free(copyfile_state_t);
+copyfile_state_t copyfile_state_alloc(void);
+
+
+int copyfile_state_get(copyfile_state_t s, uint32_t flag, void * dst);
+int copyfile_state_set(copyfile_state_t s, uint32_t flag, const void * src);
+
+typedef int (*copyfile_callback_t)(int, int, copyfile_state_t, const char *, const char *, void *);
+
+#define COPYFILE_STATE_SRC_FD		1
+#define COPYFILE_STATE_SRC_FILENAME	2
+#define COPYFILE_STATE_DST_FD		3
+#define COPYFILE_STATE_DST_FILENAME	4
+#define COPYFILE_STATE_QUARANTINE	5
+#define	COPYFILE_STATE_STATUS_CB	6
+#define	COPYFILE_STATE_STATUS_CTX	7
+#define	COPYFILE_STATE_COPIED		8
+#define	COPYFILE_STATE_XATTRNAME	9
+#define	COPYFILE_STATE_WAS_CLONED	10
+
+
+#define	COPYFILE_DISABLE_VAR	"COPYFILE_DISABLE"
+
+/* flags for copyfile */
+
+#define COPYFILE_ACL	    (1<<0)
+#define COPYFILE_STAT	    (1<<1)
+#define COPYFILE_XATTR	    (1<<2)
+#define COPYFILE_DATA	    (1<<3)
+
+#define COPYFILE_SECURITY   (COPYFILE_STAT | COPYFILE_ACL)
+#define COPYFILE_METADATA   (COPYFILE_SECURITY | COPYFILE_XATTR)
+#define COPYFILE_ALL	    (COPYFILE_METADATA | COPYFILE_DATA)
+
+#define	COPYFILE_RECURSIVE	(1<<15)	/* Descend into hierarchies */
+#define COPYFILE_CHECK		(1<<16) /* return flags for xattr or acls if set */
+#define COPYFILE_EXCL		(1<<17) /* fail if destination exists */
+#define COPYFILE_NOFOLLOW_SRC	(1<<18) /* don't follow if source is a symlink */
+#define COPYFILE_NOFOLLOW_DST	(1<<19) /* don't follow if dst is a symlink */
+#define COPYFILE_MOVE		(1<<20) /* unlink src after copy */
+#define COPYFILE_UNLINK		(1<<21) /* unlink dst before copy */
+#define COPYFILE_NOFOLLOW	(COPYFILE_NOFOLLOW_SRC | COPYFILE_NOFOLLOW_DST)
+
+#define COPYFILE_PACK		(1<<22)
+#define COPYFILE_UNPACK		(1<<23)
+
+#define COPYFILE_CLONE		(1<<24)
+#define COPYFILE_CLONE_FORCE	(1<<25)
+
+#define COPYFILE_RUN_IN_PLACE	(1<<26)
+
+#define COPYFILE_DATA_SPARSE	(1<<27)
+
+#define COPYFILE_PRESERVE_DST_TRACKED	(1<<28)
+
+#define COPYFILE_VERBOSE	(1<<30)
+
+#define	COPYFILE_RECURSE_ERROR	0
+#define	COPYFILE_RECURSE_FILE	1
+#define	COPYFILE_RECURSE_DIR	2
+#define	COPYFILE_RECURSE_DIR_CLEANUP	3
+#define	COPYFILE_COPY_DATA	4
+#define	COPYFILE_COPY_XATTR	5
+
+#define	COPYFILE_START		1
+#define	COPYFILE_FINISH		2
+#define	COPYFILE_ERR		3
+#define	COPYFILE_PROGRESS	4
+
+#define	COPYFILE_CONTINUE	0
+#define	COPYFILE_SKIP	1
+#define	COPYFILE_QUIT	2
+
+__END_DECLS
+
+#endif /* _COPYFILE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.11-any/sys/stdio.h b/lib/libc/include/any-macos.11-any/sys/stdio.h
new file mode 100644
index 0000000000000000000000000000000000000000..c51c1b9c7dc72475954596a9e8c383573930aa7b
--- /dev/null
+++ b/lib/libc/include/any-macos.11-any/sys/stdio.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2013 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 _SYS_STDIO_H_
+#define _SYS_STDIO_H_
+
+#include 
+
+#if __DARWIN_C_LEVEL >= 200809L
+#include 
+
+__BEGIN_DECLS
+
+int     renameat(int, const char *, int, const char *) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+
+#define RENAME_SECLUDE          0x00000001
+#define RENAME_SWAP                     0x00000002
+#define RENAME_EXCL                     0x00000004
+int renamex_np(const char *, const char *, unsigned int) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+int renameatx_np(int, const char *, int, const char *, unsigned int) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+__END_DECLS
+
+#endif /* __DARWIN_C_LEVEL >= 200809L */
+
+#endif /* _SYS_STDIO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.11-any/sys/unistd.h b/lib/libc/include/any-macos.11-any/sys/unistd.h
new file mode 100644
index 0000000000000000000000000000000000000000..53d0331b0603ad2c133d75cf83546bff58c8e167
--- /dev/null
+++ b/lib/libc/include/any-macos.11-any/sys/unistd.h
@@ -0,0 +1,218 @@
+/*
+ * Copyright (c) 2000-2013 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1989, 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.
+ *
+ *	@(#)unistd.h	8.2 (Berkeley) 1/7/94
+ */
+
+#ifndef _SYS_UNISTD_H_
+#define _SYS_UNISTD_H_
+
+#include 
+
+/*
+ * Although we have saved user/group IDs, we do not use them in setuid
+ * as described in POSIX 1003.1, because the feature does not work for
+ * root.  We use the saved IDs in seteuid/setegid, which are not currently
+ * part of the POSIX 1003.1 specification.
+ */
+#ifdef  _NOT_AVAILABLE
+#define _POSIX_SAVED_IDS        /* saved set-user-ID and set-group-ID */
+#endif
+
+#define _POSIX_VERSION          200112L
+#define _POSIX2_VERSION         200112L
+
+/* execution-time symbolic constants */
+/* may disable terminal special characters */
+#include 
+
+#define _POSIX_THREAD_KEYS_MAX 128
+
+/* access function */
+#define F_OK            0       /* test for existence of file */
+#define X_OK            (1<<0)  /* test for execute or search permission */
+#define W_OK            (1<<1)  /* test for write permission */
+#define R_OK            (1<<2)  /* test for read permission */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Extended access functions.
+ * Note that we depend on these matching the definitions in sys/kauth.h,
+ * but with the bits shifted left by 8.
+ */
+#define _READ_OK        (1<<9)  /* read file data / read directory */
+#define _WRITE_OK       (1<<10) /* write file data / add file to directory */
+#define _EXECUTE_OK     (1<<11) /* execute file / search in directory*/
+#define _DELETE_OK      (1<<12) /* delete file / delete directory */
+#define _APPEND_OK      (1<<13) /* append to file / add subdirectory to directory */
+#define _RMFILE_OK      (1<<14) /* - / remove file from directory */
+#define _RATTR_OK       (1<<15) /* read basic attributes */
+#define _WATTR_OK       (1<<16) /* write basic attributes */
+#define _REXT_OK        (1<<17) /* read extended attributes */
+#define _WEXT_OK        (1<<18) /* write extended attributes */
+#define _RPERM_OK       (1<<19) /* read permissions */
+#define _WPERM_OK       (1<<20) /* write permissions */
+#define _CHOWN_OK       (1<<21) /* change ownership */
+
+#define _ACCESS_EXTENDED_MASK (_READ_OK | _WRITE_OK | _EXECUTE_OK | \
+	                        _DELETE_OK | _APPEND_OK | \
+	                        _RMFILE_OK | _REXT_OK | \
+	                        _WEXT_OK | _RATTR_OK | _WATTR_OK | _RPERM_OK | \
+	                        _WPERM_OK | _CHOWN_OK)
+#endif
+
+/* whence values for lseek(2) */
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* whence values for lseek(2); renamed by POSIX 1003.1 */
+#define L_SET           SEEK_SET
+#define L_INCR          SEEK_CUR
+#define L_XTND          SEEK_END
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+struct accessx_descriptor {
+	unsigned int ad_name_offset;
+	int ad_flags;
+	int ad_pad[2];
+};
+#define ACCESSX_MAX_DESCRIPTORS 100
+#define ACCESSX_MAX_TABLESIZE   (16 * 1024)
+#endif
+
+/* configurable pathname variables */
+#define _PC_LINK_MAX             1
+#define _PC_MAX_CANON            2
+#define _PC_MAX_INPUT            3
+#define _PC_NAME_MAX             4
+#define _PC_PATH_MAX             5
+#define _PC_PIPE_BUF             6
+#define _PC_CHOWN_RESTRICTED     7
+#define _PC_NO_TRUNC             8
+#define _PC_VDISABLE             9
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define _PC_NAME_CHARS_MAX       10
+#define _PC_CASE_SENSITIVE               11
+#define _PC_CASE_PRESERVING              12
+#define _PC_EXTENDED_SECURITY_NP        13
+#define _PC_AUTH_OPAQUE_NP      14
+#endif
+
+#define _PC_2_SYMLINKS          15      /* Symlink supported in directory */
+#define _PC_ALLOC_SIZE_MIN      16      /* Minimum storage actually allocated */
+#define _PC_ASYNC_IO            17      /* Async I/O [AIO] supported? */
+#define _PC_FILESIZEBITS        18      /* # of bits to represent file size */
+#define _PC_PRIO_IO             19      /* Priority I/O [PIO] supported? */
+#define _PC_REC_INCR_XFER_SIZE  20      /* Recommended increment for next two */
+#define _PC_REC_MAX_XFER_SIZE   21      /* Recommended max file transfer size */
+#define _PC_REC_MIN_XFER_SIZE   22      /* Recommended min file transfer size */
+#define _PC_REC_XFER_ALIGN      23      /* Recommended buffer alignment */
+#define _PC_SYMLINK_MAX         24      /* Max # of bytes in symlink name */
+#define _PC_SYNC_IO             25      /* Sync I/O [SIO] supported? */
+#define _PC_XATTR_SIZE_BITS     26      /* # of bits to represent maximum xattr size */
+#define _PC_MIN_HOLE_SIZE       27      /* Recommended minimum hole size for sparse files */
+
+/* configurable system strings */
+#define _CS_PATH                 1
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+
+#include 
+#include 
+#include <_types/_uint64_t.h>
+#include <_types/_uint32_t.h>
+#include 
+
+__BEGIN_DECLS
+
+int     getattrlistbulk(int, void *, void *, size_t, uint64_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     getattrlistat(int, const char *, void *, void *, size_t, unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     setattrlistat(int, const char *, void *, void *, size_t, uint32_t) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+
+__END_DECLS
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if __DARWIN_C_LEVEL >= 200809L
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+__BEGIN_DECLS
+
+int     faccessat(int, const char *, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     fchownat(int, const char *, uid_t, gid_t, int)  __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     linkat(int, const char *, int, const char *, int)       __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+ssize_t readlinkat(int, const char *, char *, size_t)   __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     symlinkat(const char *, int, const char *) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     unlinkat(int, const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+__END_DECLS
+
+#endif /* __DARWIN_C_LEVEL >= 200809L */
+
+#endif /* !_SYS_UNISTD_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.12-any/TargetConditionals.h b/lib/libc/include/any-macos.12-any/TargetConditionals.h
deleted file mode 100644
index 020e96ee9b891219c391a43a1fad2c4d24254a02..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos.12-any/TargetConditionals.h
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * Copyright (c) 2000-2014 by 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@
- */
- 
-/*
-     File:       TargetConditionals.h
- 
-     Contains:   Autoconfiguration of TARGET_ conditionals for Mac OS X and iPhone
-     
-                 Note:  TargetConditionals.h in 3.4 Universal Interfaces works
-                        with all compilers.  This header only recognizes compilers
-                        known to run on Mac OS X.
-  
-*/
-
-#ifndef __TARGETCONDITIONALS__
-#define __TARGETCONDITIONALS__
-
-/*
- *
- *  TARGET_CPU_*
- *  These conditionals specify which microprocessor instruction set is being
- *  generated.  At most one of these is true, the rest are false.
- *
- *      TARGET_CPU_PPC          - Compiler is generating PowerPC instructions for 32-bit mode
- *      TARGET_CPU_PPC64        - Compiler is generating PowerPC instructions for 64-bit mode
- *      TARGET_CPU_68K          - Compiler is generating 680x0 instructions
- *      TARGET_CPU_X86          - Compiler is generating x86 instructions for 32-bit mode
- *      TARGET_CPU_X86_64       - Compiler is generating x86 instructions for 64-bit mode
- *      TARGET_CPU_ARM          - Compiler is generating ARM instructions for 32-bit mode
- *      TARGET_CPU_ARM64        - Compiler is generating ARM instructions for 64-bit mode
- *      TARGET_CPU_MIPS         - Compiler is generating MIPS instructions
- *      TARGET_CPU_SPARC        - Compiler is generating Sparc instructions
- *      TARGET_CPU_ALPHA        - Compiler is generating Dec Alpha instructions
- *
- *
- *  TARGET_OS_*
- *  These conditionals specify in which Operating System the generated code will
- *  run.  Indention is used to show which conditionals are evolutionary subclasses.
- *
- *  The MAC/WIN32/UNIX conditionals are mutually exclusive.
- *  The IOS/TV/WATCH conditionals are mutually exclusive.
- *
- *
- *      TARGET_OS_WIN32           - Generated code will run under WIN32 API
- *      TARGET_OS_WINDOWS         - Generated code will run under Windows
- *      TARGET_OS_UNIX            - Generated code will run under some Unix (not OSX)
- *      TARGET_OS_LINUX           - Generated code will run under Linux
- *      TARGET_OS_MAC             - Generated code will run under Mac OS X variant
- *         TARGET_OS_OSX          - Generated code will run under OS X devices
- *         TARGET_OS_IPHONE          - Generated code for firmware, devices, or simulator
- *            TARGET_OS_IOS             - Generated code will run under iOS
- *            TARGET_OS_TV              - Generated code will run under Apple TV OS
- *            TARGET_OS_WATCH           - Generated code will run under Apple Watch OS
- *            TARGET_OS_BRIDGE          - Generated code will run under Bridge devices
- *            TARGET_OS_MACCATALYST     - Generated code will run under macOS
- *         TARGET_OS_DRIVERKIT          - Generated code will run under macOS, iOS, Apple TV OS, or Apple Watch OS
- *         TARGET_OS_SIMULATOR      - Generated code will run under a simulator
- *
- *      TARGET_OS_EMBEDDED        - DEPRECATED: Use TARGET_OS_IPHONE and/or TARGET_OS_SIMULATOR instead
- *      TARGET_IPHONE_SIMULATOR   - DEPRECATED: Same as TARGET_OS_SIMULATOR
- *      TARGET_OS_NANO            - DEPRECATED: Same as TARGET_OS_WATCH
- *
- *    +---------------------------------------------------------------------------+
- *    |                             TARGET_OS_MAC                                 |
- *    | +-----+ +-------------------------------------------------+ +-----------+ |
- *    | |     | |                  TARGET_OS_IPHONE               | |           | |
- *    | |     | | +-----------------+ +----+ +-------+ +--------+ | |           | |
- *    | |     | | |       IOS       | |    | |       | |        | | |           | |
- *    | | OSX | | | +-------------+ | | TV | | WATCH | | BRIDGE | | | DRIVERKIT | |
- *    | |     | | | | MACCATALYST | | |    | |       | |        | | |           | |
- *    | |     | | | +-------------+ | |    | |       | |        | | |           | |
- *    | |     | | +-----------------+ +----+ +-------+ +--------+ | |           | |
- *    | +-----+ +-------------------------------------------------+ +-----------+ |
- *    +---------------------------------------------------------------------------+
-
- *  TARGET_RT_*
- *  These conditionals specify in which runtime the generated code will
- *  run. This is needed when the OS and CPU support more than one runtime
- *  (e.g. Mac OS X supports CFM and mach-o).
- *
- *      TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers
- *      TARGET_RT_BIG_ENDIAN    - Generated code uses big endian format for integers
- *      TARGET_RT_64_BIT        - Generated code uses 64-bit pointers
- *      TARGET_RT_MAC_CFM       - TARGET_OS_MAC is true and CFM68K or PowerPC CFM (TVectors) are used
- *      TARGET_RT_MAC_MACHO     - TARGET_OS_MAC is true and Mach-O/dlyd runtime is used
- */
- 
- /*
- * TARGET_OS conditionals can be enabled via clang preprocessor extensions:
- *
- *      __is_target_arch
- *      __is_target_vendor
- *      __is_target_os
- *      __is_target_environment
- *
- *  "-target=x86_64-apple-ios12-macabi"
- *      TARGET_OS_MAC=1
- *      TARGET_OS_IPHONE=1
- *      TARGET_OS_IOS=1
- *      TARGET_OS_MACCATALYST=1
- *
- *  "-target=x86_64-apple-ios12-simulator"
- *      TARGET_OS_MAC=1
- *      TARGET_OS_IPHONE=1
- *      TARGET_OS_IOS=1
- *      TARGET_OS_SIMULATOR=1
- *
- * DYNAMIC_TARGETS_ENABLED indicates that the core TARGET_OS macros were enabled via clang preprocessor extensions.
- * If this value is not set, the macro enablements will fall back to the static behavior.
- * It is disabled by default.
- */
-
-#if defined(__has_builtin)
- #if __has_builtin(__is_target_arch)
-  #if __has_builtin(__is_target_vendor)
-   #if __has_builtin(__is_target_os)
-    #if __has_builtin(__is_target_environment)
-
-    /* "-target=x86_64-apple-ios12-macabi" */
-    /* "-target=arm64-apple-ios12-macabi" */
-    /* "-target=arm64e-apple-ios12-macabi" */
-    #if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(macabi)
-        #define TARGET_OS_OSX               0
-        #define TARGET_OS_IPHONE            1
-        #define TARGET_OS_IOS               1
-        #define TARGET_OS_WATCH             0
-        
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_SIMULATOR         0
-        #define TARGET_OS_EMBEDDED          0    
-        #define TARGET_OS_RTKIT             0
-        #define TARGET_OS_MACCATALYST       1
-        #define TARGET_OS_MACCATALYST            1
-
-        #ifndef TARGET_OS_UIKITFORMAC
-         #define TARGET_OS_UIKITFORMAC      1
-        #endif
-        #define TARGET_OS_DRIVERKIT         0
-        #define DYNAMIC_TARGETS_ENABLED     1
-    #endif 
-
-    /* "-target=x86_64-apple-ios12-simulator" */
-    /* "-target=arm64-apple-ios12-simulator" */
-    /* "-target=arm64e-apple-ios12-simulator" */
-    #if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(simulator)
-        #define TARGET_OS_OSX               0
-        #define TARGET_OS_IPHONE            1
-        #define TARGET_OS_IOS               1
-        #define TARGET_OS_WATCH             0
-        
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_SIMULATOR         1
-        #define TARGET_OS_EMBEDDED          0    
-        #define TARGET_OS_RTKIT             0
-        #define TARGET_OS_MACCATALYST       0
-        #define TARGET_OS_MACCATALYST            0
-
-        #ifndef TARGET_OS_UIKITFORMAC
-         #define TARGET_OS_UIKITFORMAC      0
-        #endif
-        #define TARGET_OS_DRIVERKIT         0
-        #define DYNAMIC_TARGETS_ENABLED     1
-    #endif 
-
-
-
-    /* "-target=x86_64-apple-driverkit19.0" */
-    /* "-target=arm64-apple-driverkit19.0" */
-    /* "-target=arm64e-apple-driverkit19.0" */
-    #if __is_target_vendor(apple) && __is_target_os(driverkit)
-        #define TARGET_OS_OSX               0
-        #define TARGET_OS_IPHONE            0
-        #define TARGET_OS_IOS               0
-        #define TARGET_OS_WATCH             0
-        
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_SIMULATOR         0
-        #define TARGET_OS_EMBEDDED          0
-        #define TARGET_OS_RTKIT             0
-        #define TARGET_OS_MACCATALYST       0
-        #define TARGET_OS_MACCATALYST            0
-
-        #ifndef TARGET_OS_UIKITFORMAC
-         #define TARGET_OS_UIKITFORMAC      0
-        #endif
-        #define TARGET_OS_DRIVERKIT         1
-        #define DYNAMIC_TARGETS_ENABLED     1
-    #endif
-
-    #endif /* #if __has_builtin(__is_target_environment) */
-   #endif /* #if __has_builtin(__is_target_os) */
-  #endif /* #if __has_builtin(__is_target_vendor) */
- #endif /* #if __has_builtin(__is_target_arch) */
-#endif /* #if defined(__has_builtin) */
-
-
-#ifndef DYNAMIC_TARGETS_ENABLED
- #define DYNAMIC_TARGETS_ENABLED   0
-#endif /* DYNAMIC_TARGETS_ENABLED */
-
-/*
- *    gcc based compiler used on Mac OS X
- */
-#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )
-    #define TARGET_OS_MAC               1
-    #define TARGET_OS_WIN32             0
-    #define TARGET_OS_WINDOWS           0
-    #define TARGET_OS_UNIX              0
-    #define TARGET_OS_LINUX             0
-
-    #if !DYNAMIC_TARGETS_ENABLED
-        #define TARGET_OS_OSX               1
-        #define TARGET_OS_IPHONE            0
-        #define TARGET_OS_IOS               0
-        #define TARGET_OS_WATCH             0
-        
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_MACCATALYST       0
-        #define TARGET_OS_MACCATALYST            0
-
-        #ifndef TARGET_OS_UIKITFORMAC
-         #define TARGET_OS_UIKITFORMAC      0
-        #endif
-        #define TARGET_OS_SIMULATOR         0
-        #define TARGET_OS_EMBEDDED          0 
-        #define TARGET_OS_RTKIT             0 
-        #define TARGET_OS_DRIVERKIT         0
-    #endif
-    
-    #define TARGET_IPHONE_SIMULATOR     TARGET_OS_SIMULATOR /* deprecated */
-    #define TARGET_OS_NANO              TARGET_OS_WATCH /* deprecated */ 
-
-    #define TARGET_ABI_USES_IOS_VALUES  (!TARGET_CPU_X86_64 || (TARGET_OS_IPHONE && !TARGET_OS_MACCATALYST))
-    #if defined(__ppc__)
-        #define TARGET_CPU_PPC          1
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0   
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_LITTLE_ENDIAN 0
-        #define TARGET_RT_BIG_ENDIAN    1
-        #define TARGET_RT_64_BIT        0
-        #ifdef __MACOS_CLASSIC__
-           #define TARGET_RT_MAC_CFM    1
-           #define TARGET_RT_MAC_MACHO  0
-        #else
-           #define TARGET_RT_MAC_CFM    0
-           #define TARGET_RT_MAC_MACHO  1
-       #endif
-    #elif defined(__ppc64__) 
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        1
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0   
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_LITTLE_ENDIAN 0
-        #define TARGET_RT_BIG_ENDIAN    1
-        #define TARGET_RT_64_BIT        1
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-    #elif defined(__i386__) 
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          1
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #define TARGET_RT_64_BIT        0
-    #elif defined(__x86_64__) 
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       1
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #define TARGET_RT_64_BIT        1
-    #elif defined(__arm__) 
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          1
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #define TARGET_RT_64_BIT        0
-    #elif defined(__arm64__)
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        1
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #if __LP64__
-          #define TARGET_RT_64_BIT      1
-        #else
-          #define TARGET_RT_64_BIT      0
-        #endif
-    #else
-        #error unrecognized GNU C compiler
-    #endif
-
-
-
-/*
- *   CodeWarrior compiler from Metrowerks/Motorola
- */
-#elif defined(__MWERKS__)
-    #define TARGET_OS_MAC               1
-    #define TARGET_OS_WIN32             0
-    #define TARGET_OS_WINDOWS           0
-    #define TARGET_OS_UNIX              0
-    #define TARGET_OS_LINUX             0
-    #define TARGET_OS_EMBEDDED          0
-    #if defined(__POWERPC__)
-        #define TARGET_CPU_PPC          1
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_LITTLE_ENDIAN 0
-        #define TARGET_RT_BIG_ENDIAN    1
-    #elif defined(__INTEL__)
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          1
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-    #else
-        #error unknown Metrowerks CPU type
-    #endif
-    #define TARGET_RT_64_BIT            0
-    #ifdef __MACH__
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-    #else
-        #define TARGET_RT_MAC_CFM       1
-        #define TARGET_RT_MAC_MACHO     0
-    #endif
-
-/*
- *   unknown compiler
- */
-#else
-    #if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_PPC64) && TARGET_CPU_PPC64
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_X86) && TARGET_CPU_X86
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_X86_64) && TARGET_CPU_X86_64
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_ARM) && TARGET_CPU_ARM
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_ARM64) && TARGET_CPU_ARM64
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #else
-        /*
-            NOTE:   If your compiler errors out here then support for your compiler 
-            has not yet been added to TargetConditionals.h.  
-            
-            TargetConditionals.h is designed to be plug-and-play.  It auto detects
-            which compiler is being run and configures the TARGET_ conditionals
-            appropriately.  
-            
-            The short term work around is to set the TARGET_CPU_ and TARGET_OS_
-            on the command line to the compiler (e.g. -DTARGET_CPU_MIPS=1 -DTARGET_OS_UNIX=1)
-            
-            The long term solution is to add a new case to this file which
-            auto detects your compiler and sets up the TARGET_ conditionals.
-            Then submit the changes to Apple Computer.
-        */
-        #error TargetConditionals.h: unknown compiler (see comment above)
-        #define TARGET_CPU_PPC    0
-        #define TARGET_CPU_68K    0
-        #define TARGET_CPU_X86    0
-        #define TARGET_CPU_ARM    0
-        #define TARGET_CPU_ARM64  0
-        #define TARGET_CPU_MIPS   0
-        #define TARGET_CPU_SPARC  0
-        #define TARGET_CPU_ALPHA  0
-    #endif
-    #define TARGET_OS_MAC                1
-    #define TARGET_OS_WIN32              0
-    #define TARGET_OS_WINDOWS            0
-    #define TARGET_OS_UNIX               0
-    #define TARGET_OS_LINUX              0
-    #define TARGET_OS_EMBEDDED           0
-    #if TARGET_CPU_PPC || TARGET_CPU_PPC64
-        #define TARGET_RT_BIG_ENDIAN     1
-        #define TARGET_RT_LITTLE_ENDIAN  0
-    #else
-        #define TARGET_RT_BIG_ENDIAN     0
-        #define TARGET_RT_LITTLE_ENDIAN  1
-    #endif
-    #if TARGET_CPU_PPC64 || TARGET_CPU_X86_64
-        #define TARGET_RT_64_BIT         1
-    #else
-        #define TARGET_RT_64_BIT         0
-    #endif
-    #ifdef __MACH__
-        #define TARGET_RT_MAC_MACHO      1
-        #define TARGET_RT_MAC_CFM        0
-    #else
-        #define TARGET_RT_MAC_MACHO      0
-        #define TARGET_RT_MAC_CFM        1
-    #endif
-    
-#endif
-
-#endif  /* __TARGETCONDITIONALS__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.12-any/mach/mach_init.h b/lib/libc/include/any-macos.12-any/mach/mach_init.h
deleted file mode 100644
index fbce7117c763451b59cd8d05a53e249cf71c2159..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos.12-any/mach/mach_init.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 1999 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@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987,1986 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- *	Items provided by the Mach environment initialization.
- */
-
-#ifndef _MACH_INIT_
-#define _MACH_INIT_     1
-
-#include 
-#include 
-#include 
-
-#include 
-
-#include 
-
-/*
- *	Kernel-related ports; how a task/thread controls itself
- */
-
-__BEGIN_DECLS
-extern mach_port_t mach_host_self(void);
-extern mach_port_t mach_thread_self(void);
-__API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.3))
-extern boolean_t mach_task_is_self(task_name_t task);
-extern kern_return_t host_page_size(host_t, vm_size_t *);
-
-extern mach_port_t      mach_task_self_;
-#define mach_task_self() mach_task_self_
-#define current_task()  mach_task_self()
-
-__END_DECLS
-#include 
-__BEGIN_DECLS
-
-/*
- *	Other important ports in the Mach user environment
- */
-
-extern  mach_port_t     bootstrap_port;
-
-/*
- *	Where these ports occur in the "mach_ports_register"
- *	collection... only servers or the runtime library need know.
- */
-
-#define NAME_SERVER_SLOT        0
-#define ENVIRONMENT_SLOT        1
-#define SERVICE_SLOT            2
-
-#define MACH_PORTS_SLOTS_USED   3
-
-/*
- *	fprintf_stderr uses vprintf_stderr_func to produce
- *	error messages, this can be overridden by a user
- *	application to point to a user-specified output function
- */
-extern int (*vprintf_stderr_func)(const char *format, va_list ap) __printflike(1, 0);
-
-__END_DECLS
-
-#endif  /* _MACH_INIT_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.12-any/mach/task_info.h b/lib/libc/include/any-macos.12-any/mach/task_info.h
deleted file mode 100644
index 09395e2c245066d13b241e1f65abafe5f8291fa8..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos.12-any/mach/task_info.h
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- * Copyright (c) 2000-2007, 2015 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@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- *	Machine-independent task information structures and definitions.
- *
- *	The definitions in this file are exported to the user.  The kernel
- *	will translate its internal data structures to these structures
- *	as appropriate.
- *
- */
-
-#ifndef _MACH_TASK_INFO_H_
-#define _MACH_TASK_INFO_H_
-
-#include 
-#include 
-#include 
-#include 
-#include  /* for vm_extmod_statistics_data_t */
-#include 
-
-#include 
-
-/*
- *	Generic information structure to allow for expansion.
- */
-typedef natural_t       task_flavor_t;
-typedef integer_t       *task_info_t;           /* varying array of int */
-
-/* Deprecated, use per structure _data_t's instead */
-#define TASK_INFO_MAX   (1024)          /* maximum array size */
-typedef integer_t       task_info_data_t[TASK_INFO_MAX];
-
-/*
- *	Currently defined information structures.
- */
-
-#pragma pack(push, 4)
-
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-#define TASK_BASIC_INFO_32      4       /* basic information */
-#define TASK_BASIC2_INFO_32      6
-
-struct task_basic_info_32 {
-	integer_t       suspend_count;  /* suspend count for task */
-	natural_t       virtual_size;   /* virtual memory size (bytes) */
-	natural_t       resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-typedef struct task_basic_info_32       task_basic_info_32_data_t;
-typedef struct task_basic_info_32       *task_basic_info_32_t;
-#define TASK_BASIC_INFO_32_COUNT   \
-	        (sizeof(task_basic_info_32_data_t) / sizeof(natural_t))
-
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-struct task_basic_info_64 {
-	integer_t       suspend_count;  /* suspend count for task */
-#if defined(__arm__) || defined(__arm64__)
-	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
-	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
-#else /* defined(__arm__) || defined(__arm64__) */
-	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
-	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
-#endif /* defined(__arm__) || defined(__arm64__) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-typedef struct task_basic_info_64       task_basic_info_64_data_t;
-typedef struct task_basic_info_64       *task_basic_info_64_t;
-
-#if defined(__arm__) || defined(__arm64__)
-	#if   defined(__arm__) && defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0)
-/*
- * Note: arm64 can't use the old flavor.  If you somehow manage to,
- * you can cope with the nonsense data yourself.
- */
-	#define TASK_BASIC_INFO_64      5
-	#define TASK_BASIC_INFO_64_COUNT   \
-	        (sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
-
-	#else
-
-	#define TASK_BASIC_INFO_64              TASK_BASIC_INFO_64_2
-	#define TASK_BASIC_INFO_64_COUNT        TASK_BASIC_INFO_64_2_COUNT
-	#endif
-#else /* defined(__arm__) || defined(__arm64__) */
-#define TASK_BASIC_INFO_64      5       /* 64-bit capable basic info */
-#define TASK_BASIC_INFO_64_COUNT   \
-	        (sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
-#endif
-
-
-/* localized structure - cannot be safely passed between tasks of differing sizes */
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-struct task_basic_info {
-	integer_t       suspend_count;  /* suspend count for task */
-	vm_size_t       virtual_size;   /* virtual memory size (bytes) */
-	vm_size_t       resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-
-typedef struct task_basic_info          task_basic_info_data_t;
-typedef struct task_basic_info          *task_basic_info_t;
-#define TASK_BASIC_INFO_COUNT   \
-	        (sizeof(task_basic_info_data_t) / sizeof(natural_t))
-#if !defined(__LP64__)
-#define TASK_BASIC_INFO TASK_BASIC_INFO_32
-#else
-#define TASK_BASIC_INFO TASK_BASIC_INFO_64
-#endif
-
-
-
-#define TASK_EVENTS_INFO        2       /* various event counts */
-
-struct task_events_info {
-	integer_t       faults;         /* number of page faults */
-	integer_t       pageins;        /* number of actual pageins */
-	integer_t       cow_faults;     /* number of copy-on-write faults */
-	integer_t       messages_sent;  /* number of messages sent */
-	integer_t       messages_received; /* number of messages received */
-	integer_t       syscalls_mach;  /* number of mach system calls */
-	integer_t       syscalls_unix;  /* number of unix system calls */
-	integer_t       csw;            /* number of context switches */
-};
-typedef struct task_events_info         task_events_info_data_t;
-typedef struct task_events_info         *task_events_info_t;
-#define TASK_EVENTS_INFO_COUNT          ((mach_msg_type_number_t) \
-	        (sizeof(task_events_info_data_t) / sizeof(natural_t)))
-
-#define TASK_THREAD_TIMES_INFO  3       /* total times for live threads -
-	                                 *  only accurate if suspended */
-
-struct task_thread_times_info {
-	time_value_t    user_time;      /* total user run time for
-	                                 *  live threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  live threads */
-};
-
-typedef struct task_thread_times_info   task_thread_times_info_data_t;
-typedef struct task_thread_times_info   *task_thread_times_info_t;
-#define TASK_THREAD_TIMES_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof(task_thread_times_info_data_t) / sizeof(natural_t)))
-
-#define TASK_ABSOLUTETIME_INFO  1
-
-struct task_absolutetime_info {
-	uint64_t                total_user;
-	uint64_t                total_system;
-	uint64_t                threads_user;   /* existing threads only */
-	uint64_t                threads_system;
-};
-
-typedef struct task_absolutetime_info   task_absolutetime_info_data_t;
-typedef struct task_absolutetime_info   *task_absolutetime_info_t;
-#define TASK_ABSOLUTETIME_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof (task_absolutetime_info_data_t) / sizeof (natural_t)))
-
-#define TASK_KERNELMEMORY_INFO  7
-
-struct task_kernelmemory_info {
-	uint64_t                total_palloc;   /* private kernel mem alloc'ed */
-	uint64_t                total_pfree;    /* private kernel mem freed */
-	uint64_t                total_salloc;   /* shared kernel mem alloc'ed */
-	uint64_t                total_sfree;    /* shared kernel mem freed */
-};
-
-typedef struct task_kernelmemory_info   task_kernelmemory_info_data_t;
-typedef struct task_kernelmemory_info   *task_kernelmemory_info_t;
-#define TASK_KERNELMEMORY_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof (task_kernelmemory_info_data_t) / sizeof (natural_t)))
-
-#define TASK_SECURITY_TOKEN             13
-#define TASK_SECURITY_TOKEN_COUNT       ((mach_msg_type_number_t) \
-	        (sizeof(security_token_t) / sizeof(natural_t)))
-
-#define TASK_AUDIT_TOKEN                15
-#define TASK_AUDIT_TOKEN_COUNT  \
-	        (sizeof(audit_token_t) / sizeof(natural_t))
-
-
-#define TASK_AFFINITY_TAG_INFO          16      /* This is experimental. */
-
-struct task_affinity_tag_info {
-	integer_t               set_count;
-	integer_t               min;
-	integer_t               max;
-	integer_t               task_count;
-};
-typedef struct task_affinity_tag_info   task_affinity_tag_info_data_t;
-typedef struct task_affinity_tag_info   *task_affinity_tag_info_t;
-#define TASK_AFFINITY_TAG_INFO_COUNT    \
-	        (sizeof(task_affinity_tag_info_data_t) / sizeof(natural_t))
-
-#define TASK_DYLD_INFO                  17
-
-struct task_dyld_info {
-	mach_vm_address_t       all_image_info_addr;
-	mach_vm_size_t          all_image_info_size;
-	integer_t               all_image_info_format;
-};
-typedef struct task_dyld_info   task_dyld_info_data_t;
-typedef struct task_dyld_info   *task_dyld_info_t;
-#define TASK_DYLD_INFO_COUNT    \
-	        (sizeof(task_dyld_info_data_t) / sizeof(natural_t))
-#define TASK_DYLD_ALL_IMAGE_INFO_32     0       /* format value */
-#define TASK_DYLD_ALL_IMAGE_INFO_64     1       /* format value */
-
-#if defined(__arm__) || defined(__arm64__)
-
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-/* Compatibility for old 32-bit mach_vm_*_t */
-#define TASK_BASIC_INFO_64_2     18       /* 64-bit capable basic info */
-
-struct task_basic_info_64_2 {
-	integer_t       suspend_count;  /* suspend count for task */
-	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
-	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-typedef struct task_basic_info_64_2       task_basic_info_64_2_data_t;
-typedef struct task_basic_info_64_2       *task_basic_info_64_2_t;
-#define TASK_BASIC_INFO_64_2_COUNT   \
-	        (sizeof(task_basic_info_64_2_data_t) / sizeof(natural_t))
-#endif
-
-#define TASK_EXTMOD_INFO                        19
-
-struct task_extmod_info {
-	unsigned char   task_uuid[16];
-	vm_extmod_statistics_data_t             extmod_statistics;
-};
-typedef struct task_extmod_info task_extmod_info_data_t;
-typedef struct task_extmod_info *task_extmod_info_t;
-#define TASK_EXTMOD_INFO_COUNT  \
-	        (sizeof(task_extmod_info_data_t) / sizeof(natural_t))
-
-
-#define MACH_TASK_BASIC_INFO     20         /* always 64-bit basic info */
-struct mach_task_basic_info {
-	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
-	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
-	mach_vm_size_t  resident_size_max;  /* maximum resident memory size (bytes) */
-	time_value_t    user_time;          /* total user run time for
-	                                     *  terminated threads */
-	time_value_t    system_time;        /* total system run time for
-	                                     *  terminated threads */
-	policy_t        policy;             /* default policy for new threads */
-	integer_t       suspend_count;      /* suspend count for task */
-};
-typedef struct mach_task_basic_info       mach_task_basic_info_data_t;
-typedef struct mach_task_basic_info       *mach_task_basic_info_t;
-#define MACH_TASK_BASIC_INFO_COUNT   \
-	        (sizeof(mach_task_basic_info_data_t) / sizeof(natural_t))
-
-
-#define TASK_POWER_INFO 21
-
-struct task_power_info {
-	uint64_t                total_user;
-	uint64_t                total_system;
-	uint64_t                task_interrupt_wakeups;
-	uint64_t                task_platform_idle_wakeups;
-	uint64_t                task_timer_wakeups_bin_1;
-	uint64_t                task_timer_wakeups_bin_2;
-};
-
-typedef struct task_power_info  task_power_info_data_t;
-typedef struct task_power_info  *task_power_info_t;
-#define TASK_POWER_INFO_COUNT   ((mach_msg_type_number_t) \
-	        (sizeof (task_power_info_data_t) / sizeof (natural_t)))
-
-
-
-#define TASK_VM_INFO            22
-#define TASK_VM_INFO_PURGEABLE  23
-struct task_vm_info {
-	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
-	integer_t       region_count;       /* number of memory regions */
-	integer_t       page_size;
-	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
-	mach_vm_size_t  resident_size_peak; /* peak resident size (bytes) */
-
-	mach_vm_size_t  device;
-	mach_vm_size_t  device_peak;
-	mach_vm_size_t  internal;
-	mach_vm_size_t  internal_peak;
-	mach_vm_size_t  external;
-	mach_vm_size_t  external_peak;
-	mach_vm_size_t  reusable;
-	mach_vm_size_t  reusable_peak;
-	mach_vm_size_t  purgeable_volatile_pmap;
-	mach_vm_size_t  purgeable_volatile_resident;
-	mach_vm_size_t  purgeable_volatile_virtual;
-	mach_vm_size_t  compressed;
-	mach_vm_size_t  compressed_peak;
-	mach_vm_size_t  compressed_lifetime;
-
-	/* added for rev1 */
-	mach_vm_size_t  phys_footprint;
-
-	/* added for rev2 */
-	mach_vm_address_t       min_address;
-	mach_vm_address_t       max_address;
-
-	/* added for rev3 */
-	int64_t ledger_phys_footprint_peak;
-	int64_t ledger_purgeable_nonvolatile;
-	int64_t ledger_purgeable_novolatile_compressed;
-	int64_t ledger_purgeable_volatile;
-	int64_t ledger_purgeable_volatile_compressed;
-	int64_t ledger_tag_network_nonvolatile;
-	int64_t ledger_tag_network_nonvolatile_compressed;
-	int64_t ledger_tag_network_volatile;
-	int64_t ledger_tag_network_volatile_compressed;
-	int64_t ledger_tag_media_footprint;
-	int64_t ledger_tag_media_footprint_compressed;
-	int64_t ledger_tag_media_nofootprint;
-	int64_t ledger_tag_media_nofootprint_compressed;
-	int64_t ledger_tag_graphics_footprint;
-	int64_t ledger_tag_graphics_footprint_compressed;
-	int64_t ledger_tag_graphics_nofootprint;
-	int64_t ledger_tag_graphics_nofootprint_compressed;
-	int64_t ledger_tag_neural_footprint;
-	int64_t ledger_tag_neural_footprint_compressed;
-	int64_t ledger_tag_neural_nofootprint;
-	int64_t ledger_tag_neural_nofootprint_compressed;
-
-	/* added for rev4 */
-	uint64_t limit_bytes_remaining;
-
-	/* added for rev5 */
-	integer_t decompressions;
-
-	/* added for rev6 */
-	int64_t ledger_swapins;
-};
-typedef struct task_vm_info     task_vm_info_data_t;
-typedef struct task_vm_info     *task_vm_info_t;
-#define TASK_VM_INFO_COUNT      ((mach_msg_type_number_t) \
-	        (sizeof (task_vm_info_data_t) / sizeof (natural_t)))
-#define TASK_VM_INFO_REV6_COUNT TASK_VM_INFO_COUNT
-#define TASK_VM_INFO_REV5_COUNT /* doesn't include ledger swapins */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV6_COUNT - 2))
-#define TASK_VM_INFO_REV4_COUNT /* doesn't include decompressions */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV5_COUNT - 1))
-#define TASK_VM_INFO_REV3_COUNT /* doesn't include limit bytes */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV4_COUNT - 2))
-#define TASK_VM_INFO_REV2_COUNT /* doesn't include extra ledgers info */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV3_COUNT - 42))
-#define TASK_VM_INFO_REV1_COUNT /* doesn't include min and max address */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV2_COUNT - 4))
-#define TASK_VM_INFO_REV0_COUNT /* doesn't include phys_footprint */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV1_COUNT - 2))
-
-typedef struct vm_purgeable_info        task_purgable_info_t;
-
-
-#define TASK_TRACE_MEMORY_INFO  24  /* no longer supported */
-struct task_trace_memory_info {
-	uint64_t  user_memory_address;  /* address of start of trace memory buffer */
-	uint64_t  buffer_size;                  /* size of buffer in bytes */
-	uint64_t  mailbox_array_size;   /* size of mailbox area in bytes */
-};
-typedef struct task_trace_memory_info task_trace_memory_info_data_t;
-typedef struct task_trace_memory_info * task_trace_memory_info_t;
-#define TASK_TRACE_MEMORY_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_trace_memory_info_data_t) / sizeof(natural_t)))
-
-#define TASK_WAIT_STATE_INFO  25    /* deprecated. */
-struct task_wait_state_info {
-	uint64_t  total_wait_state_time;        /* Time that all threads past and present have been in a wait state */
-	uint64_t  total_wait_sfi_state_time;    /* Time that threads have been in SFI wait (should be a subset of total wait state time */
-	uint32_t  _reserved[4];
-};
-typedef struct task_wait_state_info task_wait_state_info_data_t;
-typedef struct task_wait_state_info * task_wait_state_info_t;
-#define TASK_WAIT_STATE_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_wait_state_info_data_t) / sizeof(natural_t)))
-
-#define TASK_POWER_INFO_V2      26
-
-typedef struct {
-	uint64_t                task_gpu_utilisation;
-	uint64_t                task_gpu_stat_reserved0;
-	uint64_t                task_gpu_stat_reserved1;
-	uint64_t                task_gpu_stat_reserved2;
-} gpu_energy_data;
-
-typedef gpu_energy_data *gpu_energy_data_t;
-struct task_power_info_v2 {
-	task_power_info_data_t  cpu_energy;
-	gpu_energy_data gpu_energy;
-#if defined(__arm__) || defined(__arm64__)
-	uint64_t                task_energy;
-#endif /* defined(__arm__) || defined(__arm64__) */
-	uint64_t                task_ptime;
-	uint64_t                task_pset_switches;
-};
-
-typedef struct task_power_info_v2       task_power_info_v2_data_t;
-typedef struct task_power_info_v2       *task_power_info_v2_t;
-#define TASK_POWER_INFO_V2_COUNT_OLD    \
-	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) - sizeof(uint64_t)*2) / sizeof (natural_t))
-#define TASK_POWER_INFO_V2_COUNT        \
-	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) / sizeof (natural_t)))
-
-#define TASK_VM_INFO_PURGEABLE_ACCOUNT 27 /* Used for xnu purgeable vm unit tests */
-
-
-#define TASK_FLAGS_INFO  28                     /* return t_flags field */
-struct task_flags_info {
-	uint32_t        flags;                          /* task flags */
-};
-typedef struct task_flags_info task_flags_info_data_t;
-typedef struct task_flags_info * task_flags_info_t;
-#define TASK_FLAGS_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_flags_info_data_t) / sizeof (natural_t)))
-
-#define TF_LP64         0x00000001 /* task has 64-bit addressing */
-#define TF_64B_DATA     0x00000002 /* task has 64-bit data registers */
-
-#define TASK_DEBUG_INFO_INTERNAL    29 /* Used for kernel internal development tests. */
-
-
-/*
- * Type to control EXC_GUARD delivery options for a task
- * via task_get/set_exc_guard_behavior interface(s).
- */
-typedef uint32_t task_exc_guard_behavior_t;
-
-/* EXC_GUARD optional delivery settings on a per-task basis */
-#define TASK_EXC_GUARD_NONE                  0x00
-#define TASK_EXC_GUARD_VM_DELIVER            0x01 /* Deliver virtual memory EXC_GUARD exceptions */
-#define TASK_EXC_GUARD_VM_ONCE               0x02 /* Deliver them only once */
-#define TASK_EXC_GUARD_VM_CORPSE             0x04 /* Deliver them via a forked corpse */
-#define TASK_EXC_GUARD_VM_FATAL              0x08 /* Virtual Memory EXC_GUARD delivery is fatal */
-#define TASK_EXC_GUARD_VM_ALL                0x0f
-
-#define TASK_EXC_GUARD_MP_DELIVER            0x10 /* Deliver mach port EXC_GUARD exceptions */
-#define TASK_EXC_GUARD_MP_ONCE               0x20 /* Deliver them only once */
-#define TASK_EXC_GUARD_MP_CORPSE             0x40 /* Deliver them via a forked corpse */
-#define TASK_EXC_GUARD_MP_FATAL              0x80 /* mach port EXC_GUARD delivery is fatal */
-#define TASK_EXC_GUARD_MP_ALL                0xf0
-
-#define TASK_EXC_GUARD_ALL                   0xff /* All optional deliver settings */
-
-
-/*
- * Type to control corpse forking options for a task
- * via task_get/set_corpse_forking_behavior interface(s).
- */
-typedef uint32_t task_corpse_forking_behavior_t;
-
-#define TASK_CORPSE_FORKING_DISABLED_MEM_DIAG  0x01 /* Disable corpse forking because the task is running under a diagnostic tool */
-
-
-/*
- * Obsolete interfaces.
- */
-
-#define TASK_SCHED_TIMESHARE_INFO       10
-#define TASK_SCHED_RR_INFO              11
-#define TASK_SCHED_FIFO_INFO            12
-
-#define TASK_SCHED_INFO                 14
-
-#pragma pack(pop)
-
-#endif  /* _MACH_TASK_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.12-any/spawn.h b/lib/libc/include/any-macos.12-any/spawn.h
deleted file mode 100644
index 981e8fb96a08270f899df66992c730cdb2904f53..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos.12-any/spawn.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (c) 2006, 2010 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@
- */
-
-
-#ifndef _SPAWN_H_
-#define _SPAWN_H_
-
-/*
- * [SPN] Support for _POSIX_SPAWN
- */
-
-#include 
-#include <_types.h>
-#include  /* shared types */
-
-#include 
-
-/*
- * [SPN] Inclusion of the  header may make visible symbols defined
- * in the , , and  headers.
- */
-#include 
-#include 
-#include 
-
-/*
- * Opaque types for use with posix_spawn() family functions.  Internals are
- * not defined, and should not be accessed directly.  Types are defined as
- * mandated by POSIX.
- */
-typedef  void *posix_spawnattr_t;
-typedef  void *posix_spawn_file_actions_t;
-
-__BEGIN_DECLS
-/*
- * gcc under c99 mode won't compile "[ __restrict]" by itself.  As a workaround,
- * a dummy argument name is added.
- */
-
-int     posix_spawn(pid_t * __restrict, const char * __restrict,
-    const posix_spawn_file_actions_t *,
-    const posix_spawnattr_t * __restrict,
-    char *const __argv[__restrict],
-    char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnp(pid_t * __restrict, const char * __restrict,
-    const posix_spawn_file_actions_t *,
-    const posix_spawnattr_t * __restrict,
-    char *const __argv[__restrict],
-    char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0));
-
-int     posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int,
-    int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawn_file_actions_addopen(
-	posix_spawn_file_actions_t * __restrict, int,
-	const char * __restrict, int, mode_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawn_file_actions_init(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_destroy(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_getsigdefault(const posix_spawnattr_t * __restrict,
-    sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_getflags(const posix_spawnattr_t * __restrict,
-    short * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_getpgroup(const posix_spawnattr_t * __restrict,
-    pid_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_getsigmask(const posix_spawnattr_t * __restrict,
-    sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_init(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setsigdefault(posix_spawnattr_t * __restrict,
-    const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setflags(posix_spawnattr_t *, short) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setsigmask(posix_spawnattr_t * __restrict,
-    const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-#if 0   /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */
-int     posix_spawnattr_setschedparam(posix_spawnattr_t * __restrict,
-    const struct sched_param * __restrict);
-int     posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int);
-int     posix_spawnattr_getschedparam(const posix_spawnattr_t * __restrict,
-    struct sched_param * __restrict);
-int     posix_spawnattr_getschedpolicy(const posix_spawnattr_t * __restrict,
-    int * __restrict);
-#endif  /* 0 */
-
-__END_DECLS
-
-#if     !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-/*
- * Darwin-specific extensions below
- */
-#include 
-#include 
-#include 
-
-#include 
-
-__BEGIN_DECLS
-
-int     posix_spawnattr_getbinpref_np(const posix_spawnattr_t * __restrict,
-    size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_getarchpref_np(const posix_spawnattr_t * __restrict,
-    size_t, cpu_type_t *__restrict, cpu_subtype_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(11.0), ios(14.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setauditsessionport_np(posix_spawnattr_t * __restrict,
-    mach_port_t) __API_AVAILABLE(macos(10.6), ios(3.2));
-
-int     posix_spawnattr_setbinpref_np(posix_spawnattr_t * __restrict,
-    size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setarchpref_np(posix_spawnattr_t * __restrict,
-    size_t, cpu_type_t *__restrict, cpu_subtype_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(11.0), ios(14.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setexceptionports_np(posix_spawnattr_t * __restrict,
-    exception_mask_t, mach_port_t,
-    exception_behavior_t, thread_state_flavor_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setspecialport_np(posix_spawnattr_t * __restrict,
-    mach_port_t, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawnattr_setnosmt_np(const posix_spawnattr_t * __restrict attr) __API_AVAILABLE(macos(11.0));
-
-/*
- * Set CPU Security Mitigation on the spawned process
- * This attribute affects all threads and is inherited on fork and exec
- */
-int     posix_spawnattr_set_csm_np(const posix_spawnattr_t * __restrict attr, uint32_t flags) __API_AVAILABLE(macos(11.0));
-/*
- * flags for CPU Security Mitigation attribute
- * POSIX_SPAWN_NP_CSM_ALL should be used in most cases,
- * the individual flags are provided only for performance evaluation etc
- */
-#define POSIX_SPAWN_NP_CSM_ALL         0x0001
-#define POSIX_SPAWN_NP_CSM_NOSMT       0x0002
-#define POSIX_SPAWN_NP_CSM_TECS        0x0004
-
-int     posix_spawn_file_actions_addinherit_np(posix_spawn_file_actions_t *,
-    int) __API_AVAILABLE(macos(10.7), ios(4.3)) __API_UNAVAILABLE(watchos, tvos);
-
-int     posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *,
-    const char * __restrict) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos);
-
-int     posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *,
-    int) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos);
-
-__END_DECLS
-
-#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-#endif  /* _SPAWN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.12-any/sys/attr.h b/lib/libc/include/any-macos.12-any/sys/attr.h
deleted file mode 100644
index 79a912cd1efdc9aed65bd4fa8c495ef3e78859b5..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos.12-any/sys/attr.h
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
- * 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 
-
-#ifdef __APPLE_API_UNSTABLE
-#include 
-#include 
-#include 
-#include 
-
-#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  /* 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 .)
- *
- * 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_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                      0xF087FFFF
-
-/*
- * 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
diff --git a/lib/libc/include/any-macos.12-any/sys/stdio.h b/lib/libc/include/any-macos.12-any/sys/stdio.h
deleted file mode 100644
index da56fdf6c96aafea97634954b11f0ce3948758b0..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos.12-any/sys/stdio.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2013 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 _SYS_STDIO_H_
-#define _SYS_STDIO_H_
-
-#include 
-
-#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
-#define RENAME_SECLUDE                  0x00000001
-#define RENAME_SWAP                     0x00000002
-#define RENAME_EXCL                     0x00000004
-#define RENAME_RESERVED1                0x00000008
-#define RENAME_NOFOLLOW_ANY             0x00000010
-#endif
-
-#if __DARWIN_C_LEVEL >= 200809L
-#include 
-
-__BEGIN_DECLS
-
-int     renameat(int, const char *, int, const char *) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-
-#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
-
-int renamex_np(const char *, const char *, unsigned int) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
-int renameatx_np(int, const char *, int, const char *, unsigned int) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
-
-#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
-
-__END_DECLS
-
-#endif /* __DARWIN_C_LEVEL >= 200809L */
-
-#endif /* _SYS_STDIO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.12-any/time.h b/lib/libc/include/any-macos.12-any/time.h
deleted file mode 100644
index a0f9897ea4a19471f55f8b0c14ba2f87520ff135..0000000000000000000000000000000000000000
--- a/lib/libc/include/any-macos.12-any/time.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (c) 2000 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@
- */
-/*
- * Copyright (c) 1989, 1993
- *	The Regents of the University of California.  All rights reserved.
- * (c) UNIX System Laboratories, Inc.
- * All or some portions of this file are derived from material licensed
- * to the University of California by American Telephone and Telegraph
- * Co. or Unix System Laboratories, Inc. and are reproduced herein with
- * the permission of UNIX System Laboratories, Inc.
- *
- * 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.
- *
- *	@(#)time.h	8.3 (Berkeley) 1/21/94
- */
-
-#ifndef _TIME_H_
-#define	_TIME_H_
-
-#include <_types.h>
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-struct tm {
-	int	tm_sec;		/* seconds after the minute [0-60] */
-	int	tm_min;		/* minutes after the hour [0-59] */
-	int	tm_hour;	/* hours since midnight [0-23] */
-	int	tm_mday;	/* day of the month [1-31] */
-	int	tm_mon;		/* months since January [0-11] */
-	int	tm_year;	/* years since 1900 */
-	int	tm_wday;	/* days since Sunday [0-6] */
-	int	tm_yday;	/* days since January 1 [0-365] */
-	int	tm_isdst;	/* Daylight Savings Time flag */
-	long	tm_gmtoff;	/* offset from UTC in seconds */
-	char	*tm_zone;	/* timezone abbreviation */
-};
-
-#if __DARWIN_UNIX03
-#define CLOCKS_PER_SEC  ((clock_t)1000000)	/* [XSI] */
-#else /* !__DARWIN_UNIX03 */
-#include 	/* Include file containing CLK_TCK. */
-
-#define CLOCKS_PER_SEC  ((clock_t)(__DARWIN_CLK_TCK))
-#endif /* __DARWIN_UNIX03 */
-
-#ifndef _ANSI_SOURCE
-extern char *tzname[];
-#endif
-
-extern int getdate_err;
-#if __DARWIN_UNIX03
-extern long timezone __DARWIN_ALIAS(timezone);
-#endif /* __DARWIN_UNIX03 */
-extern int daylight;
-
-__BEGIN_DECLS
-char *asctime(const struct tm *);
-clock_t clock(void) __DARWIN_ALIAS(clock);
-char *ctime(const time_t *);
-double difftime(time_t, time_t);
-struct tm *getdate(const char *);
-struct tm *gmtime(const time_t *);
-struct tm *localtime(const time_t *);
-time_t mktime(struct tm *) __DARWIN_ALIAS(mktime);
-size_t strftime(char * __restrict, size_t, const char * __restrict, const struct tm * __restrict) __DARWIN_ALIAS(strftime);
-char *strptime(const char * __restrict, const char * __restrict, struct tm * __restrict) __DARWIN_ALIAS(strptime);
-time_t time(time_t *);
-
-#ifndef _ANSI_SOURCE
-void tzset(void);
-#endif /* not ANSI */
-
-/* [TSF] Thread safe functions */
-char *asctime_r(const struct tm * __restrict, char * __restrict);
-char *ctime_r(const time_t *, char *);
-struct tm *gmtime_r(const time_t * __restrict, struct tm * __restrict);
-struct tm *localtime_r(const time_t * __restrict, struct tm * __restrict);
-
-#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-time_t posix2time(time_t);
-#if !__DARWIN_UNIX03
-char *timezone(int, int);
-#endif /* !__DARWIN_UNIX03 */
-void tzsetwall(void);
-time_t time2posix(time_t);
-time_t timelocal(struct tm * const);
-time_t timegm(struct tm * const);
-#endif /* neither ANSI nor POSIX */
-
-#if !defined(_ANSI_SOURCE)
-int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp) __DARWIN_ALIAS_C(nanosleep);
-#endif
-
-#if !defined(_DARWIN_FEATURE_CLOCK_GETTIME) || _DARWIN_FEATURE_CLOCK_GETTIME != 0
-#if __DARWIN_C_LEVEL >= 199309L
-#if __has_feature(enumerator_attributes)
-#define __CLOCK_AVAILABILITY __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0)
-#else
-#define __CLOCK_AVAILABILITY
-#endif
-
-typedef enum {
-_CLOCK_REALTIME __CLOCK_AVAILABILITY = 0,
-#define CLOCK_REALTIME _CLOCK_REALTIME
-_CLOCK_MONOTONIC __CLOCK_AVAILABILITY = 6,
-#define CLOCK_MONOTONIC _CLOCK_MONOTONIC
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-_CLOCK_MONOTONIC_RAW __CLOCK_AVAILABILITY = 4,
-#define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW
-_CLOCK_MONOTONIC_RAW_APPROX __CLOCK_AVAILABILITY = 5,
-#define CLOCK_MONOTONIC_RAW_APPROX _CLOCK_MONOTONIC_RAW_APPROX
-_CLOCK_UPTIME_RAW __CLOCK_AVAILABILITY = 8,
-#define CLOCK_UPTIME_RAW _CLOCK_UPTIME_RAW
-_CLOCK_UPTIME_RAW_APPROX __CLOCK_AVAILABILITY = 9,
-#define CLOCK_UPTIME_RAW_APPROX _CLOCK_UPTIME_RAW_APPROX
-#endif
-_CLOCK_PROCESS_CPUTIME_ID __CLOCK_AVAILABILITY = 12,
-#define CLOCK_PROCESS_CPUTIME_ID _CLOCK_PROCESS_CPUTIME_ID
-_CLOCK_THREAD_CPUTIME_ID __CLOCK_AVAILABILITY = 16
-#define CLOCK_THREAD_CPUTIME_ID _CLOCK_THREAD_CPUTIME_ID
-} clockid_t;
-
-__CLOCK_AVAILABILITY
-int clock_getres(clockid_t __clock_id, struct timespec *__res);
-
-__CLOCK_AVAILABILITY
-int clock_gettime(clockid_t __clock_id, struct timespec *__tp);
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-__CLOCK_AVAILABILITY
-__uint64_t clock_gettime_nsec_np(clockid_t __clock_id);
-#endif
-
-__OSX_AVAILABLE(10.12) __IOS_PROHIBITED
-__TVOS_PROHIBITED __WATCHOS_PROHIBITED
-int clock_settime(clockid_t __clock_id, const struct timespec *__tp);
-
-#undef __CLOCK_AVAILABILITY
-#endif /* __DARWIN_C_LEVEL */
-#endif /* _DARWIN_FEATURE_CLOCK_GETTIME */
-
-#if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL) || \
-        (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
-        (defined(__cplusplus) && __cplusplus >= 201703L)
-/* ISO/IEC 9899:201x 7.27.2.5 The timespec_get function */
-#define TIME_UTC	1	/* time elapsed since epoch */
-__API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0))
-int timespec_get(struct timespec *ts, int base);
-#endif
-
-__END_DECLS
-
-#ifdef _USE_EXTENDED_LOCALES_
-#include 
-#endif /* _USE_EXTENDED_LOCALES_ */
-
-#endif /* !_TIME_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/Availability.h b/lib/libc/include/any-macos.13-any/Availability.h
new file mode 100644
index 0000000000000000000000000000000000000000..2780aa571f2665af222ac46bb140bc9fb81285d2
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/Availability.h
@@ -0,0 +1,514 @@
+/*
+ * Copyright (c) 2007-2016 by 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@
+ */
+ 
+#ifndef __AVAILABILITY__
+#define __AVAILABILITY__
+ /*     
+    These macros are for use in OS header files. They enable function prototypes
+    and Objective-C methods to be tagged with the OS version in which they
+    were first available; and, if applicable, the OS version in which they 
+    became deprecated.  
+     
+    The desktop Mac OS X and iOS each have different version numbers.
+    The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
+    and iOS version numbers.  For instance:
+        __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
+    means the function/method was first available on Mac OS X 10.2 on the desktop
+    and first available in iOS 2.0 on the iPhone.
+    
+    If a function is available on one platform, but not the other a _NA (not
+    applicable) parameter is used.  For instance:
+            __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
+    means that the function/method was first available on Mac OS X 10.3, and it
+    currently not implemented on the iPhone.
+
+    At some point, a function/method may be deprecated.  That means Apple
+    recommends applications stop using the function, either because there is a 
+    better replacement or the functionality is being phased out.  Deprecated
+    functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
+    macro which specifies the OS version where the function became available
+    as well as the OS version in which it became deprecated.  For instance:
+        __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
+    means that the function/method was introduced in Mac OS X 10.0, then
+    became deprecated beginning in Mac OS X 10.5.  On iOS the function 
+    has never been available.  
+    
+    For these macros to function properly, a program must specify the OS version range 
+    it is targeting.  The min OS version is specified as an option to the compiler:
+    -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
+    when building for the iPhone.  The upper bound for the OS version is rarely needed,
+    but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
+    Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.  
+    
+    Examples:
+
+        A function available in Mac OS X 10.5 and later, but not on the phone:
+        
+            extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+
+
+        An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
+        
+            @interface MyClass : NSObject
+            -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
+            @end
+
+        
+        An enum available on the phone, but not available on Mac OS X:
+        
+            #if __IPHONE_OS_VERSION_MIN_REQUIRED
+                enum { myEnum = 1 };
+            #endif
+           Note: this works when targeting the Mac OS X platform because 
+           __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero. 
+        
+
+        An enum with values added in different iPhoneOS versions:
+		
+			enum {
+			    myX  = 1,	// Usable on iPhoneOS 2.1 and later
+			    myY  = 2,	// Usable on iPhoneOS 3.0 and later
+			    myZ  = 3,	// Usable on iPhoneOS 3.0 and later
+				...
+		      Note: you do not want to use #if with enumeration values
+			  when a client needs to see all values at compile time
+			  and use runtime logic to only use the viable values.
+			  
+
+    It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
+    source base that can be compiled to target a range of OS versions.  It is best
+    to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
+    That is because you might get compiled on an old OS that does not define a later
+    OS version macro, and in the C preprocessor undefined values evaluate to zero
+    in expresssions, which could cause the #if expression to evaluate in an unexpected
+    way.
+    
+        #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
+            // code only compiled when targeting Mac OS X and not iPhone
+            // note use of 1050 instead of __MAC_10_5
+            #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+                // code in here might run on pre-Leopard OS
+            #else
+                // code here can assume Leopard or later
+            #endif
+        #endif
+
+
+*/
+
+/* 
+ * __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated 
+ * in an upcoming release. This soft deprecation is an intermediate step before formal 
+ * deprecation to notify developers about the API before compiler warnings are generated.
+ * You can find all places in your code that use soft deprecated API by redefining the 
+ * value of this macro to your current minimum deployment target, for example:
+ * (macOS)
+ *   clang -D__API_TO_BE_DEPRECATED=10.12 
+ * (iOS)
+ *   clang -D__API_TO_BE_DEPRECATED=11.0 
+ */
+ 
+#ifndef __API_TO_BE_DEPRECATED
+#define __API_TO_BE_DEPRECATED 100000
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_MACOS
+#define __API_TO_BE_DEPRECATED_MACOS 100000
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_IOS
+#define __API_TO_BE_DEPRECATED_IOS 100000
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_TVOS
+#define __API_TO_BE_DEPRECATED_TVOS 100000
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_WATCHOS
+#define __API_TO_BE_DEPRECATED_WATCHOS 100000
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_BRIDGEOS
+
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_MACCATALYST
+#define __API_TO_BE_DEPRECATED_MACCATALYST 100000
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_DRIVERKIT
+#define __API_TO_BE_DEPRECATED_DRIVERKIT 100000
+#endif
+
+
+
+#include 
+#include 
+
+#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
+    #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_ios
+    #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \
+                                                    __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep
+    #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \
+                                                    __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep##_MSG(_msg)
+
+#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
+
+   #if defined(__has_builtin)
+    #if __has_builtin(__is_target_arch)
+     #if __has_builtin(__is_target_vendor)
+      #if __has_builtin(__is_target_os)
+       #if __has_builtin(__is_target_environment)
+        #if __has_builtin(__is_target_variant_os)
+         #if __has_builtin(__is_target_variant_environment)
+          #if (__is_target_arch(x86_64) && __is_target_vendor(apple) && ((__is_target_os(ios) && __is_target_environment(macabi)) || (__is_target_variant_os(ios) && __is_target_variant_environment(macabi))))
+            #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_osx __AVAILABILITY_INTERNAL##_ios
+            #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \
+                                                            __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep
+            #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \
+                                                            __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep##_MSG(_msg) __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep##_MSG(_msg)
+          #endif /* # if __is_target_arch... */
+         #endif /* #if __has_builtin(__is_target_variant_environment) */
+        #endif /* #if __has_builtin(__is_target_variant_os) */
+       #endif /* #if __has_builtin(__is_target_environment) */
+      #endif /* #if __has_builtin(__is_target_os) */
+     #endif /* #if __has_builtin(__is_target_vendor) */
+    #endif /* #if __has_builtin(__is_target_arch) */
+   #endif /* #if defined(__has_builtin) */
+
+    #ifndef __OSX_AVAILABLE_STARTING
+      #if defined(__has_attribute) && defined(__has_feature)
+          #if __has_attribute(availability)      
+        #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_osx
+        #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \
+                                                        __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep
+        #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \
+                                                        __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep##_MSG(_msg)
+        #else
+        #define __OSX_AVAILABLE_STARTING(_osx, _ios)
+        #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)
+        #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)
+        #endif
+      #else
+      #define __OSX_AVAILABLE_STARTING(_osx, _ios)
+      #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)
+      #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)
+    #endif
+#endif /* __OSX_AVAILABLE_STARTING */
+
+#else
+    #define __OSX_AVAILABLE_STARTING(_osx, _ios)
+    #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)
+    #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)
+#endif
+
+
+#if defined(__has_feature)
+  #if __has_feature(attribute_availability_with_message)
+    #define __OS_AVAILABILITY(_target, _availability)            __attribute__((availability(_target,_availability)))
+    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)  __attribute__((availability(_target,_availability,message=_msg)))
+  #elif __has_feature(attribute_availability)
+    #define __OS_AVAILABILITY(_target, _availability)            __attribute__((availability(_target,_availability)))
+    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)  __attribute__((availability(_target,_availability)))
+  #else
+    #define __OS_AVAILABILITY(_target, _availability)
+    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)
+  #endif
+#else
+    #define __OS_AVAILABILITY(_target, _availability)
+    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)
+#endif
+
+
+/* for use to document app extension usage */
+#if defined(__has_feature)
+  #if __has_feature(attribute_availability_app_extension)
+    #define __OSX_EXTENSION_UNAVAILABLE(_msg)  __OS_AVAILABILITY_MSG(macosx_app_extension,unavailable,_msg)
+    #define __IOS_EXTENSION_UNAVAILABLE(_msg)  __OS_AVAILABILITY_MSG(ios_app_extension,unavailable,_msg)
+  #else
+    #define __OSX_EXTENSION_UNAVAILABLE(_msg)
+    #define __IOS_EXTENSION_UNAVAILABLE(_msg)
+  #endif
+#else
+    #define __OSX_EXTENSION_UNAVAILABLE(_msg)
+    #define __IOS_EXTENSION_UNAVAILABLE(_msg)
+#endif
+
+#define __OS_EXTENSION_UNAVAILABLE(_msg)  __OSX_EXTENSION_UNAVAILABLE(_msg) __IOS_EXTENSION_UNAVAILABLE(_msg)
+
+
+
+/* for use marking APIs available info for Mac OSX */
+#if defined(__has_attribute)
+  #if __has_attribute(availability)
+    #define __OSX_UNAVAILABLE                    __OS_AVAILABILITY(macosx,unavailable)
+    #define __OSX_AVAILABLE(_vers)               __OS_AVAILABILITY(macosx,introduced=_vers)
+    #define __OSX_DEPRECATED(_start, _dep, _msg) __OSX_AVAILABLE(_start) __OS_AVAILABILITY_MSG(macosx,deprecated=_dep,_msg)
+  #endif
+#endif
+
+#ifndef __OSX_UNAVAILABLE
+  #define __OSX_UNAVAILABLE
+#endif
+
+#ifndef __OSX_AVAILABLE
+  #define __OSX_AVAILABLE(_vers)
+#endif
+
+#ifndef __OSX_DEPRECATED
+  #define __OSX_DEPRECATED(_start, _dep, _msg)
+#endif
+
+
+/* for use marking APIs available info for iOS */
+#if defined(__has_attribute)
+  #if __has_attribute(availability)
+    #define __IOS_UNAVAILABLE                    __OS_AVAILABILITY(ios,unavailable)
+    #define __IOS_PROHIBITED                     __OS_AVAILABILITY(ios,unavailable)
+    #define __IOS_AVAILABLE(_vers)               __OS_AVAILABILITY(ios,introduced=_vers)
+    #define __IOS_DEPRECATED(_start, _dep, _msg) __IOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(ios,deprecated=_dep,_msg)
+  #endif
+#endif
+
+#ifndef __IOS_UNAVAILABLE
+  #define __IOS_UNAVAILABLE
+#endif
+
+#ifndef __IOS_PROHIBITED
+  #define __IOS_PROHIBITED
+#endif
+
+#ifndef __IOS_AVAILABLE
+  #define __IOS_AVAILABLE(_vers)
+#endif
+
+#ifndef __IOS_DEPRECATED
+  #define __IOS_DEPRECATED(_start, _dep, _msg)
+#endif
+
+
+/* for use marking APIs available info for tvOS */
+#if defined(__has_feature)
+  #if __has_feature(attribute_availability_tvos)
+    #define __TVOS_UNAVAILABLE                    __OS_AVAILABILITY(tvos,unavailable)
+    #define __TVOS_PROHIBITED                     __OS_AVAILABILITY(tvos,unavailable)
+    #define __TVOS_AVAILABLE(_vers)               __OS_AVAILABILITY(tvos,introduced=_vers)
+    #define __TVOS_DEPRECATED(_start, _dep, _msg) __TVOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(tvos,deprecated=_dep,_msg)
+  #endif
+#endif
+
+#ifndef __TVOS_UNAVAILABLE
+  #define __TVOS_UNAVAILABLE
+#endif
+
+#ifndef __TVOS_PROHIBITED
+  #define __TVOS_PROHIBITED
+#endif
+
+#ifndef __TVOS_AVAILABLE
+  #define __TVOS_AVAILABLE(_vers)
+#endif
+
+#ifndef __TVOS_DEPRECATED
+  #define __TVOS_DEPRECATED(_start, _dep, _msg)
+#endif
+
+
+/* for use marking APIs available info for Watch OS */
+#if defined(__has_feature)
+  #if __has_feature(attribute_availability_watchos)
+    #define __WATCHOS_UNAVAILABLE                    __OS_AVAILABILITY(watchos,unavailable)
+    #define __WATCHOS_PROHIBITED                     __OS_AVAILABILITY(watchos,unavailable)
+    #define __WATCHOS_AVAILABLE(_vers)               __OS_AVAILABILITY(watchos,introduced=_vers)
+    #define __WATCHOS_DEPRECATED(_start, _dep, _msg) __WATCHOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(watchos,deprecated=_dep,_msg)
+  #endif
+#endif
+
+#ifndef __WATCHOS_UNAVAILABLE
+  #define __WATCHOS_UNAVAILABLE
+#endif
+
+#ifndef __WATCHOS_PROHIBITED
+  #define __WATCHOS_PROHIBITED
+#endif
+
+#ifndef __WATCHOS_AVAILABLE
+  #define __WATCHOS_AVAILABLE(_vers)
+#endif
+
+#ifndef __WATCHOS_DEPRECATED
+  #define __WATCHOS_DEPRECATED(_start, _dep, _msg)
+#endif
+
+
+
+
+/* for use marking APIs unavailable for swift */
+#if defined(__has_feature)
+  #if __has_feature(attribute_availability_swift)
+    #define __SWIFT_UNAVAILABLE                   __OS_AVAILABILITY(swift,unavailable)
+    #define __SWIFT_UNAVAILABLE_MSG(_msg)         __OS_AVAILABILITY_MSG(swift,unavailable,_msg)
+  #endif
+#endif
+
+#ifndef __SWIFT_UNAVAILABLE
+  #define __SWIFT_UNAVAILABLE
+#endif
+
+#ifndef __SWIFT_UNAVAILABLE_MSG
+  #define __SWIFT_UNAVAILABLE_MSG(_msg)
+#endif
+
+/*
+ Macros for defining which versions/platform a given symbol can be used.
+ 
+ @see http://clang.llvm.org/docs/AttributeReference.html#availability
+ 
+ * Note that these macros are only compatible with clang compilers that
+ * support the following target selection options:
+ *
+ * -mmacosx-version-min
+ * -miphoneos-version-min
+ * -mwatchos-version-min
+ * -mtvos-version-min
+ */
+
+#if defined(__has_feature) && defined(__has_attribute)
+ #if __has_attribute(availability)
+
+    /*
+     * API Introductions
+     *
+     * Use to specify the release that a particular API became available.
+     *
+     * Platform names:
+     *   macos, ios, tvos, watchos
+     *
+     * Examples:
+     *    __API_AVAILABLE(macos(10.10))
+     *    __API_AVAILABLE(macos(10.9), ios(10.0))
+     *    __API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0))
+     *    __API_AVAILABLE(driverkit(19.0))
+     */
+    #define __API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE8, __API_AVAILABLE7, __API_AVAILABLE6, __API_AVAILABLE5, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1, 0)(__VA_ARGS__)
+    
+    #define __API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN8, __API_AVAILABLE_BEGIN7, __API_AVAILABLE_BEGIN6, __API_AVAILABLE_BEGIN5, __API_AVAILABLE_BEGIN4, __API_AVAILABLE_BEGIN3, __API_AVAILABLE_BEGIN2, __API_AVAILABLE_BEGIN1, 0)(__VA_ARGS__)
+    #define __API_AVAILABLE_END _Pragma("clang attribute pop")
+
+    /*
+     * API Deprecations
+     *
+     * Use to specify the release that a particular API became unavailable.
+     *
+     * Platform names:
+     *   macos, ios, tvos, watchos
+     *
+     * Examples:
+     *
+     *    __API_DEPRECATED("No longer supported", macos(10.4, 10.8))
+     *    __API_DEPRECATED("No longer supported", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0))
+     *
+     *    __API_DEPRECATED_WITH_REPLACEMENT("-setName:", tvos(10.0, 10.4), ios(9.0, 10.0))
+     *    __API_DEPRECATED_WITH_REPLACEMENT("SomeClassName", macos(10.4, 10.6), watchos(2.0, 3.0))
+     */
+    #define __API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG9, __API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1, 0)(__VA_ARGS__)
+    #define __API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP9,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1, 0)(__VA_ARGS__)
+
+    #define __API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_MSG9, __API_DEPRECATED_BEGIN_MSG8,__API_DEPRECATED_BEGIN_MSG7, __API_DEPRECATED_BEGIN_MSG6, __API_DEPRECATED_BEGIN_MSG5, __API_DEPRECATED_BEGIN_MSG4, __API_DEPRECATED_BEGIN_MSG3, __API_DEPRECATED_BEGIN_MSG2, __API_DEPRECATED_BEGIN_MSG1, 0)(__VA_ARGS__)
+    #define __API_DEPRECATED_END _Pragma("clang attribute pop")
+
+    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_REP9, __API_DEPRECATED_BEGIN_REP8,__API_DEPRECATED_BEGIN_REP7, __API_DEPRECATED_BEGIN_REP6, __API_DEPRECATED_BEGIN_REP5, __API_DEPRECATED_BEGIN_REP4, __API_DEPRECATED_BEGIN_REP3, __API_DEPRECATED_BEGIN_REP2, __API_DEPRECATED_BEGIN_REP1, 0)(__VA_ARGS__)
+    #define __API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop")
+
+    /*
+     * API Unavailability
+     * Use to specify that an API is unavailable for a particular platform.
+     *
+     * Example:
+     *    __API_UNAVAILABLE(macos)
+     *    __API_UNAVAILABLE(watchos, tvos)
+     */
+    #define __API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE8,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__)
+
+    #define __API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN8,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6, __API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_ARGS__)
+    #define __API_UNAVAILABLE_END _Pragma("clang attribute pop")
+ #else 
+
+    /* 
+     * Evaluate to nothing for compilers that don't support availability.
+     */
+    
+    #define __API_AVAILABLE(...)
+    #define __API_AVAILABLE_BEGIN(...)
+    #define __API_AVAILABLE_END
+    #define __API_DEPRECATED(...)
+    #define __API_DEPRECATED_WITH_REPLACEMENT(...)
+    #define __API_DEPRECATED_BEGIN(...)
+    #define __API_DEPRECATED_END
+    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
+    #define __API_DEPRECATED_WITH_REPLACEMENT_END
+    #define __API_UNAVAILABLE(...)
+    #define __API_UNAVAILABLE_BEGIN(...)
+    #define __API_UNAVAILABLE_END
+ #endif /* __has_attribute(availability) */
+#else
+
+    /* 
+     * Evaluate to nothing for compilers that don't support clang language extensions.
+     */
+    
+    #define __API_AVAILABLE(...)
+    #define __API_AVAILABLE_BEGIN(...)
+    #define __API_AVAILABLE_END
+    #define __API_DEPRECATED(...)
+    #define __API_DEPRECATED_WITH_REPLACEMENT(...)
+    #define __API_DEPRECATED_BEGIN(...)
+    #define __API_DEPRECATED_END
+    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
+    #define __API_DEPRECATED_WITH_REPLACEMENT_END
+    #define __API_UNAVAILABLE(...)
+    #define __API_UNAVAILABLE_BEGIN(...)
+    #define __API_UNAVAILABLE_END
+#endif /*  #if defined(__has_feature) && defined(__has_attribute) */
+
+#if __has_include()
+  #include 
+#endif
+
+/*
+ * If SPI decorations have not been defined elsewhere, disable them.
+ */
+
+#ifndef __SPI_AVAILABLE
+  #define __SPI_AVAILABLE(...)
+#endif
+
+#ifndef __SPI_DEPRECATED
+  #define __SPI_DEPRECATED(...)
+#endif
+
+#ifndef __SPI_DEPRECATED_WITH_REPLACEMENT
+  #define __SPI_DEPRECATED_WITH_REPLACEMENT(...)
+#endif
+
+#endif /* __AVAILABILITY__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/AvailabilityInternal.h b/lib/libc/include/any-macos.13-any/AvailabilityInternal.h
new file mode 100644
index 0000000000000000000000000000000000000000..4e1e72d8e87a9c2d7de325f4715dd1a065edef12
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/AvailabilityInternal.h
@@ -0,0 +1,4687 @@
+/*
+ * Copyright (c) 2007-2016 by 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@
+ */
+
+/*
+    File:       AvailabilityInternal.h
+ 
+    Contains:   implementation details of __OSX_AVAILABLE_* macros from 
+
+*/
+#ifndef __AVAILABILITY_INTERNAL__
+#define __AVAILABILITY_INTERNAL__
+
+#if __has_include()
+  #include 
+#endif
+
+#ifndef __MAC_OS_X_VERSION_MIN_REQUIRED
+    #ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+        /* compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ */
+        #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+    #endif
+#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED*/
+
+#ifndef __IPHONE_OS_VERSION_MIN_REQUIRED
+    #ifdef __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
+        /* compiler sets __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ when -miphoneos-version-min is used */
+        #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
+    /* set to 1 when RC_FALLBACK_PLATFORM=iphoneos */
+    #elif 0
+        #define __IPHONE_OS_VERSION_MIN_REQUIRED 0
+    #endif
+#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED */
+
+#ifndef __TV_OS_VERSION_MIN_REQUIRED
+    #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_1
+        /* for compatibility with existing code.  New code should use platform specific checks */
+        #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
+    #endif
+#endif
+
+#ifndef __WATCH_OS_VERSION_MIN_REQUIRED
+    #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_1
+        /* for compatibility with existing code.  New code should use platform specific checks */
+        #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
+    #endif
+#endif
+
+#ifndef __BRIDGE_OS_VERSION_MIN_REQUIRED
+    #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
+        /* for compatibility with existing code.  New code should use platform specific checks */
+        #define __IPHONE_OS_VERSION_MIN_REQUIRED 110000
+    #endif
+#endif
+
+#ifndef __DRIVERKIT_VERSION_MIN_REQUIRED
+    #ifdef __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__
+        #define __DRIVERKIT_VERSION_MIN_REQUIRED __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__
+    #endif
+#endif
+
+#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_0
+    #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_1
+    #endif
+    /* make sure a valid min is set */
+    #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0
+        #undef __IPHONE_OS_VERSION_MIN_REQUIRED
+        #define __IPHONE_OS_VERSION_MIN_REQUIRED    __IPHONE_2_0
+    #endif
+#endif
+
+#define __AVAILABILITY_INTERNAL_DEPRECATED            __attribute__((deprecated))
+#ifdef __has_feature
+    #if __has_feature(attribute_deprecated_with_message)
+        #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated(_msg)))
+    #else
+        #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated))
+    #endif
+#elif defined(__GNUC__) && ((__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)))
+    #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated(_msg)))
+#else
+    #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated))
+#endif
+#define __AVAILABILITY_INTERNAL_UNAVAILABLE           __attribute__((unavailable))
+#define __AVAILABILITY_INTERNAL_WEAK_IMPORT           __attribute__((weak_import))
+#define __AVAILABILITY_INTERNAL_REGULAR            
+
+#if defined(__has_builtin)
+ #if __has_builtin(__is_target_arch)
+  #if __has_builtin(__is_target_vendor)
+   #if __has_builtin(__is_target_os)
+    #if __has_builtin(__is_target_environment)
+     #if __has_builtin(__is_target_variant_os)
+      #if __has_builtin(__is_target_variant_environment)
+       #if (__is_target_arch(x86_64) && __is_target_vendor(apple) && ((__is_target_os(ios) && __is_target_environment(macabi)) || (__is_target_variant_os(ios) && __is_target_variant_environment(macabi))))
+         #define __ENABLE_LEGACY_IPHONE_AVAILABILITY 1
+         #define __ENABLE_LEGACY_MAC_AVAILABILITY 1
+       #endif /* # if __is_target_arch... */
+      #endif /* #if __has_builtin(__is_target_variant_environment) */
+     #endif /* #if __has_builtin(__is_target_variant_os) */
+    #endif /* #if __has_builtin(__is_target_environment) */
+   #endif /* #if __has_builtin(__is_target_os) */
+  #endif /* #if __has_builtin(__is_target_vendor) */
+ #endif /* #if __has_builtin(__is_target_arch) */
+#endif /* #if defined(__has_builtin) */
+
+#ifndef __ENABLE_LEGACY_IPHONE_AVAILABILITY
+ #ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
+  #define __ENABLE_LEGACY_IPHONE_AVAILABILITY 1
+ #elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
+  #define __ENABLE_LEGACY_MAC_AVAILABILITY 1
+ #endif
+#endif /* __ENABLE_LEGACY_IPHONE_AVAILABILITY */
+
+#ifdef __ENABLE_LEGACY_IPHONE_AVAILABILITY
+    #if defined(__has_attribute) && defined(__has_feature)
+        #if __has_attribute(availability)
+            /* use better attributes if possible */
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0                    __attribute__((availability(ios,introduced=2.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=2.0,deprecated=11.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0   __attribute__((availability(ios,introduced=2.0,deprecated=2.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1   __attribute__((availability(ios,introduced=2.0,deprecated=2.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.0,deprecated=2.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.0,deprecated=3.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.0,deprecated=3.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.0,deprecated=3.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.0,deprecated=4.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.0,deprecated=4.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.0,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.0,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.0,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.0,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.0,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.0,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.0,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.0,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.0,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.0,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.0,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.0,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.0,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.0,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.0,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.0,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.0,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1                    __attribute__((availability(ios,introduced=2.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.1,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1   __attribute__((availability(ios,introduced=2.1,deprecated=2.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.1,deprecated=2.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.1,deprecated=3.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.1,deprecated=3.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.1,deprecated=3.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.1,deprecated=4.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.1,deprecated=4.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.1,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.1,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.1,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.1,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.1,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.1,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.1,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.1,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.1,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.1,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.1,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.1,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.1,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.1,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.1,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.1,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.1,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2                    __attribute__((availability(ios,introduced=2.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.2,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.2,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.2,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.2,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.2,deprecated=2.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=2.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=2.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.2,deprecated=3.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.2,deprecated=3.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.2,deprecated=3.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.2,deprecated=4.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.2,deprecated=4.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.2,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.2,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.2,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.2,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.2,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.2,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.2,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.2,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.2,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.2,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.2,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.2,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.2,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.2,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.2,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.2,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.2,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0                    __attribute__((availability(ios,introduced=3.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=3.0,deprecated=3.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=3.0,deprecated=3.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.0,deprecated=3.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.0,deprecated=4.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.0,deprecated=4.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.0,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.0,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.0,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.0,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.0,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.0,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.0,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.0,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.0,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.0,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.0,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.0,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.0,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.0,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.0,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.0,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.0,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1                    __attribute__((availability(ios,introduced=3.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.1,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=3.1,deprecated=3.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.1,deprecated=3.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.1,deprecated=4.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.1,deprecated=4.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.1,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.1,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.1,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.1,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.1,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.1,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.1,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.1,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.1,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.1,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.1,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.1,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.1,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.1,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.1,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.1,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.1,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2                    __attribute__((availability(ios,introduced=3.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.2,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.2,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.2,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.2,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.2,deprecated=3.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=3.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=3.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.2,deprecated=4.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.2,deprecated=4.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.2,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.2,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.2,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.2,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.2,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.2,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.2,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.2,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.2,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.2,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.2,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.2,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.2,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.2,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.2,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.2,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.2,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0                    __attribute__((availability(ios,introduced=4.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=12.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=12.0)))
+            #endif            
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=4.0,deprecated=4.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.0,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.0,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.0,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.0,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.0,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.0,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.0,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.0,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.0,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.0,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.0,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.0,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.0,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.0,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.0,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.0,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.0,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1                    __attribute__((availability(ios,introduced=4.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.1,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=4.1,deprecated=4.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.1,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.1,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.1,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.1,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.1,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.1,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.1,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.1,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.1,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.1,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.1,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.1,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.1,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.1,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.1,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.1,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.1,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2                    __attribute__((availability(ios,introduced=4.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.2,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.2,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.2,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.2,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.2,deprecated=4.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.2,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.2,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.2,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.2,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.2,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.2,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.2,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.2,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.2,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.2,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.2,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.2,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.2,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.2,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.2,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.2,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3                    __attribute__((availability(ios,introduced=4.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.3,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.3,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.3,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.3,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.3,deprecated=4.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=4.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=4.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.3,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.3,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.3,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.3,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.3,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.3,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.3,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.3,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.3,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.3,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.3,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.3,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.3,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.3,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.3,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0                    __attribute__((availability(ios,introduced=5.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=5.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=5.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=5.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=5.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=5.0,deprecated=11.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=5.0,deprecated=5.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=5.0,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=5.0,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=5.0,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=5.0,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=5.0,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=5.0,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=5.0,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=5.0,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=5.0,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=5.0,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=5.0,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=5.0,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=5.0,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=5.0,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=5.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=5.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1                    __attribute__((availability(ios,introduced=5.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=5.1,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=5.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=5.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=5.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=5.1,deprecated=5.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=5.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=5.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=5.1,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=5.1,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=5.1,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=5.1,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=5.1,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=5.1,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=5.1,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=5.1,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=5.1,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=5.1,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=5.1,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=5.1,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=5.1,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=5.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=5.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0                    __attribute__((availability(ios,introduced=6.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=6.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=6.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=6.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=6.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=6.0,deprecated=6.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=6.0,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=6.0,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=6.0,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=6.0,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=6.0,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=6.0,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=6.0,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=6.0,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=6.0,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=6.0,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=6.0,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=6.0,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=6.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=6.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1                    __attribute__((availability(ios,introduced=6.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=6.1,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=6.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=6.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=6.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=6.1,deprecated=6.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=6.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=6.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=6.1,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=6.1,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=6.1,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=6.1,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=6.1,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=6.1,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=6.1,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=6.1,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=6.1,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=6.1,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=6.1,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=6.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=6.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0                    __attribute__((availability(ios,introduced=7.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=7.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=7.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=7.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=7.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=7.0,deprecated=11.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_11_3   __attribute__((availability(ios,introduced=7.0,deprecated=11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=12.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=12.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=7.0,deprecated=7.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=7.0,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=7.0,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=7.0,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=7.0,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=7.0,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=7.0,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=7.0,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=7.0,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=7.0,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=7.0,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=7.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=7.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1                    __attribute__((availability(ios,introduced=7.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=7.1,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=7.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=7.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=7.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=7.1,deprecated=7.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=7.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=7.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=7.1,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=7.1,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=7.1,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=7.1,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=7.1,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=7.1,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=7.1,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=7.1,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=7.1,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=7.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=7.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0                    __attribute__((availability(ios,introduced=8.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_3   __attribute__((availability(ios,introduced=8.0,deprecated=11.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_12_0   __attribute__((availability(ios,introduced=8.0,deprecated=12.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=8.0,deprecated=8.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=8.0,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.0,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.0,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.0,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.0,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.0,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.0,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.0,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1                    __attribute__((availability(ios,introduced=8.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.1,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=8.1,deprecated=8.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.1,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.1,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.1,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.1,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.1,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.1,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.1,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2                    __attribute__((availability(ios,introduced=8.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.2,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.2,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.2,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.2,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.2,deprecated=8.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.2,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.2,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.2,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.2,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.2,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.2,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3                    __attribute__((availability(ios,introduced=8.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.3,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.3,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.3,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.3,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.3,deprecated=8.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.3,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.3,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.3,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.3,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.3,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4                    __attribute__((availability(ios,introduced=8.4)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.4,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.4,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.4,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.4,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.4,deprecated=8.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=8.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=8.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.4,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.4,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.4,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.4,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.4)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.4)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0                    __attribute__((availability(ios,introduced=9.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=9.0,deprecated=9.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=9.0,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.0,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.0,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1                    __attribute__((availability(ios,introduced=9.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.1,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=9.1,deprecated=9.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.1,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.1,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2                    __attribute__((availability(ios,introduced=9.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.2,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.2,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.2,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.2,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.2,deprecated=9.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.2,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_3                    __attribute__((availability(ios,introduced=9.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.3,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.3,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.3,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.3,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.3,deprecated=9.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=9.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=9.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0                    __attribute__((availability(ios,introduced=10.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=10.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=10.0,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=10.0,deprecated=11.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_12_0   __attribute__((availability(ios,introduced=10.0,deprecated=12.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_1                    __attribute__((availability(ios,introduced=10.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=10.1,deprecated=10.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.1)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_2                    __attribute__((availability(ios,introduced=10.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.2,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.2,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.2)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_3                    __attribute__((availability(ios,introduced=10.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.3,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.3,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.3,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_11                    __attribute__((availability(ios,introduced=11)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_11_0                    __attribute__((availability(ios,introduced=11.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_11_3                    __attribute__((availability(ios,introduced=11.3)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_12_0                    __attribute__((availability(ios,introduced=12.0)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_13_0                    __attribute__((availability(ios,introduced=13.0)))
+
+            #define __AVAILABILITY_INTERNAL__IPHONE_NA                      __attribute__((availability(ios,unavailable)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_NA__IPHONE_NA           __attribute__((availability(ios,unavailable)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA       __attribute__((availability(ios,unavailable)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA_MSG(_msg) __attribute__((availability(ios,unavailable)))
+
+            #if __has_builtin(__is_target_arch)
+             #if __has_builtin(__is_target_vendor)
+              #if __has_builtin(__is_target_os)
+               #if __has_builtin(__is_target_environment)
+                #if __has_builtin(__is_target_variant_os)
+                 #if __has_builtin(__is_target_variant_environment)
+                  #if ((__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(macabi))
+                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION __attribute__((availability(ios,introduced=4.0)))
+                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION               __attribute__((availability(ios,unavailable)))
+                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)     __attribute__((availability(ios,unavailable)))
+                  #endif
+                 #endif /* #if __has_builtin(__is_target_variant_environment) */
+                #endif /* #if __has_builtin(__is_target_variant_os) */
+               #endif /* #if __has_builtin(__is_target_environment) */
+              #endif /* #if __has_builtin(__is_target_os) */
+             #endif /* #if __has_builtin(__is_target_vendor) */
+            #endif /* #if __has_builtin(__is_target_arch) */
+
+            #ifndef __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION
+                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION __attribute__((availability(ios,introduced=4.0)))
+                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))
+                #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0,message=_msg)))
+                #else
+                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))
+                #endif
+            #endif /* __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION */
+        #endif
+    #endif
+#endif
+
+#if __ENABLE_LEGACY_MAC_AVAILABILITY
+    #if defined(__has_attribute) && defined(__has_feature)
+        #if __has_attribute(availability)
+            /* use better attributes if possible */
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_2                    __attribute__((availability(macosx,introduced=10.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.2,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.2,deprecated=10.13)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_3                    __attribute__((availability(macosx,introduced=10.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.3,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.3,deprecated=10.13)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_4                    __attribute__((availability(macosx,introduced=10.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.4,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.4,deprecated=10.13)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_5                    __attribute__((availability(macosx,introduced=10.5)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEPRECATED__MAC_10_7                    __attribute__((availability(macosx,introduced=10.5.DEPRECATED..MAC.10.7)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.5,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.5)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_6                    __attribute__((availability(macosx,introduced=10.6)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.6,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.6,deprecated=10.13)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.6)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_7                    __attribute__((availability(macosx,introduced=10.7)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.7,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_13_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.13.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.7)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_8                    __attribute__((availability(macosx,introduced=10.8)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.8,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.8,deprecated=10.13)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.8)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9                    __attribute__((availability(macosx,introduced=10.9)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.9,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.9,deprecated=10.13)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.9,deprecated=10.14)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.9)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_0                    __attribute__((availability(macosx,introduced=10.0)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.0)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_1                    __attribute__((availability(macosx,introduced=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10                    __attribute__((availability(macosx,introduced=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2                    __attribute__((availability(macosx,introduced=10.10.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3                    __attribute__((availability(macosx,introduced=10.10.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.10,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11                    __attribute__((availability(macosx,introduced=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2                    __attribute__((availability(macosx,introduced=10.11.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3                    __attribute__((availability(macosx,introduced=10.11.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_4                    __attribute__((availability(macosx,introduced=10.11.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.11,deprecated=10.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12                    __attribute__((availability(macosx,introduced=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_1                    __attribute__((availability(macosx,introduced=10.12.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_2                    __attribute__((availability(macosx,introduced=10.12.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_4                    __attribute__((availability(macosx,introduced=10.12.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4)))
+            #endif
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13)))
+            #if __has_feature(attribute_availability_with_message)
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13,message=_msg)))
+            #else
+                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13)))
+            #endif
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_4   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.12,deprecated=10.14)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_13                    __attribute__((availability(macosx,introduced=10.13)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_13_4                    __attribute__((availability(macosx,introduced=10.13.4)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_14                    __attribute__((availability(macosx,introduced=10.14)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_14_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.14,deprecated=10.14)))
+            #define __AVAILABILITY_INTERNAL__MAC_10_15                    __attribute__((availability(macosx,introduced=10.15)))
+
+            #define __AVAILABILITY_INTERNAL__MAC_NA                        __attribute__((availability(macosx,unavailable)))
+            #define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA            __attribute__((availability(macosx,unavailable)))
+            #define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA_MSG(_msg)  __attribute__((availability(macosx,unavailable)))
+
+            #define __AVAILABILITY_INTERNAL__IPHONE_NA                      __attribute__((availability(ios,unavailable)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_NA__IPHONE_NA           __attribute__((availability(ios,unavailable)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA       __attribute__((availability(ios,unavailable)))
+            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA_MSG(_msg) __attribute__((availability(ios,unavailable)))
+
+            #ifndef __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION
+             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION                                          __attribute__((availability(ios,unavailable)))
+             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION               __attribute__((availability(ios,unavailable)))
+             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)     __attribute__((availability(ios,unavailable)))
+            #endif /* __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION */
+        #endif
+    #endif
+#endif /* __ENABLE_LEGACY_MAC_AVAILABILITY */
+
+/*
+ Macros for defining which versions/platform a given symbol can be used.
+ 
+ @see http://clang.llvm.org/docs/AttributeReference.html#availability
+ */
+
+#if defined(__has_feature) && defined(__has_attribute)
+ #if __has_attribute(availability)
+
+    
+    #define __API_AVAILABLE_PLATFORM_macos(x) macos,introduced=x
+    #define __API_AVAILABLE_PLATFORM_macosx(x) macosx,introduced=x
+    #define __API_AVAILABLE_PLATFORM_ios(x) ios,introduced=x
+    #define __API_AVAILABLE_PLATFORM_watchos(x) watchos,introduced=x
+    #define __API_AVAILABLE_PLATFORM_tvos(x) tvos,introduced=x
+    
+    #define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x
+    #define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x
+    #ifndef __API_AVAILABLE_PLATFORM_uikitformac
+     #define __API_AVAILABLE_PLATFORM_uikitformac(x) uikitformac,introduced=x
+    #endif
+    #define __API_AVAILABLE_PLATFORM_driverkit(x) driverkit,introduced=x
+
+
+    #if defined(__has_attribute)
+      #if __has_attribute(availability)
+        #define __API_A(x) __attribute__((availability(__API_AVAILABLE_PLATFORM_##x)))
+      #else
+        #define __API_A(x)
+      #endif
+    #else
+        #define __API_A(x)
+    #endif
+    
+    #define __API_AVAILABLE1(x) __API_A(x)
+    #define __API_AVAILABLE2(x,y) __API_A(x) __API_A(y)
+    #define __API_AVAILABLE3(x,y,z)  __API_A(x) __API_A(y) __API_A(z)
+    #define __API_AVAILABLE4(x,y,z,t) __API_A(x) __API_A(y) __API_A(z) __API_A(t)
+    #define __API_AVAILABLE5(x,y,z,t,b) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b)
+    #define __API_AVAILABLE6(x,y,z,t,b,m) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m)
+    #define __API_AVAILABLE7(x,y,z,t,b,m,d) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m) __API_A(d)
+    #define __API_AVAILABLE8(x,y,z,t,b,m,d,l) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m) __API_A(d) __API_A(l)
+    #define __API_AVAILABLE_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
+
+    #define __API_APPLY_TO any(record, enum, enum_constant, function, objc_method, objc_category, objc_protocol, objc_interface, objc_property, type_alias, variable, field)
+    #define __API_RANGE_STRINGIFY(x) __API_RANGE_STRINGIFY2(x)
+    #define __API_RANGE_STRINGIFY2(x) #x 
+    
+    #define __API_A_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_AVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO)))
+
+    #define __API_AVAILABLE_BEGIN1(a) __API_A_BEGIN(a)
+    #define __API_AVAILABLE_BEGIN2(a,b) __API_A_BEGIN(a) __API_A_BEGIN(b)
+    #define __API_AVAILABLE_BEGIN3(a,b,c) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c)
+    #define __API_AVAILABLE_BEGIN4(a,b,c,d) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d)
+    #define __API_AVAILABLE_BEGIN5(a,b,c,d,e) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e)
+    #define __API_AVAILABLE_BEGIN6(a,b,c,d,e,f) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f)
+    #define __API_AVAILABLE_BEGIN7(a,b,c,d,e,f,g) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f) __API_A_BEGIN(g)
+    #define __API_AVAILABLE_BEGIN8(a,b,c,d,e,f,g,h) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f) __API_A_BEGIN(g) __API_A_BEGIN(h)
+    #define __API_AVAILABLE_BEGIN_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
+
+    
+    #define __API_DEPRECATED_PLATFORM_macos(x,y) macos,introduced=x,deprecated=y
+    #define __API_DEPRECATED_PLATFORM_macosx(x,y) macosx,introduced=x,deprecated=y
+    #define __API_DEPRECATED_PLATFORM_ios(x,y) ios,introduced=x,deprecated=y
+    #define __API_DEPRECATED_PLATFORM_watchos(x,y) watchos,introduced=x,deprecated=y
+    #define __API_DEPRECATED_PLATFORM_tvos(x,y) tvos,introduced=x,deprecated=y
+    
+    #define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y
+    #define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y
+    #ifndef __API_DEPRECATED_PLATFORM_uikitformac
+     #define __API_DEPRECATED_PLATFORM_uikitformac(x) uikitformac,introduced=x,deprecated=y
+    #endif
+    #define __API_DEPRECATED_PLATFORM_driverkit(x,y) driverkit,introduced=x,deprecated=y
+
+
+    #if defined(__has_attribute)
+      #if __has_attribute(availability)
+        #define __API_D(msg,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg)))
+      #else
+        #define __API_D(msg,x)
+      #endif
+    #else
+        #define __API_D(msg,x)
+    #endif
+    
+    #define __API_DEPRECATED_MSG2(msg,x) __API_D(msg,x)
+    #define __API_DEPRECATED_MSG3(msg,x,y) __API_D(msg,x) __API_D(msg,y)
+    #define __API_DEPRECATED_MSG4(msg,x,y,z) __API_DEPRECATED_MSG3(msg,x,y) __API_D(msg,z)
+    #define __API_DEPRECATED_MSG5(msg,x,y,z,t) __API_DEPRECATED_MSG4(msg,x,y,z) __API_D(msg,t)
+    #define __API_DEPRECATED_MSG6(msg,x,y,z,t,b) __API_DEPRECATED_MSG5(msg,x,y,z,t) __API_D(msg,b)
+    #define __API_DEPRECATED_MSG7(msg,x,y,z,t,b,m) __API_DEPRECATED_MSG6(msg,x,y,z,t,b) __API_D(msg,m)
+    #define __API_DEPRECATED_MSG8(msg,x,y,z,t,b,m,d) __API_DEPRECATED_MSG7(msg,x,y,z,t,b,m) __API_D(msg,d)
+    #define __API_DEPRECATED_MSG9(msg,x,y,z,t,b,m,d,l) __API_DEPRECATED_MSG8(msg,x,y,z,t,b,m,d) __API_D(msg,l)
+    #define __API_DEPRECATED_MSG_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME
+
+    #define __API_D_BEGIN(msg, x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg))), apply_to = __API_APPLY_TO)))
+
+    #define __API_DEPRECATED_BEGIN_MSG2(msg,a) __API_D_BEGIN(msg,a)
+    #define __API_DEPRECATED_BEGIN_MSG3(msg,a,b) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b)
+    #define __API_DEPRECATED_BEGIN_MSG4(msg,a,b,c) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c)
+    #define __API_DEPRECATED_BEGIN_MSG5(msg,a,b,c,d) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d)
+    #define __API_DEPRECATED_BEGIN_MSG6(msg,a,b,c,d,e) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e)
+    #define __API_DEPRECATED_BEGIN_MSG7(msg,a,b,c,d,e,f) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f)
+    #define __API_DEPRECATED_BEGIN_MSG8(msg,a,b,c,d,e,f,g) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f) __API_D_BEGIN(msg,g)
+    #define __API_DEPRECATED_BEGIN_MSG9(msg,a,b,c,d,e,f,g,h) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f) __API_D_BEGIN(msg,g) __API_D_BEGIN(msg,h)
+    #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME
+
+    #if __has_feature(attribute_availability_with_replacement)
+        #define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep)))
+    #else
+        #define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x)))
+    #endif
+
+    #define __API_DEPRECATED_REP2(rep,x) __API_R(rep,x)
+    #define __API_DEPRECATED_REP3(rep,x,y) __API_R(rep,x) __API_R(rep,y)
+    #define __API_DEPRECATED_REP4(rep,x,y,z)  __API_DEPRECATED_REP3(rep,x,y) __API_R(rep,z)
+    #define __API_DEPRECATED_REP5(rep,x,y,z,t) __API_DEPRECATED_REP4(rep,x,y,z) __API_R(rep,t)
+    #define __API_DEPRECATED_REP6(rep,x,y,z,t,b) __API_DEPRECATED_REP5(rep,x,y,z,t) __API_R(rep,b)
+    #define __API_DEPRECATED_REP7(rep,x,y,z,t,b,m) __API_DEPRECATED_REP6(rep,x,y,z,t,b) __API_R(rep,m)
+    #define __API_DEPRECATED_REP8(rep,x,y,z,t,b,m,d) __API_DEPRECATED_REP7(rep,x,y,z,t,b,m) __API_R(rep,d)
+    #define __API_DEPRECATED_REP9(rep,x,y,z,t,b,m,d,l) __API_DEPRECATED_REP8(rep,x,y,z,t,b,m,d) __API_R(rep,l)
+    #define __API_DEPRECATED_REP_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME
+
+    #if __has_feature(attribute_availability_with_replacement)
+        #define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))), apply_to = __API_APPLY_TO)))    
+    #else
+        #define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x))), apply_to = __API_APPLY_TO)))    
+    #endif
+
+    #define __API_DEPRECATED_BEGIN_REP2(rep,a) __API_R_BEGIN(rep,a)
+    #define __API_DEPRECATED_BEGIN_REP3(rep,a,b) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b)
+    #define __API_DEPRECATED_BEGIN_REP4(rep,a,b,c) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c)
+    #define __API_DEPRECATED_BEGIN_REP5(rep,a,b,c,d) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d)
+    #define __API_DEPRECATED_BEGIN_REP6(rep,a,b,c,d,e) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e)
+    #define __API_DEPRECATED_BEGIN_REP7(rep,a,b,c,d,e,f) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f)
+    #define __API_DEPRECATED_BEGIN_REP8(rep,a,b,c,d,e,f,g) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f) __API_R_BEGIN(rep,g)
+    #define __API_DEPRECATED_BEGIN_REP9(rep,a,b,c,d,e,f,g,h) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f) __API_R_BEGIN(rep,g) __API_R_BEGIN(rep,h)
+
+    #define __API_DEPRECATED_BEGIN_REP_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME
+
+    /*
+     * API Unavailability
+     * Use to specify that an API is unavailable for a particular platform.
+     *
+     * Example:
+     *    __API_UNAVAILABLE(macos)
+     *    __API_UNAVAILABLE(watchos, tvos)
+     */
+    #define __API_UNAVAILABLE_PLATFORM_macos macos,unavailable
+    #define __API_UNAVAILABLE_PLATFORM_macosx macosx,unavailable
+    #define __API_UNAVAILABLE_PLATFORM_ios ios,unavailable
+    #define __API_UNAVAILABLE_PLATFORM_watchos watchos,unavailable
+    #define __API_UNAVAILABLE_PLATFORM_tvos tvos,unavailable
+    
+    #define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable
+    #define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable
+    #ifndef __API_UNAVAILABLE_PLATFORM_uikitformac
+     #define __API_UNAVAILABLE_PLATFORM_uikitformac(x) uikitformac,unavailable
+    #endif
+    #define __API_UNAVAILABLE_PLATFORM_driverkit driverkit,unavailable
+
+
+    #if defined(__has_attribute)
+      #if __has_attribute(availability)
+        #define __API_U(x) __attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x)))
+      #else
+        #define __API_U(x)
+      #endif
+    #else
+        #define __API_U(x)
+    #endif
+    
+    #define __API_UNAVAILABLE1(x) __API_U(x)
+    #define __API_UNAVAILABLE2(x,y) __API_U(x) __API_U(y)
+    #define __API_UNAVAILABLE3(x,y,z) __API_UNAVAILABLE2(x,y) __API_U(z)
+    #define __API_UNAVAILABLE4(x,y,z,t) __API_UNAVAILABLE3(x,y,z) __API_U(t)
+    #define __API_UNAVAILABLE5(x,y,z,t,b) __API_UNAVAILABLE4(x,y,z,t) __API_U(b)
+    #define __API_UNAVAILABLE6(x,y,z,t,b,m) __API_UNAVAILABLE5(x,y,z,t,b) __API_U(m)
+    #define __API_UNAVAILABLE7(x,y,z,t,b,m,d) __API_UNAVAILABLE6(x,y,z,t,b,m) __API_U(d)
+    #define __API_UNAVAILABLE8(x,y,z,t,b,m,d,l) __API_UNAVAILABLE7(x,y,z,t,b,m,d) __API_U(l)
+    #define __API_UNAVAILABLE_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
+
+    #define __API_U_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO)))
+
+    #define __API_UNAVAILABLE_BEGIN1(a) __API_U_BEGIN(a)
+    #define __API_UNAVAILABLE_BEGIN2(a,b) __API_U_BEGIN(a) __API_U_BEGIN(b)
+    #define __API_UNAVAILABLE_BEGIN3(a,b,c) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c)
+    #define __API_UNAVAILABLE_BEGIN4(a,b,c,d) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d)
+    #define __API_UNAVAILABLE_BEGIN5(a,b,c,d,e) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e)
+    #define __API_UNAVAILABLE_BEGIN6(a,b,c,d,e,f) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f)
+    #define __API_UNAVAILABLE_BEGIN7(a,b,c,d,e,f,g) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f) __API_U_BEGIN(g)
+    #define __API_UNAVAILABLE_BEGIN8(a,b,c,d,e,f,g,h) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f) __API_U_BEGIN(g) __API_U_BEGIN(h)
+    #define __API_UNAVAILABLE_BEGIN_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
+ #else 
+
+ /* 
+  * Evaluate to nothing for compilers that don't support availability.
+  */
+    
+  #define __API_AVAILABLE_GET_MACRO(...)
+  #define __API_AVAILABLE_BEGIN_GET_MACRO(...)
+  #define __API_DEPRECATED_MSG_GET_MACRO(...)
+  #define __API_DEPRECATED_REP_GET_MACRO(...)
+  #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(...)
+  #define __API_DEPRECATED_BEGIN_REP_GET_MACRO
+  #define __API_UNAVAILABLE_GET_MACRO(...)
+  #define __API_UNAVAILABLE_BEGIN_GET_MACRO(...)
+ #endif /* __has_attribute(availability) */
+#else
+
+    /* 
+     * Evaluate to nothing for compilers that don't support clang language extensions.
+     */
+    
+    #define __API_AVAILABLE_GET_MACRO(...)
+    #define __API_AVAILABLE_BEGIN_GET_MACRO(...)
+    #define __API_DEPRECATED_MSG_GET_MACRO(...)
+    #define __API_DEPRECATED_REP_GET_MACRO(...)
+    #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(...)
+    #define __API_DEPRECATED_BEGIN_REP_GET_MACRO
+    #define __API_UNAVAILABLE_GET_MACRO(...)
+    #define __API_UNAVAILABLE_BEGIN_GET_MACRO(...)
+#endif /* #if defined(__has_feature) && defined(__has_attribute) */
+
+/*
+ * Swift compiler version
+ * Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+ * Example:
+ *
+ *  #if __swift_compiler_version_at_least(800, 2, 20)
+ *  - (nonnull NSString *)description;
+ *  #else
+ *  - (NSString *)description;
+ *  #endif
+ */
+ 
+#ifdef __SWIFT_COMPILER_VERSION
+    #define __swift_compiler_version_at_least_impl(X, Y, Z, a, b, ...) \
+    __SWIFT_COMPILER_VERSION >= ((X * UINT64_C(1000) * 1000 * 1000) + (Z * 1000 * 1000) + (a * 1000) + b)
+    #define __swift_compiler_version_at_least(...) __swift_compiler_version_at_least_impl(__VA_ARGS__, 0, 0, 0, 0)
+#else
+    #define __swift_compiler_version_at_least(...) 1
+#endif
+
+/*
+ * If __SPI_AVAILABLE has not been defined elsewhere, disable it.
+ */
+ 
+#ifndef __SPI_AVAILABLE
+  #define __SPI_AVAILABLE(...)
+#endif
+
+#endif /* __AVAILABILITY_INTERNAL__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/AvailabilityMacros.h b/lib/libc/include/any-macos.13-any/AvailabilityMacros.h
new file mode 100644
index 0000000000000000000000000000000000000000..313d37c4cc70710a30d26313b00976b3bc97b77c
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/AvailabilityMacros.h
@@ -0,0 +1,4018 @@
+/*
+ * Copyright (c) 2001-2010 by 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@
+ */
+
+/*
+     File:       AvailabilityMacros.h
+ 
+     More Info:  See the SDK Compatibility Guide
+
+     Contains:   Autoconfiguration of AVAILABLE_ macros for Mac OS X
+
+                 This header enables a developer to specify build time
+                 constraints on what Mac OS X versions the resulting
+                 application will be run.  There are two bounds a developer
+                 can specify:
+                 
+                      MAC_OS_X_VERSION_MIN_REQUIRED
+                      MAC_OS_X_VERSION_MAX_ALLOWED
+                      
+                The lower bound controls which calls to OS functions will 
+                be weak-importing (allowed to be unresolved at launch time).
+                The upper bound controls which OS functionality, if used,
+                will result in a compiler error because that functionality is
+                not available on any OS in the specifed range.
+                
+                For example, suppose an application is compiled with:
+                
+                      MAC_OS_X_VERSION_MIN_REQUIRED = MAC_OS_X_VERSION_10_2
+                      MAC_OS_X_VERSION_MAX_ALLOWED  = MAC_OS_X_VERSION_10_3
+                     
+                and an OS header contains:
+                
+                     extern void funcA(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER;
+                     extern void funcB(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2;
+                     extern void funcC(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3;
+                     extern void funcD(void) AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER;
+                     extern void funcE(void) AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER;
+                     extern void funcF(void) AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER;
+                     extern void funcG(void) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
+                     
+                     typedef long TypeA DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER;
+                     typedef long TypeB DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER;
+                     typedef long TypeC DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER;
+                     typedef long TypeD DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER;
+                     typedef long TypeE DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER;
+
+                Any application code which uses these declarations will get the following:
+                
+                                compile         link          run 
+                                -------         ------        -------
+                     funcA:     normal          normal        normal
+                     funcB:     warning         normal        normal
+                     funcC:     normal          normal        normal
+                     funcD:     normal          normal        normal
+                     funcE:     normal          normal        normal
+                     funcF:     normal          weak          on 10.3 normal, on 10.2 (&funcF == NULL)
+                     funcG:     error           error         n/a
+                     typeA:     warning
+                     typeB:     warning
+                     typeC:     warning
+                     typeD:     normal
+                     typeE:     normal
+                  
+  
+*/
+#ifndef __AVAILABILITYMACROS__
+#define __AVAILABILITYMACROS__
+
+/*
+ * Set up standard Mac OS X versions
+ */
+#define MAC_OS_X_VERSION_10_0         1000
+#define MAC_OS_X_VERSION_10_1         1010
+#define MAC_OS_X_VERSION_10_2         1020
+#define MAC_OS_X_VERSION_10_3         1030
+#define MAC_OS_X_VERSION_10_4         1040
+#define MAC_OS_X_VERSION_10_5         1050
+#define MAC_OS_X_VERSION_10_6         1060
+#define MAC_OS_X_VERSION_10_7         1070
+#define MAC_OS_X_VERSION_10_8         1080
+#define MAC_OS_X_VERSION_10_9         1090
+#define MAC_OS_X_VERSION_10_10      101000
+#define MAC_OS_X_VERSION_10_10_2    101002
+#define MAC_OS_X_VERSION_10_10_3    101003
+#define MAC_OS_X_VERSION_10_11      101100
+#define MAC_OS_X_VERSION_10_11_2    101102
+#define MAC_OS_X_VERSION_10_11_3    101103
+#define MAC_OS_X_VERSION_10_11_4    101104
+#define MAC_OS_X_VERSION_10_12      101200
+#define MAC_OS_X_VERSION_10_12_1    101201
+#define MAC_OS_X_VERSION_10_12_2    101202
+#define MAC_OS_X_VERSION_10_12_4    101204
+#define MAC_OS_X_VERSION_10_13      101300
+#define MAC_OS_X_VERSION_10_13_1    101301
+#define MAC_OS_X_VERSION_10_13_2    101302
+#define MAC_OS_X_VERSION_10_13_4    101304
+#define MAC_OS_X_VERSION_10_14      101400
+#define MAC_OS_X_VERSION_10_14_1    101401
+#define MAC_OS_X_VERSION_10_14_4    101404
+#define MAC_OS_X_VERSION_10_15      101500
+#define MAC_OS_VERSION_11_0         110000
+#define MAC_OS_VERSION_11_1         110100
+#define MAC_OS_VERSION_11_3         110300
+#define MAC_OS_VERSION_12_0         120000
+#define MAC_OS_VERSION_13_0         130000
+#define MAC_OS_VERSION_13_1         130100
+
+/* 
+ * If min OS not specified, assume 10.4 for intel
+ * Note: compiler driver may set _ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED_ based on MACOSX_DEPLOYMENT_TARGET environment variable
+ */
+#ifndef MAC_OS_X_VERSION_MIN_REQUIRED
+    #ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+        #if (__i386__ || __x86_64__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < MAC_OS_X_VERSION_10_4)
+            #warning Building for Intel with Mac OS X Deployment Target < 10.4 is invalid.
+        #endif
+        #define MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+    #else
+        #if __i386__ || __x86_64__
+            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_4
+        #elif __arm__ || __arm64__
+            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_5
+        #else
+            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_1
+        #endif
+     #endif
+#endif
+
+/*
+ * 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
+        #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
+    #endif
+#endif
+
+/*
+ * Error on bad values
+ */
+#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_MIN_REQUIRED
+    #error MAC_OS_X_VERSION_MAX_ALLOWED must be >= MAC_OS_X_VERSION_MIN_REQUIRED
+#endif
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_0
+    #error MAC_OS_X_VERSION_MIN_REQUIRED must be >= MAC_OS_X_VERSION_10_0
+#endif
+
+/*
+ * only certain compilers support __attribute__((weak_import))
+ */
+#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1020)
+    #define WEAK_IMPORT_ATTRIBUTE __attribute__((weak_import))
+#elif defined(__MWERKS__) && (__MWERKS__ >= 0x3205) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1020) && !defined(__INTEL__)
+    #define WEAK_IMPORT_ATTRIBUTE __attribute__((weak_import))
+#else
+    #define WEAK_IMPORT_ATTRIBUTE
+#endif
+
+/*
+ * only certain compilers support __attribute__((deprecated))
+ */
+#if defined(__has_feature) && defined(__has_attribute)
+    #if __has_attribute(deprecated)
+        #define DEPRECATED_ATTRIBUTE        __attribute__((deprecated))
+        #if __has_feature(attribute_deprecated_with_message)
+            #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated(s)))
+        #else
+            #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated))
+        #endif
+    #else
+        #define DEPRECATED_ATTRIBUTE
+        #define DEPRECATED_MSG_ATTRIBUTE(s)
+    #endif
+#elif defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
+    #define DEPRECATED_ATTRIBUTE        __attribute__((deprecated))
+    #if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))
+        #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated(s)))
+    #else
+        #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated))
+    #endif
+#else
+    #define DEPRECATED_ATTRIBUTE
+    #define DEPRECATED_MSG_ATTRIBUTE(s)
+#endif
+
+/*
+ * only certain compilers support __attribute__((unavailable))
+ */
+#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
+    #define UNAVAILABLE_ATTRIBUTE __attribute__((unavailable))
+#else
+    #define UNAVAILABLE_ATTRIBUTE
+#endif
+
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+ * 
+ * Used on functions introduced in Mac OS X 10.0 
+ */
+#define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED
+ * 
+ * Used on functions introduced in Mac OS X 10.0, 
+ * and deprecated in Mac OS X 10.0
+ */
+#define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER
+ * 
+ * Used on types deprecated in Mac OS X 10.0 
+ */
+#define DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER     DEPRECATED_ATTRIBUTE
+
+#ifndef __AVAILABILITY_MACROS_USES_AVAILABILITY
+	#ifdef __has_attribute
+		#if __has_attribute(availability)
+			#include 
+			#define __AVAILABILITY_MACROS_USES_AVAILABILITY 1
+		#endif
+	#endif
+#endif
+
+#if TARGET_OS_OSX
+#define __IPHONE_COMPAT_VERSION  __IPHONE_NA
+#elif TARGET_OS_MACCATALYST
+#define __IPHONE_COMPAT_VERSION  __IPHONE_NA
+#else
+#define __IPHONE_COMPAT_VERSION  __IPHONE_4_0
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.1 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * and deprecated in Mac OS X 10.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.2 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * and deprecated in Mac OS X 10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.3 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_3, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * and deprecated in Mac OS X 10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.4 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * and deprecated in Mac OS X 10.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.5 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * and deprecated in Mac OS X 10.5
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.5
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.5
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.5
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.5
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.5
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.6 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * and deprecated in Mac OS X 10.6
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.6
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.6
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.6
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.6
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.6
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.6
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.7 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * and deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.13
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_13, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    DEPRECATED_ATTRIBUTE
+#else
+#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.8 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * and deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.9 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * and deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.10 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * and deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.10.2 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10_2, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * and deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.10.3 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10_3, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * and deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.11 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.11,
+ * and deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * but later deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.11.2 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_2, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.11.2,
+ * and deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
+ *
+ * Used on declarations introduced in Mac OS X 10.11,
+ * but later deprecated in Mac OS X 10.11.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.11.3 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_3, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.11.3,
+ * and deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.11,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
+ *
+ * Used on declarations introduced in Mac OS X 10.11.2,
+ * but later deprecated in Mac OS X 10.11.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.11.4 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_4, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.11.4,
+ * and deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.11,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.11.2,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
+ *
+ * Used on declarations introduced in Mac OS X 10.11.3,
+ * but later deprecated in Mac OS X 10.11.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.12 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.12,
+ * and deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.11,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.11.2,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.11.3,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
+ *
+ * Used on declarations introduced in Mac OS X 10.11.4,
+ * but later deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.12.1 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_1, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.12.1,
+ * and deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.11,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.11.2,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.11.3,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.11.4,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
+ *
+ * Used on declarations introduced in Mac OS X 10.12,
+ * but later deprecated in Mac OS X 10.12.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.12.2 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_2, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.12.2,
+ * and deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.11,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.11.2,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.11.3,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.11.4,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.12,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
+ *
+ * Used on declarations introduced in Mac OS X 10.12.1,
+ * but later deprecated in Mac OS X 10.12.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.12.4 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_4, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED
+ *
+ * Used on declarations introduced in Mac OS X 10.12.4,
+ * and deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.0,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.1,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.2,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.3,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.4,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.5,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.6,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.7,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.8,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.9,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.10,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.10.2,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.10.3,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.11,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.11.2,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.11.3,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.11.4,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.12,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.12.1,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
+ *
+ * Used on declarations introduced in Mac OS X 10.12.2,
+ * but later deprecated in Mac OS X 10.12.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.13 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_13, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_13
+    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_13
+    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.14 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_14, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_14
+    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_14
+    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER
+#endif
+
+/*
+ * AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER
+ * 
+ * Used on declarations introduced in Mac OS X 10.15 
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_15, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_15
+    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     UNAVAILABLE_ATTRIBUTE
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_15
+    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     WEAK_IMPORT_ATTRIBUTE
+#else
+    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.1
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.2
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.3
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER
+#endif
+
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.5
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.6
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.7
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.8
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.9
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.10
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.11
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.12
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.13
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_13, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER
+#endif
+
+/*
+ * DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER
+ *
+ * Used on types deprecated in Mac OS X 10.14.4
+ */
+#if __AVAILABILITY_MACROS_USES_AVAILABILITY
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_14_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_14_4
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER    DEPRECATED_ATTRIBUTE
+#else
+    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER
+#endif
+
+#endif  /* __AVAILABILITYMACROS__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/AvailabilityVersions.h b/lib/libc/include/any-macos.13-any/AvailabilityVersions.h
new file mode 100644
index 0000000000000000000000000000000000000000..f889a84b18f7a32d8fd013df1d8809916b6a2462
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/AvailabilityVersions.h
@@ -0,0 +1,255 @@
+/*
+ * Copyright (c) 2019 by 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@
+ */
+ 
+#ifndef __AVAILABILITY_VERSIONS__
+#define __AVAILABILITY_VERSIONS__
+
+#define __MAC_10_0            1000
+#define __MAC_10_1            1010
+#define __MAC_10_2            1020
+#define __MAC_10_3            1030
+#define __MAC_10_4            1040
+#define __MAC_10_5            1050
+#define __MAC_10_6            1060
+#define __MAC_10_7            1070
+#define __MAC_10_8            1080
+#define __MAC_10_9            1090
+#define __MAC_10_10         101000
+#define __MAC_10_10_2       101002
+#define __MAC_10_10_3       101003
+#define __MAC_10_11         101100
+#define __MAC_10_11_2       101102
+#define __MAC_10_11_3       101103
+#define __MAC_10_11_4       101104
+#define __MAC_10_12         101200
+#define __MAC_10_12_1       101201
+#define __MAC_10_12_2       101202
+#define __MAC_10_12_4       101204
+#define __MAC_10_13         101300
+#define __MAC_10_13_1       101301
+#define __MAC_10_13_2       101302
+#define __MAC_10_13_4       101304
+#define __MAC_10_14         101400
+#define __MAC_10_14_1       101401
+#define __MAC_10_14_4       101404
+#define __MAC_10_14_6       101406
+#define __MAC_10_15         101500
+#define __MAC_10_15_1       101501
+#define __MAC_10_15_4       101504
+#define __MAC_10_16         101600
+#define __MAC_11_0          110000
+#define __MAC_11_1          110100
+#define __MAC_11_3          110300
+#define __MAC_11_4          110400
+#define __MAC_11_5          110500
+#define __MAC_11_6          110600
+#define __MAC_12_0          120000
+#define __MAC_12_1          120100
+#define __MAC_12_2          120200
+#define __MAC_12_3          120300
+#define __MAC_13_0          130000
+/* __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
+#define __IPHONE_2_1      20100
+#define __IPHONE_2_2      20200
+#define __IPHONE_3_0      30000
+#define __IPHONE_3_1      30100
+#define __IPHONE_3_2      30200
+#define __IPHONE_4_0      40000
+#define __IPHONE_4_1      40100
+#define __IPHONE_4_2      40200
+#define __IPHONE_4_3      40300
+#define __IPHONE_5_0      50000
+#define __IPHONE_5_1      50100
+#define __IPHONE_6_0      60000
+#define __IPHONE_6_1      60100
+#define __IPHONE_7_0      70000
+#define __IPHONE_7_1      70100
+#define __IPHONE_8_0      80000
+#define __IPHONE_8_1      80100
+#define __IPHONE_8_2      80200
+#define __IPHONE_8_3      80300
+#define __IPHONE_8_4      80400
+#define __IPHONE_9_0      90000
+#define __IPHONE_9_1      90100
+#define __IPHONE_9_2      90200
+#define __IPHONE_9_3      90300
+#define __IPHONE_10_0    100000
+#define __IPHONE_10_1    100100
+#define __IPHONE_10_2    100200
+#define __IPHONE_10_3    100300
+#define __IPHONE_11_0    110000
+#define __IPHONE_11_1    110100
+#define __IPHONE_11_2    110200
+#define __IPHONE_11_3    110300
+#define __IPHONE_11_4    110400
+#define __IPHONE_12_0    120000
+#define __IPHONE_12_1    120100
+#define __IPHONE_12_2    120200
+#define __IPHONE_12_3    120300
+#define __IPHONE_12_4    120400
+#define __IPHONE_13_0    130000
+#define __IPHONE_13_1    130100
+#define __IPHONE_13_2    130200
+#define __IPHONE_13_3    130300
+#define __IPHONE_13_4    130400
+#define __IPHONE_13_5    130500
+#define __IPHONE_13_6    130600
+#define __IPHONE_13_7    130700
+#define __IPHONE_14_0    140000
+#define __IPHONE_14_1    140100
+#define __IPHONE_14_2    140200
+#define __IPHONE_14_3    140300
+#define __IPHONE_14_5    140500
+#define __IPHONE_14_6    140600
+#define __IPHONE_14_7    140700
+#define __IPHONE_14_8    140800
+#define __IPHONE_15_0    150000
+#define __IPHONE_15_1    150100
+#define __IPHONE_15_2    150200
+#define __IPHONE_15_3    150300
+#define __IPHONE_15_4    150400
+#define __IPHONE_16_0    160000
+#define __IPHONE_16_1    160100
+/* __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
+#define __TVOS_9_1        90100
+#define __TVOS_9_2        90200
+#define __TVOS_10_0      100000
+#define __TVOS_10_0_1    100001
+#define __TVOS_10_1      100100
+#define __TVOS_10_2      100200
+#define __TVOS_11_0      110000
+#define __TVOS_11_1      110100
+#define __TVOS_11_2      110200
+#define __TVOS_11_3      110300
+#define __TVOS_11_4      110400
+#define __TVOS_12_0      120000
+#define __TVOS_12_1      120100
+#define __TVOS_12_2      120200
+#define __TVOS_12_3      120300
+#define __TVOS_12_4      120400
+#define __TVOS_13_0      130000
+#define __TVOS_13_2      130200
+#define __TVOS_13_3      130300
+#define __TVOS_13_4      130400
+#define __TVOS_14_0      140000
+#define __TVOS_14_1      140100
+#define __TVOS_14_2      140200
+#define __TVOS_14_3      140300
+#define __TVOS_14_5      140500
+#define __TVOS_14_6      140600
+#define __TVOS_14_7      140700
+#define __TVOS_15_0      150000
+#define __TVOS_15_1      150100
+#define __TVOS_15_2      150200
+#define __TVOS_15_3      150300
+#define __TVOS_15_4      150400
+#define __TVOS_16_0      160000
+#define __TVOS_16_1      160100
+
+#define __WATCHOS_1_0     10000
+#define __WATCHOS_2_0     20000
+#define __WATCHOS_2_1     20100
+#define __WATCHOS_2_2     20200
+#define __WATCHOS_3_0     30000
+#define __WATCHOS_3_1     30100
+#define __WATCHOS_3_1_1   30101
+#define __WATCHOS_3_2     30200
+#define __WATCHOS_4_0     40000
+#define __WATCHOS_4_1     40100
+#define __WATCHOS_4_2     40200
+#define __WATCHOS_4_3     40300
+#define __WATCHOS_5_0     50000
+#define __WATCHOS_5_1     50100
+#define __WATCHOS_5_2     50200
+#define __WATCHOS_5_3     50300
+#define __WATCHOS_6_0     60000
+#define __WATCHOS_6_1     60100
+#define __WATCHOS_6_2     60200
+#define __WATCHOS_7_0     70000
+#define __WATCHOS_7_1     70100
+#define __WATCHOS_7_2     70200
+#define __WATCHOS_7_3     70300
+#define __WATCHOS_7_4     70400
+#define __WATCHOS_7_5     70500
+#define __WATCHOS_7_6     70600
+#define __WATCHOS_8_0     80000
+#define __WATCHOS_8_1     80100
+#define __WATCHOS_8_3     80300
+#define __WATCHOS_8_4     80400
+#define __WATCHOS_8_5     80500
+#define __WATCHOS_9_0     90000
+#define __WATCHOS_9_1     90100
+
+/*
+ * Set up standard Mac OS X versions
+ */
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
+
+#define MAC_OS_X_VERSION_10_0         1000
+#define MAC_OS_X_VERSION_10_1         1010
+#define MAC_OS_X_VERSION_10_2         1020
+#define MAC_OS_X_VERSION_10_3         1030
+#define MAC_OS_X_VERSION_10_4         1040
+#define MAC_OS_X_VERSION_10_5         1050
+#define MAC_OS_X_VERSION_10_6         1060
+#define MAC_OS_X_VERSION_10_7         1070
+#define MAC_OS_X_VERSION_10_8         1080
+#define MAC_OS_X_VERSION_10_9         1090
+#define MAC_OS_X_VERSION_10_10      101000
+#define MAC_OS_X_VERSION_10_10_2    101002
+#define MAC_OS_X_VERSION_10_10_3    101003
+#define MAC_OS_X_VERSION_10_11      101100
+#define MAC_OS_X_VERSION_10_11_2    101102
+#define MAC_OS_X_VERSION_10_11_3    101103
+#define MAC_OS_X_VERSION_10_11_4    101104
+#define MAC_OS_X_VERSION_10_12      101200
+#define MAC_OS_X_VERSION_10_12_1    101201
+#define MAC_OS_X_VERSION_10_12_2    101202
+#define MAC_OS_X_VERSION_10_12_4    101204
+#define MAC_OS_X_VERSION_10_13      101300
+#define MAC_OS_X_VERSION_10_13_1    101301
+#define MAC_OS_X_VERSION_10_13_2    101302
+#define MAC_OS_X_VERSION_10_13_4    101304
+#define MAC_OS_X_VERSION_10_14      101400
+#define MAC_OS_X_VERSION_10_14_1    101401
+#define MAC_OS_X_VERSION_10_14_4    101404
+#define MAC_OS_X_VERSION_10_14_6    101406
+#define MAC_OS_X_VERSION_10_15      101500
+#define MAC_OS_X_VERSION_10_15_1    101501
+#define MAC_OS_X_VERSION_10_16      101600
+#define MAC_OS_VERSION_11_0         110000
+#define MAC_OS_VERSION_12_0         120000
+#define MAC_OS_VERSION_13_0         130000
+
+#endif /* #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) */
+
+#define __DRIVERKIT_19_0 190000
+#define __DRIVERKIT_20_0 200000
+#define __DRIVERKIT_21_0 210000
+
+#endif /* __AVAILABILITY_VERSIONS__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/Block.h b/lib/libc/include/any-macos.13-any/Block.h
new file mode 100644
index 0000000000000000000000000000000000000000..e381a9585fc750099856b3d1d70906b5a5b7c640
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/Block.h
@@ -0,0 +1,65 @@
+/*
+ *  Block.h
+ *
+ * Copyright (c) 2008-2010 Apple Inc. All rights reserved.
+ *
+ * @APPLE_LLVM_LICENSE_HEADER@
+ *
+ */
+
+#ifndef _Block_H_
+#define _Block_H_
+
+#if !defined(BLOCK_EXPORT)
+#   if defined(__cplusplus)
+#       define BLOCK_EXPORT extern "C" 
+#   else
+#       define BLOCK_EXPORT extern
+#   endif
+#endif
+
+#include 
+#include 
+#include 
+
+#if __cplusplus
+extern "C" {
+#endif
+
+// Create a heap based copy of a Block or simply add a reference to an existing one.
+// This must be paired with Block_release to recover memory, even when running
+// under Objective-C Garbage Collection.
+BLOCK_EXPORT void *__single _Block_copy(const void *__single aBlock)
+    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+
+// Lose the reference, and if heap based and last reference, recover the memory
+BLOCK_EXPORT void _Block_release(const void *__single aBlock)
+    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+
+
+// Used by the compiler. Do not call this function yourself.
+BLOCK_EXPORT void _Block_object_assign(void *, const void *, const int)
+    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+
+// Used by the compiler. Do not call this function yourself.
+BLOCK_EXPORT void _Block_object_dispose(const void *, const int)
+    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+
+// Used by the compiler. Do not use these variables yourself.
+BLOCK_EXPORT void * _NSConcreteGlobalBlock[32]
+    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+BLOCK_EXPORT void * _NSConcreteStackBlock[32]
+    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+
+
+#if __cplusplus
+}
+#endif
+
+// Type correct macros
+
+#define Block_copy(...) ((__typeof(__VA_ARGS__))_Block_copy((const void *)(__VA_ARGS__)))
+#define Block_release(...) _Block_release((const void *)(__VA_ARGS__))
+
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/copyfile.h b/lib/libc/include/any-macos.13-any/copyfile.h
new file mode 100644
index 0000000000000000000000000000000000000000..2d3bc9ccf8a5048540fe93b29d2ffb9e279bc899
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/copyfile.h
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 2004-2021 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@
+ */
+#ifndef _COPYFILE_H_ /* version 0.1 */
+#define _COPYFILE_H_
+
+/*
+ * This API facilitates the copying of files and their associated
+ * metadata.  There are several open source projects that need
+ * modifications to support preserving extended attributes and ACLs
+ * and this API collapses several hundred lines of modifications into
+ * one or two calls.
+ */
+
+/* private */
+#include 
+#include 
+
+__BEGIN_DECLS
+__ptrcheck_abi_assume_single()
+struct _copyfile_state;
+typedef struct _copyfile_state * copyfile_state_t;
+typedef uint32_t copyfile_flags_t;
+
+/* public */
+
+/* receives:
+ *   from	path to source file system object
+ *   to		path to destination file system object
+ *   state	opaque blob for future extensibility
+ *		Must be NULL in current implementation
+ *   flags	(described below)
+ * returns:
+ *   int	negative for error
+ */
+
+int copyfile(const char *__unsafe_indexable from, const char *__unsafe_indexable to, copyfile_state_t state, copyfile_flags_t flags);
+int fcopyfile(int from_fd, int to_fd, copyfile_state_t, copyfile_flags_t flags);
+
+int copyfile_state_free(copyfile_state_t);
+copyfile_state_t copyfile_state_alloc(void);
+
+
+int copyfile_state_get(copyfile_state_t s, uint32_t flag, void * dst);
+int copyfile_state_set(copyfile_state_t s, uint32_t flag, const void * src);
+
+typedef int (*copyfile_callback_t)(int, int, copyfile_state_t, const char *__unsafe_indexable, const char *__unsafe_indexable, void *);
+
+#define COPYFILE_STATE_SRC_FD		1
+#define COPYFILE_STATE_SRC_FILENAME	2
+#define COPYFILE_STATE_DST_FD		3
+#define COPYFILE_STATE_DST_FILENAME	4
+#define COPYFILE_STATE_QUARANTINE	5
+#define	COPYFILE_STATE_STATUS_CB	6
+#define	COPYFILE_STATE_STATUS_CTX	7
+#define	COPYFILE_STATE_COPIED		8
+#define	COPYFILE_STATE_XATTRNAME	9
+#define	COPYFILE_STATE_WAS_CLONED	10
+#define	COPYFILE_STATE_SRC_BSIZE	11
+#define	COPYFILE_STATE_DST_BSIZE	12
+#define	COPYFILE_STATE_BSIZE		13
+
+
+#define	COPYFILE_DISABLE_VAR	"COPYFILE_DISABLE"
+
+/* flags for copyfile */
+
+#define COPYFILE_ACL	    (1<<0)
+#define COPYFILE_STAT	    (1<<1)
+#define COPYFILE_XATTR	    (1<<2)
+#define COPYFILE_DATA	    (1<<3)
+
+#define COPYFILE_SECURITY   (COPYFILE_STAT | COPYFILE_ACL)
+#define COPYFILE_METADATA   (COPYFILE_SECURITY | COPYFILE_XATTR)
+#define COPYFILE_ALL	    (COPYFILE_METADATA | COPYFILE_DATA)
+
+#define	COPYFILE_RECURSIVE	(1<<15)	/* Descend into hierarchies */
+#define COPYFILE_CHECK		(1<<16) /* return flags for xattr or acls if set */
+#define COPYFILE_EXCL		(1<<17) /* fail if destination exists */
+#define COPYFILE_NOFOLLOW_SRC	(1<<18) /* don't follow if source is a symlink */
+#define COPYFILE_NOFOLLOW_DST	(1<<19) /* don't follow if dst is a symlink */
+#define COPYFILE_MOVE		(1<<20) /* unlink src after copy */
+#define COPYFILE_UNLINK		(1<<21) /* unlink dst before copy */
+#define COPYFILE_NOFOLLOW	(COPYFILE_NOFOLLOW_SRC | COPYFILE_NOFOLLOW_DST)
+
+#define COPYFILE_PACK		(1<<22)
+#define COPYFILE_UNPACK		(1<<23)
+
+#define COPYFILE_CLONE		(1<<24)
+#define COPYFILE_CLONE_FORCE	(1<<25)
+
+#define COPYFILE_RUN_IN_PLACE	(1<<26)
+
+#define COPYFILE_DATA_SPARSE	(1<<27)
+
+#define COPYFILE_PRESERVE_DST_TRACKED	(1<<28)
+
+#define COPYFILE_VERBOSE	(1<<30)
+
+#define	COPYFILE_RECURSE_ERROR	0
+#define	COPYFILE_RECURSE_FILE	1
+#define	COPYFILE_RECURSE_DIR	2
+#define	COPYFILE_RECURSE_DIR_CLEANUP	3
+#define	COPYFILE_COPY_DATA	4
+#define	COPYFILE_COPY_XATTR	5
+
+#define	COPYFILE_START		1
+#define	COPYFILE_FINISH		2
+#define	COPYFILE_ERR		3
+#define	COPYFILE_PROGRESS	4
+
+#define	COPYFILE_CONTINUE	0
+#define	COPYFILE_SKIP	1
+#define	COPYFILE_QUIT	2
+
+__END_DECLS
+
+#endif /* _COPYFILE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/base.h b/lib/libc/include/any-macos.13-any/dispatch/base.h
new file mode 100644
index 0000000000000000000000000000000000000000..58406b0dfb11a684242e6a02dfdd1ee8429ac5d6
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/base.h
@@ -0,0 +1,351 @@
+/*
+ * Copyright (c) 2008-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_BASE__
+#define __DISPATCH_BASE__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#endif
+
+#ifndef __has_builtin
+#define __has_builtin(x) 0
+#endif
+#ifndef __has_include
+#define __has_include(x) 0
+#endif
+#ifndef __has_feature
+#define __has_feature(x) 0
+#endif
+#ifndef __has_attribute
+#define __has_attribute(x) 0
+#endif
+#ifndef __has_extension
+#define __has_extension(x) 0
+#endif
+
+#if __GNUC__
+#define DISPATCH_NORETURN __attribute__((__noreturn__))
+#define DISPATCH_NOTHROW __attribute__((__nothrow__))
+#define DISPATCH_NONNULL1 __attribute__((__nonnull__(1)))
+#define DISPATCH_NONNULL2 __attribute__((__nonnull__(2)))
+#define DISPATCH_NONNULL3 __attribute__((__nonnull__(3)))
+#define DISPATCH_NONNULL4 __attribute__((__nonnull__(4)))
+#define DISPATCH_NONNULL5 __attribute__((__nonnull__(5)))
+#define DISPATCH_NONNULL6 __attribute__((__nonnull__(6)))
+#define DISPATCH_NONNULL7 __attribute__((__nonnull__(7)))
+#if __clang__ && __clang_major__ < 3
+// rdar://problem/6857843
+#define DISPATCH_NONNULL_ALL
+#else
+#define DISPATCH_NONNULL_ALL __attribute__((__nonnull__))
+#endif
+#define DISPATCH_SENTINEL __attribute__((__sentinel__))
+#define DISPATCH_PURE __attribute__((__pure__))
+#define DISPATCH_CONST __attribute__((__const__))
+#define DISPATCH_WARN_RESULT __attribute__((__warn_unused_result__))
+#define DISPATCH_MALLOC __attribute__((__malloc__))
+#define DISPATCH_ALWAYS_INLINE __attribute__((__always_inline__))
+#define DISPATCH_UNAVAILABLE __attribute__((__unavailable__))
+#define DISPATCH_UNAVAILABLE_MSG(msg) __attribute__((__unavailable__(msg)))
+#elif defined(_MSC_VER)
+#define DISPATCH_NORETURN __declspec(noreturn)
+#define DISPATCH_NOTHROW __declspec(nothrow)
+#define DISPATCH_NONNULL1
+#define DISPATCH_NONNULL2
+#define DISPATCH_NONNULL3
+#define DISPATCH_NONNULL4
+#define DISPATCH_NONNULL5
+#define DISPATCH_NONNULL6
+#define DISPATCH_NONNULL7
+#define DISPATCH_NONNULL_ALL
+#define DISPATCH_SENTINEL
+#define DISPATCH_PURE
+#define DISPATCH_CONST
+#if (_MSC_VER >= 1700)
+#define DISPATCH_WARN_RESULT _Check_return_
+#else
+#define DISPATCH_WARN_RESULT
+#endif
+#define DISPATCH_MALLOC
+#define DISPATCH_ALWAYS_INLINE __forceinline
+#define DISPATCH_UNAVAILABLE
+#define DISPATCH_UNAVAILABLE_MSG(msg)
+#else
+/*! @parseOnly */
+#define DISPATCH_NORETURN
+/*! @parseOnly */
+#define DISPATCH_NOTHROW
+/*! @parseOnly */
+#define DISPATCH_NONNULL1
+/*! @parseOnly */
+#define DISPATCH_NONNULL2
+/*! @parseOnly */
+#define DISPATCH_NONNULL3
+/*! @parseOnly */
+#define DISPATCH_NONNULL4
+/*! @parseOnly */
+#define DISPATCH_NONNULL5
+/*! @parseOnly */
+#define DISPATCH_NONNULL6
+/*! @parseOnly */
+#define DISPATCH_NONNULL7
+/*! @parseOnly */
+#define DISPATCH_NONNULL_ALL
+/*! @parseOnly */
+#define DISPATCH_SENTINEL
+/*! @parseOnly */
+#define DISPATCH_PURE
+/*! @parseOnly */
+#define DISPATCH_CONST
+/*! @parseOnly */
+#define DISPATCH_WARN_RESULT
+/*! @parseOnly */
+#define DISPATCH_MALLOC
+/*! @parseOnly */
+#define DISPATCH_ALWAYS_INLINE
+/*! @parseOnly */
+#define DISPATCH_UNAVAILABLE
+/*! @parseOnly */
+#define DISPATCH_UNAVAILABLE_MSG(msg)
+#endif
+
+#if defined(__cplusplus)
+# if __cplusplus >= 201703L
+#  define DISPATCH_FALLTHROUGH [[fallthrough]]
+# elif __cplusplus >= 201103L
+#  if defined(__clang__)
+#   define DISPATCH_FALLTHROUGH [[clang::fallthrough]]
+#  elif defined(__GNUC__) && __GNUC__ >= 7
+#   define DISPATCH_FALLTHROUGH [[gnu::fallthrough]]
+#  else
+#   define DISPATCH_FALLTHROUGH
+#  endif
+# else
+#  define DISPATCH_FALLTHROUGH
+# endif
+#elif defined(__GNUC__) && __GNUC__ >= 7
+# define DISPATCH_FALLTHROUGH __attribute__((__fallthrough__))
+#elif defined(__clang__)
+# if __has_attribute(fallthrough) && __clang_major__ >= 5
+#  define DISPATCH_FALLTHROUGH __attribute__((__fallthrough__))
+# else
+#  define DISPATCH_FALLTHROUGH
+# endif
+#else
+# define DISPATCH_FALLTHROUGH
+#endif
+
+
+#define DISPATCH_LINUX_UNAVAILABLE()
+
+#ifdef __FreeBSD__
+#define DISPATCH_FREEBSD_UNAVAILABLE() \
+		DISPATCH_UNAVAILABLE_MSG( \
+		"This interface is unavailable on FreeBSD systems")
+#else
+#define DISPATCH_FREEBSD_UNAVAILABLE()
+#endif
+
+#ifndef DISPATCH_ALIAS_V2
+#if TARGET_OS_MAC
+#define DISPATCH_ALIAS_V2(sym)	 __asm__("_" #sym "$V2")
+#else
+#define DISPATCH_ALIAS_V2(sym)
+#endif
+#endif
+
+#if defined(_WIN32)
+#if defined(__cplusplus)
+#define DISPATCH_EXPORT extern "C" __declspec(dllimport)
+#else
+#define DISPATCH_EXPORT extern __declspec(dllimport)
+#endif
+#elif __GNUC__
+#define DISPATCH_EXPORT extern __attribute__((visibility("default")))
+#else
+#define DISPATCH_EXPORT extern
+#endif
+
+#if __GNUC__
+#define DISPATCH_INLINE static __inline__
+#else
+#define DISPATCH_INLINE static inline
+#endif
+
+#if __GNUC__
+#define DISPATCH_EXPECT(x, v) __builtin_expect((x), (v))
+#define dispatch_compiler_barrier()  __asm__ __volatile__("" ::: "memory")
+#else
+#define DISPATCH_EXPECT(x, v) (x)
+#define dispatch_compiler_barrier()  do { } while (0)
+#endif
+
+#if __has_attribute(not_tail_called)
+#define DISPATCH_NOT_TAIL_CALLED __attribute__((__not_tail_called__))
+#else
+#define DISPATCH_NOT_TAIL_CALLED
+#endif
+
+#if __has_builtin(__builtin_assume)
+#define DISPATCH_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr)
+#else
+#define DISPATCH_COMPILER_CAN_ASSUME(expr) ((void)(expr))
+#endif
+
+#if __has_attribute(noescape)
+#define DISPATCH_NOESCAPE __attribute__((__noescape__))
+#else
+#define DISPATCH_NOESCAPE
+#endif
+
+#if __has_attribute(cold)
+#define DISPATCH_COLD __attribute__((__cold__))
+#else
+#define DISPATCH_COLD
+#endif
+
+#if __has_feature(assume_nonnull)
+#define DISPATCH_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
+#define DISPATCH_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
+#else
+#define DISPATCH_ASSUME_NONNULL_BEGIN
+#define DISPATCH_ASSUME_NONNULL_END
+#endif
+
+#if __has_feature(bounds_attributes)
+#define DISPATCH_ASSUME_ABI_SINGLE_BEGIN	_Pragma("clang abi_ptr_attr set(single)")
+#define DISPATCH_ASSUME_ABI_SINGLE_END		_Pragma("clang abi_ptr_attr set(unsafe_indexable)")
+#define DISPATCH_UNSAFE_INDEXABLE __attribute__((__unsafe_indexable__))
+#define DISPATCH_COUNTED_BY(X) __attribute__((__counted_by__(X)))
+#define DISPATCH_SIZED_BY(X) __attribute__((__sized_by__(X)))
+#else
+#define DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+#define DISPATCH_ASSUME_ABI_SINGLE_END
+#define DISPATCH_UNSAFE_INDEXABLE
+#define DISPATCH_COUNTED_BY(X)
+#define DISPATCH_SIZED_BY(X)
+#endif
+
+#if !__has_feature(nullability)
+#ifndef _Nullable
+#define _Nullable
+#endif
+#ifndef _Nonnull
+#define _Nonnull
+#endif
+#ifndef _Null_unspecified
+#define _Null_unspecified
+#endif
+#endif
+
+#ifndef DISPATCH_RETURNS_RETAINED_BLOCK
+#if __has_attribute(ns_returns_retained)
+#define DISPATCH_RETURNS_RETAINED_BLOCK __attribute__((__ns_returns_retained__))
+#else
+#define DISPATCH_RETURNS_RETAINED_BLOCK
+#endif
+#endif
+
+#if __has_attribute(enum_extensibility)
+#define __DISPATCH_ENUM_ATTR __attribute__((__enum_extensibility__(open)))
+#define __DISPATCH_ENUM_ATTR_CLOSED __attribute__((__enum_extensibility__(closed)))
+#else
+#define __DISPATCH_ENUM_ATTR
+#define __DISPATCH_ENUM_ATTR_CLOSED
+#endif // __has_attribute(enum_extensibility)
+
+#if __has_attribute(flag_enum)
+#define __DISPATCH_OPTIONS_ATTR __attribute__((__flag_enum__))
+#else
+#define __DISPATCH_OPTIONS_ATTR
+#endif // __has_attribute(flag_enum)
+
+
+#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums) || \
+		__has_extension(cxx_fixed_enum) || defined(_WIN32)
+#define DISPATCH_ENUM(name, type, ...) \
+		typedef enum : type { __VA_ARGS__ } __DISPATCH_ENUM_ATTR name##_t
+#define DISPATCH_OPTIONS(name, type, ...) \
+		typedef enum : type { __VA_ARGS__ } __DISPATCH_OPTIONS_ATTR __DISPATCH_ENUM_ATTR name##_t
+#else
+#define DISPATCH_ENUM(name, type, ...) \
+		enum { __VA_ARGS__ } __DISPATCH_ENUM_ATTR; typedef type name##_t
+#define DISPATCH_OPTIONS(name, type, ...) \
+		enum { __VA_ARGS__ } __DISPATCH_OPTIONS_ATTR __DISPATCH_ENUM_ATTR; typedef type name##_t
+#endif // __has_feature(objc_fixed_enum) ...
+
+
+
+#if __has_feature(enumerator_attributes)
+#define DISPATCH_ENUM_API_AVAILABLE(...) API_AVAILABLE(__VA_ARGS__)
+#define DISPATCH_ENUM_API_DEPRECATED(...) API_DEPRECATED(__VA_ARGS__)
+#define DISPATCH_ENUM_API_DEPRECATED_WITH_REPLACEMENT(...) \
+		API_DEPRECATED_WITH_REPLACEMENT(__VA_ARGS__)
+#else
+#define DISPATCH_ENUM_API_AVAILABLE(...)
+#define DISPATCH_ENUM_API_DEPRECATED(...)
+#define DISPATCH_ENUM_API_DEPRECATED_WITH_REPLACEMENT(...)
+#endif
+
+#ifdef __swift__
+#define DISPATCH_SWIFT3_OVERLAY 1
+#else // __swift__
+#define DISPATCH_SWIFT3_OVERLAY 0
+#endif // __swift__
+
+#if __has_feature(attribute_availability_swift)
+#define DISPATCH_SWIFT_UNAVAILABLE(_msg) \
+		__attribute__((__availability__(swift, unavailable, message=_msg)))
+#else
+#define DISPATCH_SWIFT_UNAVAILABLE(_msg)
+#endif
+
+#if DISPATCH_SWIFT3_OVERLAY
+#define DISPATCH_SWIFT3_UNAVAILABLE(_msg) DISPATCH_SWIFT_UNAVAILABLE(_msg)
+#else
+#define DISPATCH_SWIFT3_UNAVAILABLE(_msg)
+#endif
+
+#if __has_attribute(swift_private)
+#define DISPATCH_REFINED_FOR_SWIFT __attribute__((__swift_private__))
+#else
+#define DISPATCH_REFINED_FOR_SWIFT
+#endif
+
+#if __has_attribute(swift_name)
+#define DISPATCH_SWIFT_NAME(_name) __attribute__((__swift_name__(#_name)))
+#else
+#define DISPATCH_SWIFT_NAME(_name)
+#endif
+
+#ifndef __cplusplus
+#define DISPATCH_TRANSPARENT_UNION __attribute__((__transparent_union__))
+#else
+#define DISPATCH_TRANSPARENT_UNION
+#endif
+
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+typedef void (*dispatch_function_t)(void *_Nullable);
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/block.h b/lib/libc/include/any-macos.13-any/dispatch/block.h
new file mode 100644
index 0000000000000000000000000000000000000000..294ae8939a71d969235227ed603630973a4dbfc0
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/block.h
@@ -0,0 +1,430 @@
+/*
+ * Copyright (c) 2014 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_BLOCK__
+#define __DISPATCH_BLOCK__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+#ifdef __BLOCKS__
+
+/*!
+ * @group Dispatch block objects
+ */
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+__BEGIN_DECLS
+
+/*!
+ * @typedef dispatch_block_flags_t
+ * Flags to pass to the dispatch_block_create* functions.
+ *
+ * @const DISPATCH_BLOCK_BARRIER
+ * Flag indicating that a dispatch block object should act as a barrier block
+ * when submitted to a DISPATCH_QUEUE_CONCURRENT queue.
+ * See dispatch_barrier_async() for details.
+ * This flag has no effect when the dispatch block object is invoked directly.
+ *
+ * @const DISPATCH_BLOCK_DETACHED
+ * Flag indicating that a dispatch block object should execute disassociated
+ * from current execution context attributes such as os_activity_t
+ * and properties of the current IPC request (if any). With regard to QoS class,
+ * the behavior is the same as for DISPATCH_BLOCK_NO_QOS. If invoked directly,
+ * the block object will remove the other attributes from the calling thread for
+ * the duration of the block body (before applying attributes assigned to the
+ * block object, if any). If submitted to a queue, the block object will be
+ * executed with the attributes of the queue (or any attributes specifically
+ * assigned to the block object).
+ *
+ * @const DISPATCH_BLOCK_ASSIGN_CURRENT
+ * Flag indicating that a dispatch block object should be assigned the execution
+ * context attributes that are current at the time the block object is created.
+ * This applies to attributes such as QOS class, os_activity_t and properties of
+ * the current IPC request (if any). If invoked directly, the block object will
+ * apply these attributes to the calling thread for the duration of the block
+ * body. If the block object is submitted to a queue, this flag replaces the
+ * default behavior of associating the submitted block instance with the
+ * execution context attributes that are current at the time of submission.
+ * If a specific QOS class is assigned with DISPATCH_BLOCK_NO_QOS_CLASS or
+ * dispatch_block_create_with_qos_class(), that QOS class takes precedence over
+ * the QOS class assignment indicated by this flag.
+ *
+ * @const DISPATCH_BLOCK_NO_QOS_CLASS
+ * Flag indicating that a dispatch block object should be not be assigned a QOS
+ * class. If invoked directly, the block object will be executed with the QOS
+ * class of the calling thread. If the block object is submitted to a queue,
+ * this replaces the default behavior of associating the submitted block
+ * instance with the QOS class current at the time of submission.
+ * This flag is ignored if a specific QOS class is assigned with
+ * dispatch_block_create_with_qos_class().
+ *
+ * @const DISPATCH_BLOCK_INHERIT_QOS_CLASS
+ * Flag indicating that execution of a dispatch block object submitted to a
+ * queue should prefer the QOS class assigned to the queue over the QOS class
+ * assigned to the block (resp. associated with the block at the time of
+ * submission). The latter will only be used if the queue in question does not
+ * have an assigned QOS class, as long as doing so does not result in a QOS
+ * class lower than the QOS class inherited from the queue's target queue.
+ * This flag is the default when a dispatch block object is submitted to a queue
+ * for asynchronous execution and has no effect when the dispatch block object
+ * is invoked directly. It is ignored if DISPATCH_BLOCK_ENFORCE_QOS_CLASS is
+ * also passed.
+ *
+ * @const DISPATCH_BLOCK_ENFORCE_QOS_CLASS
+ * Flag indicating that execution of a dispatch block object submitted to a
+ * queue should prefer the QOS class assigned to the block (resp. associated
+ * with the block at the time of submission) over the QOS class assigned to the
+ * queue, as long as doing so will not result in a lower QOS class.
+ * This flag is the default when a dispatch block object is submitted to a queue
+ * for synchronous execution or when the dispatch block object is invoked
+ * directly.
+ */
+DISPATCH_OPTIONS(dispatch_block_flags, unsigned long,
+	DISPATCH_BLOCK_BARRIER
+			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x1,
+	DISPATCH_BLOCK_DETACHED
+			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x2,
+	DISPATCH_BLOCK_ASSIGN_CURRENT
+			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x4,
+	DISPATCH_BLOCK_NO_QOS_CLASS
+			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x8,
+	DISPATCH_BLOCK_INHERIT_QOS_CLASS
+			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x10,
+	DISPATCH_BLOCK_ENFORCE_QOS_CLASS
+			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x20,
+);
+
+/*!
+ * @function dispatch_block_create
+ *
+ * @abstract
+ * Create a new dispatch block object on the heap from an existing block and
+ * the given flags.
+ *
+ * @discussion
+ * The provided block is Block_copy'ed to the heap and retained by the newly
+ * created dispatch block object.
+ *
+ * The returned dispatch block object is intended to be submitted to a dispatch
+ * queue with dispatch_async() and related functions, but may also be invoked
+ * directly. Both operations can be performed an arbitrary number of times but
+ * only the first completed execution of a dispatch block object can be waited
+ * on with dispatch_block_wait() or observed with dispatch_block_notify().
+ *
+ * If the returned dispatch block object is submitted to a dispatch queue, the
+ * submitted block instance will be associated with the QOS class current at the
+ * time of submission, unless one of the following flags assigned a specific QOS
+ * class (or no QOS class) at the time of block creation:
+ *  - DISPATCH_BLOCK_ASSIGN_CURRENT
+ *  - DISPATCH_BLOCK_NO_QOS_CLASS
+ *  - DISPATCH_BLOCK_DETACHED
+ * The QOS class the block object will be executed with also depends on the QOS
+ * class assigned to the queue and which of the following flags was specified or
+ * defaulted to:
+ *  - DISPATCH_BLOCK_INHERIT_QOS_CLASS (default for asynchronous execution)
+ *  - DISPATCH_BLOCK_ENFORCE_QOS_CLASS (default for synchronous execution)
+ * See description of dispatch_block_flags_t for details.
+ *
+ * If the returned dispatch block object is submitted directly to a serial queue
+ * and is configured to execute with a specific QOS class, the system will make
+ * a best effort to apply the necessary QOS overrides to ensure that blocks
+ * submitted earlier to the serial queue are executed at that same QOS class or
+ * higher.
+ *
+ * @param flags
+ * Configuration flags for the block object.
+ * Passing a value that is not a bitwise OR of flags from dispatch_block_flags_t
+ * results in NULL being returned.
+ *
+ * @param block
+ * The block to create the dispatch block object from.
+ *
+ * @result
+ * The newly created dispatch block object, or NULL.
+ * When not building with Objective-C ARC, must be released with a -[release]
+ * message or the Block_release() function.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_RETURNS_RETAINED_BLOCK
+DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_block_t
+dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
+
+/*!
+ * @function dispatch_block_create_with_qos_class
+ *
+ * @abstract
+ * Create a new dispatch block object on the heap from an existing block and
+ * the given flags, and assign it the specified QOS class and relative priority.
+ *
+ * @discussion
+ * The provided block is Block_copy'ed to the heap and retained by the newly
+ * created dispatch block object.
+ *
+ * The returned dispatch block object is intended to be submitted to a dispatch
+ * queue with dispatch_async() and related functions, but may also be invoked
+ * directly. Both operations can be performed an arbitrary number of times but
+ * only the first completed execution of a dispatch block object can be waited
+ * on with dispatch_block_wait() or observed with dispatch_block_notify().
+ *
+ * If invoked directly, the returned dispatch block object will be executed with
+ * the assigned QOS class as long as that does not result in a lower QOS class
+ * than what is current on the calling thread.
+ *
+ * If the returned dispatch block object is submitted to a dispatch queue, the
+ * QOS class it will be executed with depends on the QOS class assigned to the
+ * block, the QOS class assigned to the queue and which of the following flags
+ * was specified or defaulted to:
+ *  - DISPATCH_BLOCK_INHERIT_QOS_CLASS: default for asynchronous execution
+ *  - DISPATCH_BLOCK_ENFORCE_QOS_CLASS: default for synchronous execution
+ * See description of dispatch_block_flags_t for details.
+ *
+ * If the returned dispatch block object is submitted directly to a serial queue
+ * and is configured to execute with a specific QOS class, the system will make
+ * a best effort to apply the necessary QOS overrides to ensure that blocks
+ * submitted earlier to the serial queue are executed at that same QOS class or
+ * higher.
+ *
+ * @param flags
+ * Configuration flags for the new block object.
+ * Passing a value that is not a bitwise OR of flags from dispatch_block_flags_t
+ * results in NULL being returned.
+ *
+ * @param qos_class
+ * A QOS class value:
+ *  - QOS_CLASS_USER_INTERACTIVE
+ *  - QOS_CLASS_USER_INITIATED
+ *  - QOS_CLASS_DEFAULT
+ *  - QOS_CLASS_UTILITY
+ *  - QOS_CLASS_BACKGROUND
+ *  - QOS_CLASS_UNSPECIFIED
+ * Passing QOS_CLASS_UNSPECIFIED is equivalent to specifying the
+ * DISPATCH_BLOCK_NO_QOS_CLASS flag. Passing any other value results in NULL
+ * being returned.
+ *
+ * @param relative_priority
+ * A relative priority within the QOS class. This value is a negative
+ * offset from the maximum supported scheduler priority for the given class.
+ * Passing a value greater than zero or less than QOS_MIN_RELATIVE_PRIORITY
+ * results in NULL being returned.
+ *
+ * @param block
+ * The block to create the dispatch block object from.
+ *
+ * @result
+ * The newly created dispatch block object, or NULL.
+ * When not building with Objective-C ARC, must be released with a -[release]
+ * message or the Block_release() function.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_NONNULL4 DISPATCH_RETURNS_RETAINED_BLOCK
+DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_block_t
+dispatch_block_create_with_qos_class(dispatch_block_flags_t flags,
+		dispatch_qos_class_t qos_class, int relative_priority,
+		dispatch_block_t block);
+
+/*!
+ * @function dispatch_block_perform
+ *
+ * @abstract
+ * Create, synchronously execute and release a dispatch block object from the
+ * specified block and flags.
+ *
+ * @discussion
+ * Behaves identically to the sequence
+ * 
+ * dispatch_block_t b = dispatch_block_create(flags, block);
+ * b();
+ * Block_release(b);
+ * 
+ * but may be implemented more efficiently internally by not requiring a copy
+ * to the heap of the specified block or the allocation of a new block object.
+ *
+ * @param flags
+ * Configuration flags for the temporary block object.
+ * The result of passing a value that is not a bitwise OR of flags from
+ * dispatch_block_flags_t is undefined.
+ *
+ * @param block
+ * The block to create the temporary block object from.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NOTHROW
+void
+dispatch_block_perform(dispatch_block_flags_t flags,
+		DISPATCH_NOESCAPE dispatch_block_t block);
+
+/*!
+ * @function dispatch_block_wait
+ *
+ * @abstract
+ * Wait synchronously until execution of the specified dispatch block object has
+ * completed or until the specified timeout has elapsed.
+ *
+ * @discussion
+ * This function will return immediately if execution of the block object has
+ * already completed.
+ *
+ * It is not possible to wait for multiple executions of the same block object
+ * with this interface; use dispatch_group_wait() for that purpose. A single
+ * dispatch block object may either be waited on once and executed once,
+ * or it may be executed any number of times. The behavior of any other
+ * combination is undefined. Submission to a dispatch queue counts as an
+ * execution, even if cancellation (dispatch_block_cancel) means the block's
+ * code never runs.
+ *
+ * The result of calling this function from multiple threads simultaneously
+ * with the same dispatch block object is undefined, but note that doing so
+ * would violate the rules described in the previous paragraph.
+ *
+ * If this function returns indicating that the specified timeout has elapsed,
+ * then that invocation does not count as the one allowed wait.
+ *
+ * If at the time this function is called, the specified dispatch block object
+ * has been submitted directly to a serial queue, the system will make a best
+ * effort to apply the necessary QOS overrides to ensure that the block and any
+ * blocks submitted earlier to that serial queue are executed at the QOS class
+ * (or higher) of the thread calling dispatch_block_wait().
+ *
+ * @param block
+ * The dispatch block object to wait on.
+ * The result of passing NULL or a block object not returned by one of the
+ * dispatch_block_create* functions is undefined.
+ *
+ * @param timeout
+ * When to timeout (see dispatch_time). As a convenience, there are the
+ * DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER constants.
+ *
+ * @result
+ * Returns zero on success (the dispatch block object completed within the
+ * specified timeout) or non-zero on error (i.e. timed out).
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+intptr_t
+dispatch_block_wait(dispatch_block_t block, dispatch_time_t timeout);
+
+/*!
+ * @function dispatch_block_notify
+ *
+ * @abstract
+ * Schedule a notification block to be submitted to a queue when the execution
+ * of a specified dispatch block object has completed.
+ *
+ * @discussion
+ * This function will submit the notification block immediately if execution of
+ * the observed block object has already completed.
+ *
+ * It is not possible to be notified of multiple executions of the same block
+ * object with this interface, use dispatch_group_notify() for that purpose.
+ *
+ * A single dispatch block object may either be observed one or more times
+ * and executed once, or it may be executed any number of times. The behavior
+ * of any other combination is undefined. Submission to a dispatch queue
+ * counts as an execution, even if cancellation (dispatch_block_cancel) means
+ * the block's code never runs.
+ *
+ * If multiple notification blocks are scheduled for a single block object,
+ * there is no defined order in which the notification blocks will be submitted
+ * to their associated queues.
+ *
+ * @param block
+ * The dispatch block object to observe.
+ * The result of passing NULL or a block object not returned by one of the
+ * dispatch_block_create* functions is undefined.
+ *
+ * @param queue
+ * The queue to which the supplied notification block will be submitted when
+ * the observed block completes.
+ *
+ * @param notification_block
+ * The notification block to submit when the observed block object completes.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_block_notify(dispatch_block_t block, dispatch_queue_t queue,
+		dispatch_block_t notification_block);
+
+/*!
+ * @function dispatch_block_cancel
+ *
+ * @abstract
+ * Asynchronously cancel the specified dispatch block object.
+ *
+ * @discussion
+ * Cancellation causes any future execution of the dispatch block object to
+ * return immediately, but does not affect any execution of the block object
+ * that is already in progress.
+ *
+ * Release of any resources associated with the block object will be delayed
+ * until execution of the block object is next attempted (or any execution
+ * already in progress completes).
+ *
+ * NOTE: care needs to be taken to ensure that a block object that may be
+ *       canceled does not capture any resources that require execution of the
+ *       block body in order to be released (e.g. memory allocated with
+ *       malloc(3) that the block body calls free(3) on). Such resources will
+ *       be leaked if the block body is never executed due to cancellation.
+ *
+ * @param block
+ * The dispatch block object to cancel.
+ * The result of passing NULL or a block object not returned by one of the
+ * dispatch_block_create* functions is undefined.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_block_cancel(dispatch_block_t block);
+
+/*!
+ * @function dispatch_block_testcancel
+ *
+ * @abstract
+ * Tests whether the given dispatch block object has been canceled.
+ *
+ * @param block
+ * The dispatch block object to test.
+ * The result of passing NULL or a block object not returned by one of the
+ * dispatch_block_create* functions is undefined.
+ *
+ * @result
+ * Non-zero if canceled and zero if not canceled.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
+DISPATCH_NOTHROW
+intptr_t
+dispatch_block_testcancel(dispatch_block_t block);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif // __BLOCKS__
+
+#endif // __DISPATCH_BLOCK__
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/data.h b/lib/libc/include/any-macos.13-any/dispatch/data.h
new file mode 100644
index 0000000000000000000000000000000000000000..9e8e9a40ae3097ca307e463f12ab821ba31fb6a0
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/data.h
@@ -0,0 +1,280 @@
+/*
+ * Copyright (c) 2009-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_DATA__
+#define __DISPATCH_DATA__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+__BEGIN_DECLS
+
+/*! @header
+ * Dispatch data objects describe contiguous or sparse regions of memory that
+ * may be managed by the system or by the application.
+ * Dispatch data objects are immutable, any direct access to memory regions
+ * represented by dispatch objects must not modify that memory.
+ */
+
+/*!
+ * @typedef dispatch_data_t
+ * A dispatch object representing memory regions.
+ */
+DISPATCH_DATA_DECL(dispatch_data);
+
+/*!
+ * @var dispatch_data_empty
+ * @discussion The singleton dispatch data object representing a zero-length
+ * memory region.
+ */
+#define dispatch_data_empty \
+		DISPATCH_GLOBAL_OBJECT(dispatch_data_t, _dispatch_data_empty)
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT struct dispatch_data_s _dispatch_data_empty;
+
+/*!
+ * @const DISPATCH_DATA_DESTRUCTOR_DEFAULT
+ * @discussion The default destructor for dispatch data objects.
+ * Used at data object creation to indicate that the supplied buffer should
+ * be copied into internal storage managed by the system.
+ */
+#define DISPATCH_DATA_DESTRUCTOR_DEFAULT NULL
+
+#ifdef __BLOCKS__
+/*! @parseOnly */
+#define DISPATCH_DATA_DESTRUCTOR_TYPE_DECL(name) \
+	DISPATCH_EXPORT const dispatch_block_t _dispatch_data_destructor_##name
+#else
+#define DISPATCH_DATA_DESTRUCTOR_TYPE_DECL(name) \
+	DISPATCH_EXPORT const dispatch_function_t \
+	_dispatch_data_destructor_##name
+#endif /* __BLOCKS__ */
+
+/*!
+ * @const DISPATCH_DATA_DESTRUCTOR_FREE
+ * @discussion The destructor for dispatch data objects created from a malloc'd
+ * buffer. Used at data object creation to indicate that the supplied buffer
+ * was allocated by the malloc() family and should be destroyed with free(3).
+ */
+#define DISPATCH_DATA_DESTRUCTOR_FREE (_dispatch_data_destructor_free)
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_DATA_DESTRUCTOR_TYPE_DECL(free);
+
+/*!
+ * @const DISPATCH_DATA_DESTRUCTOR_MUNMAP
+ * @discussion The destructor for dispatch data objects that have been created
+ * from buffers that require deallocation with munmap(2).
+ */
+#define DISPATCH_DATA_DESTRUCTOR_MUNMAP (_dispatch_data_destructor_munmap)
+API_AVAILABLE(macos(10.9), ios(7.0))
+DISPATCH_DATA_DESTRUCTOR_TYPE_DECL(munmap);
+
+#ifdef __BLOCKS__
+/*!
+ * @function dispatch_data_create
+ * Creates a dispatch data object from the given contiguous buffer of memory. If
+ * a non-default destructor is provided, ownership of the buffer remains with
+ * the caller (i.e. the bytes will not be copied). The last release of the data
+ * object will result in the invocation of the specified destructor on the
+ * specified queue to free the buffer.
+ *
+ * If the DISPATCH_DATA_DESTRUCTOR_FREE destructor is provided the buffer will
+ * be freed via free(3) and the queue argument ignored.
+ *
+ * If the DISPATCH_DATA_DESTRUCTOR_DEFAULT destructor is provided, data object
+ * creation will copy the buffer into internal memory managed by the system.
+ *
+ * @param buffer	A contiguous buffer of data.
+ * @param size		The size of the contiguous buffer of data.
+ * @param queue		The queue to which the destructor should be submitted.
+ * @param destructor	The destructor responsible for freeing the data when it
+ *			is no longer needed.
+ * @result		A newly created dispatch data object.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_data_t
+dispatch_data_create(const void *DISPATCH_SIZED_BY(size) buffer,
+	size_t size,
+	dispatch_queue_t _Nullable queue,
+	dispatch_block_t _Nullable destructor);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @function dispatch_data_get_size
+ * Returns the logical size of the memory region(s) represented by the specified
+ * dispatch data object.
+ *
+ * @param data	The dispatch data object to query.
+ * @result	The number of bytes represented by the data object.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_PURE DISPATCH_NONNULL1 DISPATCH_NOTHROW
+size_t
+dispatch_data_get_size(dispatch_data_t data);
+
+/*!
+ * @function dispatch_data_create_map
+ * Maps the memory represented by the specified dispatch data object as a single
+ * contiguous memory region and returns a new data object representing it.
+ * If non-NULL references to a pointer and a size variable are provided, they
+ * are filled with the location and extent of that region. These allow direct
+ * read access to the represented memory, but are only valid until the returned
+ * object is released. Under ARC, if that object is held in a variable with
+ * automatic storage, care needs to be taken to ensure that it is not released
+ * by the compiler before memory access via the pointer has been completed.
+ *
+ * @param data		The dispatch data object to map.
+ * @param buffer_ptr	A pointer to a pointer variable to be filled with the
+ *			location of the mapped contiguous memory region, or
+ *			NULL.
+ * @param size_ptr	A pointer to a size_t variable to be filled with the
+ *			size of the mapped contiguous memory region, or NULL.
+ * @result		A newly created dispatch data object.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_RETURNS_RETAINED
+DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_data_t
+dispatch_data_create_map(dispatch_data_t data,
+	const void *_Nullable DISPATCH_SIZED_BY(*size_ptr) *_Nullable buffer_ptr,
+	size_t *_Nullable size_ptr);
+
+/*!
+ * @function dispatch_data_create_concat
+ * Returns a new dispatch data object representing the concatenation of the
+ * specified data objects. Those objects may be released by the application
+ * after the call returns (however, the system might not deallocate the memory
+ * region(s) described by them until the newly created object has also been
+ * released).
+ *
+ * @param data1	The data object representing the region(s) of memory to place
+ *		at the beginning of the newly created object.
+ * @param data2	The data object representing the region(s) of memory to place
+ *		at the end of the newly created object.
+ * @result	A newly created object representing the concatenation of the
+ *		data1 and data2 objects.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_RETURNS_RETAINED
+DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_data_t
+dispatch_data_create_concat(dispatch_data_t data1, dispatch_data_t data2);
+
+/*!
+ * @function dispatch_data_create_subrange
+ * Returns a new dispatch data object representing a subrange of the specified
+ * data object, which may be released by the application after the call returns
+ * (however, the system might not deallocate the memory region(s) described by
+ * that object until the newly created object has also been released).
+ *
+ * @param data		The data object representing the region(s) of memory to
+ *			create a subrange of.
+ * @param offset	The offset into the data object where the subrange
+ *			starts.
+ * @param length	The length of the range.
+ * @result		A newly created object representing the specified
+ *			subrange of the data object.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_RETURNS_RETAINED
+DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_data_t
+dispatch_data_create_subrange(dispatch_data_t data,
+	size_t offset,
+	size_t length);
+
+#ifdef __BLOCKS__
+/*!
+ * @typedef dispatch_data_applier_t
+ * A block to be invoked for every contiguous memory region in a data object.
+ *
+ * @param region	A data object representing the current region.
+ * @param offset	The logical offset of the current region to the start
+ *			of the data object.
+ * @param buffer	The location of the memory for the current region.
+ * @param size		The size of the memory for the current region.
+ * @result		A Boolean indicating whether traversal should continue.
+ */
+typedef bool (^dispatch_data_applier_t)(dispatch_data_t region,
+	size_t offset,
+	const void *DISPATCH_SIZED_BY(size) buffer,
+	size_t size);
+
+/*!
+ * @function dispatch_data_apply
+ * Traverse the memory regions represented by the specified dispatch data object
+ * in logical order and invoke the specified block once for every contiguous
+ * memory region encountered.
+ *
+ * Each invocation of the block is passed a data object representing the current
+ * region and its logical offset, along with the memory location and extent of
+ * the region. These allow direct read access to the memory region, but are only
+ * valid until the passed-in region object is released. Note that the region
+ * object is released by the system when the block returns, it is the
+ * responsibility of the application to retain it if the region object or the
+ * associated memory location are needed after the block returns.
+ *
+ * @param data		The data object to traverse.
+ * @param applier	The block to be invoked for every contiguous memory
+ *			region in the data object.
+ * @result		A Boolean indicating whether traversal completed
+ *			successfully.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+bool
+dispatch_data_apply(dispatch_data_t data,
+	DISPATCH_NOESCAPE dispatch_data_applier_t applier);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @function dispatch_data_copy_region
+ * Finds the contiguous memory region containing the specified location among
+ * the regions represented by the specified object and returns a copy of the
+ * internal dispatch data object representing that region along with its logical
+ * offset in the specified object.
+ *
+ * @param data		The dispatch data object to query.
+ * @param location	The logical position in the data object to query.
+ * @param offset_ptr	A pointer to a size_t variable to be filled with the
+ *			logical offset of the returned region object to the
+ *			start of the queried data object.
+ * @result		A newly created dispatch data object.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_RETURNS_RETAINED
+DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_data_t
+dispatch_data_copy_region(dispatch_data_t data,
+	size_t location,
+	size_t *offset_ptr);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif /* __DISPATCH_DATA__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/group.h b/lib/libc/include/any-macos.13-any/dispatch/group.h
new file mode 100644
index 0000000000000000000000000000000000000000..9e36f30fc98a5cb7c694afaca4e87e8334e86c34
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/group.h
@@ -0,0 +1,281 @@
+/*
+ * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_GROUP__
+#define __DISPATCH_GROUP__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @typedef dispatch_group_t
+ * @abstract
+ * A group of blocks submitted to queues for asynchronous invocation.
+ */
+DISPATCH_DECL(dispatch_group);
+
+__BEGIN_DECLS
+
+/*!
+ * @function dispatch_group_create
+ *
+ * @abstract
+ * Creates new group with which blocks may be associated.
+ *
+ * @discussion
+ * This function creates a new group with which blocks may be associated.
+ * The dispatch group may be used to wait for the completion of the blocks it
+ * references. The group object memory is freed with dispatch_release().
+ *
+ * @result
+ * The newly created group, or NULL on failure.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+dispatch_group_t
+dispatch_group_create(void);
+
+/*!
+ * @function dispatch_group_async
+ *
+ * @abstract
+ * Submits a block to a dispatch queue and associates the block with the given
+ * dispatch group.
+ *
+ * @discussion
+ * Submits a block to a dispatch queue and associates the block with the given
+ * dispatch group. The dispatch group may be used to wait for the completion
+ * of the blocks it references.
+ *
+ * @param group
+ * A dispatch group to associate with the submitted block.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param queue
+ * The dispatch queue to which the block will be submitted for asynchronous
+ * invocation.
+ *
+ * @param block
+ * The block to perform asynchronously.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_group_async(dispatch_group_t group,
+	dispatch_queue_t queue,
+	dispatch_block_t block);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @function dispatch_group_async_f
+ *
+ * @abstract
+ * Submits a function to a dispatch queue and associates the block with the
+ * given dispatch group.
+ *
+ * @discussion
+ * See dispatch_group_async() for details.
+ *
+ * @param group
+ * A dispatch group to associate with the submitted function.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param queue
+ * The dispatch queue to which the function will be submitted for asynchronous
+ * invocation.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_group_async_f().
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL2 DISPATCH_NONNULL4
+DISPATCH_NOTHROW
+void
+dispatch_group_async_f(dispatch_group_t group,
+	dispatch_queue_t queue,
+	void *_Nullable context,
+	dispatch_function_t work);
+
+/*!
+ * @function dispatch_group_wait
+ *
+ * @abstract
+ * Wait synchronously until all the blocks associated with a group have
+ * completed or until the specified timeout has elapsed.
+ *
+ * @discussion
+ * This function waits for the completion of the blocks associated with the
+ * given dispatch group, and returns after all blocks have completed or when
+ * the specified timeout has elapsed.
+ *
+ * This function will return immediately if there are no blocks associated
+ * with the dispatch group (i.e. the group is empty).
+ *
+ * The result of calling this function from multiple threads simultaneously
+ * with the same dispatch group is undefined.
+ *
+ * After the successful return of this function, the dispatch group is empty.
+ * It may either be released with dispatch_release() or re-used for additional
+ * blocks. See dispatch_group_async() for more information.
+ *
+ * @param group
+ * The dispatch group to wait on.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param timeout
+ * When to timeout (see dispatch_time). As a convenience, there are the
+ * DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER constants.
+ *
+ * @result
+ * Returns zero on success (all blocks associated with the group completed
+ * within the specified timeout) or non-zero on error (i.e. timed out).
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+intptr_t
+dispatch_group_wait(dispatch_group_t group, dispatch_time_t timeout);
+
+/*!
+ * @function dispatch_group_notify
+ *
+ * @abstract
+ * Schedule a block to be submitted to a queue when all the blocks associated
+ * with a group have completed.
+ *
+ * @discussion
+ * This function schedules a notification block to be submitted to the specified
+ * queue once all blocks associated with the dispatch group have completed.
+ *
+ * If no blocks are associated with the dispatch group (i.e. the group is empty)
+ * then the notification block will be submitted immediately.
+ *
+ * The group will be empty at the time the notification block is submitted to
+ * the target queue. The group may either be released with dispatch_release()
+ * or reused for additional operations.
+ * See dispatch_group_async() for more information.
+ *
+ * @param group
+ * The dispatch group to observe.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param queue
+ * The queue to which the supplied block will be submitted when the group
+ * completes.
+ *
+ * @param block
+ * The block to submit when the group completes.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_group_notify(dispatch_group_t group,
+	dispatch_queue_t queue,
+	dispatch_block_t block);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @function dispatch_group_notify_f
+ *
+ * @abstract
+ * Schedule a function to be submitted to a queue when all the blocks
+ * associated with a group have completed.
+ *
+ * @discussion
+ * See dispatch_group_notify() for details.
+ *
+ * @param group
+ * The dispatch group to observe.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_group_notify_f().
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL2 DISPATCH_NONNULL4
+DISPATCH_NOTHROW
+void
+dispatch_group_notify_f(dispatch_group_t group,
+	dispatch_queue_t queue,
+	void *_Nullable context,
+	dispatch_function_t work);
+
+/*!
+ * @function dispatch_group_enter
+ *
+ * @abstract
+ * Manually indicate a block has entered the group
+ *
+ * @discussion
+ * Calling this function indicates another block has joined the group through
+ * a means other than dispatch_group_async(). Calls to this function must be
+ * balanced with dispatch_group_leave().
+ *
+ * @param group
+ * The dispatch group to update.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_group_enter(dispatch_group_t group);
+
+/*!
+ * @function dispatch_group_leave
+ *
+ * @abstract
+ * Manually indicate a block in the group has completed
+ *
+ * @discussion
+ * Calling this function indicates block has completed and left the dispatch
+ * group by a means other than dispatch_group_async().
+ *
+ * @param group
+ * The dispatch group to update.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_group_leave(dispatch_group_t group);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/io.h b/lib/libc/include/any-macos.13-any/dispatch/io.h
new file mode 100644
index 0000000000000000000000000000000000000000..30e2692a83407d7f24d0327dc22bc62163a7437f
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/io.h
@@ -0,0 +1,599 @@
+/*
+ * Copyright (c) 2009-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_IO__
+#define __DISPATCH_IO__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+__BEGIN_DECLS
+
+/*! @header
+ * Dispatch I/O provides both stream and random access asynchronous read and
+ * write operations on file descriptors. One or more dispatch I/O channels may
+ * be created from a file descriptor as either the DISPATCH_IO_STREAM type or
+ * DISPATCH_IO_RANDOM type. Once a channel has been created the application may
+ * schedule asynchronous read and write operations.
+ *
+ * The application may set policies on the dispatch I/O channel to indicate the
+ * desired frequency of I/O handlers for long-running operations.
+ *
+ * Dispatch I/O also provides a memory management model for I/O buffers that
+ * avoids unnecessary copying of data when pipelined between channels. Dispatch
+ * I/O monitors the overall memory pressure and I/O access patterns for the
+ * application to optimize resource utilization.
+ */
+
+/*!
+ * @typedef dispatch_fd_t
+ * Native file descriptor type for the platform.
+ */
+#if defined(_WIN32)
+typedef intptr_t dispatch_fd_t;
+#else
+typedef int dispatch_fd_t;
+#endif
+
+/*!
+ * @functiongroup Dispatch I/O Convenience API
+ * Convenience wrappers around the dispatch I/O channel API, with simpler
+ * callback handler semantics and no explicit management of channel objects.
+ * File descriptors passed to the convenience API are treated as streams, and
+ * scheduling multiple operations on one file descriptor via the convenience API
+ * may incur more overhead than by using the dispatch I/O channel API directly.
+ */
+
+#ifdef __BLOCKS__
+/*!
+ * @function dispatch_read
+ * Schedule a read operation for asynchronous execution on the specified file
+ * descriptor. The specified handler is enqueued with the data read from the
+ * file descriptor when the operation has completed or an error occurs.
+ *
+ * The data object passed to the handler will be automatically released by the
+ * system when the handler returns. It is the responsibility of the application
+ * to retain, concatenate or copy the data object if it is needed after the
+ * handler returns.
+ *
+ * The data object passed to the handler will only contain as much data as is
+ * currently available from the file descriptor (up to the specified length).
+ *
+ * If an unrecoverable error occurs on the file descriptor, the handler will be
+ * enqueued with the appropriate error code along with a data object of any data
+ * that could be read successfully.
+ *
+ * An invocation of the handler with an error code of zero and an empty data
+ * object indicates that EOF was reached.
+ *
+ * The system takes control of the file descriptor until the handler is
+ * enqueued, and during this time file descriptor flags such as O_NONBLOCK will
+ * be modified by the system on behalf of the application. It is an error for
+ * the application to modify a file descriptor directly while it is under the
+ * control of the system, but it may create additional dispatch I/O convenience
+ * operations or dispatch I/O channels associated with that file descriptor.
+ *
+ * @param fd		The file descriptor from which to read the data.
+ * @param length	The length of data to read from the file descriptor,
+ *			or SIZE_MAX to indicate that all of the data currently
+ *			available from the file descriptor should be read.
+ * @param queue		The dispatch queue to which the handler should be
+ *			submitted.
+ * @param handler	The handler to enqueue when data is ready to be
+ *			delivered.
+ *		param data	The data read from the file descriptor.
+ *		param error	An errno condition for the read operation or
+ *				zero if the read was successful.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL3 DISPATCH_NONNULL4 DISPATCH_NOTHROW
+void
+dispatch_read(dispatch_fd_t fd,
+	size_t length,
+	dispatch_queue_t queue,
+	void (^handler)(dispatch_data_t data, int error));
+
+/*!
+ * @function dispatch_write
+ * Schedule a write operation for asynchronous execution on the specified file
+ * descriptor. The specified handler is enqueued when the operation has
+ * completed or an error occurs.
+ *
+ * If an unrecoverable error occurs on the file descriptor, the handler will be
+ * enqueued with the appropriate error code along with the data that could not
+ * be successfully written.
+ *
+ * An invocation of the handler with an error code of zero indicates that the
+ * data was fully written to the channel.
+ *
+ * The system takes control of the file descriptor until the handler is
+ * enqueued, and during this time file descriptor flags such as O_NONBLOCK will
+ * be modified by the system on behalf of the application. It is an error for
+ * the application to modify a file descriptor directly while it is under the
+ * control of the system, but it may create additional dispatch I/O convenience
+ * operations or dispatch I/O channels associated with that file descriptor.
+ *
+ * @param fd		The file descriptor to which to write the data.
+ * @param data		The data object to write to the file descriptor.
+ * @param queue		The dispatch queue to which the handler should be
+ *			submitted.
+ * @param handler	The handler to enqueue when the data has been written.
+ *		param data	The data that could not be written to the I/O
+ *				channel, or NULL.
+ *		param error	An errno condition for the write operation or
+ *				zero if the write was successful.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NONNULL3 DISPATCH_NONNULL4
+DISPATCH_NOTHROW
+void
+dispatch_write(dispatch_fd_t fd,
+	dispatch_data_t data,
+	dispatch_queue_t queue,
+	void (^handler)(dispatch_data_t _Nullable data, int error));
+#endif /* __BLOCKS__ */
+
+/*!
+ * @functiongroup Dispatch I/O Channel API
+ */
+
+/*!
+ * @typedef dispatch_io_t
+ * A dispatch I/O channel represents the asynchronous I/O policy applied to a
+ * file descriptor. I/O channels are first class dispatch objects and may be
+ * retained and released, suspended and resumed, etc.
+ */
+DISPATCH_DECL(dispatch_io);
+
+/*!
+ * @typedef dispatch_io_type_t
+ * The type of a dispatch I/O channel:
+ *
+ * @const DISPATCH_IO_STREAM	A dispatch I/O channel representing a stream of
+ * bytes. Read and write operations on a channel of this type are performed
+ * serially (in order of creation) and read/write data at the file pointer
+ * position that is current at the time the operation starts executing.
+ * Operations of different type (read vs. write) may be performed simultaneously.
+ * Offsets passed to operations on a channel of this type are ignored.
+ *
+ * @const DISPATCH_IO_RANDOM	A dispatch I/O channel representing a random
+ * access file. Read and write operations on a channel of this type may be
+ * performed concurrently and read/write data at the specified offset. Offsets
+ * are interpreted relative to the file pointer position current at the time the
+ * I/O channel is created. Attempting to create a channel of this type for a
+ * file descriptor that is not seekable will result in an error.
+ */
+#define DISPATCH_IO_STREAM 0
+#define DISPATCH_IO_RANDOM 1
+
+typedef unsigned long dispatch_io_type_t;
+
+#ifdef __BLOCKS__
+/*!
+ * @function dispatch_io_create
+ * Create a dispatch I/O channel associated with a file descriptor. The system
+ * takes control of the file descriptor until the channel is closed, an error
+ * occurs on the file descriptor or all references to the channel are released.
+ * At that time the specified cleanup handler will be enqueued and control over
+ * the file descriptor relinquished.
+ *
+ * While a file descriptor is under the control of a dispatch I/O channel, file
+ * descriptor flags such as O_NONBLOCK will be modified by the system on behalf
+ * of the application. It is an error for the application to modify a file
+ * descriptor directly while it is under the control of a dispatch I/O channel,
+ * but it may create additional channels associated with that file descriptor.
+ *
+ * @param type	The desired type of I/O channel (DISPATCH_IO_STREAM
+ *		or DISPATCH_IO_RANDOM).
+ * @param fd	The file descriptor to associate with the I/O channel.
+ * @param queue	The dispatch queue to which the handler should be submitted.
+ * @param cleanup_handler	The handler to enqueue when the system
+ *				relinquishes control over the file descriptor.
+ *	param error		An errno condition if control is relinquished
+ *				because channel creation failed, zero otherwise.
+ * @result	The newly created dispatch I/O channel or NULL if an error
+ *		occurred (invalid type specified).
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+dispatch_io_t
+dispatch_io_create(dispatch_io_type_t type,
+	dispatch_fd_t fd,
+	dispatch_queue_t queue,
+	void (^cleanup_handler)(int error));
+
+/*!
+ * @function dispatch_io_create_with_path
+ * Create a dispatch I/O channel associated with a path name. The specified
+ * path, oflag and mode parameters will be passed to open(2) when the first I/O
+ * operation on the channel is ready to execute and the resulting file
+ * descriptor will remain open and under the control of the system until the
+ * channel is closed, an error occurs on the file descriptor or all references
+ * to the channel are released. At that time the file descriptor will be closed
+ * and the specified cleanup handler will be enqueued.
+ *
+ * @param type	The desired type of I/O channel (DISPATCH_IO_STREAM
+ *		or DISPATCH_IO_RANDOM).
+ * @param path	The absolute path to associate with the I/O channel.
+ * @param oflag	The flags to pass to open(2) when opening the file at
+ *		path.
+ * @param mode	The mode to pass to open(2) when creating the file at
+ *		path (i.e. with flag O_CREAT), zero otherwise.
+ * @param queue	The dispatch queue to which the handler should be
+ *		submitted.
+ * @param cleanup_handler	The handler to enqueue when the system
+ *				has closed the file at path.
+ *	param error		An errno condition if control is relinquished
+ *				because channel creation or opening of the
+ *				specified file failed, zero otherwise.
+ * @result	The newly created dispatch I/O channel or NULL if an error
+ *		occurred (invalid type or non-absolute path specified).
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED
+DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_io_t
+dispatch_io_create_with_path(dispatch_io_type_t type,
+	const char *DISPATCH_UNSAFE_INDEXABLE path, int oflag,
+	mode_t mode, dispatch_queue_t queue,
+	void (^cleanup_handler)(int error));
+
+/*!
+ * @function dispatch_io_create_with_io
+ * Create a new dispatch I/O channel from an existing dispatch I/O channel.
+ * The new channel inherits the file descriptor or path name associated with
+ * the existing channel, but not its channel type or policies.
+ *
+ * If the existing channel is associated with a file descriptor, control by the
+ * system over that file descriptor is extended until the new channel is also
+ * closed, an error occurs on the file descriptor, or all references to both
+ * channels are released. At that time the specified cleanup handler will be
+ * enqueued and control over the file descriptor relinquished.
+ *
+ * While a file descriptor is under the control of a dispatch I/O channel, file
+ * descriptor flags such as O_NONBLOCK will be modified by the system on behalf
+ * of the application. It is an error for the application to modify a file
+ * descriptor directly while it is under the control of a dispatch I/O channel,
+ * but it may create additional channels associated with that file descriptor.
+ *
+ * @param type	The desired type of I/O channel (DISPATCH_IO_STREAM
+ *		or DISPATCH_IO_RANDOM).
+ * @param io	The existing channel to create the new I/O channel from.
+ * @param queue	The dispatch queue to which the handler should be submitted.
+ * @param cleanup_handler	The handler to enqueue when the system
+ *				relinquishes control over the file descriptor
+ *				(resp. closes the file at path) associated with
+ *				the existing channel.
+ *	param error		An errno condition if control is relinquished
+ *				because channel creation failed, zero otherwise.
+ * @result	The newly created dispatch I/O channel or NULL if an error
+ *		occurred (invalid type specified).
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED
+DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_io_t
+dispatch_io_create_with_io(dispatch_io_type_t type,
+	dispatch_io_t io,
+	dispatch_queue_t queue,
+	void (^cleanup_handler)(int error));
+
+/*!
+ * @typedef dispatch_io_handler_t
+ * The prototype of I/O handler blocks for dispatch I/O operations.
+ *
+ * @param done		A flag indicating whether the operation is complete.
+ * @param data		The data object to be handled.
+ * @param error		An errno condition for the operation.
+ */
+typedef void (^dispatch_io_handler_t)(bool done, dispatch_data_t _Nullable data,
+		int error);
+
+/*!
+ * @function dispatch_io_read
+ * Schedule a read operation for asynchronous execution on the specified I/O
+ * channel. The I/O handler is enqueued one or more times depending on the
+ * general load of the system and the policy specified on the I/O channel.
+ *
+ * Any data read from the channel is described by the dispatch data object
+ * passed to the I/O handler. This object will be automatically released by the
+ * system when the I/O handler returns. It is the responsibility of the
+ * application to retain, concatenate or copy the data object if it is needed
+ * after the I/O handler returns.
+ *
+ * Dispatch I/O handlers are not reentrant. The system will ensure that no new
+ * I/O handler instance is invoked until the previously enqueued handler block
+ * has returned.
+ *
+ * An invocation of the I/O handler with the done flag set indicates that the
+ * read operation is complete and that the handler will not be enqueued again.
+ *
+ * If an unrecoverable error occurs on the I/O channel's underlying file
+ * descriptor, the I/O handler will be enqueued with the done flag set, the
+ * appropriate error code and a NULL data object.
+ *
+ * An invocation of the I/O handler with the done flag set, an error code of
+ * zero and an empty data object indicates that EOF was reached.
+ *
+ * @param channel	The dispatch I/O channel from which to read the data.
+ * @param offset	The offset relative to the channel position from which
+ *			to start reading (only for DISPATCH_IO_RANDOM).
+ * @param length	The length of data to read from the I/O channel, or
+ *			SIZE_MAX to indicate that data should be read until EOF
+ *			is reached.
+ * @param queue		The dispatch queue to which the I/O handler should be
+ *			submitted.
+ * @param io_handler	The I/O handler to enqueue when data is ready to be
+ *			delivered.
+ *	param done	A flag indicating whether the operation is complete.
+ *	param data	An object with the data most recently read from the
+ *			I/O channel as part of this read operation, or NULL.
+ *	param error	An errno condition for the read operation or zero if
+ *			the read was successful.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL4 DISPATCH_NONNULL5
+DISPATCH_NOTHROW
+void
+dispatch_io_read(dispatch_io_t channel,
+	off_t offset,
+	size_t length,
+	dispatch_queue_t queue,
+	dispatch_io_handler_t io_handler);
+
+/*!
+ * @function dispatch_io_write
+ * Schedule a write operation for asynchronous execution on the specified I/O
+ * channel. The I/O handler is enqueued one or more times depending on the
+ * general load of the system and the policy specified on the I/O channel.
+ *
+ * Any data remaining to be written to the I/O channel is described by the
+ * dispatch data object passed to the I/O handler. This object will be
+ * automatically released by the system when the I/O handler returns. It is the
+ * responsibility of the application to retain, concatenate or copy the data
+ * object if it is needed after the I/O handler returns.
+ *
+ * Dispatch I/O handlers are not reentrant. The system will ensure that no new
+ * I/O handler instance is invoked until the previously enqueued handler block
+ * has returned.
+ *
+ * An invocation of the I/O handler with the done flag set indicates that the
+ * write operation is complete and that the handler will not be enqueued again.
+ *
+ * If an unrecoverable error occurs on the I/O channel's underlying file
+ * descriptor, the I/O handler will be enqueued with the done flag set, the
+ * appropriate error code and an object containing the data that could not be
+ * written.
+ *
+ * An invocation of the I/O handler with the done flag set and an error code of
+ * zero indicates that the data was fully written to the channel.
+ *
+ * @param channel	The dispatch I/O channel on which to write the data.
+ * @param offset	The offset relative to the channel position from which
+ *			to start writing (only for DISPATCH_IO_RANDOM).
+ * @param data		The data to write to the I/O channel. The data object
+ *			will be retained by the system until the write operation
+ *			is complete.
+ * @param queue		The dispatch queue to which the I/O handler should be
+ *			submitted.
+ * @param io_handler	The I/O handler to enqueue when data has been delivered.
+ *	param done	A flag indicating whether the operation is complete.
+ *	param data	An object of the data remaining to be
+ *			written to the I/O channel as part of this write
+ *			operation, or NULL.
+ *	param error	An errno condition for the write operation or zero
+ *			if the write was successful.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NONNULL4
+DISPATCH_NONNULL5 DISPATCH_NOTHROW
+void
+dispatch_io_write(dispatch_io_t channel,
+	off_t offset,
+	dispatch_data_t data,
+	dispatch_queue_t queue,
+	dispatch_io_handler_t io_handler);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @typedef dispatch_io_close_flags_t
+ * The type of flags you can set on a dispatch_io_close() call
+ *
+ * @const DISPATCH_IO_STOP	Stop outstanding operations on a channel when
+ *				the channel is closed.
+ */
+#define DISPATCH_IO_STOP 0x1
+
+typedef unsigned long dispatch_io_close_flags_t;
+
+/*!
+ * @function dispatch_io_close
+ * Close the specified I/O channel to new read or write operations; scheduling
+ * operations on a closed channel results in their handler returning an error.
+ *
+ * If the DISPATCH_IO_STOP flag is provided, the system will make a best effort
+ * to interrupt any outstanding read and write operations on the I/O channel,
+ * otherwise those operations will run to completion normally.
+ * Partial results of read and write operations may be returned even after a
+ * channel is closed with the DISPATCH_IO_STOP flag.
+ * The final invocation of an I/O handler of an interrupted operation will be
+ * passed an ECANCELED error code, as will the I/O handler of an operation
+ * scheduled on a closed channel.
+ *
+ * @param channel	The dispatch I/O channel to close.
+ * @param flags		The flags for the close operation.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_io_close(dispatch_io_t channel, dispatch_io_close_flags_t flags);
+
+#ifdef __BLOCKS__
+/*!
+ * @function dispatch_io_barrier
+ * Schedule a barrier operation on the specified I/O channel; all previously
+ * scheduled operations on the channel will complete before the provided
+ * barrier block is enqueued onto the global queue determined by the channel's
+ * target queue, and no subsequently scheduled operations will start until the
+ * barrier block has returned.
+ *
+ * If multiple channels are associated with the same file descriptor, a barrier
+ * operation scheduled on any of these channels will act as a barrier across all
+ * channels in question, i.e. all previously scheduled operations on any of the
+ * channels will complete before the barrier block is enqueued, and no
+ * operations subsequently scheduled on any of the channels will start until the
+ * barrier block has returned.
+ *
+ * While the barrier block is running, it may safely operate on the channel's
+ * underlying file descriptor with fsync(2), lseek(2) etc. (but not close(2)).
+ *
+ * @param channel	The dispatch I/O channel to schedule the barrier on.
+ * @param barrier	The barrier block.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_io_barrier(dispatch_io_t channel, dispatch_block_t barrier);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @function dispatch_io_get_descriptor
+ * Returns the file descriptor underlying a dispatch I/O channel.
+ *
+ * Will return -1 for a channel closed with dispatch_io_close() and for a
+ * channel associated with a path name that has not yet been open(2)ed.
+ *
+ * If called from a barrier block scheduled on a channel associated with a path
+ * name that has not yet been open(2)ed, this will trigger the channel open(2)
+ * operation and return the resulting file descriptor.
+ *
+ * @param channel	The dispatch I/O channel to query.
+ * @result		The file descriptor underlying the channel, or -1.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_fd_t
+dispatch_io_get_descriptor(dispatch_io_t channel);
+
+/*!
+ * @function dispatch_io_set_high_water
+ * Set a high water mark on the I/O channel for all operations.
+ *
+ * The system will make a best effort to enqueue I/O handlers with partial
+ * results as soon the number of bytes processed by an operation (i.e. read or
+ * written) reaches the high water mark.
+ *
+ * The size of data objects passed to I/O handlers for this channel will never
+ * exceed the specified high water mark.
+ *
+ * The default value for the high water mark is unlimited (i.e. SIZE_MAX).
+ *
+ * @param channel	The dispatch I/O channel on which to set the policy.
+ * @param high_water	The number of bytes to use as a high water mark.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_io_set_high_water(dispatch_io_t channel, size_t high_water);
+
+/*!
+ * @function dispatch_io_set_low_water
+ * Set a low water mark on the I/O channel for all operations.
+ *
+ * The system will process (i.e. read or write) at least the low water mark
+ * number of bytes for an operation before enqueueing I/O handlers with partial
+ * results.
+ *
+ * The size of data objects passed to intermediate I/O handler invocations for
+ * this channel (i.e. excluding the final invocation) will never be smaller than
+ * the specified low water mark, except if the channel has an interval with the
+ * DISPATCH_IO_STRICT_INTERVAL flag set or if EOF or an error was encountered.
+ *
+ * I/O handlers should be prepared to receive amounts of data significantly
+ * larger than the low water mark in general. If an I/O handler requires
+ * intermediate results of fixed size, set both the low and and the high water
+ * mark to that size.
+ *
+ * The default value for the low water mark is unspecified, but must be assumed
+ * to be such that intermediate handler invocations may occur.
+ * If I/O handler invocations with partial results are not desired, set the
+ * low water mark to SIZE_MAX.
+ *
+ * @param channel	The dispatch I/O channel on which to set the policy.
+ * @param low_water	The number of bytes to use as a low water mark.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_io_set_low_water(dispatch_io_t channel, size_t low_water);
+
+/*!
+ * @typedef dispatch_io_interval_flags_t
+ * Type of flags to set on dispatch_io_set_interval()
+ *
+ * @const DISPATCH_IO_STRICT_INTERVAL	Enqueue I/O handlers at a channel's
+ * interval setting even if the amount of data ready to be delivered is inferior
+ * to the low water mark (or zero).
+ */
+#define DISPATCH_IO_STRICT_INTERVAL 0x1
+
+typedef unsigned long dispatch_io_interval_flags_t;
+
+/*!
+ * @function dispatch_io_set_interval
+ * Set a nanosecond interval at which I/O handlers are to be enqueued on the
+ * I/O channel for all operations.
+ *
+ * This allows an application to receive periodic feedback on the progress of
+ * read and write operations, e.g. for the purposes of displaying progress bars.
+ *
+ * If the amount of data ready to be delivered to an I/O handler at the interval
+ * is inferior to the channel low water mark, the handler will only be enqueued
+ * if the DISPATCH_IO_STRICT_INTERVAL flag is set.
+ *
+ * Note that the system may defer enqueueing interval I/O handlers by a small
+ * unspecified amount of leeway in order to align with other system activity for
+ * improved system performance or power consumption.
+ *
+ * @param channel	The dispatch I/O channel on which to set the policy.
+ * @param interval	The interval in nanoseconds at which delivery of the I/O
+ *					handler is desired.
+ * @param flags		Flags indicating desired data delivery behavior at
+ *					interval time.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_io_set_interval(dispatch_io_t channel,
+	uint64_t interval,
+	dispatch_io_interval_flags_t flags);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif /* __DISPATCH_IO__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/object.h b/lib/libc/include/any-macos.13-any/dispatch/object.h
new file mode 100644
index 0000000000000000000000000000000000000000..a38fc4be640ec7694be8c8c76b56303354e510a6
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/object.h
@@ -0,0 +1,610 @@
+/*
+ * Copyright (c) 2008-2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_OBJECT__
+#define __DISPATCH_OBJECT__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+#if __has_include()
+#include 
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @typedef dispatch_object_t
+ *
+ * @abstract
+ * Abstract base type for all dispatch objects.
+ * The details of the type definition are language-specific.
+ *
+ * @discussion
+ * Dispatch objects are reference counted via calls to dispatch_retain() and
+ * dispatch_release().
+ */
+
+#if OS_OBJECT_USE_OBJC
+/*
+ * By default, dispatch objects are declared as Objective-C types when building
+ * with an Objective-C compiler. This allows them to participate in ARC, in RR
+ * management by the Blocks runtime and in leaks checking by the static
+ * analyzer, and enables them to be added to Cocoa collections.
+ * See  for details.
+ */
+OS_OBJECT_DECL_CLASS(dispatch_object);
+
+#if OS_OBJECT_SWIFT3
+#define DISPATCH_DECL(name) OS_OBJECT_DECL_SUBCLASS_SWIFT(name, dispatch_object)
+#define DISPATCH_DECL_SUBCLASS(name, base) OS_OBJECT_DECL_SUBCLASS_SWIFT(name, base)
+#else // OS_OBJECT_SWIFT3
+#define DISPATCH_DECL(name) OS_OBJECT_DECL_SUBCLASS(name, dispatch_object)
+#define DISPATCH_DECL_SUBCLASS(name, base) OS_OBJECT_DECL_SUBCLASS(name, base)
+
+DISPATCH_INLINE DISPATCH_ALWAYS_INLINE DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+_dispatch_object_validate(dispatch_object_t object)
+{
+	void *isa = *(void *volatile*)(OS_OBJECT_BRIDGE void*)object;
+	(void)isa;
+}
+#endif // OS_OBJECT_SWIFT3
+
+#define DISPATCH_GLOBAL_OBJECT(type, object) ((OS_OBJECT_BRIDGE type)&(object))
+#define DISPATCH_RETURNS_RETAINED OS_OBJECT_RETURNS_RETAINED
+#elif defined(__cplusplus) && !defined(__DISPATCH_BUILDING_DISPATCH__)
+/*
+ * Dispatch objects are NOT C++ objects. Nevertheless, we can at least keep C++
+ * aware of type compatibility.
+ */
+typedef struct dispatch_object_s {
+private:
+	dispatch_object_s();
+	~dispatch_object_s();
+	dispatch_object_s(const dispatch_object_s &);
+	void operator=(const dispatch_object_s &);
+} *dispatch_object_t;
+#define DISPATCH_DECL(name) \
+		typedef struct name##_s : public dispatch_object_s {} *name##_t
+#define DISPATCH_DECL_SUBCLASS(name, base) \
+		typedef struct name##_s : public base##_s {} *name##_t
+#define DISPATCH_GLOBAL_OBJECT(type, object) (static_cast(&(object)))
+#define DISPATCH_RETURNS_RETAINED
+#else /* Plain C */
+typedef union {
+	struct _os_object_s *_os_obj;
+	struct dispatch_object_s *_do;
+	struct dispatch_queue_s *_dq;
+	struct dispatch_queue_attr_s *_dqa;
+	struct dispatch_group_s *_dg;
+	struct dispatch_source_s *_ds;
+	struct dispatch_channel_s *_dch;
+	struct dispatch_mach_s *_dm;
+	struct dispatch_mach_msg_s *_dmsg;
+	struct dispatch_semaphore_s *_dsema;
+	struct dispatch_data_s *_ddata;
+	struct dispatch_io_s *_dchannel;
+} dispatch_object_t DISPATCH_TRANSPARENT_UNION;
+#define DISPATCH_DECL(name) typedef struct name##_s *name##_t
+#define DISPATCH_DECL_SUBCLASS(name, base) typedef base##_t name##_t
+#define DISPATCH_GLOBAL_OBJECT(type, object) ((type)&(object))
+#define DISPATCH_RETURNS_RETAINED
+#endif
+
+#if OS_OBJECT_SWIFT3 && OS_OBJECT_USE_OBJC
+#define DISPATCH_SOURCE_TYPE_DECL(name) \
+		DISPATCH_EXPORT struct dispatch_source_type_s \
+				_dispatch_source_type_##name; \
+		OS_OBJECT_DECL_PROTOCOL(dispatch_source_##name, ); \
+		OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL( \
+				dispatch_source, dispatch_source_##name)
+#define DISPATCH_SOURCE_DECL(name) \
+		DISPATCH_DECL(name); \
+		OS_OBJECT_DECL_PROTOCOL(name, ); \
+		OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL(name, name)
+#ifndef DISPATCH_DATA_DECL
+#define DISPATCH_DATA_DECL(name) OS_OBJECT_DECL_SWIFT(name)
+#endif // DISPATCH_DATA_DECL
+#else
+#define DISPATCH_SOURCE_DECL(name) \
+		DISPATCH_DECL(name);
+#define DISPATCH_DATA_DECL(name) DISPATCH_DECL(name)
+#define DISPATCH_SOURCE_TYPE_DECL(name) \
+		DISPATCH_EXPORT const struct dispatch_source_type_s \
+		_dispatch_source_type_##name
+#endif
+
+#ifdef __BLOCKS__
+/*!
+ * @typedef dispatch_block_t
+ *
+ * @abstract
+ * The type of blocks submitted to dispatch queues, which take no arguments
+ * and have no return value.
+ *
+ * @discussion
+ * When not building with Objective-C ARC, a block object allocated on or
+ * copied to the heap must be released with a -[release] message or the
+ * Block_release() function.
+ *
+ * The declaration of a block literal allocates storage on the stack.
+ * Therefore, this is an invalid construct:
+ * 
+ * dispatch_block_t block;
+ * if (x) {
+ *     block = ^{ printf("true\n"); };
+ * } else {
+ *     block = ^{ printf("false\n"); };
+ * }
+ * block(); // unsafe!!!
+ * 
+ *
+ * What is happening behind the scenes:
+ * 
+ * if (x) {
+ *     struct Block __tmp_1 = ...; // setup details
+ *     block = &__tmp_1;
+ * } else {
+ *     struct Block __tmp_2 = ...; // setup details
+ *     block = &__tmp_2;
+ * }
+ * 
+ *
+ * As the example demonstrates, the address of a stack variable is escaping the
+ * scope in which it is allocated. That is a classic C bug.
+ *
+ * Instead, the block literal must be copied to the heap with the Block_copy()
+ * function or by sending it a -[copy] message.
+ */
+typedef void (^dispatch_block_t)(void);
+#endif // __BLOCKS__
+
+__BEGIN_DECLS
+
+/*!
+ * @typedef dispatch_qos_class_t
+ * Alias for qos_class_t type.
+ */
+#if __has_include()
+typedef qos_class_t dispatch_qos_class_t;
+#else
+typedef unsigned int dispatch_qos_class_t;
+#endif
+
+/*!
+ * @function dispatch_retain
+ *
+ * @abstract
+ * Increment the reference count of a dispatch object.
+ *
+ * @discussion
+ * Calls to dispatch_retain() must be balanced with calls to
+ * dispatch_release().
+ *
+ * @param object
+ * The object to retain.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+DISPATCH_SWIFT_UNAVAILABLE("Can't be used with ARC")
+void
+dispatch_retain(dispatch_object_t object);
+#if OS_OBJECT_USE_OBJC_RETAIN_RELEASE
+#undef dispatch_retain
+#define dispatch_retain(object) \
+		__extension__({ dispatch_object_t _o = (object); \
+		_dispatch_object_validate(_o); (void)[_o retain]; })
+#endif
+
+/*!
+ * @function dispatch_release
+ *
+ * @abstract
+ * Decrement the reference count of a dispatch object.
+ *
+ * @discussion
+ * A dispatch object is asynchronously deallocated once all references are
+ * released (i.e. the reference count becomes zero). The system does not
+ * guarantee that a given client is the last or only reference to a given
+ * object.
+ *
+ * @param object
+ * The object to release.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+DISPATCH_SWIFT_UNAVAILABLE("Can't be used with ARC")
+void
+dispatch_release(dispatch_object_t object);
+#if OS_OBJECT_USE_OBJC_RETAIN_RELEASE
+#undef dispatch_release
+#define dispatch_release(object) \
+		__extension__({ dispatch_object_t _o = (object); \
+		_dispatch_object_validate(_o); [_o release]; })
+#endif
+
+/*!
+ * @function dispatch_get_context
+ *
+ * @abstract
+ * Returns the application defined context of the object.
+ *
+ * @param object
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @result
+ * The context of the object; may be NULL.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_PURE DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+void *_Nullable
+dispatch_get_context(dispatch_object_t object);
+
+/*!
+ * @function dispatch_set_context
+ *
+ * @abstract
+ * Associates an application defined context with the object.
+ *
+ * @param object
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The new client defined context for the object. This may be NULL.
+ *
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NOTHROW
+void
+dispatch_set_context(dispatch_object_t object, void *_Nullable context);
+
+/*!
+ * @function dispatch_set_finalizer_f
+ *
+ * @abstract
+ * Set the finalizer function for a dispatch object.
+ *
+ * @param object
+ * The dispatch object to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param finalizer
+ * The finalizer function pointer.
+ *
+ * @discussion
+ * A dispatch object's finalizer will be invoked on the object's target queue
+ * after all references to the object have been released. This finalizer may be
+ * used by the application to release any resources associated with the object,
+ * such as freeing the object's context.
+ * The context parameter passed to the finalizer function is the current
+ * context of the dispatch object at the time the finalizer call is made.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NOTHROW
+void
+dispatch_set_finalizer_f(dispatch_object_t object,
+		dispatch_function_t _Nullable finalizer);
+
+/*!
+ * @function dispatch_activate
+ *
+ * @abstract
+ * Activates the specified dispatch object.
+ *
+ * @discussion
+ * Dispatch objects such as queues and sources may be created in an inactive
+ * state. Objects in this state have to be activated before any blocks
+ * associated with them will be invoked.
+ *
+ * The target queue of inactive objects can be changed using
+ * dispatch_set_target_queue(). Change of target queue is no longer permitted
+ * once an initially inactive object has been activated.
+ *
+ * Calling dispatch_activate() on an active object has no effect.
+ * Releasing the last reference count on an inactive object is undefined.
+ *
+ * @param object
+ * The object to be activated.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_activate(dispatch_object_t object);
+
+/*!
+ * @function dispatch_suspend
+ *
+ * @abstract
+ * Suspends the invocation of blocks on a dispatch object.
+ *
+ * @discussion
+ * A suspended object will not invoke any blocks associated with it. The
+ * suspension of an object will occur after any running block associated with
+ * the object completes.
+ *
+ * Calls to dispatch_suspend() must be balanced with calls
+ * to dispatch_resume().
+ *
+ * @param object
+ * The object to be suspended.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_suspend(dispatch_object_t object);
+
+/*!
+ * @function dispatch_resume
+ *
+ * @abstract
+ * Resumes the invocation of blocks on a dispatch object.
+ *
+ * @discussion
+ * Dispatch objects can be suspended with dispatch_suspend(), which increments
+ * an internal suspension count. dispatch_resume() is the inverse operation,
+ * and consumes suspension counts. When the last suspension count is consumed,
+ * blocks associated with the object will be invoked again.
+ *
+ * For backward compatibility reasons, dispatch_resume() on an inactive and not
+ * otherwise suspended dispatch source object has the same effect as calling
+ * dispatch_activate(). For new code, using dispatch_activate() is preferred.
+ *
+ * If the specified object has zero suspension count and is not an inactive
+ * source, this function will result in an assertion and the process being
+ * terminated.
+ *
+ * @param object
+ * The object to be resumed.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_resume(dispatch_object_t object);
+
+/*!
+ * @function dispatch_set_qos_class_floor
+ *
+ * @abstract
+ * Sets the QOS class floor on a dispatch queue, source or workloop.
+ *
+ * @discussion
+ * The QOS class of workitems submitted to this object asynchronously will be
+ * elevated to at least the specified QOS class floor. The QOS of the workitem
+ * will be used if higher than the floor even when the workitem has been created
+ * without "ENFORCE" semantics.
+ *
+ * Setting the QOS class floor is equivalent to the QOS effects of configuring
+ * a queue whose target queue has a QoS class set to the same value.
+ *
+ * @param object
+ * A dispatch queue, workloop, or source to configure.
+ * The object must be inactive.
+ *
+ * Passing another object type or an object that has been activated is undefined
+ * and will cause the process to be terminated.
+ *
+ * @param qos_class
+ * A QOS class value:
+ *  - QOS_CLASS_USER_INTERACTIVE
+ *  - QOS_CLASS_USER_INITIATED
+ *  - QOS_CLASS_DEFAULT
+ *  - QOS_CLASS_UTILITY
+ *  - QOS_CLASS_BACKGROUND
+ * Passing any other value is undefined.
+ *
+ * @param relative_priority
+ * A relative priority within the QOS class. This value is a negative
+ * offset from the maximum supported scheduler priority for the given class.
+ * Passing a value greater than zero or less than QOS_MIN_RELATIVE_PRIORITY
+ * is undefined.
+ */
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+DISPATCH_EXPORT DISPATCH_NOTHROW
+void
+dispatch_set_qos_class_floor(dispatch_object_t object,
+		dispatch_qos_class_t qos_class, int relative_priority);
+
+#ifdef __BLOCKS__
+/*!
+ * @function dispatch_wait
+ *
+ * @abstract
+ * Wait synchronously for an object or until the specified timeout has elapsed.
+ *
+ * @discussion
+ * Type-generic macro that maps to dispatch_block_wait, dispatch_group_wait or
+ * dispatch_semaphore_wait, depending on the type of the first argument.
+ * See documentation for these functions for more details.
+ * This function is unavailable for any other object type.
+ *
+ * @param object
+ * The object to wait on.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param timeout
+ * When to timeout (see dispatch_time). As a convenience, there are the
+ * DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER constants.
+ *
+ * @result
+ * Returns zero on success or non-zero on error (i.e. timed out).
+ */
+DISPATCH_UNAVAILABLE
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+intptr_t
+dispatch_wait(void *object, dispatch_time_t timeout);
+#if __has_extension(c_generic_selections)
+#define dispatch_wait(object, timeout) \
+		_Generic((object), \
+			dispatch_block_t:dispatch_block_wait, \
+			dispatch_group_t:dispatch_group_wait, \
+			dispatch_semaphore_t:dispatch_semaphore_wait \
+		)((object),(timeout))
+#endif
+
+/*!
+ * @function dispatch_notify
+ *
+ * @abstract
+ * Schedule a notification block to be submitted to a queue when the execution
+ * of a specified object has completed.
+ *
+ * @discussion
+ * Type-generic macro that maps to dispatch_block_notify or
+ * dispatch_group_notify, depending on the type of the first argument.
+ * See documentation for these functions for more details.
+ * This function is unavailable for any other object type.
+ *
+ * @param object
+ * The object to observe.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param queue
+ * The queue to which the supplied notification block will be submitted when
+ * the observed object completes.
+ *
+ * @param notification_block
+ * The block to submit when the observed object completes.
+ */
+DISPATCH_UNAVAILABLE
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_notify(void *object, dispatch_object_t queue,
+		dispatch_block_t notification_block);
+#if __has_extension(c_generic_selections)
+#define dispatch_notify(object, queue, notification_block) \
+		_Generic((object), \
+			dispatch_block_t:dispatch_block_notify, \
+			dispatch_group_t:dispatch_group_notify \
+		)((object),(queue), (notification_block))
+#endif
+
+/*!
+ * @function dispatch_cancel
+ *
+ * @abstract
+ * Cancel the specified object.
+ *
+ * @discussion
+ * Type-generic macro that maps to dispatch_block_cancel or
+ * dispatch_source_cancel, depending on the type of the first argument.
+ * See documentation for these functions for more details.
+ * This function is unavailable for any other object type.
+ *
+ * @param object
+ * The object to cancel.
+ * The result of passing NULL in this parameter is undefined.
+ */
+DISPATCH_UNAVAILABLE
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_cancel(void *object);
+#if __has_extension(c_generic_selections)
+#define dispatch_cancel(object) \
+		_Generic((object), \
+			dispatch_block_t:dispatch_block_cancel, \
+			dispatch_source_t:dispatch_source_cancel \
+		)((object))
+#endif
+
+/*!
+ * @function dispatch_testcancel
+ *
+ * @abstract
+ * Test whether the specified object has been canceled
+ *
+ * @discussion
+ * Type-generic macro that maps to dispatch_block_testcancel or
+ * dispatch_source_testcancel, depending on the type of the first argument.
+ * See documentation for these functions for more details.
+ * This function is unavailable for any other object type.
+ *
+ * @param object
+ * The object to test.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @result
+ * Non-zero if canceled and zero if not canceled.
+ */
+DISPATCH_UNAVAILABLE
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
+DISPATCH_NOTHROW
+intptr_t
+dispatch_testcancel(void *object);
+#if __has_extension(c_generic_selections)
+#define dispatch_testcancel(object) \
+		_Generic((object), \
+			dispatch_block_t:dispatch_block_testcancel, \
+			dispatch_source_t:dispatch_source_testcancel \
+		)((object))
+#endif
+#endif // __BLOCKS__
+
+/*!
+ * @function dispatch_debug
+ *
+ * @abstract
+ * Programmatically log debug information about a dispatch object.
+ *
+ * @discussion
+ * Programmatically log debug information about a dispatch object. By default,
+ * the log output is sent to syslog at notice level. In the debug version of
+ * the library, the log output is sent to a file in /var/tmp.
+ * The log output destination can be configured via the LIBDISPATCH_LOG
+ * environment variable, valid values are: YES, NO, syslog, stderr, file.
+ *
+ * This function is deprecated and will be removed in a future release.
+ * Objective-C callers may use -debugDescription instead.
+ *
+ * @param object
+ * The object to introspect.
+ *
+ * @param message
+ * The message to log above and beyond the introspection.
+ */
+API_DEPRECATED("unsupported interface", macos(10.6,10.9), ios(4.0,6.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NOTHROW DISPATCH_COLD
+__attribute__((__format__(printf,2,3)))
+void
+dispatch_debug(dispatch_object_t object,
+			   const char *DISPATCH_UNSAFE_INDEXABLE message, ...);
+
+API_DEPRECATED("unsupported interface", macos(10.6,10.9), ios(4.0,6.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NOTHROW DISPATCH_COLD
+__attribute__((__format__(printf,2,0)))
+void
+dispatch_debugv(dispatch_object_t object,
+				const char *DISPATCH_UNSAFE_INDEXABLE message, va_list ap);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/once.h b/lib/libc/include/any-macos.13-any/dispatch/once.h
new file mode 100644
index 0000000000000000000000000000000000000000..2792f902d556b8b1dec94be5ed26a15a2a79b80d
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/once.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2008-2010 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_ONCE__
+#define __DISPATCH_ONCE__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+__BEGIN_DECLS
+
+/*!
+ * @typedef dispatch_once_t
+ *
+ * @abstract
+ * A predicate for use with dispatch_once(). It must be initialized to zero.
+ * Note: static and global variables default to zero.
+ */
+DISPATCH_SWIFT3_UNAVAILABLE("Use lazily initialized globals instead")
+typedef intptr_t dispatch_once_t;
+
+#if defined(__x86_64__) || defined(__i386__) || defined(__s390x__)
+#define DISPATCH_ONCE_INLINE_FASTPATH 1
+#elif defined(__APPLE__)
+#define DISPATCH_ONCE_INLINE_FASTPATH 1
+#else
+#define DISPATCH_ONCE_INLINE_FASTPATH 0
+#endif
+
+/*!
+ * @function dispatch_once
+ *
+ * @abstract
+ * Execute a block once and only once.
+ *
+ * @param predicate
+ * A pointer to a dispatch_once_t that is used to test whether the block has
+ * completed or not.
+ *
+ * @param block
+ * The block to execute once.
+ *
+ * @discussion
+ * Always call dispatch_once() before using or testing any variables that are
+ * initialized by the block.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+DISPATCH_SWIFT3_UNAVAILABLE("Use lazily initialized globals instead")
+void
+dispatch_once(dispatch_once_t *predicate,
+		DISPATCH_NOESCAPE dispatch_block_t block);
+
+#if DISPATCH_ONCE_INLINE_FASTPATH
+DISPATCH_INLINE DISPATCH_ALWAYS_INLINE DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+DISPATCH_SWIFT3_UNAVAILABLE("Use lazily initialized globals instead")
+void
+_dispatch_once(dispatch_once_t *predicate,
+		DISPATCH_NOESCAPE dispatch_block_t block)
+{
+	if (DISPATCH_EXPECT(*predicate, ~0l) != ~0l) {
+		dispatch_once(predicate, block);
+	} else {
+		dispatch_compiler_barrier();
+	}
+	DISPATCH_COMPILER_CAN_ASSUME(*predicate == ~0l);
+}
+#undef dispatch_once
+#define dispatch_once _dispatch_once
+#endif
+#endif // DISPATCH_ONCE_INLINE_FASTPATH
+
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
+DISPATCH_SWIFT3_UNAVAILABLE("Use lazily initialized globals instead")
+void
+dispatch_once_f(dispatch_once_t *predicate, void *_Nullable context,
+		dispatch_function_t function);
+
+#if DISPATCH_ONCE_INLINE_FASTPATH
+DISPATCH_INLINE DISPATCH_ALWAYS_INLINE DISPATCH_NONNULL1 DISPATCH_NONNULL3
+DISPATCH_NOTHROW
+DISPATCH_SWIFT3_UNAVAILABLE("Use lazily initialized globals instead")
+void
+_dispatch_once_f(dispatch_once_t *predicate, void *_Nullable context,
+		dispatch_function_t function)
+{
+	if (DISPATCH_EXPECT(*predicate, ~0l) != ~0l) {
+		dispatch_once_f(predicate, context, function);
+	} else {
+		dispatch_compiler_barrier();
+	}
+	DISPATCH_COMPILER_CAN_ASSUME(*predicate == ~0l);
+}
+#undef dispatch_once_f
+#define dispatch_once_f _dispatch_once_f
+#endif // DISPATCH_ONCE_INLINE_FASTPATH
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/queue.h b/lib/libc/include/any-macos.13-any/dispatch/queue.h
new file mode 100644
index 0000000000000000000000000000000000000000..6816514dd61d8959662b97503cb4504741ea1393
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/queue.h
@@ -0,0 +1,1683 @@
+/*
+ * Copyright (c) 2008-2014 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_QUEUE__
+#define __DISPATCH_QUEUE__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @header
+ *
+ * Dispatch is an abstract model for expressing concurrency via simple but
+ * powerful API.
+ *
+ * At the core, dispatch provides serial FIFO queues to which blocks may be
+ * submitted. Blocks submitted to these dispatch queues are invoked on a pool
+ * of threads fully managed by the system. No guarantee is made regarding
+ * which thread a block will be invoked on; however, it is guaranteed that only
+ * one block submitted to the FIFO dispatch queue will be invoked at a time.
+ *
+ * When multiple queues have blocks to be processed, the system is free to
+ * allocate additional threads to invoke the blocks concurrently. When the
+ * queues become empty, these threads are automatically released.
+ */
+
+/*!
+ * @typedef dispatch_queue_t
+ *
+ * @abstract
+ * Dispatch queues invoke workitems submitted to them.
+ *
+ * @discussion
+ * Dispatch queues come in many flavors, the most common one being the dispatch
+ * serial queue (See dispatch_queue_serial_t).
+ *
+ * The system manages a pool of threads which process dispatch queues and invoke
+ * workitems submitted to them.
+ *
+ * Conceptually a dispatch queue may have its own thread of execution, and
+ * interaction between queues is highly asynchronous.
+ *
+ * Dispatch queues are reference counted via calls to dispatch_retain() and
+ * dispatch_release(). Pending workitems submitted to a queue also hold a
+ * reference to the queue until they have finished. Once all references to a
+ * queue have been released, the queue will be deallocated by the system.
+ */
+DISPATCH_DECL(dispatch_queue);
+
+/*!
+ * @typedef dispatch_queue_global_t
+ *
+ * @abstract
+ * Dispatch global concurrent queues are an abstraction around the system thread
+ * pool which invokes workitems that are submitted to dispatch queues.
+ *
+ * @discussion
+ * Dispatch global concurrent queues provide buckets of priorities on top of the
+ * thread pool the system manages. The system will decide how many threads
+ * to allocate to this pool depending on demand and system load. In particular,
+ * the system tries to maintain a good level of concurrency for this resource,
+ * and will create new threads when too many existing worker threads block in
+ * system calls.
+ *
+ * The global concurrent queues are a shared resource and as such it is the
+ * responsiblity of every user of this resource to not submit an unbounded
+ * amount of work to this pool, especially work that may block, as this can
+ * cause the system to spawn very large numbers of threads (aka. thread
+ * explosion).
+ *
+ * Work items submitted to the global concurrent queues have no ordering
+ * guarantee with respect to the order of submission, and workitems submitted
+ * to these queues may be invoked concurrently.
+ *
+ * Dispatch global concurrent queues are well-known global objects that are
+ * returned by dispatch_get_global_queue(). These objects cannot be modified.
+ * Calls to dispatch_suspend(), dispatch_resume(), dispatch_set_context(), etc.,
+ * will have no effect when used with queues of this type.
+ */
+DISPATCH_DECL_SUBCLASS(dispatch_queue_global, dispatch_queue);
+
+/*!
+ * @typedef dispatch_queue_serial_t
+ *
+ * @abstract
+ * Dispatch serial queues invoke workitems submitted to them serially in FIFO
+ * order.
+ *
+ * @discussion
+ * Dispatch serial queues are lightweight objects to which workitems may be
+ * submitted to be invoked in FIFO order. A serial queue will only invoke one
+ * workitem at a time, but independent serial queues may each invoke their work
+ * items concurrently with respect to each other.
+ *
+ * Serial queues can target each other (See dispatch_set_target_queue()). The
+ * serial queue at the bottom of a queue hierarchy provides an exclusion
+ * context: at most one workitem submitted to any of the queues in such
+ * a hiearchy will run at any given time.
+ *
+ * Such hierarchies provide a natural construct to organize an application
+ * subsystem around.
+ *
+ * Serial queues are created by passing a dispatch queue attribute derived from
+ * DISPATCH_QUEUE_SERIAL to dispatch_queue_create_with_target().
+ */
+DISPATCH_DECL_SUBCLASS(dispatch_queue_serial, dispatch_queue);
+
+/*!
+ * @typedef dispatch_queue_main_t
+ *
+ * @abstract
+ * The type of the default queue that is bound to the main thread.
+ *
+ * @discussion
+ * The main queue is a serial queue (See dispatch_queue_serial_t) which is bound
+ * to the main thread of an application.
+ *
+ * In order to invoke workitems submitted to the main queue, the application
+ * must call dispatch_main(), NSApplicationMain(), or use a CFRunLoop on the
+ * main thread.
+ *
+ * The main queue is a well known global object that is made automatically on
+ * behalf of the main thread during process initialization and is returned by
+ * dispatch_get_main_queue(). This object cannot be modified.  Calls to
+ * dispatch_suspend(), dispatch_resume(), dispatch_set_context(), etc., will
+ * have no effect when used on the main queue.
+ */
+DISPATCH_DECL_SUBCLASS(dispatch_queue_main, dispatch_queue_serial);
+
+/*!
+ * @typedef dispatch_queue_concurrent_t
+ *
+ * @abstract
+ * Dispatch concurrent queues invoke workitems submitted to them concurrently,
+ * and admit a notion of barrier workitems.
+ *
+ * @discussion
+ * Dispatch concurrent queues are lightweight objects to which regular and
+ * barrier workitems may be submited. Barrier workitems are invoked in
+ * exclusion of any other kind of workitem in FIFO order.
+ *
+ * Regular workitems can be invoked concurrently for the same concurrent queue,
+ * in any order. However, regular workitems will not be invoked before any
+ * barrier workitem submited ahead of them has been invoked.
+ *
+ * In other words, if a serial queue is equivalent to a mutex in the Dispatch
+ * world, a concurrent queue is equivalent to a reader-writer lock, where
+ * regular items are readers and barriers are writers.
+ *
+ * Concurrent queues are created by passing a dispatch queue attribute derived
+ * from DISPATCH_QUEUE_CONCURRENT to dispatch_queue_create_with_target().
+ *
+ * Caveat:
+ * Dispatch concurrent queues at this time do not implement priority inversion
+ * avoidance when lower priority regular workitems (readers) are being invoked
+ * and are preventing a higher priority barrier (writer) from being invoked.
+ */
+DISPATCH_DECL_SUBCLASS(dispatch_queue_concurrent, dispatch_queue);
+
+__BEGIN_DECLS
+
+/*!
+ * @function dispatch_async
+ *
+ * @abstract
+ * Submits a block for asynchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * The dispatch_async() function is the fundamental mechanism for submitting
+ * blocks to a dispatch queue.
+ *
+ * Calls to dispatch_async() always return immediately after the block has
+ * been submitted, and never wait for the block to be invoked.
+ *
+ * The target queue determines whether the block will be invoked serially or
+ * concurrently with respect to other blocks submitted to that same queue.
+ * Serial queues are processed concurrently with respect to each other.
+ *
+ * @param queue
+ * The target dispatch queue to which the block is submitted.
+ * The system will hold a reference on the target queue until the block
+ * has finished.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param block
+ * The block to submit to the target dispatch queue. This function performs
+ * Block_copy() and Block_release() on behalf of callers.
+ * The result of passing NULL in this parameter is undefined.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
+#endif
+
+/*!
+ * @function dispatch_async_f
+ *
+ * @abstract
+ * Submits a function for asynchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * See dispatch_async() for details.
+ *
+ * @param queue
+ * The target dispatch queue to which the function is submitted.
+ * The system will hold a reference on the target queue until the function
+ * has returned.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_async_f().
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
+void
+dispatch_async_f(dispatch_queue_t queue,
+		void *_Nullable context, dispatch_function_t work);
+
+/*!
+ * @function dispatch_sync
+ *
+ * @abstract
+ * Submits a block for synchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * Submits a workitem to a dispatch queue like dispatch_async(), however
+ * dispatch_sync() will not return until the workitem has finished.
+ *
+ * Work items submitted to a queue with dispatch_sync() do not observe certain
+ * queue attributes of that queue when invoked (such as autorelease frequency
+ * and QOS class).
+ *
+ * Calls to dispatch_sync() targeting the current queue will result
+ * in dead-lock. Use of dispatch_sync() is also subject to the same
+ * multi-party dead-lock problems that may result from the use of a mutex.
+ * Use of dispatch_async() is preferred.
+ *
+ * Unlike dispatch_async(), no retain is performed on the target queue. Because
+ * calls to this function are synchronous, the dispatch_sync() "borrows" the
+ * reference of the caller.
+ *
+ * As an optimization, dispatch_sync() invokes the workitem on the thread which
+ * submitted the workitem, except when the passed queue is the main queue or
+ * a queue targetting it (See dispatch_queue_main_t,
+ * dispatch_set_target_queue()).
+ *
+ * @param queue
+ * The target dispatch queue to which the block is submitted.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param block
+ * The block to be invoked on the target dispatch queue.
+ * The result of passing NULL in this parameter is undefined.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_sync(dispatch_queue_t queue, DISPATCH_NOESCAPE dispatch_block_t block);
+#endif
+
+/*!
+ * @function dispatch_sync_f
+ *
+ * @abstract
+ * Submits a function for synchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * See dispatch_sync() for details.
+ *
+ * @param queue
+ * The target dispatch queue to which the function is submitted.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_sync_f().
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
+void
+dispatch_sync_f(dispatch_queue_t queue,
+		void *_Nullable context, dispatch_function_t work);
+
+/*!
+ * @function dispatch_async_and_wait
+ *
+ * @abstract
+ * Submits a block for synchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * Submits a workitem to a dispatch queue like dispatch_async(), however
+ * dispatch_async_and_wait() will not return until the workitem has finished.
+ *
+ * Like functions of the dispatch_sync family, dispatch_async_and_wait() is
+ * subject to dead-lock (See dispatch_sync() for details).
+ *
+ * However, dispatch_async_and_wait() differs from functions of the
+ * dispatch_sync family in two fundamental ways: how it respects queue
+ * attributes and how it chooses the execution context invoking the workitem.
+ *
+ * Differences with dispatch_sync()
+ *
+ * Work items submitted to a queue with dispatch_async_and_wait() observe all
+ * queue attributes of that queue when invoked (including autorelease frequency
+ * or QOS class).
+ *
+ * When the runtime has brought up a thread to invoke the asynchronous workitems
+ * already submitted to the specified queue, that servicing thread will also be
+ * used to execute synchronous work submitted to the queue with
+ * dispatch_async_and_wait().
+ *
+ * However, if the runtime has not brought up a thread to service the specified
+ * queue (because it has no workitems enqueued, or only synchronous workitems),
+ * then dispatch_async_and_wait() will invoke the workitem on the calling thread,
+ * similar to the behaviour of functions in the dispatch_sync family.
+ *
+ * As an exception, if the queue the work is submitted to doesn't target
+ * a global concurrent queue (for example because it targets the main queue),
+ * then the workitem will never be invoked by the thread calling
+ * dispatch_async_and_wait().
+ *
+ * In other words, dispatch_async_and_wait() is similar to submitting
+ * a dispatch_block_create()d workitem to a queue and then waiting on it, as
+ * shown in the code example below. However, dispatch_async_and_wait() is
+ * significantly more efficient when a new thread is not required to execute
+ * the workitem (as it will use the stack of the submitting thread instead of
+ * requiring heap allocations).
+ *
+ * 
+ *     dispatch_block_t b = dispatch_block_create(0, block);
+ *     dispatch_async(queue, b);
+ *     dispatch_block_wait(b, DISPATCH_TIME_FOREVER);
+ *     Block_release(b);
+ * 
+ *
+ * @param queue
+ * The target dispatch queue to which the block is submitted.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param block
+ * The block to be invoked on the target dispatch queue.
+ * The result of passing NULL in this parameter is undefined.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_async_and_wait(dispatch_queue_t queue,
+		DISPATCH_NOESCAPE dispatch_block_t block);
+#endif
+
+/*!
+ * @function dispatch_async_and_wait_f
+ *
+ * @abstract
+ * Submits a function for synchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * See dispatch_async_and_wait() for details.
+ *
+ * @param queue
+ * The target dispatch queue to which the function is submitted.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_async_and_wait_f().
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
+void
+dispatch_async_and_wait_f(dispatch_queue_t queue,
+		void *_Nullable context, dispatch_function_t work);
+
+
+#if defined(__APPLE__) && \
+		(defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && \
+		__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0) || \
+		(defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
+		__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_9)
+#define DISPATCH_APPLY_AUTO_AVAILABLE 0
+#define DISPATCH_APPLY_QUEUE_ARG_NULLABILITY _Nonnull
+#else
+#define DISPATCH_APPLY_AUTO_AVAILABLE 1
+#define DISPATCH_APPLY_QUEUE_ARG_NULLABILITY _Nullable
+#endif
+
+/*!
+ * @constant DISPATCH_APPLY_AUTO
+ *
+ * @abstract
+ * Constant to pass to dispatch_apply() or dispatch_apply_f() to request that
+ * the system automatically use worker threads that match the configuration of
+ * the current thread as closely as possible.
+ *
+ * @discussion
+ * When submitting a block for parallel invocation, passing this constant as the
+ * queue argument will automatically use the global concurrent queue that
+ * matches the Quality of Service of the caller most closely.
+ *
+ * No assumptions should be made about which global concurrent queue will
+ * actually be used.
+ *
+ * Using this constant deploys backward to macOS 10.9, iOS 7.0 and any tvOS or
+ * watchOS version.
+ */
+#if DISPATCH_APPLY_AUTO_AVAILABLE
+#define DISPATCH_APPLY_AUTO ((dispatch_queue_t _Nonnull)0)
+#endif
+
+/*!
+ * @function dispatch_apply
+ *
+ * @abstract
+ * Submits a block to a dispatch queue for parallel invocation.
+ *
+ * @discussion
+ * Submits a block to a dispatch queue for parallel invocation. This function
+ * waits for the task block to complete before returning. If the specified queue
+ * is concurrent, the block may be invoked concurrently, and it must therefore
+ * be reentrant safe.
+ *
+ * Each invocation of the block will be passed the current index of iteration.
+ *
+ * @param iterations
+ * The number of iterations to perform.
+ *
+ * @param queue
+ * The dispatch queue to which the block is submitted.
+ * The preferred value to pass is DISPATCH_APPLY_AUTO to automatically use
+ * a queue appropriate for the calling thread.
+ *
+ * @param block
+ * The block to be invoked the specified number of iterations.
+ * The result of passing NULL in this parameter is undefined.
+ * This function performs a Block_copy() and Block_release() of the input block
+ * on behalf of the callers. To elide the additional block allocation,
+ * dispatch_apply_f may be used instead.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL3 DISPATCH_NOTHROW
+void
+dispatch_apply(size_t iterations,
+		dispatch_queue_t DISPATCH_APPLY_QUEUE_ARG_NULLABILITY queue,
+		DISPATCH_NOESCAPE void (^block)(size_t iteration));
+#endif
+
+/*!
+ * @function dispatch_apply_f
+ *
+ * @abstract
+ * Submits a function to a dispatch queue for parallel invocation.
+ *
+ * @discussion
+ * See dispatch_apply() for details.
+ *
+ * @param iterations
+ * The number of iterations to perform.
+ *
+ * @param queue
+ * The dispatch queue to which the function is submitted.
+ * The preferred value to pass is DISPATCH_APPLY_AUTO to automatically use
+ * a queue appropriate for the calling thread.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the specified queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_apply_f(). The second parameter passed to this function is the
+ * current index of iteration.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL4 DISPATCH_NOTHROW
+void
+dispatch_apply_f(size_t iterations,
+		dispatch_queue_t DISPATCH_APPLY_QUEUE_ARG_NULLABILITY queue,
+		void *_Nullable context, void (*work)(void *_Nullable context, size_t iteration));
+
+/*!
+ * @function dispatch_get_current_queue
+ *
+ * @abstract
+ * Returns the queue on which the currently executing block is running.
+ *
+ * @discussion
+ * Returns the queue on which the currently executing block is running.
+ *
+ * When dispatch_get_current_queue() is called outside of the context of a
+ * submitted block, it will return the default concurrent queue.
+ *
+ * Recommended for debugging and logging purposes only:
+ * The code must not make any assumptions about the queue returned, unless it
+ * is one of the global queues or a queue the code has itself created.
+ * The code must not assume that synchronous execution onto a queue is safe
+ * from deadlock if that queue is not the one returned by
+ * dispatch_get_current_queue().
+ *
+ * When dispatch_get_current_queue() is called on the main thread, it may
+ * or may not return the same value as dispatch_get_main_queue(). Comparing
+ * the two is not a valid way to test whether code is executing on the
+ * main thread (see dispatch_assert_queue() and dispatch_assert_queue_not()).
+ *
+ * This function is deprecated and will be removed in a future release.
+ *
+ * @result
+ * Returns the current queue.
+ */
+API_DEPRECATED("unsupported interface", macos(10.6,10.9), ios(4.0,6.0))
+DISPATCH_EXPORT DISPATCH_PURE DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_queue_t
+dispatch_get_current_queue(void);
+
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT
+struct dispatch_queue_s _dispatch_main_q;
+
+/*!
+ * @function dispatch_get_main_queue
+ *
+ * @abstract
+ * Returns the default queue that is bound to the main thread.
+ *
+ * @discussion
+ * In order to invoke blocks submitted to the main queue, the application must
+ * call dispatch_main(), NSApplicationMain(), or use a CFRunLoop on the main
+ * thread.
+ *
+ * The main queue is meant to be used in application context to interact with
+ * the main thread and the main runloop.
+ *
+ * Because the main queue doesn't behave entirely like a regular serial queue,
+ * it may have unwanted side-effects when used in processes that are not UI apps
+ * (daemons). For such processes, the main queue should be avoided.
+ *
+ * @see dispatch_queue_main_t
+ *
+ * @result
+ * Returns the main queue. This queue is created automatically on behalf of
+ * the main thread before main() is called.
+ */
+DISPATCH_INLINE DISPATCH_ALWAYS_INLINE DISPATCH_CONST DISPATCH_NOTHROW
+dispatch_queue_main_t
+dispatch_get_main_queue(void)
+{
+	return DISPATCH_GLOBAL_OBJECT(dispatch_queue_main_t, _dispatch_main_q);
+}
+
+/*!
+ * @typedef dispatch_queue_priority_t
+ * Type of dispatch_queue_priority
+ *
+ * @constant DISPATCH_QUEUE_PRIORITY_HIGH
+ * Items dispatched to the queue will run at high priority,
+ * i.e. the queue will be scheduled for execution before
+ * any default priority or low priority queue.
+ *
+ * @constant DISPATCH_QUEUE_PRIORITY_DEFAULT
+ * Items dispatched to the queue will run at the default
+ * priority, i.e. the queue will be scheduled for execution
+ * after all high priority queues have been scheduled, but
+ * before any low priority queues have been scheduled.
+ *
+ * @constant DISPATCH_QUEUE_PRIORITY_LOW
+ * Items dispatched to the queue will run at low priority,
+ * i.e. the queue will be scheduled for execution after all
+ * default priority and high priority queues have been
+ * scheduled.
+ *
+ * @constant DISPATCH_QUEUE_PRIORITY_BACKGROUND
+ * Items dispatched to the queue will run at background priority, i.e. the queue
+ * will be scheduled for execution after all higher priority queues have been
+ * scheduled and the system will run items on this queue on a thread with
+ * background status as per setpriority(2) (i.e. disk I/O is throttled and the
+ * thread's scheduling priority is set to lowest value).
+ */
+#define DISPATCH_QUEUE_PRIORITY_HIGH 2
+#define DISPATCH_QUEUE_PRIORITY_DEFAULT 0
+#define DISPATCH_QUEUE_PRIORITY_LOW (-2)
+#define DISPATCH_QUEUE_PRIORITY_BACKGROUND INT16_MIN
+
+typedef long dispatch_queue_priority_t;
+
+/*!
+ * @function dispatch_get_global_queue
+ *
+ * @abstract
+ * Returns a well-known global concurrent queue of a given quality of service
+ * class.
+ *
+ * @discussion
+ * See dispatch_queue_global_t.
+ *
+ * @param identifier
+ * A quality of service class defined in qos_class_t or a priority defined in
+ * dispatch_queue_priority_t.
+ *
+ * It is recommended to use quality of service class values to identify the
+ * well-known global concurrent queues:
+ *  - QOS_CLASS_USER_INTERACTIVE
+ *  - QOS_CLASS_USER_INITIATED
+ *  - QOS_CLASS_DEFAULT
+ *  - QOS_CLASS_UTILITY
+ *  - QOS_CLASS_BACKGROUND
+ *
+ * The global concurrent queues may still be identified by their priority,
+ * which map to the following QOS classes:
+ *  - DISPATCH_QUEUE_PRIORITY_HIGH:         QOS_CLASS_USER_INITIATED
+ *  - DISPATCH_QUEUE_PRIORITY_DEFAULT:      QOS_CLASS_DEFAULT
+ *  - DISPATCH_QUEUE_PRIORITY_LOW:          QOS_CLASS_UTILITY
+ *  - DISPATCH_QUEUE_PRIORITY_BACKGROUND:   QOS_CLASS_BACKGROUND
+ *
+ * @param flags
+ * Reserved for future use. Passing any value other than zero may result in
+ * a NULL return value.
+ *
+ * @result
+ * Returns the requested global queue or NULL if the requested global queue
+ * does not exist.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_CONST DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_queue_global_t
+dispatch_get_global_queue(intptr_t identifier, uintptr_t flags);
+
+/*!
+ * @typedef dispatch_queue_attr_t
+ *
+ * @abstract
+ * Attribute for dispatch queues.
+ */
+DISPATCH_DECL(dispatch_queue_attr);
+
+/*!
+ * @const DISPATCH_QUEUE_SERIAL
+ *
+ * @discussion
+ * An attribute that can be used to create a dispatch queue that invokes blocks
+ * serially in FIFO order.
+ *
+ * See dispatch_queue_serial_t.
+ */
+#define DISPATCH_QUEUE_SERIAL NULL
+
+/*!
+ * @const DISPATCH_QUEUE_SERIAL_INACTIVE
+ *
+ * @discussion
+ * An attribute that can be used to create a dispatch queue that invokes blocks
+ * serially in FIFO order, and that is initially inactive.
+ *
+ * See dispatch_queue_attr_make_initially_inactive().
+ */
+#define DISPATCH_QUEUE_SERIAL_INACTIVE \
+		dispatch_queue_attr_make_initially_inactive(DISPATCH_QUEUE_SERIAL)
+
+/*!
+ * @const DISPATCH_QUEUE_CONCURRENT
+ *
+ * @discussion
+ * An attribute that can be used to create a dispatch queue that may invoke
+ * blocks concurrently and supports barrier blocks submitted with the dispatch
+ * barrier API.
+ *
+ * See dispatch_queue_concurrent_t.
+ */
+#define DISPATCH_QUEUE_CONCURRENT \
+		DISPATCH_GLOBAL_OBJECT(dispatch_queue_attr_t, \
+		_dispatch_queue_attr_concurrent)
+API_AVAILABLE(macos(10.7), ios(4.3))
+DISPATCH_EXPORT
+struct dispatch_queue_attr_s _dispatch_queue_attr_concurrent;
+
+/*!
+ * @const DISPATCH_QUEUE_CONCURRENT_INACTIVE
+ *
+ * @discussion
+ * An attribute that can be used to create a dispatch queue that may invoke
+ * blocks concurrently and supports barrier blocks submitted with the dispatch
+ * barrier API, and that is initially inactive.
+ *
+ * See dispatch_queue_attr_make_initially_inactive().
+ */
+#define DISPATCH_QUEUE_CONCURRENT_INACTIVE \
+		dispatch_queue_attr_make_initially_inactive(DISPATCH_QUEUE_CONCURRENT)
+
+/*!
+ * @function dispatch_queue_attr_make_initially_inactive
+ *
+ * @abstract
+ * Returns an attribute value which may be provided to dispatch_queue_create()
+ * or dispatch_queue_create_with_target(), in order to make the created queue
+ * initially inactive.
+ *
+ * @discussion
+ * Dispatch queues may be created in an inactive state. Queues in this state
+ * have to be activated before any blocks associated with them will be invoked.
+ *
+ * A queue in inactive state cannot be deallocated, dispatch_activate() must be
+ * called before the last reference to a queue created with this attribute is
+ * released.
+ *
+ * The target queue of a queue in inactive state can be changed using
+ * dispatch_set_target_queue(). Change of target queue is no longer permitted
+ * once an initially inactive queue has been activated.
+ *
+ * @param attr
+ * A queue attribute value to be combined with the initially inactive attribute.
+ *
+ * @return
+ * Returns an attribute value which may be provided to dispatch_queue_create()
+ * and dispatch_queue_create_with_target().
+ * The new value combines the attributes specified by the 'attr' parameter with
+ * the initially inactive attribute.
+ */
+API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
+DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_PURE DISPATCH_NOTHROW
+dispatch_queue_attr_t
+dispatch_queue_attr_make_initially_inactive(
+		dispatch_queue_attr_t _Nullable attr);
+
+/*!
+ * @const DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL
+ *
+ * @discussion
+ * A dispatch queue created with this attribute invokes blocks serially in FIFO
+ * order, and surrounds execution of any block submitted asynchronously to it
+ * with the equivalent of a individual Objective-C @autoreleasepool
+ * scope.
+ *
+ * See dispatch_queue_attr_make_with_autorelease_frequency().
+ */
+#define DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL \
+		dispatch_queue_attr_make_with_autorelease_frequency(\
+				DISPATCH_QUEUE_SERIAL, DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM)
+
+/*!
+ * @const DISPATCH_QUEUE_CONCURRENT_WITH_AUTORELEASE_POOL
+ *
+ * @discussion
+ * A dispatch queue created with this attribute may invokes blocks concurrently
+ * and supports barrier blocks submitted with the dispatch barrier API. It also
+ * surrounds execution of any block submitted asynchronously to it with the
+ * equivalent of a individual Objective-C @autoreleasepool
+ *
+ * See dispatch_queue_attr_make_with_autorelease_frequency().
+ */
+#define DISPATCH_QUEUE_CONCURRENT_WITH_AUTORELEASE_POOL \
+		dispatch_queue_attr_make_with_autorelease_frequency(\
+				DISPATCH_QUEUE_CONCURRENT, DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM)
+
+/*!
+ * @typedef dispatch_autorelease_frequency_t
+ * Values to pass to the dispatch_queue_attr_make_with_autorelease_frequency()
+ * function.
+ *
+ * @const DISPATCH_AUTORELEASE_FREQUENCY_INHERIT
+ * Dispatch queues with this autorelease frequency inherit the behavior from
+ * their target queue. This is the default behavior for manually created queues.
+ *
+ * @const DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM
+ * Dispatch queues with this autorelease frequency push and pop an autorelease
+ * pool around the execution of every block that was submitted to it
+ * asynchronously.
+ * @see dispatch_queue_attr_make_with_autorelease_frequency().
+ *
+ * @const DISPATCH_AUTORELEASE_FREQUENCY_NEVER
+ * Dispatch queues with this autorelease frequency never set up an individual
+ * autorelease pool around the execution of a block that is submitted to it
+ * asynchronously. This is the behavior of the global concurrent queues.
+ */
+DISPATCH_ENUM(dispatch_autorelease_frequency, unsigned long,
+	DISPATCH_AUTORELEASE_FREQUENCY_INHERIT DISPATCH_ENUM_API_AVAILABLE(
+			macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) = 0,
+	DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM DISPATCH_ENUM_API_AVAILABLE(
+			macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) = 1,
+	DISPATCH_AUTORELEASE_FREQUENCY_NEVER DISPATCH_ENUM_API_AVAILABLE(
+			macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) = 2,
+);
+
+/*!
+ * @function dispatch_queue_attr_make_with_autorelease_frequency
+ *
+ * @abstract
+ * Returns a dispatch queue attribute value with the autorelease frequency
+ * set to the specified value.
+ *
+ * @discussion
+ * When a queue uses the per-workitem autorelease frequency (either directly
+ * or inherithed from its target queue), any block submitted asynchronously to
+ * this queue (via dispatch_async(), dispatch_barrier_async(),
+ * dispatch_group_notify(), etc...) is executed as if surrounded by a individual
+ * Objective-C @autoreleasepool scope.
+ *
+ * Autorelease frequency has no effect on blocks that are submitted
+ * synchronously to a queue (via dispatch_sync(), dispatch_barrier_sync()).
+ *
+ * The global concurrent queues have the DISPATCH_AUTORELEASE_FREQUENCY_NEVER
+ * behavior. Manually created dispatch queues use
+ * DISPATCH_AUTORELEASE_FREQUENCY_INHERIT by default.
+ *
+ * Queues created with this attribute cannot change target queues after having
+ * been activated. See dispatch_set_target_queue() and dispatch_activate().
+ *
+ * @param attr
+ * A queue attribute value to be combined with the specified autorelease
+ * frequency or NULL.
+ *
+ * @param frequency
+ * The requested autorelease frequency.
+ *
+ * @return
+ * Returns an attribute value which may be provided to dispatch_queue_create()
+ * or NULL if an invalid autorelease frequency was requested.
+ * This new value combines the attributes specified by the 'attr' parameter and
+ * the chosen autorelease frequency.
+ */
+API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
+DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_PURE DISPATCH_NOTHROW
+dispatch_queue_attr_t
+dispatch_queue_attr_make_with_autorelease_frequency(
+		dispatch_queue_attr_t _Nullable attr,
+		dispatch_autorelease_frequency_t frequency);
+
+/*!
+ * @function dispatch_queue_attr_make_with_qos_class
+ *
+ * @abstract
+ * Returns an attribute value which may be provided to dispatch_queue_create()
+ * or dispatch_queue_create_with_target(), in order to assign a QOS class and
+ * relative priority to the queue.
+ *
+ * @discussion
+ * When specified in this manner, the QOS class and relative priority take
+ * precedence over those inherited from the dispatch queue's target queue (if
+ * any) as long that does not result in a lower QOS class and relative priority.
+ *
+ * The global queue priorities map to the following QOS classes:
+ *  - DISPATCH_QUEUE_PRIORITY_HIGH:         QOS_CLASS_USER_INITIATED
+ *  - DISPATCH_QUEUE_PRIORITY_DEFAULT:      QOS_CLASS_DEFAULT
+ *  - DISPATCH_QUEUE_PRIORITY_LOW:          QOS_CLASS_UTILITY
+ *  - DISPATCH_QUEUE_PRIORITY_BACKGROUND:   QOS_CLASS_BACKGROUND
+ *
+ * Example:
+ * 
+ *	dispatch_queue_t queue;
+ *	dispatch_queue_attr_t attr;
+ *	attr = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL,
+ *			QOS_CLASS_UTILITY, 0);
+ *	queue = dispatch_queue_create("com.example.myqueue", attr);
+ * 
+ *
+ * The QOS class and relative priority set this way on a queue have no effect on
+ * blocks that are submitted synchronously to a queue (via dispatch_sync(),
+ * dispatch_barrier_sync()).
+ *
+ * @param attr
+ * A queue attribute value to be combined with the QOS class, or NULL.
+ *
+ * @param qos_class
+ * A QOS class value:
+ *  - QOS_CLASS_USER_INTERACTIVE
+ *  - QOS_CLASS_USER_INITIATED
+ *  - QOS_CLASS_DEFAULT
+ *  - QOS_CLASS_UTILITY
+ *  - QOS_CLASS_BACKGROUND
+ * Passing any other value results in NULL being returned.
+ *
+ * @param relative_priority
+ * A relative priority within the QOS class. This value is a negative
+ * offset from the maximum supported scheduler priority for the given class.
+ * Passing a value greater than zero or less than QOS_MIN_RELATIVE_PRIORITY
+ * results in NULL being returned.
+ *
+ * @return
+ * Returns an attribute value which may be provided to dispatch_queue_create()
+ * and dispatch_queue_create_with_target(), or NULL if an invalid QOS class was
+ * requested.
+ * The new value combines the attributes specified by the 'attr' parameter and
+ * the new QOS class and relative priority.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_PURE DISPATCH_NOTHROW
+dispatch_queue_attr_t
+dispatch_queue_attr_make_with_qos_class(dispatch_queue_attr_t _Nullable attr,
+		dispatch_qos_class_t qos_class, int relative_priority);
+
+/*!
+ * @const DISPATCH_TARGET_QUEUE_DEFAULT
+ * @discussion Constant to pass to the dispatch_queue_create_with_target(),
+ * dispatch_set_target_queue() and dispatch_source_create() functions to
+ * indicate that the default target queue for the object type in question
+ * should be used.
+ */
+#define DISPATCH_TARGET_QUEUE_DEFAULT NULL
+
+/*!
+ * @function dispatch_queue_create_with_target
+ *
+ * @abstract
+ * Creates a new dispatch queue with a specified target queue.
+ *
+ * @discussion
+ * Dispatch queues created with the DISPATCH_QUEUE_SERIAL or a NULL attribute
+ * invoke blocks serially in FIFO order.
+ *
+ * Dispatch queues created with the DISPATCH_QUEUE_CONCURRENT attribute may
+ * invoke blocks concurrently (similarly to the global concurrent queues, but
+ * potentially with more overhead), and support barrier blocks submitted with
+ * the dispatch barrier API, which e.g. enables the implementation of efficient
+ * reader-writer schemes.
+ *
+ * When a dispatch queue is no longer needed, it should be released with
+ * dispatch_release(). Note that any pending blocks submitted asynchronously to
+ * a queue will hold a reference to that queue. Therefore a queue will not be
+ * deallocated until all pending blocks have finished.
+ *
+ * When using a dispatch queue attribute @a attr specifying a QoS class (derived
+ * from the result of dispatch_queue_attr_make_with_qos_class()), passing the
+ * result of dispatch_get_global_queue() in @a target will ignore the QoS class
+ * of that global queue and will use the global queue with the QoS class
+ * specified by attr instead.
+ *
+ * Queues created with dispatch_queue_create_with_target() cannot have their
+ * target queue changed, unless created inactive (See
+ * dispatch_queue_attr_make_initially_inactive()), in which case the target
+ * queue can be changed until the newly created queue is activated with
+ * dispatch_activate().
+ *
+ * @param label
+ * A string label to attach to the queue.
+ * This parameter is optional and may be NULL.
+ *
+ * @param attr
+ * A predefined attribute such as DISPATCH_QUEUE_SERIAL,
+ * DISPATCH_QUEUE_CONCURRENT, or the result of a call to
+ * a dispatch_queue_attr_make_with_* function.
+ *
+ * @param target
+ * The target queue for the newly created queue. The target queue is retained.
+ * If this parameter is DISPATCH_TARGET_QUEUE_DEFAULT, sets the queue's target
+ * queue to the default target queue for the given queue type.
+ *
+ * @result
+ * The newly created dispatch queue.
+ */
+API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
+DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+dispatch_queue_t
+dispatch_queue_create_with_target(const char *_Nullable DISPATCH_UNSAFE_INDEXABLE label,
+		dispatch_queue_attr_t _Nullable attr, dispatch_queue_t _Nullable target)
+		DISPATCH_ALIAS_V2(dispatch_queue_create_with_target);
+
+/*!
+ * @function dispatch_queue_create
+ *
+ * @abstract
+ * Creates a new dispatch queue to which blocks may be submitted.
+ *
+ * @discussion
+ * Dispatch queues created with the DISPATCH_QUEUE_SERIAL or a NULL attribute
+ * invoke blocks serially in FIFO order.
+ *
+ * Dispatch queues created with the DISPATCH_QUEUE_CONCURRENT attribute may
+ * invoke blocks concurrently (similarly to the global concurrent queues, but
+ * potentially with more overhead), and support barrier blocks submitted with
+ * the dispatch barrier API, which e.g. enables the implementation of efficient
+ * reader-writer schemes.
+ *
+ * When a dispatch queue is no longer needed, it should be released with
+ * dispatch_release(). Note that any pending blocks submitted asynchronously to
+ * a queue will hold a reference to that queue. Therefore a queue will not be
+ * deallocated until all pending blocks have finished.
+ *
+ * Passing the result of the dispatch_queue_attr_make_with_qos_class() function
+ * to the attr parameter of this function allows a quality of service class and
+ * relative priority to be specified for the newly created queue.
+ * The quality of service class so specified takes precedence over the quality
+ * of service class of the newly created dispatch queue's target queue (if any)
+ * as long that does not result in a lower QOS class and relative priority.
+ *
+ * When no quality of service class is specified, the target queue of a newly
+ * created dispatch queue is the default priority global concurrent queue.
+ *
+ * Unless explicitly specified via the attribute, queues are created active.
+ *
+ * @param label
+ * A string label to attach to the queue.
+ * This parameter is optional and may be NULL.
+ *
+ * @param attr
+ * A predefined attribute such as DISPATCH_QUEUE_SERIAL,
+ * DISPATCH_QUEUE_CONCURRENT, or the result of a call to
+ * a dispatch_queue_attr_make_with_* function.
+ *
+ * @result
+ * The newly created dispatch queue.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+dispatch_queue_t
+dispatch_queue_create(const char *_Nullable DISPATCH_UNSAFE_INDEXABLE label,
+		dispatch_queue_attr_t _Nullable attr);
+
+/*!
+ * @const DISPATCH_CURRENT_QUEUE_LABEL
+ * @discussion Constant to pass to the dispatch_queue_get_label() function to
+ * retrieve the label of the current queue.
+ */
+#define DISPATCH_CURRENT_QUEUE_LABEL NULL
+
+/*!
+ * @function dispatch_queue_get_label
+ *
+ * @abstract
+ * Returns the label of the given queue, as specified when the queue was
+ * created, or the empty string if a NULL label was specified.
+ *
+ * Passing DISPATCH_CURRENT_QUEUE_LABEL will return the label of the current
+ * queue.
+ *
+ * @param queue
+ * The queue to query, or DISPATCH_CURRENT_QUEUE_LABEL.
+ *
+ * @result
+ * The label of the queue.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_PURE DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+const char *
+dispatch_queue_get_label(dispatch_queue_t _Nullable queue);
+
+/*!
+ * @function dispatch_queue_get_qos_class
+ *
+ * @abstract
+ * Returns the QOS class and relative priority of the given queue.
+ *
+ * @discussion
+ * If the given queue was created with an attribute value returned from
+ * dispatch_queue_attr_make_with_qos_class(), this function returns the QOS
+ * class and relative priority specified at that time; for any other attribute
+ * value it returns a QOS class of QOS_CLASS_UNSPECIFIED and a relative
+ * priority of 0.
+ *
+ * If the given queue is one of the global queues, this function returns its
+ * assigned QOS class value as documented under dispatch_get_global_queue() and
+ * a relative priority of 0; in the case of the main queue it returns the QOS
+ * value provided by qos_class_main() and a relative priority of 0.
+ *
+ * @param queue
+ * The queue to query.
+ *
+ * @param relative_priority_ptr
+ * A pointer to an int variable to be filled with the relative priority offset
+ * within the QOS class, or NULL.
+ *
+ * @return
+ * A QOS class value:
+ *	- QOS_CLASS_USER_INTERACTIVE
+ *	- QOS_CLASS_USER_INITIATED
+ *	- QOS_CLASS_DEFAULT
+ *	- QOS_CLASS_UTILITY
+ *	- QOS_CLASS_BACKGROUND
+ *	- QOS_CLASS_UNSPECIFIED
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+dispatch_qos_class_t
+dispatch_queue_get_qos_class(dispatch_queue_t queue,
+		int *_Nullable relative_priority_ptr);
+
+/*!
+ * @function dispatch_set_target_queue
+ *
+ * @abstract
+ * Sets the target queue for the given object.
+ *
+ * @discussion
+ * An object's target queue is responsible for processing the object.
+ *
+ * When no quality of service class and relative priority is specified for a
+ * dispatch queue at the time of creation, a dispatch queue's quality of service
+ * class is inherited from its target queue. The dispatch_get_global_queue()
+ * function may be used to obtain a target queue of a specific quality of
+ * service class, however the use of dispatch_queue_attr_make_with_qos_class()
+ * is recommended instead.
+ *
+ * Blocks submitted to a serial queue whose target queue is another serial
+ * queue will not be invoked concurrently with blocks submitted to the target
+ * queue or to any other queue with that same target queue.
+ *
+ * The result of introducing a cycle into the hierarchy of target queues is
+ * undefined.
+ *
+ * A dispatch source's target queue specifies where its event handler and
+ * cancellation handler blocks will be submitted.
+ *
+ * A dispatch I/O channel's target queue specifies where where its I/O
+ * operations are executed. If the channel's target queue's priority is set to
+ * DISPATCH_QUEUE_PRIORITY_BACKGROUND, then the I/O operations performed by
+ * dispatch_io_read() or dispatch_io_write() on that queue will be
+ * throttled when there is I/O contention.
+ *
+ * For all other dispatch object types, the only function of the target queue
+ * is to determine where an object's finalizer function is invoked.
+ *
+ * In general, changing the target queue of an object is an asynchronous
+ * operation that doesn't take effect immediately, and doesn't affect blocks
+ * already associated with the specified object.
+ *
+ * However, if an object is inactive at the time dispatch_set_target_queue() is
+ * called, then the target queue change takes effect immediately, and will
+ * affect blocks already associated with the specified object. After an
+ * initially inactive object has been activated, calling
+ * dispatch_set_target_queue() results in an assertion and the process being
+ * terminated.
+ *
+ * If a dispatch queue is active and targeted by other dispatch objects,
+ * changing its target queue results in undefined behavior.  Instead, it is
+ * recommended to create dispatch objects in an inactive state, set up the
+ * relevant target queues and then activate them.
+ *
+ * @param object
+ * The object to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param queue
+ * The new target queue for the object. The queue is retained, and the
+ * previous target queue, if any, is released.
+ * If queue is DISPATCH_TARGET_QUEUE_DEFAULT, set the object's target queue
+ * to the default target queue for the given object type.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NOTHROW
+void
+dispatch_set_target_queue(dispatch_object_t object,
+		dispatch_queue_t _Nullable queue);
+
+/*!
+ * @function dispatch_main
+ *
+ * @abstract
+ * Execute blocks submitted to the main queue.
+ *
+ * @discussion
+ * This function "parks" the main thread and waits for blocks to be submitted
+ * to the main queue. This function never returns.
+ *
+ * Applications that call NSApplicationMain() or CFRunLoopRun() on the
+ * main thread do not need to call dispatch_main().
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NOTHROW DISPATCH_NORETURN
+void
+dispatch_main(void);
+
+/*!
+ * @function dispatch_after
+ *
+ * @abstract
+ * Schedule a block for execution on a given queue at a specified time.
+ *
+ * @discussion
+ * Passing DISPATCH_TIME_NOW as the "when" parameter is supported, but not as
+ * optimal as calling dispatch_async() instead. Passing DISPATCH_TIME_FOREVER
+ * is undefined.
+ *
+ * @param when
+ * A temporal milestone returned by dispatch_time() or dispatch_walltime().
+ *
+ * @param queue
+ * A queue to which the given block will be submitted at the specified time.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param block
+ * The block of code to execute.
+ * The result of passing NULL in this parameter is undefined.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NONNULL3 DISPATCH_NOTHROW
+void
+dispatch_after(dispatch_time_t when, dispatch_queue_t queue,
+		dispatch_block_t block);
+#endif
+
+/*!
+ * @function dispatch_after_f
+ *
+ * @abstract
+ * Schedule a function for execution on a given queue at a specified time.
+ *
+ * @discussion
+ * See dispatch_after() for details.
+ *
+ * @param when
+ * A temporal milestone returned by dispatch_time() or dispatch_walltime().
+ *
+ * @param queue
+ * A queue to which the given function will be submitted at the specified time.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_after_f().
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NONNULL4 DISPATCH_NOTHROW
+void
+dispatch_after_f(dispatch_time_t when, dispatch_queue_t queue,
+		void *_Nullable context, dispatch_function_t work);
+
+/*!
+ * @functiongroup Dispatch Barrier API
+ * The dispatch barrier API is a mechanism for submitting barrier blocks to a
+ * dispatch queue, analogous to the dispatch_async()/dispatch_sync() API.
+ * It enables the implementation of efficient reader/writer schemes.
+ * Barrier blocks only behave specially when submitted to queues created with
+ * the DISPATCH_QUEUE_CONCURRENT attribute; on such a queue, a barrier block
+ * will not run until all blocks submitted to the queue earlier have completed,
+ * and any blocks submitted to the queue after a barrier block will not run
+ * until the barrier block has completed.
+ * When submitted to a a global queue or to a queue not created with the
+ * DISPATCH_QUEUE_CONCURRENT attribute, barrier blocks behave identically to
+ * blocks submitted with the dispatch_async()/dispatch_sync() API.
+ */
+
+/*!
+ * @function dispatch_barrier_async
+ *
+ * @abstract
+ * Submits a barrier block for asynchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * Submits a block to a dispatch queue like dispatch_async(), but marks that
+ * block as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT queues).
+ *
+ * See dispatch_async() for details and "Dispatch Barrier API" for a description
+ * of the barrier semantics.
+ *
+ * @param queue
+ * The target dispatch queue to which the block is submitted.
+ * The system will hold a reference on the target queue until the block
+ * has finished.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param block
+ * The block to submit to the target dispatch queue. This function performs
+ * Block_copy() and Block_release() on behalf of callers.
+ * The result of passing NULL in this parameter is undefined.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.7), ios(4.3))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_barrier_async(dispatch_queue_t queue, dispatch_block_t block);
+#endif
+
+/*!
+ * @function dispatch_barrier_async_f
+ *
+ * @abstract
+ * Submits a barrier function for asynchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * Submits a function to a dispatch queue like dispatch_async_f(), but marks
+ * that function as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT
+ * queues).
+ *
+ * See dispatch_async_f() for details and "Dispatch Barrier API" for a
+ * description of the barrier semantics.
+ *
+ * @param queue
+ * The target dispatch queue to which the function is submitted.
+ * The system will hold a reference on the target queue until the function
+ * has returned.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_barrier_async_f().
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.7), ios(4.3))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
+void
+dispatch_barrier_async_f(dispatch_queue_t queue,
+		void *_Nullable context, dispatch_function_t work);
+
+/*!
+ * @function dispatch_barrier_sync
+ *
+ * @abstract
+ * Submits a barrier block for synchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * Submits a block to a dispatch queue like dispatch_sync(), but marks that
+ * block as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT queues).
+ *
+ * See dispatch_sync() for details and "Dispatch Barrier API" for a description
+ * of the barrier semantics.
+ *
+ * @param queue
+ * The target dispatch queue to which the block is submitted.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param block
+ * The block to be invoked on the target dispatch queue.
+ * The result of passing NULL in this parameter is undefined.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.7), ios(4.3))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_barrier_sync(dispatch_queue_t queue,
+		DISPATCH_NOESCAPE dispatch_block_t block);
+#endif
+
+/*!
+ * @function dispatch_barrier_sync_f
+ *
+ * @abstract
+ * Submits a barrier function for synchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * Submits a function to a dispatch queue like dispatch_sync_f(), but marks that
+ * fuction as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT queues).
+ *
+ * See dispatch_sync_f() for details.
+ *
+ * @param queue
+ * The target dispatch queue to which the function is submitted.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_barrier_sync_f().
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.7), ios(4.3))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
+void
+dispatch_barrier_sync_f(dispatch_queue_t queue,
+		void *_Nullable context, dispatch_function_t work);
+
+/*!
+ * @function dispatch_barrier_async_and_wait
+ *
+ * @abstract
+ * Submits a block for synchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * Submits a block to a dispatch queue like dispatch_async_and_wait(), but marks
+ * that block as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT
+ * queues).
+ *
+ * See "Dispatch Barrier API" for a description of the barrier semantics.
+ *
+ * @param queue
+ * The target dispatch queue to which the block is submitted.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param work
+ * The application-defined block to invoke on the target queue.
+ * The result of passing NULL in this parameter is undefined.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_barrier_async_and_wait(dispatch_queue_t queue,
+		DISPATCH_NOESCAPE dispatch_block_t block);
+#endif
+
+/*!
+ * @function dispatch_barrier_async_and_wait_f
+ *
+ * @abstract
+ * Submits a function for synchronous execution on a dispatch queue.
+ *
+ * @discussion
+ * Submits a function to a dispatch queue like dispatch_async_and_wait_f(), but
+ * marks that function as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT
+ * queues).
+ *
+ * See "Dispatch Barrier API" for a description of the barrier semantics.
+ *
+ * @param queue
+ * The target dispatch queue to which the function is submitted.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param context
+ * The application-defined context parameter to pass to the function.
+ *
+ * @param work
+ * The application-defined function to invoke on the target queue. The first
+ * parameter passed to this function is the context provided to
+ * dispatch_barrier_async_and_wait_f().
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
+void
+dispatch_barrier_async_and_wait_f(dispatch_queue_t queue,
+		void *_Nullable context, dispatch_function_t work);
+
+/*!
+ * @functiongroup Dispatch queue-specific contexts
+ * This API allows different subsystems to associate context to a shared queue
+ * without risk of collision and to retrieve that context from blocks executing
+ * on that queue or any of its child queues in the target queue hierarchy.
+ */
+
+/*!
+ * @function dispatch_queue_set_specific
+ *
+ * @abstract
+ * Associates a subsystem-specific context with a dispatch queue, for a key
+ * unique to the subsystem.
+ *
+ * @discussion
+ * The specified destructor will be invoked with the context on the default
+ * priority global concurrent queue when a new context is set for the same key,
+ * or after all references to the queue have been released.
+ *
+ * @param queue
+ * The dispatch queue to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param key
+ * The key to set the context for, typically a pointer to a static variable
+ * specific to the subsystem. Keys are only compared as pointers and never
+ * dereferenced. Passing a string constant directly is not recommended.
+ * The NULL key is reserved and attempts to set a context for it are ignored.
+ *
+ * @param context
+ * The new subsystem-specific context for the object. This may be NULL.
+ *
+ * @param destructor
+ * The destructor function pointer. This may be NULL and is ignored if context
+ * is NULL.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_queue_set_specific(dispatch_queue_t queue, const void *key,
+		void *_Nullable context, dispatch_function_t _Nullable destructor);
+
+/*!
+ * @function dispatch_queue_get_specific
+ *
+ * @abstract
+ * Returns the subsystem-specific context associated with a dispatch queue, for
+ * a key unique to the subsystem.
+ *
+ * @discussion
+ * Returns the context for the specified key if it has been set on the specified
+ * queue.
+ *
+ * @param queue
+ * The dispatch queue to query.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param key
+ * The key to get the context for, typically a pointer to a static variable
+ * specific to the subsystem. Keys are only compared as pointers and never
+ * dereferenced. Passing a string constant directly is not recommended.
+ *
+ * @result
+ * The context for the specified key or NULL if no context was found.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_PURE DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+void *_Nullable
+dispatch_queue_get_specific(dispatch_queue_t queue, const void *key);
+
+/*!
+ * @function dispatch_get_specific
+ *
+ * @abstract
+ * Returns the current subsystem-specific context for a key unique to the
+ * subsystem.
+ *
+ * @discussion
+ * When called from a block executing on a queue, returns the context for the
+ * specified key if it has been set on the queue, otherwise returns the result
+ * of dispatch_get_specific() executed on the queue's target queue or NULL
+ * if the current queue is a global concurrent queue.
+ *
+ * @param key
+ * The key to get the context for, typically a pointer to a static variable
+ * specific to the subsystem. Keys are only compared as pointers and never
+ * dereferenced. Passing a string constant directly is not recommended.
+ *
+ * @result
+ * The context for the specified key or NULL if no context was found.
+ */
+API_AVAILABLE(macos(10.7), ios(5.0))
+DISPATCH_EXPORT DISPATCH_PURE DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+void *_Nullable
+dispatch_get_specific(const void *key);
+
+/*!
+ * @functiongroup Dispatch assertion API
+ *
+ * This API asserts at runtime that code is executing in (or out of) the context
+ * of a given queue. It can be used to check that a block accessing a resource
+ * does so from the proper queue protecting the resource. It also can be used
+ * to verify that a block that could cause a deadlock if run on a given queue
+ * never executes on that queue.
+ */
+
+/*!
+ * @function dispatch_assert_queue
+ *
+ * @abstract
+ * Verifies that the current block is executing on a given dispatch queue.
+ *
+ * @discussion
+ * Some code expects to be run on a specific dispatch queue. This function
+ * verifies that that expectation is true.
+ *
+ * If the currently executing block was submitted to the specified queue or to
+ * any queue targeting it (see dispatch_set_target_queue()), this function
+ * returns.
+ *
+ * If the currently executing block was submitted with a synchronous API
+ * (dispatch_sync(), dispatch_barrier_sync(), ...), the context of the
+ * submitting block is also evaluated (recursively).
+ * If a synchronously submitting block is found that was itself submitted to
+ * the specified queue or to any queue targeting it, this function returns.
+ *
+ * Otherwise this function asserts: it logs an explanation to the system log and
+ * terminates the application.
+ *
+ * Passing the result of dispatch_get_main_queue() to this function verifies
+ * that the current block was submitted to the main queue, or to a queue
+ * targeting it, or is running on the main thread (in any context).
+ *
+ * When dispatch_assert_queue() is called outside of the context of a
+ * submitted block (for example from the context of a thread created manually
+ * with pthread_create()) then this function will also assert and terminate
+ * the application.
+ *
+ * The variant dispatch_assert_queue_debug() is compiled out when the
+ * preprocessor macro NDEBUG is defined. (See also assert(3)).
+ *
+ * @param queue
+ * The dispatch queue that the current block is expected to run on.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1
+void
+dispatch_assert_queue(dispatch_queue_t queue)
+		DISPATCH_ALIAS_V2(dispatch_assert_queue);
+
+/*!
+ * @function dispatch_assert_queue_barrier
+ *
+ * @abstract
+ * Verifies that the current block is executing on a given dispatch queue,
+ * and that the block acts as a barrier on that queue.
+ *
+ * @discussion
+ * This behaves exactly like dispatch_assert_queue(), with the additional check
+ * that the current block acts as a barrier on the specified queue, which is
+ * always true if the specified queue is serial (see DISPATCH_BLOCK_BARRIER or
+ * dispatch_barrier_async() for details).
+ *
+ * The variant dispatch_assert_queue_barrier_debug() is compiled out when the
+ * preprocessor macro NDEBUG is defined. (See also assert()).
+ *
+ * @param queue
+ * The dispatch queue that the current block is expected to run as a barrier on.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1
+void
+dispatch_assert_queue_barrier(dispatch_queue_t queue);
+
+/*!
+ * @function dispatch_assert_queue_not
+ *
+ * @abstract
+ * Verifies that the current block is not executing on a given dispatch queue.
+ *
+ * @discussion
+ * This function is the equivalent of dispatch_assert_queue() with the test for
+ * equality inverted. That means that it will terminate the application when
+ * dispatch_assert_queue() would return, and vice-versa. See discussion there.
+ *
+ * The variant dispatch_assert_queue_not_debug() is compiled out when the
+ * preprocessor macro NDEBUG is defined. (See also assert(3)).
+ *
+ * @param queue
+ * The dispatch queue that the current block is expected not to run on.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1
+void
+dispatch_assert_queue_not(dispatch_queue_t queue)
+		DISPATCH_ALIAS_V2(dispatch_assert_queue_not);
+
+#ifdef NDEBUG
+#define dispatch_assert_queue_debug(q) ((void)(0 && (q)))
+#define dispatch_assert_queue_barrier_debug(q) ((void)(0 && (q)))
+#define dispatch_assert_queue_not_debug(q) ((void)(0 && (q)))
+#else
+#define dispatch_assert_queue_debug(q) dispatch_assert_queue(q)
+#define dispatch_assert_queue_barrier_debug(q) dispatch_assert_queue_barrier(q)
+#define dispatch_assert_queue_not_debug(q) dispatch_assert_queue_not(q)
+#endif
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/semaphore.h b/lib/libc/include/any-macos.13-any/dispatch/semaphore.h
new file mode 100644
index 0000000000000000000000000000000000000000..5de07ba80e5af8e25aeb84708e73d38493960131
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/semaphore.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_SEMAPHORE__
+#define __DISPATCH_SEMAPHORE__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @typedef dispatch_semaphore_t
+ *
+ * @abstract
+ * A counting semaphore.
+ */
+DISPATCH_DECL(dispatch_semaphore);
+
+__BEGIN_DECLS
+
+/*!
+ * @function dispatch_semaphore_create
+ *
+ * @abstract
+ * Creates new counting semaphore with an initial value.
+ *
+ * @discussion
+ * Passing zero for the value is useful for when two threads need to reconcile
+ * the completion of a particular event. Passing a value greater than zero is
+ * useful for managing a finite pool of resources, where the pool size is equal
+ * to the value.
+ *
+ * @param value
+ * The starting value for the semaphore. Passing a value less than zero will
+ * cause NULL to be returned.
+ *
+ * @result
+ * The newly created semaphore, or NULL on failure.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+dispatch_semaphore_t
+dispatch_semaphore_create(intptr_t value);
+
+/*!
+ * @function dispatch_semaphore_wait
+ *
+ * @abstract
+ * Wait (decrement) for a semaphore.
+ *
+ * @discussion
+ * Decrement the counting semaphore. If the resulting value is less than zero,
+ * this function waits for a signal to occur before returning. If the timeout is
+ * reached without a signal being received, the semaphore is re-incremented
+ * before the function returns.
+ *
+ * @param dsema
+ * The semaphore. The result of passing NULL in this parameter is undefined.
+ *
+ * @param timeout
+ * When to timeout (see dispatch_time). As a convenience, there are the
+ * DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER constants.
+ *
+ * @result
+ * Returns zero on success, or non-zero if the timeout occurred.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+intptr_t
+dispatch_semaphore_wait(dispatch_semaphore_t dsema, dispatch_time_t timeout);
+
+/*!
+ * @function dispatch_semaphore_signal
+ *
+ * @abstract
+ * Signal (increment) a semaphore.
+ *
+ * @discussion
+ * Increment the counting semaphore. If the previous value was less than zero,
+ * this function wakes a waiting thread before returning.
+ *
+ * @param dsema The counting semaphore.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @result
+ * This function returns non-zero if a thread is woken. Otherwise, zero is
+ * returned.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+intptr_t
+dispatch_semaphore_signal(dispatch_semaphore_t dsema);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif /* __DISPATCH_SEMAPHORE__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/source.h b/lib/libc/include/any-macos.13-any/dispatch/source.h
new file mode 100644
index 0000000000000000000000000000000000000000..d49817c38e94620e55696b34040f56f7c74540b2
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/source.h
@@ -0,0 +1,782 @@
+/*
+ * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_SOURCE__
+#define __DISPATCH_SOURCE__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+#if TARGET_OS_MAC
+#include 
+#include 
+#endif
+
+#if !defined(_WIN32)
+#include 
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @header
+ * The dispatch framework provides a suite of interfaces for monitoring low-
+ * level system objects (file descriptors, Mach ports, signals, VFS nodes, etc.)
+ * for activity and automatically submitting event handler blocks to dispatch
+ * queues when such activity occurs.
+ *
+ * This suite of interfaces is known as the Dispatch Source API.
+ */
+
+/*!
+ * @typedef dispatch_source_t
+ *
+ * @abstract
+ * Dispatch sources are used to automatically submit event handler blocks to
+ * dispatch queues in response to external events.
+ */
+DISPATCH_SOURCE_DECL(dispatch_source);
+
+__BEGIN_DECLS
+
+/*!
+ * @typedef dispatch_source_type_t
+ *
+ * @abstract
+ * Constants of this type represent the class of low-level system object that
+ * is being monitored by the dispatch source. Constants of this type are
+ * passed as a parameter to dispatch_source_create() and determine how the
+ * handle argument is interpreted (i.e. as a file descriptor, mach port,
+ * signal number, process identifier, etc.), and how the mask argument is
+ * interpreted.
+ */
+typedef const struct dispatch_source_type_s *dispatch_source_type_t;
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_DATA_ADD
+ * @discussion A dispatch source that coalesces data obtained via calls to
+ * dispatch_source_merge_data(). An ADD is used to coalesce the data.
+ * The handle is unused (pass zero for now).
+ * The mask is unused (pass zero for now).
+ */
+#define DISPATCH_SOURCE_TYPE_DATA_ADD (&_dispatch_source_type_data_add)
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_SOURCE_TYPE_DECL(data_add);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_DATA_OR
+ * @discussion A dispatch source that coalesces data obtained via calls to
+ * dispatch_source_merge_data(). A bitwise OR is used to coalesce the data.
+ * The handle is unused (pass zero for now).
+ * The mask is unused (pass zero for now).
+ */
+#define DISPATCH_SOURCE_TYPE_DATA_OR (&_dispatch_source_type_data_or)
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_SOURCE_TYPE_DECL(data_or);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_DATA_REPLACE
+ * @discussion A dispatch source that tracks data obtained via calls to
+ * dispatch_source_merge_data(). Newly obtained data values replace existing
+ * data values not yet delivered to the source handler
+ *
+ * A data value of zero will cause the source handler to not be invoked.
+ *
+ * The handle is unused (pass zero for now).
+ * The mask is unused (pass zero for now).
+ */
+#define DISPATCH_SOURCE_TYPE_DATA_REPLACE (&_dispatch_source_type_data_replace)
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
+DISPATCH_SOURCE_TYPE_DECL(data_replace);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_MACH_SEND
+ * @discussion A dispatch source that monitors a Mach port for dead name
+ * notifications (send right no longer has any corresponding receive right).
+ * The handle is a Mach port with a send or send-once right (mach_port_t).
+ * The mask is a mask of desired events from dispatch_source_mach_send_flags_t.
+ */
+#define DISPATCH_SOURCE_TYPE_MACH_SEND (&_dispatch_source_type_mach_send)
+API_AVAILABLE(macos(10.6), ios(4.0)) DISPATCH_LINUX_UNAVAILABLE()
+DISPATCH_SOURCE_TYPE_DECL(mach_send);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_MACH_RECV
+ * @discussion A dispatch source that monitors a Mach port for pending messages.
+ * The handle is a Mach port with a receive right (mach_port_t).
+ * The mask is a mask of desired events from dispatch_source_mach_recv_flags_t,
+ * but no flags are currently defined (pass zero for now).
+ */
+#define DISPATCH_SOURCE_TYPE_MACH_RECV (&_dispatch_source_type_mach_recv)
+API_AVAILABLE(macos(10.6), ios(4.0)) DISPATCH_LINUX_UNAVAILABLE()
+DISPATCH_SOURCE_TYPE_DECL(mach_recv);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_MEMORYPRESSURE
+ * @discussion A dispatch source that monitors the system for changes in
+ * memory pressure condition.
+ * The handle is unused (pass zero for now).
+ * The mask is a mask of desired events from
+ * dispatch_source_memorypressure_flags_t.
+ */
+#define DISPATCH_SOURCE_TYPE_MEMORYPRESSURE \
+		(&_dispatch_source_type_memorypressure)
+API_AVAILABLE(macos(10.9), ios(8.0)) DISPATCH_LINUX_UNAVAILABLE()
+DISPATCH_SOURCE_TYPE_DECL(memorypressure);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_PROC
+ * @discussion A dispatch source that monitors an external process for events
+ * defined by dispatch_source_proc_flags_t.
+ * The handle is a process identifier (pid_t).
+ * The mask is a mask of desired events from dispatch_source_proc_flags_t.
+ */
+#define DISPATCH_SOURCE_TYPE_PROC (&_dispatch_source_type_proc)
+API_AVAILABLE(macos(10.6), ios(4.0)) DISPATCH_LINUX_UNAVAILABLE()
+DISPATCH_SOURCE_TYPE_DECL(proc);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_READ
+ * @discussion A dispatch source that monitors a file descriptor for pending
+ * bytes available to be read.
+ * The handle is a file descriptor (int).
+ * The mask is unused (pass zero for now).
+ */
+#define DISPATCH_SOURCE_TYPE_READ (&_dispatch_source_type_read)
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_SOURCE_TYPE_DECL(read);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_SIGNAL
+ * @discussion A dispatch source that monitors the current process for signals.
+ * The handle is a signal number (int).
+ * The mask is unused (pass zero for now).
+ */
+#define DISPATCH_SOURCE_TYPE_SIGNAL (&_dispatch_source_type_signal)
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_SOURCE_TYPE_DECL(signal);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_TIMER
+ * @discussion A dispatch source that submits the event handler block based
+ * on a timer.
+ * The handle is unused (pass zero for now).
+ * The mask specifies which flags from dispatch_source_timer_flags_t to apply.
+ */
+#define DISPATCH_SOURCE_TYPE_TIMER (&_dispatch_source_type_timer)
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_SOURCE_TYPE_DECL(timer);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_VNODE
+ * @discussion A dispatch source that monitors a file descriptor for events
+ * defined by dispatch_source_vnode_flags_t.
+ * The handle is a file descriptor (int).
+ * The mask is a mask of desired events from dispatch_source_vnode_flags_t.
+ */
+#define DISPATCH_SOURCE_TYPE_VNODE (&_dispatch_source_type_vnode)
+API_AVAILABLE(macos(10.6), ios(4.0)) DISPATCH_LINUX_UNAVAILABLE()
+DISPATCH_SOURCE_TYPE_DECL(vnode);
+
+/*!
+ * @const DISPATCH_SOURCE_TYPE_WRITE
+ * @discussion A dispatch source that monitors a file descriptor for available
+ * buffer space to write bytes.
+ * The handle is a file descriptor (int).
+ * The mask is unused (pass zero for now).
+ */
+#define DISPATCH_SOURCE_TYPE_WRITE (&_dispatch_source_type_write)
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_SOURCE_TYPE_DECL(write);
+
+/*!
+ * @typedef dispatch_source_mach_send_flags_t
+ * Type of dispatch_source_mach_send flags
+ *
+ * @constant DISPATCH_MACH_SEND_DEAD
+ * The receive right corresponding to the given send right was destroyed.
+ */
+#define DISPATCH_MACH_SEND_DEAD	0x1
+
+typedef unsigned long dispatch_source_mach_send_flags_t;
+
+/*!
+ * @typedef dispatch_source_mach_recv_flags_t
+ * Type of dispatch_source_mach_recv flags
+ */
+typedef unsigned long dispatch_source_mach_recv_flags_t;
+
+/*!
+ * @typedef dispatch_source_memorypressure_flags_t
+ * Type of dispatch_source_memorypressure flags
+ *
+ * @constant DISPATCH_MEMORYPRESSURE_NORMAL
+ * The system memory pressure condition has returned to normal.
+ *
+ * @constant DISPATCH_MEMORYPRESSURE_WARN
+ * The system memory pressure condition has changed to warning.
+ *
+ * @constant DISPATCH_MEMORYPRESSURE_CRITICAL
+ * The system memory pressure condition has changed to critical.
+ *
+ * @discussion
+ * Elevated memory pressure is a system-wide condition that applications
+ * registered for this source should react to by changing their future memory
+ * use behavior, e.g. by reducing cache sizes of newly initiated operations
+ * until memory pressure returns back to normal.
+ * NOTE: applications should NOT traverse and discard existing caches for past
+ * operations when the system memory pressure enters an elevated state, as that
+ * is likely to trigger VM operations that will further aggravate system memory
+ * pressure.
+ */
+
+#define DISPATCH_MEMORYPRESSURE_NORMAL		0x01
+#define DISPATCH_MEMORYPRESSURE_WARN		0x02
+#define DISPATCH_MEMORYPRESSURE_CRITICAL	0x04
+
+typedef unsigned long dispatch_source_memorypressure_flags_t;
+
+/*!
+ * @typedef dispatch_source_proc_flags_t
+ * Type of dispatch_source_proc flags
+ *
+ * @constant DISPATCH_PROC_EXIT
+ * The process has exited (perhaps cleanly, perhaps not).
+ *
+ * @constant DISPATCH_PROC_FORK
+ * The process has created one or more child processes.
+ *
+ * @constant DISPATCH_PROC_EXEC
+ * The process has become another executable image via
+ * exec*() or posix_spawn*().
+ *
+ * @constant DISPATCH_PROC_SIGNAL
+ * A Unix signal was delivered to the process.
+ */
+#define DISPATCH_PROC_EXIT		0x80000000
+#define DISPATCH_PROC_FORK		0x40000000
+#define DISPATCH_PROC_EXEC		0x20000000
+#define DISPATCH_PROC_SIGNAL	0x08000000
+
+typedef unsigned long dispatch_source_proc_flags_t;
+
+/*!
+ * @typedef dispatch_source_vnode_flags_t
+ * Type of dispatch_source_vnode flags
+ *
+ * @constant DISPATCH_VNODE_DELETE
+ * The filesystem object was deleted from the namespace.
+ *
+ * @constant DISPATCH_VNODE_WRITE
+ * The filesystem object data changed.
+ *
+ * @constant DISPATCH_VNODE_EXTEND
+ * The filesystem object changed in size.
+ *
+ * @constant DISPATCH_VNODE_ATTRIB
+ * The filesystem object metadata changed.
+ *
+ * @constant DISPATCH_VNODE_LINK
+ * The filesystem object link count changed.
+ *
+ * @constant DISPATCH_VNODE_RENAME
+ * The filesystem object was renamed in the namespace.
+ *
+ * @constant DISPATCH_VNODE_REVOKE
+ * The filesystem object was revoked.
+ *
+ * @constant DISPATCH_VNODE_FUNLOCK
+ * The filesystem object was unlocked.
+ */
+
+#define DISPATCH_VNODE_DELETE	0x1
+#define DISPATCH_VNODE_WRITE	0x2
+#define DISPATCH_VNODE_EXTEND	0x4
+#define DISPATCH_VNODE_ATTRIB	0x8
+#define DISPATCH_VNODE_LINK		0x10
+#define DISPATCH_VNODE_RENAME	0x20
+#define DISPATCH_VNODE_REVOKE	0x40
+#define DISPATCH_VNODE_FUNLOCK	0x100
+
+typedef unsigned long dispatch_source_vnode_flags_t;
+
+/*!
+ * @typedef dispatch_source_timer_flags_t
+ * Type of dispatch_source_timer flags
+ *
+ * @constant DISPATCH_TIMER_STRICT
+ * Specifies that the system should make a best effort to strictly observe the
+ * leeway value specified for the timer via dispatch_source_set_timer(), even
+ * if that value is smaller than the default leeway value that would be applied
+ * to the timer otherwise. A minimal amount of leeway will be applied to the
+ * timer even if this flag is specified.
+ *
+ * CAUTION: Use of this flag may override power-saving techniques employed by
+ * the system and cause higher power consumption, so it must be used with care
+ * and only when absolutely necessary.
+ */
+
+#define DISPATCH_TIMER_STRICT 0x1
+
+typedef unsigned long dispatch_source_timer_flags_t;
+
+/*!
+ * @function dispatch_source_create
+ *
+ * @abstract
+ * Creates a new dispatch source to monitor low-level system objects and auto-
+ * matically submit a handler block to a dispatch queue in response to events.
+ *
+ * @discussion
+ * Dispatch sources are not reentrant. Any events received while the dispatch
+ * source is suspended or while the event handler block is currently executing
+ * will be coalesced and delivered after the dispatch source is resumed or the
+ * event handler block has returned.
+ *
+ * Dispatch sources are created in an inactive state. After creating the
+ * source and setting any desired attributes (i.e. the handler, context, etc.),
+ * a call must be made to dispatch_activate() in order to begin event delivery.
+ *
+ * Calling dispatch_set_target_queue() on a source once it has been activated
+ * is not allowed (see dispatch_activate() and dispatch_set_target_queue()).
+ *
+ * For backward compatibility reasons, dispatch_resume() on an inactive,
+ * and not otherwise suspended source has the same effect as calling
+ * dispatch_activate(). For new code, using dispatch_activate() is preferred.
+ *
+ * @param type
+ * Declares the type of the dispatch source. Must be one of the defined
+ * dispatch_source_type_t constants.
+ *
+ * @param handle
+ * The underlying system handle to monitor. The interpretation of this argument
+ * is determined by the constant provided in the type parameter.
+ *
+ * @param mask
+ * A mask of flags specifying which events are desired. The interpretation of
+ * this argument is determined by the constant provided in the type parameter.
+ *
+ * @param queue
+ * The dispatch queue to which the event handler block will be submitted.
+ * If queue is DISPATCH_TARGET_QUEUE_DEFAULT, the source will submit the event
+ * handler block to the default priority global queue.
+ *
+ * @result
+ * The newly created dispatch source. Or NULL if invalid arguments are passed.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+dispatch_source_t
+dispatch_source_create(dispatch_source_type_t type,
+	uintptr_t handle,
+	uintptr_t mask,
+	dispatch_queue_t _Nullable queue);
+
+/*!
+ * @function dispatch_source_set_event_handler
+ *
+ * @abstract
+ * Sets the event handler block for the given dispatch source.
+ *
+ * @param source
+ * The dispatch source to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param handler
+ * The event handler block to submit to the source's target queue.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_source_set_event_handler(dispatch_source_t source,
+	dispatch_block_t _Nullable handler);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @function dispatch_source_set_event_handler_f
+ *
+ * @abstract
+ * Sets the event handler function for the given dispatch source.
+ *
+ * @param source
+ * The dispatch source to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param handler
+ * The event handler function to submit to the source's target queue.
+ * The context parameter passed to the event handler function is the context of
+ * the dispatch source current at the time the event handler was set.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_source_set_event_handler_f(dispatch_source_t source,
+	dispatch_function_t _Nullable handler);
+
+/*!
+ * @function dispatch_source_set_cancel_handler
+ *
+ * @abstract
+ * Sets the cancellation handler block for the given dispatch source.
+ *
+ * @discussion
+ * The cancellation handler (if specified) will be submitted to the source's
+ * target queue in response to a call to dispatch_source_cancel() once the
+ * system has released all references to the source's underlying handle and
+ * the source's event handler block has returned.
+ *
+ * IMPORTANT:
+ * Source cancellation and a cancellation handler are required for file
+ * descriptor and mach port based sources in order to safely close the
+ * descriptor or destroy the port.
+ * Closing the descriptor or port before the cancellation handler is invoked may
+ * result in a race condition. If a new descriptor is allocated with the same
+ * value as the recently closed descriptor while the source's event handler is
+ * still running, the event handler may read/write data to the wrong descriptor.
+ *
+ * @param source
+ * The dispatch source to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param handler
+ * The cancellation handler block to submit to the source's target queue.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_source_set_cancel_handler(dispatch_source_t source,
+	dispatch_block_t _Nullable handler);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @function dispatch_source_set_cancel_handler_f
+ *
+ * @abstract
+ * Sets the cancellation handler function for the given dispatch source.
+ *
+ * @discussion
+ * See dispatch_source_set_cancel_handler() for more details.
+ *
+ * @param source
+ * The dispatch source to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param handler
+ * The cancellation handler function to submit to the source's target queue.
+ * The context parameter passed to the event handler function is the current
+ * context of the dispatch source at the time the handler call is made.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_source_set_cancel_handler_f(dispatch_source_t source,
+	dispatch_function_t _Nullable handler);
+
+/*!
+ * @function dispatch_source_cancel
+ *
+ * @abstract
+ * Asynchronously cancel the dispatch source, preventing any further invocation
+ * of its event handler block.
+ *
+ * @discussion
+ * Cancellation prevents any further invocation of the event handler block for
+ * the specified dispatch source, but does not interrupt an event handler
+ * block that is already in progress.
+ *
+ * The cancellation handler is submitted to the source's target queue once the
+ * the source's event handler has finished, indicating it is now safe to close
+ * the source's handle (i.e. file descriptor or mach port).
+ *
+ * See dispatch_source_set_cancel_handler() for more information.
+ *
+ * @param source
+ * The dispatch source to be canceled.
+ * The result of passing NULL in this parameter is undefined.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_source_cancel(dispatch_source_t source);
+
+/*!
+ * @function dispatch_source_testcancel
+ *
+ * @abstract
+ * Tests whether the given dispatch source has been canceled.
+ *
+ * @param source
+ * The dispatch source to be tested.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @result
+ * Non-zero if canceled and zero if not canceled.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
+DISPATCH_NOTHROW
+intptr_t
+dispatch_source_testcancel(dispatch_source_t source);
+
+/*!
+ * @function dispatch_source_get_handle
+ *
+ * @abstract
+ * Returns the underlying system handle associated with this dispatch source.
+ *
+ * @param source
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @result
+ * The return value should be interpreted according to the type of the dispatch
+ * source, and may be one of the following handles:
+ *
+ *  DISPATCH_SOURCE_TYPE_DATA_ADD:        n/a
+ *  DISPATCH_SOURCE_TYPE_DATA_OR:         n/a
+ *  DISPATCH_SOURCE_TYPE_DATA_REPLACE:    n/a
+ *  DISPATCH_SOURCE_TYPE_MACH_SEND:       mach port (mach_port_t)
+ *  DISPATCH_SOURCE_TYPE_MACH_RECV:       mach port (mach_port_t)
+ *  DISPATCH_SOURCE_TYPE_MEMORYPRESSURE   n/a
+ *  DISPATCH_SOURCE_TYPE_PROC:            process identifier (pid_t)
+ *  DISPATCH_SOURCE_TYPE_READ:            file descriptor (int)
+ *  DISPATCH_SOURCE_TYPE_SIGNAL:          signal number (int)
+ *  DISPATCH_SOURCE_TYPE_TIMER:           n/a
+ *  DISPATCH_SOURCE_TYPE_VNODE:           file descriptor (int)
+ *  DISPATCH_SOURCE_TYPE_WRITE:           file descriptor (int)
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
+DISPATCH_NOTHROW
+uintptr_t
+dispatch_source_get_handle(dispatch_source_t source);
+
+/*!
+ * @function dispatch_source_get_mask
+ *
+ * @abstract
+ * Returns the mask of events monitored by the dispatch source.
+ *
+ * @param source
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @result
+ * The return value should be interpreted according to the type of the dispatch
+ * source, and may be one of the following flag sets:
+ *
+ *  DISPATCH_SOURCE_TYPE_DATA_ADD:        n/a
+ *  DISPATCH_SOURCE_TYPE_DATA_OR:         n/a
+ *  DISPATCH_SOURCE_TYPE_DATA_REPLACE:    n/a
+ *  DISPATCH_SOURCE_TYPE_MACH_SEND:       dispatch_source_mach_send_flags_t
+ *  DISPATCH_SOURCE_TYPE_MACH_RECV:       dispatch_source_mach_recv_flags_t
+ *  DISPATCH_SOURCE_TYPE_MEMORYPRESSURE   dispatch_source_memorypressure_flags_t
+ *  DISPATCH_SOURCE_TYPE_PROC:            dispatch_source_proc_flags_t
+ *  DISPATCH_SOURCE_TYPE_READ:            n/a
+ *  DISPATCH_SOURCE_TYPE_SIGNAL:          n/a
+ *  DISPATCH_SOURCE_TYPE_TIMER:           dispatch_source_timer_flags_t
+ *  DISPATCH_SOURCE_TYPE_VNODE:           dispatch_source_vnode_flags_t
+ *  DISPATCH_SOURCE_TYPE_WRITE:           n/a
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
+DISPATCH_NOTHROW
+uintptr_t
+dispatch_source_get_mask(dispatch_source_t source);
+
+/*!
+ * @function dispatch_source_get_data
+ *
+ * @abstract
+ * Returns pending data for the dispatch source.
+ *
+ * @discussion
+ * This function is intended to be called from within the event handler block.
+ * The result of calling this function outside of the event handler callback is
+ * undefined.
+ *
+ * @param source
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @result
+ * The return value should be interpreted according to the type of the dispatch
+ * source, and may be one of the following:
+ *
+ *  DISPATCH_SOURCE_TYPE_DATA_ADD:        application defined data
+ *  DISPATCH_SOURCE_TYPE_DATA_OR:         application defined data
+ *  DISPATCH_SOURCE_TYPE_DATA_REPLACE:    application defined data
+ *  DISPATCH_SOURCE_TYPE_MACH_SEND:       dispatch_source_mach_send_flags_t
+ *  DISPATCH_SOURCE_TYPE_MACH_RECV:       dispatch_source_mach_recv_flags_t
+ *  DISPATCH_SOURCE_TYPE_MEMORYPRESSURE   dispatch_source_memorypressure_flags_t
+ *  DISPATCH_SOURCE_TYPE_PROC:            dispatch_source_proc_flags_t
+ *  DISPATCH_SOURCE_TYPE_READ:            estimated bytes available to read
+ *  DISPATCH_SOURCE_TYPE_SIGNAL:          number of signals delivered since
+ *                                            the last handler invocation
+ *  DISPATCH_SOURCE_TYPE_TIMER:           number of times the timer has fired
+ *                                            since the last handler invocation
+ *  DISPATCH_SOURCE_TYPE_VNODE:           dispatch_source_vnode_flags_t
+ *  DISPATCH_SOURCE_TYPE_WRITE:           estimated buffer space available
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
+DISPATCH_NOTHROW
+uintptr_t
+dispatch_source_get_data(dispatch_source_t source);
+
+/*!
+ * @function dispatch_source_merge_data
+ *
+ * @abstract
+ * Merges data into a dispatch source of type DISPATCH_SOURCE_TYPE_DATA_ADD,
+ * DISPATCH_SOURCE_TYPE_DATA_OR or DISPATCH_SOURCE_TYPE_DATA_REPLACE,
+ * and submits its event handler block to its target queue.
+ *
+ * @param source
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param value
+ * The value to coalesce with the pending data using a logical OR or an ADD
+ * as specified by the dispatch source type. A value of zero has no effect
+ * and will not result in the submission of the event handler block.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_source_merge_data(dispatch_source_t source, uintptr_t value);
+
+/*!
+ * @function dispatch_source_set_timer
+ *
+ * @abstract
+ * Sets a start time, interval, and leeway value for a timer source.
+ *
+ * @discussion
+ * Once this function returns, any pending source data accumulated for the
+ * previous timer values has been cleared; the next fire of the timer will
+ * occur at 'start', and every 'interval' nanoseconds thereafter until the
+ * timer source is canceled.
+ *
+ * Any fire of the timer may be delayed by the system in order to improve power
+ * consumption and system performance. The upper limit to the allowable delay
+ * may be configured with the 'leeway' argument, the lower limit is under the
+ * control of the system.
+ *
+ * For the initial timer fire at 'start', the upper limit to the allowable
+ * delay is set to 'leeway' nanoseconds. For the subsequent timer fires at
+ * 'start' + N * 'interval', the upper limit is MIN('leeway','interval'/2).
+ *
+ * The lower limit to the allowable delay may vary with process state such as
+ * visibility of application UI. If the specified timer source was created with
+ * a mask of DISPATCH_TIMER_STRICT, the system will make a best effort to
+ * strictly observe the provided 'leeway' value even if it is smaller than the
+ * current lower limit. Note that a minimal amount of delay is to be expected
+ * even if this flag is specified.
+ *
+ * The 'start' argument also determines which clock will be used for the timer:
+ * If 'start' is DISPATCH_TIME_NOW or was created with dispatch_time(3), the
+ * timer is based on up time (which is obtained from mach_absolute_time() on
+ * Apple platforms). If 'start' was created with dispatch_walltime(3), the
+ * timer is based on gettimeofday(3).
+ *
+ * Calling this function has no effect if the timer source has already been
+ * canceled.
+ *
+ * @param start
+ * The start time of the timer. See dispatch_time() and dispatch_walltime()
+ * for more information.
+ *
+ * @param interval
+ * The nanosecond interval for the timer. Use DISPATCH_TIME_FOREVER for a
+ * one-shot timer.
+ *
+ * @param leeway
+ * The nanosecond leeway for the timer.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_source_set_timer(dispatch_source_t source,
+	dispatch_time_t start,
+	uint64_t interval,
+	uint64_t leeway);
+
+/*!
+ * @function dispatch_source_set_registration_handler
+ *
+ * @abstract
+ * Sets the registration handler block for the given dispatch source.
+ *
+ * @discussion
+ * The registration handler (if specified) will be submitted to the source's
+ * target queue once the corresponding kevent() has been registered with the
+ * system, following the initial dispatch_resume() of the source.
+ *
+ * If a source is already registered when the registration handler is set, the
+ * registration handler will be invoked immediately.
+ *
+ * @param source
+ * The dispatch source to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param handler
+ * The registration handler block to submit to the source's target queue.
+ */
+#ifdef __BLOCKS__
+API_AVAILABLE(macos(10.7), ios(4.3))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_source_set_registration_handler(dispatch_source_t source,
+	dispatch_block_t _Nullable handler);
+#endif /* __BLOCKS__ */
+
+/*!
+ * @function dispatch_source_set_registration_handler_f
+ *
+ * @abstract
+ * Sets the registration handler function for the given dispatch source.
+ *
+ * @discussion
+ * See dispatch_source_set_registration_handler() for more details.
+ *
+ * @param source
+ * The dispatch source to modify.
+ * The result of passing NULL in this parameter is undefined.
+ *
+ * @param handler
+ * The registration handler function to submit to the source's target queue.
+ * The context parameter passed to the registration handler function is the
+ * current context of the dispatch source at the time the handler call is made.
+ */
+API_AVAILABLE(macos(10.7), ios(4.3))
+DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
+void
+dispatch_source_set_registration_handler_f(dispatch_source_t source,
+	dispatch_function_t _Nullable handler);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/time.h b/lib/libc/include/any-macos.13-any/dispatch/time.h
new file mode 100644
index 0000000000000000000000000000000000000000..281513f3878e6ca5268346b02e11f8d890d05fbc
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/time.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2008-2011 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_TIME__
+#define __DISPATCH_TIME__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+#include 
+
+// 
+#if TARGET_OS_MAC
+#include 
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+#ifdef NSEC_PER_SEC
+#undef NSEC_PER_SEC
+#endif
+#ifdef USEC_PER_SEC
+#undef USEC_PER_SEC
+#endif
+#ifdef NSEC_PER_USEC
+#undef NSEC_PER_USEC
+#endif
+#ifdef NSEC_PER_MSEC
+#undef NSEC_PER_MSEC
+#endif
+#define NSEC_PER_SEC 1000000000ull
+#define NSEC_PER_MSEC 1000000ull
+#define USEC_PER_SEC 1000000ull
+#define NSEC_PER_USEC 1000ull
+
+__BEGIN_DECLS
+
+struct timespec;
+
+/*!
+ * @typedef dispatch_time_t
+ *
+ * @abstract
+ * A somewhat abstract representation of time; where zero means "now" and
+ * DISPATCH_TIME_FOREVER means "infinity" and every value in between is an
+ * opaque encoding.
+ */
+typedef uint64_t dispatch_time_t;
+
+enum {
+	DISPATCH_WALLTIME_NOW DISPATCH_ENUM_API_AVAILABLE
+			(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))	= ~1ull,
+};
+
+#define DISPATCH_TIME_NOW (0ull)
+#define DISPATCH_TIME_FOREVER (~0ull)
+
+/*!
+ * @function dispatch_time
+ *
+ * @abstract
+ * Create a dispatch_time_t relative to the current value of the default or
+ * wall time clock, or modify an existing dispatch_time_t.
+ *
+ * @discussion
+ * On Apple platforms, the default clock is based on mach_absolute_time().
+ *
+ * @param when
+ * An optional dispatch_time_t to add nanoseconds to. If DISPATCH_TIME_NOW is
+ * passed, then dispatch_time() will use the default clock (which is based on
+ * mach_absolute_time() on Apple platforms). If DISPATCH_WALLTIME_NOW is used,
+ * dispatch_time() will use the value returned by gettimeofday(3).
+ * dispatch_time(DISPATCH_WALLTIME_NOW, delta) is equivalent to
+ * dispatch_walltime(NULL, delta).
+ *
+ * @param delta
+ * Nanoseconds to add.
+ *
+ * @result
+ * A new dispatch_time_t.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_time_t
+dispatch_time(dispatch_time_t when, int64_t delta);
+
+/*!
+ * @function dispatch_walltime
+ *
+ * @abstract
+ * Create a dispatch_time_t using the wall clock.
+ *
+ * @discussion
+ * On Mac OS X the wall clock is based on gettimeofday(3).
+ *
+ * @param when
+ * A struct timespec to add time to. If NULL is passed, then
+ * dispatch_walltime() will use the result of gettimeofday(3).
+ * dispatch_walltime(NULL, delta) returns the same value as
+ * dispatch_time(DISPATCH_WALLTIME_NOW, delta).
+ *
+ * @param delta
+ * Nanoseconds to add.
+ *
+ * @result
+ * A new dispatch_time_t.
+ */
+API_AVAILABLE(macos(10.6), ios(4.0))
+DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_NOTHROW
+dispatch_time_t
+dispatch_walltime(const struct timespec *_Nullable when, int64_t delta);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dispatch/workloop.h b/lib/libc/include/any-macos.13-any/dispatch/workloop.h
new file mode 100644
index 0000000000000000000000000000000000000000..5be010a52ac08477e26b84588144ad693dc8081a
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dispatch/workloop.h
@@ -0,0 +1,167 @@
+/*
+ * Copyright (c) 2017-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __DISPATCH_WORKLOOP__
+#define __DISPATCH_WORKLOOP__
+
+#ifndef __DISPATCH_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // for HeaderDoc
+#endif
+
+DISPATCH_ASSUME_NONNULL_BEGIN
+DISPATCH_ASSUME_ABI_SINGLE_BEGIN
+
+__BEGIN_DECLS
+
+/*!
+ * @typedef dispatch_workloop_t
+ *
+ * @abstract
+ * Dispatch workloops invoke workitems submitted to them in priority order.
+ *
+ * @discussion
+ * A dispatch workloop is a flavor of dispatch_queue_t that is a priority
+ * ordered queue (using the QOS class of the submitted workitems as the
+ * ordering). Dispatch workloops are an exclusion context and it is guaranteed
+ * that only one work item submitted to the dispatch workloop will be invoked at
+ * a time.
+ *
+ * Between each workitem invocation, the workloop will evaluate whether higher
+ * priority workitems have since been submitted, either directly to the
+ * workloop or to any queues that target the workloop, and execute these first.
+ *
+ * Serial queues targeting a workloop maintain FIFO execution of their
+ * workitems. However, the workloop may reorder workitems submitted to
+ * independent serial queues targeting it with respect to each other,
+ * based on their priorities, while preserving FIFO execution with respect to
+ * each serial queue.
+ *
+ * A dispatch workloop is a "subclass" of dispatch_queue_t which can be passed
+ * to all APIs accepting a dispatch queue, except for functions from the
+ * dispatch_sync() family. dispatch_async_and_wait() must be used for workloop
+ * objects. Functions from the dispatch_sync() family on queues targeting
+ * a workloop are still permitted but discouraged for performance reasons.
+ */
+DISPATCH_DECL_SUBCLASS(dispatch_workloop, dispatch_queue);
+
+/*!
+ * @function dispatch_workloop_create
+ *
+ * @abstract
+ * Creates a new dispatch workloop to which workitems may be submitted.
+ *
+ * @param label
+ * A string label to attach to the workloop.
+ *
+ * @result
+ * The newly created dispatch workloop.
+ */
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+dispatch_workloop_t
+dispatch_workloop_create(const char *DISPATCH_UNSAFE_INDEXABLE _Nullable label);
+
+/*!
+ * @function dispatch_workloop_create_inactive
+ *
+ * @abstract
+ * Creates a new inactive dispatch workloop that can be setup and then
+ * activated.
+ *
+ * @discussion
+ * Creating an inactive workloop allows for it to receive further configuration
+ * before it is activated, and workitems can be submitted to it.
+ *
+ * Submitting workitems to an inactive workloop is undefined and will cause the
+ * process to be terminated.
+ *
+ * @param label
+ * A string label to attach to the workloop.
+ *
+ * @result
+ * The newly created dispatch workloop.
+ */
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
+DISPATCH_NOTHROW
+dispatch_workloop_t
+dispatch_workloop_create_inactive(const char *DISPATCH_UNSAFE_INDEXABLE _Nullable label);
+
+/*!
+ * @function dispatch_workloop_set_autorelease_frequency
+ *
+ * @abstract
+ * Sets the autorelease frequency of the workloop.
+ *
+ * @discussion
+ * See dispatch_queue_attr_make_with_autorelease_frequency().
+ * The default policy for a workloop is
+ * DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM.
+ *
+ * @param workloop
+ * The dispatch workloop to modify.
+ *
+ * This workloop must be inactive, passing an activated object is undefined
+ * and will cause the process to be terminated.
+ *
+ * @param frequency
+ * The requested autorelease frequency.
+ */
+API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_workloop_set_autorelease_frequency(dispatch_workloop_t workloop,
+		dispatch_autorelease_frequency_t frequency);
+
+/*!
+  * @function dispatch_workloop_set_os_workgroup
+  *
+  * @abstract
+  * Associates an os_workgroup_t with the specified dispatch workloop.
+  *
+  * The worker thread will be a member of the specified os_workgroup_t while executing
+  * work items submitted to the workloop.
+  *
+  * @param workloop
+  * The dispatch workloop to modify.
+  *
+  * This workloop must be inactive, passing an activated object is undefined
+  * and will cause the process to be terminated.
+  *
+  * @param workgroup
+  * The workgroup to associate with this workloop.
+  *
+  * The workgroup specified is retained and the previously associated workgroup
+  * (if any) is released.
+  */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
+void
+dispatch_workloop_set_os_workgroup(dispatch_workloop_t workloop,
+		os_workgroup_t workgroup);
+
+__END_DECLS
+
+DISPATCH_ASSUME_ABI_SINGLE_END
+DISPATCH_ASSUME_NONNULL_END
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/dlfcn.h b/lib/libc/include/any-macos.13-any/dlfcn.h
new file mode 100644
index 0000000000000000000000000000000000000000..b858a2a294ff2db73e78c8b681f99e39bae3e988
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/dlfcn.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2004-2008 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@
+ */
+
+/*
+  Based on the dlcompat work done by:
+		Jorge Acereda   &
+		Peter O'Gorman 
+*/
+
+#ifndef _DLFCN_H_
+#define _DLFCN_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include 
+#include 
+
+#ifdef __DRIVERKIT_19_0
+ #define __DYLDDL_DRIVERKIT_UNAVAILABLE __API_UNAVAILABLE(driverkit)
+#else
+ #define __DYLDDL_DRIVERKIT_UNAVAILABLE
+#endif
+
+/*
+ * Structure filled in by dladdr().
+ */
+typedef struct dl_info {
+        const char      *dli_fname;     /* Pathname of shared object */
+        void            *dli_fbase;     /* Base address of shared object */
+        const char      *dli_sname;     /* Name of nearest symbol */
+        void            *dli_saddr;     /* Address of nearest symbol */
+} Dl_info;
+
+extern int dladdr(const void *, Dl_info *);
+#else
+ #define __DYLDDL_DRIVERKIT_UNAVAILABLE
+#endif /* not POSIX */
+
+extern int dlclose(void * __handle) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+extern char * dlerror(void) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+extern void * dlopen(const char * __path, int __mode) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+extern void * dlsym(void * __handle, const char * __symbol);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+extern bool dlopen_preflight(const char* __path) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) __DYLDDL_DRIVERKIT_UNAVAILABLE;
+#endif /* not POSIX */
+
+
+#define RTLD_LAZY	0x1
+#define RTLD_NOW	0x2
+#define RTLD_LOCAL	0x4
+#define RTLD_GLOBAL	0x8
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define RTLD_NOLOAD	0x10
+#define RTLD_NODELETE	0x80
+#define RTLD_FIRST	0x100	/* Mac OS X 10.5 and later */
+
+/*
+ * Special handle arguments for dlsym().
+ */
+#define	RTLD_NEXT	((void *) -1)	/* Search subsequent objects. */
+#define	RTLD_DEFAULT	((void *) -2)	/* Use default search algorithm. */
+#define	RTLD_SELF	((void *) -3)	/* Search this and subsequent objects (Mac OS X 10.5 and later) */
+#define	RTLD_MAIN_ONLY	((void *) -5)	/* Search main executable only (Mac OS X 10.5 and later) */
+#endif /* not POSIX */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DLFCN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/launch.h b/lib/libc/include/any-macos.13-any/launch.h
new file mode 100644
index 0000000000000000000000000000000000000000..9a1f4853a3bb344cc1144d3afa50d485f9c7fb55
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/launch.h
@@ -0,0 +1,411 @@
+#ifndef __XPC_LAUNCH_H__
+#define __XPC_LAUNCH_H__
+
+/*!
+ * @header
+ * These interfaces were only ever documented for the purpose of allowing a
+ * launchd job to obtain file descriptors associated with the sockets it
+ * advertised in its launchd.plist(5). That functionality is now available in a
+ * much more straightforward fashion through the {@link launch_activate_socket}
+ * API.
+ *
+ * There are currently no replacements for other uses of the {@link launch_msg}
+ * API, including submitting, removing, starting, stopping and listing jobs.
+ */
+
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull begin")
+#endif
+__BEGIN_DECLS
+
+#define LAUNCH_KEY_SUBMITJOB "SubmitJob"
+#define LAUNCH_KEY_REMOVEJOB "RemoveJob"
+#define LAUNCH_KEY_STARTJOB "StartJob"
+#define LAUNCH_KEY_STOPJOB "StopJob"
+#define LAUNCH_KEY_GETJOB "GetJob"
+#define LAUNCH_KEY_GETJOBS "GetJobs"
+#define LAUNCH_KEY_CHECKIN "CheckIn"
+
+#define LAUNCH_JOBKEY_LABEL "Label"
+#define LAUNCH_JOBKEY_DISABLED "Disabled"
+#define LAUNCH_JOBKEY_USERNAME "UserName"
+#define LAUNCH_JOBKEY_GROUPNAME "GroupName"
+#define LAUNCH_JOBKEY_TIMEOUT "TimeOut"
+#define LAUNCH_JOBKEY_EXITTIMEOUT "ExitTimeOut"
+#define LAUNCH_JOBKEY_INITGROUPS "InitGroups"
+#define LAUNCH_JOBKEY_SOCKETS "Sockets"
+#define LAUNCH_JOBKEY_MACHSERVICES "MachServices"
+#define LAUNCH_JOBKEY_MACHSERVICELOOKUPPOLICIES "MachServiceLookupPolicies"
+#define LAUNCH_JOBKEY_INETDCOMPATIBILITY "inetdCompatibility"
+#define LAUNCH_JOBKEY_ENABLEGLOBBING "EnableGlobbing"
+#define LAUNCH_JOBKEY_PROGRAMARGUMENTS "ProgramArguments"
+#define LAUNCH_JOBKEY_PROGRAM "Program"
+#define LAUNCH_JOBKEY_ONDEMAND "OnDemand"
+#define LAUNCH_JOBKEY_KEEPALIVE "KeepAlive"
+#define LAUNCH_JOBKEY_LIMITLOADTOHOSTS "LimitLoadToHosts"
+#define LAUNCH_JOBKEY_LIMITLOADFROMHOSTS "LimitLoadFromHosts"
+#define LAUNCH_JOBKEY_LIMITLOADTOSESSIONTYPE "LimitLoadToSessionType"
+#define LAUNCH_JOBKEY_LIMITLOADTOHARDWARE "LimitLoadToHardware"
+#define LAUNCH_JOBKEY_LIMITLOADFROMHARDWARE "LimitLoadFromHardware"
+#define LAUNCH_JOBKEY_RUNATLOAD "RunAtLoad"
+#define LAUNCH_JOBKEY_ROOTDIRECTORY "RootDirectory"
+#define LAUNCH_JOBKEY_WORKINGDIRECTORY "WorkingDirectory"
+#define LAUNCH_JOBKEY_ENVIRONMENTVARIABLES "EnvironmentVariables"
+#define LAUNCH_JOBKEY_USERENVIRONMENTVARIABLES "UserEnvironmentVariables"
+#define LAUNCH_JOBKEY_UMASK "Umask"
+#define LAUNCH_JOBKEY_NICE "Nice"
+#define LAUNCH_JOBKEY_HOPEFULLYEXITSFIRST "HopefullyExitsFirst"
+#define LAUNCH_JOBKEY_HOPEFULLYEXITSLAST "HopefullyExitsLast"
+#define LAUNCH_JOBKEY_LOWPRIORITYIO "LowPriorityIO"
+#define LAUNCH_JOBKEY_LOWPRIORITYBACKGROUNDIO "LowPriorityBackgroundIO"
+#define LAUNCH_JOBKEY_MATERIALIZEDATALESSFILES "MaterializeDatalessFiles"
+#define LAUNCH_JOBKEY_SESSIONCREATE "SessionCreate"
+#define LAUNCH_JOBKEY_STARTONMOUNT "StartOnMount"
+#define LAUNCH_JOBKEY_SOFTRESOURCELIMITS "SoftResourceLimits"
+#define LAUNCH_JOBKEY_HARDRESOURCELIMITS "HardResourceLimits"
+#define LAUNCH_JOBKEY_STANDARDINPATH "StandardInPath"
+#define LAUNCH_JOBKEY_STANDARDOUTPATH "StandardOutPath"
+#define LAUNCH_JOBKEY_STANDARDERRORPATH "StandardErrorPath"
+#define LAUNCH_JOBKEY_DEBUG "Debug"
+#define LAUNCH_JOBKEY_WAITFORDEBUGGER "WaitForDebugger"
+#define LAUNCH_JOBKEY_QUEUEDIRECTORIES "QueueDirectories"
+#define LAUNCH_JOBKEY_HOMERELATIVEQUEUEDIRECTORIES "HomeRelativeQueueDirectories"
+#define LAUNCH_JOBKEY_WATCHPATHS "WatchPaths"
+#define LAUNCH_JOBKEY_STARTINTERVAL "StartInterval"
+#define LAUNCH_JOBKEY_STARTCALENDARINTERVAL "StartCalendarInterval"
+#define LAUNCH_JOBKEY_BONJOURFDS "BonjourFDs"
+#define LAUNCH_JOBKEY_LASTEXITSTATUS "LastExitStatus"
+#define LAUNCH_JOBKEY_PID "PID"
+#define LAUNCH_JOBKEY_THROTTLEINTERVAL "ThrottleInterval"
+#define LAUNCH_JOBKEY_LAUNCHONLYONCE "LaunchOnlyOnce"
+#define LAUNCH_JOBKEY_ABANDONPROCESSGROUP "AbandonProcessGroup"
+#define LAUNCH_JOBKEY_IGNOREPROCESSGROUPATSHUTDOWN \
+	"IgnoreProcessGroupAtShutdown"
+#define LAUNCH_JOBKEY_LEGACYTIMERS "LegacyTimers"
+#define LAUNCH_JOBKEY_ENABLEPRESSUREDEXIT "EnablePressuredExit"
+#define LAUNCH_JOBKEY_ENABLETRANSACTIONS "EnableTransactions"
+#define LAUNCH_JOBKEY_DRAINMESSAGESONFAILEDINIT "DrainMessagesOnFailedInit"
+#define LAUNCH_JOBKEY_POLICIES "Policies"
+#define LAUNCH_JOBKEY_BUNDLEPROGRAM "BundleProgram"
+#define LAUNCH_JOBKEY_ASSOCIATEDBUNDLEIDENTIFIERS "AssociatedBundleIdentifiers"
+
+#define LAUNCH_JOBKEY_PUBLISHESEVENTS "PublishesEvents"
+#define LAUNCH_KEY_PUBLISHESEVENTS_DOMAININTERNAL "DomainInternal"
+
+#define LAUNCH_JOBPOLICY_DENYCREATINGOTHERJOBS "DenyCreatingOtherJobs"
+
+#define LAUNCH_JOBINETDCOMPATIBILITY_WAIT "Wait"
+#define LAUNCH_JOBINETDCOMPATIBILITY_INSTANCES "Instances"
+
+#define LAUNCH_JOBKEY_MACH_RESETATCLOSE "ResetAtClose"
+#define LAUNCH_JOBKEY_MACH_HIDEUNTILCHECKIN "HideUntilCheckIn"
+
+#define LAUNCH_JOBKEY_KEEPALIVE_SUCCESSFULEXIT "SuccessfulExit"
+#define LAUNCH_JOBKEY_KEEPALIVE_NETWORKSTATE "NetworkState"
+#define LAUNCH_JOBKEY_KEEPALIVE_PATHSTATE "PathState"
+#define LAUNCH_JOBKEY_KEEPALIVE_HOMERELATIVEPATHSTATE "HomeRelativePathState"
+#define LAUNCH_JOBKEY_KEEPALIVE_OTHERJOBACTIVE "OtherJobActive"
+#define LAUNCH_JOBKEY_KEEPALIVE_OTHERJOBENABLED "OtherJobEnabled"
+#define LAUNCH_JOBKEY_KEEPALIVE_AFTERINITIALDEMAND	"AfterInitialDemand"
+#define LAUNCH_JOBKEY_KEEPALIVE_CRASHED "Crashed"
+
+#define LAUNCH_JOBKEY_LAUNCHEVENTS "LaunchEvents"
+
+#define LAUNCH_JOBKEY_CAL_MINUTE "Minute"
+#define LAUNCH_JOBKEY_CAL_HOUR "Hour"
+#define LAUNCH_JOBKEY_CAL_DAY "Day"
+#define LAUNCH_JOBKEY_CAL_WEEKDAY "Weekday"
+#define LAUNCH_JOBKEY_CAL_MONTH "Month"
+
+#define LAUNCH_JOBKEY_RESOURCELIMIT_CORE "Core"
+#define LAUNCH_JOBKEY_RESOURCELIMIT_CPU "CPU"
+#define LAUNCH_JOBKEY_RESOURCELIMIT_DATA "Data"
+#define LAUNCH_JOBKEY_RESOURCELIMIT_FSIZE "FileSize"
+#define LAUNCH_JOBKEY_RESOURCELIMIT_MEMLOCK "MemoryLock"
+#define LAUNCH_JOBKEY_RESOURCELIMIT_NOFILE "NumberOfFiles"
+#define LAUNCH_JOBKEY_RESOURCELIMIT_NPROC "NumberOfProcesses"
+#define LAUNCH_JOBKEY_RESOURCELIMIT_RSS "ResidentSetSize"
+#define LAUNCH_JOBKEY_RESOURCELIMIT_STACK "Stack"
+
+#define LAUNCH_JOBKEY_DISABLED_MACHINETYPE "MachineType"
+#define LAUNCH_JOBKEY_DISABLED_MODELNAME "ModelName"
+
+#define LAUNCH_JOBKEY_DATASTORES "Datastores"
+#define LAUNCH_JOBKEY_DATASTORES_SIZELIMIT "SizeLimit"
+
+#define LAUNCH_JOBSOCKETKEY_TYPE "SockType"
+#define LAUNCH_JOBSOCKETKEY_PASSIVE "SockPassive"
+#define LAUNCH_JOBSOCKETKEY_BONJOUR "Bonjour"
+#define LAUNCH_JOBSOCKETKEY_SECUREWITHKEY "SecureSocketWithKey"
+#define LAUNCH_JOBSOCKETKEY_PATHNAME "SockPathName"
+#define LAUNCH_JOBSOCKETKEY_PATHMODE "SockPathMode"
+#define LAUNCH_JOBSOCKETKEY_PATHOWNER "SockPathOwner"
+#define LAUNCH_JOBSOCKETKEY_PATHGROUP "SockPathGroup"
+#define LAUNCH_JOBSOCKETKEY_NODENAME "SockNodeName"
+#define LAUNCH_JOBSOCKETKEY_SERVICENAME "SockServiceName"
+#define LAUNCH_JOBSOCKETKEY_FAMILY "SockFamily"
+#define LAUNCH_JOBSOCKETKEY_PROTOCOL "SockProtocol"
+#define LAUNCH_JOBSOCKETKEY_MULTICASTGROUP "MulticastGroup"
+
+#define LAUNCH_JOBKEY_PROCESSTYPE "ProcessType"
+#define LAUNCH_KEY_PROCESSTYPE_APP "App"
+#define LAUNCH_KEY_PROCESSTYPE_STANDARD "Standard"
+#define LAUNCH_KEY_PROCESSTYPE_BACKGROUND "Background"
+#define LAUNCH_KEY_PROCESSTYPE_INTERACTIVE "Interactive"
+#define LAUNCH_KEY_PROCESSTYPE_ADAPTIVE "Adaptive"
+
+/*!
+ * @function launch_activate_socket
+ *
+ * @abstract
+ * Retrieves the file descriptors for sockets specified in the process'
+ * launchd.plist(5).
+ *
+ * @param name
+ * The name of the socket entry in the service's Sockets dictionary.
+ *
+ * @param fds
+ * On return, this parameter will be populated with an array of file
+ * descriptors. One socket can have many descriptors associated with it
+ * depending on the characteristics of the network interfaces on the system.
+ * The descriptors in this array are the results of calling getaddrinfo(3) with
+ * the parameters described in launchd.plist(5).
+ *
+ * The caller is responsible for calling free(3) on the returned pointer.
+ *
+ * @param cnt
+ * The number of file descriptor entries in the returned array.
+ *
+ * @result
+ * On success, zero is returned. Otherwise, an appropriate POSIX-domain is
+ * returned. Possible error codes are:
+ *
+ * ENOENT -> There was no socket of the specified name owned by the caller.
+ * ESRCH -> The caller is not a process managed by launchd.
+ * EALREADY -> The socket has already been activated by the caller.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1 OS_NONNULL2 OS_NONNULL3
+int
+launch_activate_socket(const char *name,
+	int * _Nonnull * _Nullable fds, size_t *cnt);
+
+typedef struct _launch_data *launch_data_t;
+typedef void (*launch_data_dict_iterator_t)(const launch_data_t lval,
+	const char *key, void * _Nullable ctx);
+
+typedef enum {
+	LAUNCH_DATA_DICTIONARY = 1,
+	LAUNCH_DATA_ARRAY,
+	LAUNCH_DATA_FD,
+	LAUNCH_DATA_INTEGER,
+	LAUNCH_DATA_REAL,
+	LAUNCH_DATA_BOOL,
+	LAUNCH_DATA_STRING,
+	LAUNCH_DATA_OPAQUE,
+	LAUNCH_DATA_ERRNO,
+	LAUNCH_DATA_MACHPORT,
+} launch_data_type_t;
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT
+launch_data_t
+launch_data_alloc(launch_data_type_t type);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT OS_NONNULL1
+launch_data_t
+launch_data_copy(launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+launch_data_type_t
+launch_data_get_type(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1
+void
+launch_data_free(launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1 OS_NONNULL2 OS_NONNULL3
+bool
+launch_data_dict_insert(launch_data_t ldict, const launch_data_t lval,
+	const char *key);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1 OS_NONNULL2
+launch_data_t _Nullable
+launch_data_dict_lookup(const launch_data_t ldict, const char *key);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1 OS_NONNULL2
+bool
+launch_data_dict_remove(launch_data_t ldict, const char *key);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1 OS_NONNULL2
+void
+launch_data_dict_iterate(const launch_data_t ldict,
+	launch_data_dict_iterator_t iterator, void * _Nullable ctx);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+size_t
+launch_data_dict_get_count(const launch_data_t ldict);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1 OS_NONNULL2
+bool
+launch_data_array_set_index(launch_data_t larray, const launch_data_t lval,
+	size_t idx);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+launch_data_t
+launch_data_array_get_index(const launch_data_t larray, size_t idx);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+size_t
+launch_data_array_get_count(const launch_data_t larray);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT
+launch_data_t
+launch_data_new_fd(int fd);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT
+launch_data_t
+launch_data_new_machport(mach_port_t val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT
+launch_data_t
+launch_data_new_integer(long long val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT
+launch_data_t
+launch_data_new_bool(bool val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT
+launch_data_t
+launch_data_new_real(double val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT
+launch_data_t
+launch_data_new_string(const char *val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT
+launch_data_t
+launch_data_new_opaque(const void *bytes, size_t sz);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1
+bool
+launch_data_set_fd(launch_data_t ld, int fd);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1
+bool
+launch_data_set_machport(launch_data_t ld, mach_port_t mp);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1
+bool
+launch_data_set_integer(launch_data_t ld, long long val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1
+bool
+launch_data_set_bool(launch_data_t ld, bool val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1
+bool
+launch_data_set_real(launch_data_t ld, double val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1
+bool
+launch_data_set_string(launch_data_t ld, const char *val);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_NONNULL1
+bool
+launch_data_set_opaque(launch_data_t ld, const void *bytes, size_t sz);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+int
+launch_data_get_fd(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+mach_port_t
+launch_data_get_machport(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+long long
+launch_data_get_integer(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+bool
+launch_data_get_bool(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+double
+launch_data_get_real(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+const char *
+launch_data_get_string(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+void * _Nullable
+launch_data_get_opaque(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+size_t
+launch_data_get_opaque_size(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT OS_NONNULL1
+int
+launch_data_get_errno(const launch_data_t ld);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_WARN_RESULT
+int
+launch_get_fd(void);
+
+__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_8_0)
+OS_EXPORT OS_MALLOC OS_WARN_RESULT OS_NONNULL1
+launch_data_t
+launch_msg(const launch_data_t request);
+
+__END_DECLS
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull end")
+#endif
+
+#endif // __XPC_LAUNCH_H__
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/libproc.h b/lib/libc/include/any-macos.13-any/libproc.h
new file mode 100644
index 0000000000000000000000000000000000000000..7bb9e0c23af6548851fec5d7058027c34fbc0162
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/libproc.h
@@ -0,0 +1,173 @@
+/*
+ * Copyright (c) 2006, 2007, 2010 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@
+ */
+#ifndef _LIBPROC_H_
+#define _LIBPROC_H_
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include  /* for audit_token_t */
+
+#include 
+
+#include 
+#include 
+
+/*
+ * This header file contains private interfaces to obtain process information.
+ * These interfaces are subject to change in future releases.
+ */
+
+/*!
+ *       @define PROC_LISTPIDSPATH_PATH_IS_VOLUME
+ *       @discussion This flag indicates that all processes that hold open
+ *               file references on the volume associated with the specified
+ *               path should be returned.
+ */
+#define PROC_LISTPIDSPATH_PATH_IS_VOLUME        1
+
+
+/*!
+ *       @define PROC_LISTPIDSPATH_EXCLUDE_EVTONLY
+ *       @discussion This flag indicates that file references that were opened
+ *               with the O_EVTONLY flag should be excluded from the matching
+ *               criteria.
+ */
+#define PROC_LISTPIDSPATH_EXCLUDE_EVTONLY       2
+
+__BEGIN_DECLS
+
+
+/*!
+ *       @function proc_listpidspath
+ *       @discussion A function which will search through the current
+ *               processes looking for open file references which match
+ *               a specified path or volume.
+ *       @param type types of processes to be searched (see proc_listpids)
+ *       @param typeinfo adjunct information for type
+ *       @param path file or volume path
+ *       @param pathflags flags to control which files should be considered
+ *               during the process search.
+ *       @param buffer a C array of int-sized values to be filled with
+ *               process identifiers that hold an open file reference
+ *               matching the specified path or volume.  Pass NULL to
+ *               obtain the minimum buffer size needed to hold the
+ *               currently active processes.
+ *       @param buffersize the size (in bytes) of the provided buffer.
+ *       @result the number of bytes of data returned in the provided buffer;
+ *               -1 if an error was encountered;
+ */
+int     proc_listpidspath(uint32_t      type,
+    uint32_t      typeinfo,
+    const char    *path,
+    uint32_t      pathflags,
+    void          *buffer,
+    int           buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+
+int proc_listpids(uint32_t type, uint32_t typeinfo, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int proc_listallpids(void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
+int proc_listpgrppids(pid_t pgrpid, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
+int proc_listchildpids(pid_t ppid, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
+int proc_pidinfo(int pid, int flavor, uint64_t arg, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int proc_pidfdinfo(int pid, int fd, int flavor, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int proc_pidfileportinfo(int pid, uint32_t fileport, int flavor, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+int proc_name(int pid, void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int proc_regionfilename(int pid, uint64_t address, void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int proc_kmsgbuf(void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int proc_pidpath(int pid, void * buffer, uint32_t  buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int proc_pidpath_audittoken(audit_token_t *audittoken, void * buffer, uint32_t  buffersize) API_AVAILABLE(macos(11.0), ios(14.0), watchos(7.0), tvos(14.0));
+int proc_libversion(int *major, int * minor) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+
+/*
+ * Return resource usage information for the given pid, which can be a live process or a zombie.
+ *
+ * Returns 0 on success; or -1 on failure, with errno set to indicate the specific error.
+ */
+int proc_pid_rusage(int pid, int flavor, rusage_info_t *buffer) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
+
+/*
+ * A process can use the following api to set its own process control
+ * state on resoure starvation. The argument can have one of the PROC_SETPC_XX values
+ */
+#define PROC_SETPC_NONE         0
+#define PROC_SETPC_THROTTLEMEM  1
+#define PROC_SETPC_SUSPEND      2
+#define PROC_SETPC_TERMINATE    3
+
+int proc_setpcontrol(const int control) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+int proc_setpcontrol(const int control);
+
+int proc_track_dirty(pid_t pid, uint32_t flags);
+int proc_set_dirty(pid_t pid, bool dirty);
+int proc_get_dirty(pid_t pid, uint32_t *flags);
+int proc_clear_dirty(pid_t pid, uint32_t flags);
+
+int proc_terminate(pid_t pid, int *sig);
+int proc_terminate_all_rsr(int sig);
+
+/*
+ * NO_SMT means that on an SMT CPU, this thread must be scheduled alone,
+ * with the paired CPU idle.
+ *
+ * Set NO_SMT on the current proc (all existing and future threads)
+ * This attribute is inherited on fork and exec
+ */
+int proc_set_no_smt(void) __API_AVAILABLE(macos(11.0));
+
+/* Set NO_SMT on the current thread */
+int proc_setthread_no_smt(void) __API_AVAILABLE(macos(11.0));
+
+/*
+ * CPU Security Mitigation APIs
+ *
+ * Set CPU security mitigation on the current proc (all existing and future threads)
+ * This attribute is inherited on fork and exec
+ */
+int proc_set_csm(uint32_t flags) __API_AVAILABLE(macos(11.0));
+
+/* Set CPU security mitigation on the current thread */
+int proc_setthread_csm(uint32_t flags) __API_AVAILABLE(macos(11.0));
+
+/*
+ * flags for CPU Security Mitigation APIs
+ * PROC_CSM_ALL should be used in most cases,
+ * the individual flags are provided only for performance evaluation etc
+ */
+#define PROC_CSM_ALL         0x0001  /* Set all available mitigations */
+#define PROC_CSM_NOSMT       0x0002  /* Set NO_SMT - see above */
+#define PROC_CSM_TECS        0x0004  /* Execute VERW on every return to user mode */
+
+int proc_udata_info(int pid, int flavor, void *buffer, int buffersize);
+
+#if __has_include()
+#include 
+#endif
+
+__END_DECLS
+
+#endif /*_LIBPROC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach-o/arch.h b/lib/libc/include/any-macos.13-any/mach-o/arch.h
new file mode 100644
index 0000000000000000000000000000000000000000..0899e050ade5b1cd9a644e771f850116dd4515a9
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach-o/arch.h
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 1999 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 _MACH_O_ARCH_H_
+#define _MACH_O_ARCH_H_
+/*
+ * Copyright (c) 1997 Apple Computer, Inc.
+ *
+ * Functions that deal with information about architectures.
+ *
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifndef __CCTOOLS_DEPRECATED
+    #define __CCTOOLS_DEPRECATED            __API_DEPRECATED("No longer supported", macos(10.0, 13.0), ios(1.0, 16.0), watchos(1.0, 8.0), tvos(1.0, 16.0))
+    #define __CCTOOLS_DEPRECATED_MSG(_msg)  __API_DEPRECATED_WITH_REPLACEMENT(_msg, macos(10.0, 13.0), ios(1.0, 16.0), watchos(1.0, 8.0), tvos(1.0, 16.0))
+#endif
+
+/* The NXArchInfo structs contain the architectures symbolic name
+ * (such as "ppc"), its CPU type and CPU subtype as defined in
+ * mach/machine.h, the byte order for the architecture, and a
+ * describing string (such as "PowerPC").
+ * There will both be entries for specific CPUs (such as ppc604e) as
+ * well as generic "family" entries (such as ppc).
+ */
+
+struct NXArchInfo  {
+    const char *name;
+    cpu_type_t cputype;
+    cpu_subtype_t cpusubtype;
+    enum NXByteOrder byteorder;
+    const char *description;
+} __CCTOOLS_DEPRECATED;
+typedef struct NXArchInfo NXArchInfo __CCTOOLS_DEPRECATED;
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* NXGetAllArchInfos() returns a pointer to an array of all known
+ * NXArchInfo structures.  The last NXArchInfo is marked by a NULL name.
+ */
+extern const NXArchInfo *NXGetAllArchInfos(void) __CCTOOLS_DEPRECATED;
+
+/* NXGetLocalArchInfo() returns the NXArchInfo for the local host, or NULL
+ * if none is known. 
+ */
+extern const NXArchInfo *NXGetLocalArchInfo(void) __CCTOOLS_DEPRECATED_MSG("use macho_arch_name_for_mach_header()");
+
+/* NXGetArchInfoFromName() and NXGetArchInfoFromCpuType() return the
+ * NXArchInfo from the architecture's name or cputype/cpusubtype
+ * combination.  A cpusubtype of CPU_SUBTYPE_MULTIPLE can be used
+ * to request the most general NXArchInfo known for the given cputype.
+ * NULL is returned if no matching NXArchInfo can be found.
+ */
+extern const NXArchInfo *NXGetArchInfoFromName(const char *name) __CCTOOLS_DEPRECATED_MSG("use macho_cpu_type_for_arch_name()");
+extern const NXArchInfo *NXGetArchInfoFromCpuType(cpu_type_t cputype,
+						  cpu_subtype_t cpusubtype) __CCTOOLS_DEPRECATED_MSG("use macho_arch_name_for_cpu_type()");
+
+/* The above interfaces that return pointers to NXArchInfo structs in normal
+ * cases returns a pointer from the array returned in NXGetAllArchInfos().
+ * In some cases when the cputype is CPU_TYPE_I386 or CPU_TYPE_POWERPC it will
+ * retun malloc(3)'ed NXArchInfo struct which contains a string in the
+ * description field also a malloc(3)'ed pointer.  To allow programs not to
+ * leak memory they can call NXFreeArchInfo() on pointers returned from the
+ * above interfaces.  Since this is a new API on older systems can use the
+ * code below.  Going forward the above interfaces will only return pointers
+ * from the array returned in NXGetAllArchInfos().
+ */
+extern void NXFreeArchInfo(const NXArchInfo *x) __CCTOOLS_DEPRECATED_MSG("NXArchInfo is deprecated");
+
+/* The code that can be used for NXFreeArchInfo() when it is not available is:
+ *
+ *	static void NXFreeArchInfo(
+ *	const NXArchInfo *x)
+ *	{
+ *	    const NXArchInfo *p;
+ *	
+ *	        p = NXGetAllArchInfos();
+ *	        while(p->name != NULL){
+ *	            if(x == p)
+ *	                return;
+ *	            p++;
+ *	        }
+ *	        free((char *)x->description);
+ *	        free((NXArchInfo *)x);
+ *	}
+ */
+
+/* NXFindBestFatArch() is passed a cputype and cpusubtype and a set of
+ * fat_arch structs and selects the best one that matches (if any) and returns
+ * a pointer to that fat_arch struct (or NULL).  The fat_arch structs must be
+ * in the host byte order and correct such that the fat_archs really points to
+ * enough memory for nfat_arch structs.  It is possible that this routine could
+ * fail if new cputypes or cpusubtypes are added and an old version of this
+ * routine is used.  But if there is an exact match between the cputype and
+ * cpusubtype and one of the fat_arch structs this routine will always succeed.
+ */
+extern struct fat_arch *NXFindBestFatArch(cpu_type_t cputype,
+					  cpu_subtype_t cpusubtype,
+					  struct fat_arch *fat_archs,
+					  uint32_t nfat_archs) __CCTOOLS_DEPRECATED_MSG("use macho_best_slice()");
+
+/* NXFindBestFatArch_64() is passed a cputype and cpusubtype and a set of
+ * fat_arch_64 structs and selects the best one that matches (if any) and
+ * returns a pointer to that fat_arch_64 struct (or NULL).  The fat_arch_64
+ * structs must be in the host byte order and correct such that the fat_archs64
+ * really points to enough memory for nfat_arch structs.  It is possible that
+ * this routine could fail if new cputypes or cpusubtypes are added and an old
+ * version of this routine is used.  But if there is an exact match between the
+ * cputype and cpusubtype and one of the fat_arch_64 structs this routine will
+ * always succeed.
+ */
+extern struct fat_arch_64 *NXFindBestFatArch_64(cpu_type_t cputype,
+					        cpu_subtype_t cpusubtype,
+					        struct fat_arch_64 *fat_archs64,
+					        uint32_t nfat_archs) __CCTOOLS_DEPRECATED_MSG("use macho_best_slice()");
+
+/* NXCombineCpuSubtypes() returns the resulting cpusubtype when combining two
+ * different cpusubtypes for the specified cputype.  If the two cpusubtypes
+ * can't be combined (the specific subtypes are mutually exclusive) -1 is
+ * returned indicating it is an error to combine them.  This can also fail and
+ * return -1 if new cputypes or cpusubtypes are added and an old version of
+ * this routine is used.  But if the cpusubtypes are the same they can always
+ * be combined and this routine will return the cpusubtype pass in.
+ */
+extern cpu_subtype_t NXCombineCpuSubtypes(cpu_type_t cputype,
+					  cpu_subtype_t cpusubtype1,
+					  cpu_subtype_t cpusubtype2) __CCTOOLS_DEPRECATED_MSG("cpu subtypes are no longer combinable");
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _MACH_O_ARCH_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach-o/fat.h b/lib/libc/include/any-macos.13-any/mach-o/fat.h
new file mode 100644
index 0000000000000000000000000000000000000000..32959ca42a26582766e3ec4d5bfce6a7dd1eed02
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach-o/fat.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2016 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@
+ */
+#ifndef _MACH_O_FAT_H_
+#define _MACH_O_FAT_H_
+/*
+ * This header file describes the structures of the file format for "fat"
+ * architecture specific file (wrapper design).  At the begining of the file
+ * there is one fat_header structure followed by a number of fat_arch
+ * structures.  For each architecture in the file, specified by a pair of
+ * cputype and cpusubtype, the fat_header describes the file offset, file
+ * size and alignment in the file of the architecture specific member.
+ * The padded bytes in the file to place each member on it's specific alignment
+ * are defined to be read as zeros and can be left as "holes" if the file system
+ * can support them as long as they read as zeros.
+ *
+ * All structures defined here are always written and read to/from disk
+ * in big-endian order.
+ */
+
+/*
+ *  is needed here for the cpu_type_t and cpu_subtype_t types
+ * and contains the constants for the possible values of these types.
+ */
+#include 
+#include 
+
+#if __has_include()
+#include 
+#endif
+
+#define FAT_MAGIC	0xcafebabe
+#define FAT_CIGAM	0xbebafeca	/* NXSwapLong(FAT_MAGIC) */
+
+struct fat_header {
+	uint32_t	magic;		/* FAT_MAGIC or FAT_MAGIC_64 */
+	uint32_t	nfat_arch;	/* number of structs that follow */
+};
+
+struct fat_arch {
+	cpu_type_t	cputype;	/* cpu specifier (int) */
+	cpu_subtype_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 */
+};
+
+/*
+ * The support for the 64-bit fat file format described here is a work in
+ * progress and not yet fully supported in all the Apple Developer Tools.
+ *
+ * When a slice is greater than 4mb or an offset to a slice is greater than 4mb
+ * then the 64-bit fat file format is used.
+ */
+#define FAT_MAGIC_64	0xcafebabf
+#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) */
+	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 */
+	uint32_t	reserved;	/* reserved */
+};
+
+#endif /* _MACH_O_FAT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach-o/loader.h b/lib/libc/include/any-macos.13-any/mach-o/loader.h
new file mode 100644
index 0000000000000000000000000000000000000000..4ffc5140a309044b89e2176b3d76a9965edf4454
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach-o/loader.h
@@ -0,0 +1,1638 @@
+/*
+ * Copyright (c) 1999-2010 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@
+ */
+#ifndef _MACHO_LOADER_H_
+#define _MACHO_LOADER_H_
+
+/*
+ * This file describes the format of mach object files.
+ */
+#include 
+
+/*
+ *  is needed here for the cpu_type_t and cpu_subtype_t types
+ * and contains the constants for the possible values of these types.
+ */
+#if __has_include()
+#include 
+#endif
+
+/*
+ *  is needed here for the vm_prot_t type and contains the 
+ * constants that are or'ed together for the possible values of this type.
+ */
+#if __has_include()
+#include 
+#endif
+
+/*
+ *  is expected to define the flavors of the thread
+ * states and the structures of those flavors for each machine.
+ */
+#if __has_include()
+#include 
+#endif
+#if __has_include()
+#include 
+#endif
+
+/*
+ * The 32-bit mach header appears at the very beginning of the object file for
+ * 32-bit architectures.
+ */
+struct mach_header {
+	uint32_t	magic;		/* mach magic number identifier */
+	int32_t		cputype;	/* cpu specifier */
+	int32_t		cpusubtype;	/* machine specifier */
+	uint32_t	filetype;	/* type of file */
+	uint32_t	ncmds;		/* number of load commands */
+	uint32_t	sizeofcmds;	/* the size of all the load commands */
+	uint32_t	flags;		/* flags */
+};
+
+/* Constant for the magic field of the mach_header (32-bit architectures) */
+#define	MH_MAGIC	0xfeedface	/* the mach magic number */
+#define MH_CIGAM	0xcefaedfe	/* NXSwapInt(MH_MAGIC) */
+
+/*
+ * The 64-bit mach header appears at the very beginning of object files for
+ * 64-bit architectures.
+ */
+struct mach_header_64 {
+	uint32_t	magic;		/* mach magic number identifier */
+	int32_t		cputype;	/* cpu specifier */
+	int32_t		cpusubtype;	/* machine specifier */
+	uint32_t	filetype;	/* type of file */
+	uint32_t	ncmds;		/* number of load commands */
+	uint32_t	sizeofcmds;	/* the size of all the load commands */
+	uint32_t	flags;		/* flags */
+	uint32_t	reserved;	/* reserved */
+};
+
+/* Constant for the magic field of the mach_header_64 (64-bit architectures) */
+#define MH_MAGIC_64 0xfeedfacf /* the 64-bit mach magic number */
+#define MH_CIGAM_64 0xcffaedfe /* NXSwapInt(MH_MAGIC_64) */
+
+/*
+ * The layout of the file depends on the filetype.  For all but the MH_OBJECT
+ * file type the segments are padded out and aligned on a segment alignment
+ * boundary for efficient demand pageing.  The MH_EXECUTE, MH_FVMLIB, MH_DYLIB,
+ * MH_DYLINKER and MH_BUNDLE file types also have the headers included as part
+ * of their first segment.
+ * 
+ * The file type MH_OBJECT is a compact format intended as output of the
+ * assembler and input (and possibly output) of the link editor (the .o
+ * format).  All sections are in one unnamed segment with no segment padding. 
+ * This format is used as an executable format when the file is so small the
+ * segment padding greatly increases its size.
+ *
+ * The file type MH_PRELOAD is an executable format intended for things that
+ * are not executed under the kernel (proms, stand alones, kernels, etc).  The
+ * format can be executed under the kernel but may demand paged it and not
+ * preload it before execution.
+ *
+ * A core file is in MH_CORE format and can be any in an arbritray legal
+ * Mach-O file.
+ *
+ * Constants for the filetype field of the mach_header
+ */
+#define	MH_OBJECT	0x1		/* relocatable object file */
+#define	MH_EXECUTE	0x2		/* demand paged executable file */
+#define	MH_FVMLIB	0x3		/* fixed VM shared library file */
+#define	MH_CORE		0x4		/* core file */
+#define	MH_PRELOAD	0x5		/* preloaded executable file */
+#define	MH_DYLIB	0x6		/* dynamically bound shared library */
+#define	MH_DYLINKER	0x7		/* dynamic link editor */
+#define	MH_BUNDLE	0x8		/* dynamically bound bundle file */
+#define	MH_DYLIB_STUB	0x9		/* shared library stub for static
+					   linking only, no section contents */
+#define	MH_DSYM		0xa		/* companion file with only debug
+					   sections */
+#define	MH_KEXT_BUNDLE	0xb		/* x86_64 kexts */
+#define MH_FILESET	0xc		/* a file composed of other Mach-Os to
+					   be run in the same userspace sharing
+					   a single linkedit. */
+#define	MH_GPU_EXECUTE	0xd		/* gpu program */
+#define	MH_GPU_DYLIB	0xe		/* gpu support functions */
+
+
+/* Constants for the flags field of the mach_header */
+#define	MH_NOUNDEFS	0x1		/* the object file has no undefined
+					   references */
+#define	MH_INCRLINK	0x2		/* the object file is the output of an
+					   incremental link against a base file
+					   and can't be link edited again */
+#define MH_DYLDLINK	0x4		/* the object file is input for the
+					   dynamic linker and can't be staticly
+					   link edited again */
+#define MH_BINDATLOAD	0x8		/* the object file's undefined
+					   references are bound by the dynamic
+					   linker when loaded. */
+#define MH_PREBOUND	0x10		/* the file has its dynamic undefined
+					   references prebound. */
+#define MH_SPLIT_SEGS	0x20		/* the file has its read-only and
+					   read-write segments split */
+#define MH_LAZY_INIT	0x40		/* the shared library init routine is
+					   to be run lazily via catching memory
+					   faults to its writeable segments
+					   (obsolete) */
+#define MH_TWOLEVEL	0x80		/* the image is using two-level name
+					   space bindings */
+#define MH_FORCE_FLAT	0x100		/* the executable is forcing all images
+					   to use flat name space bindings */
+#define MH_NOMULTIDEFS	0x200		/* this umbrella guarantees no multiple
+					   defintions of symbols in its
+					   sub-images so the two-level namespace
+					   hints can always be used. */
+#define MH_NOFIXPREBINDING 0x400	/* do not have dyld notify the
+					   prebinding agent about this
+					   executable */
+#define MH_PREBINDABLE  0x800           /* the binary is not prebound but can
+					   have its prebinding redone. only used
+                                           when MH_PREBOUND is not set. */
+#define MH_ALLMODSBOUND 0x1000		/* indicates that this binary binds to
+                                           all two-level namespace modules of
+					   its dependent libraries. only used
+					   when MH_PREBINDABLE and MH_TWOLEVEL
+					   are both set. */ 
+#define MH_SUBSECTIONS_VIA_SYMBOLS 0x2000/* safe to divide up the sections into
+					    sub-sections via symbols for dead
+					    code stripping */
+#define MH_CANONICAL    0x4000		/* the binary has been canonicalized
+					   via the unprebind operation */
+#define MH_WEAK_DEFINES	0x8000		/* the final linked image contains
+					   external weak symbols */
+#define MH_BINDS_TO_WEAK 0x10000	/* the final linked image uses
+					   weak symbols */
+
+#define MH_ALLOW_STACK_EXECUTION 0x20000/* When this bit is set, all stacks 
+					   in the task will be given stack
+					   execution privilege.  Only used in
+					   MH_EXECUTE filetypes. */
+#define MH_ROOT_SAFE 0x40000           /* When this bit is set, the binary 
+					  declares it is safe for use in
+					  processes with uid zero */
+                                         
+#define MH_SETUID_SAFE 0x80000         /* When this bit is set, the binary 
+					  declares it is safe for use in
+					  processes when issetugid() is true */
+
+#define MH_NO_REEXPORTED_DYLIBS 0x100000 /* When this bit is set on a dylib, 
+					  the static linker does not need to
+					  examine dependent dylibs to see
+					  if any are re-exported */
+#define	MH_PIE 0x200000			/* When this bit is set, the OS will
+					   load the main executable at a
+					   random address.  Only used in
+					   MH_EXECUTE filetypes. */
+#define	MH_DEAD_STRIPPABLE_DYLIB 0x400000 /* Only for use on dylibs.  When
+					     linking against a dylib that
+					     has this bit set, the static linker
+					     will automatically not create a
+					     LC_LOAD_DYLIB load command to the
+					     dylib if no symbols are being
+					     referenced from the dylib. */
+#define MH_HAS_TLV_DESCRIPTORS 0x800000 /* Contains a section of type 
+					    S_THREAD_LOCAL_VARIABLES */
+
+#define MH_NO_HEAP_EXECUTION 0x1000000	/* When this bit is set, the OS will
+					   run the main executable with
+					   a non-executable heap even on
+					   platforms (e.g. i386) that don't
+					   require it. Only used in MH_EXECUTE
+					   filetypes. */
+
+#define MH_APP_EXTENSION_SAFE 0x02000000 /* The code was linked for use in an
+					    application extension. */
+
+#define	MH_NLIST_OUTOFSYNC_WITH_DYLDINFO 0x04000000 /* The external symbols
+					   listed in the nlist symbol table do
+					   not include all the symbols listed in
+					   the dyld info. */
+
+#define	MH_SIM_SUPPORT 0x08000000	/* Allow LC_MIN_VERSION_MACOS and
+					   LC_BUILD_VERSION load commands with
+					   the platforms macOS, macCatalyst,
+					   iOSSimulator, tvOSSimulator and
+					   watchOSSimulator. */
+					   
+#define MH_DYLIB_IN_CACHE 0x80000000	/* Only for use on dylibs. When this bit
+					   is set, the dylib is part of the dyld
+					   shared cache, rather than loose in
+					   the filesystem. */
+
+/*
+ * The load commands directly follow the mach_header.  The total size of all
+ * of the commands is given by the sizeofcmds field in the mach_header.  All
+ * load commands must have as their first two fields cmd and cmdsize.  The cmd
+ * field is filled in with a constant for that command type.  Each command type
+ * has a structure specifically for it.  The cmdsize field is the size in bytes
+ * of the particular load command structure plus anything that follows it that
+ * is a part of the load command (i.e. section structures, strings, etc.).  To
+ * advance to the next load command the cmdsize can be added to the offset or
+ * pointer of the current load command.  The cmdsize for 32-bit architectures
+ * MUST be a multiple of 4 bytes and for 64-bit architectures MUST be a multiple
+ * of 8 bytes (these are forever the maximum alignment of any load commands).
+ * The padded bytes must be zero.  All tables in the object file must also
+ * follow these rules so the file can be memory mapped.  Otherwise the pointers
+ * to these tables will not work well or at all on some machines.  With all
+ * padding zeroed like objects will compare byte for byte.
+ */
+struct load_command {
+	uint32_t cmd;		/* type of load command */
+	uint32_t cmdsize;	/* total size of command in bytes */
+};
+
+/*
+ * After MacOS X 10.1 when a new load command is added that is required to be
+ * understood by the dynamic linker for the image to execute properly the
+ * LC_REQ_DYLD bit will be or'ed into the load command constant.  If the dynamic
+ * linker sees such a load command it it does not understand will issue a
+ * "unknown load command required for execution" error and refuse to use the
+ * image.  Other load commands without this bit that are not understood will
+ * simply be ignored.
+ */
+#define LC_REQ_DYLD 0x80000000
+
+/* Constants for the cmd field of all load commands, the type */
+#define	LC_SEGMENT	0x1	/* segment of this file to be mapped */
+#define	LC_SYMTAB	0x2	/* link-edit stab symbol table info */
+#define	LC_SYMSEG	0x3	/* link-edit gdb symbol table info (obsolete) */
+#define	LC_THREAD	0x4	/* thread */
+#define	LC_UNIXTHREAD	0x5	/* unix thread (includes a stack) */
+#define	LC_LOADFVMLIB	0x6	/* load a specified fixed VM shared library */
+#define	LC_IDFVMLIB	0x7	/* fixed VM shared library identification */
+#define	LC_IDENT	0x8	/* object identification info (obsolete) */
+#define LC_FVMFILE	0x9	/* fixed VM file inclusion (internal use) */
+#define LC_PREPAGE      0xa     /* prepage command (internal use) */
+#define	LC_DYSYMTAB	0xb	/* dynamic link-edit symbol table info */
+#define	LC_LOAD_DYLIB	0xc	/* load a dynamically linked shared library */
+#define	LC_ID_DYLIB	0xd	/* dynamically linked shared lib ident */
+#define LC_LOAD_DYLINKER 0xe	/* load a dynamic linker */
+#define LC_ID_DYLINKER	0xf	/* dynamic linker identification */
+#define	LC_PREBOUND_DYLIB 0x10	/* modules prebound for a dynamically */
+				/*  linked shared library */
+#define	LC_ROUTINES	0x11	/* image routines */
+#define	LC_SUB_FRAMEWORK 0x12	/* sub framework */
+#define	LC_SUB_UMBRELLA 0x13	/* sub umbrella */
+#define	LC_SUB_CLIENT	0x14	/* sub client */
+#define	LC_SUB_LIBRARY  0x15	/* sub library */
+#define	LC_TWOLEVEL_HINTS 0x16	/* two-level namespace lookup hints */
+#define	LC_PREBIND_CKSUM  0x17	/* prebind checksum */
+
+/*
+ * load a dynamically linked shared library that is allowed to be missing
+ * (all symbols are weak imported).
+ */
+#define	LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD)
+
+#define	LC_SEGMENT_64	0x19	/* 64-bit segment of this file to be
+				   mapped */
+#define	LC_ROUTINES_64	0x1a	/* 64-bit image routines */
+#define LC_UUID		0x1b	/* the uuid */
+#define LC_RPATH       (0x1c | LC_REQ_DYLD)    /* runpath additions */
+#define LC_CODE_SIGNATURE 0x1d	/* local of code signature */
+#define LC_SEGMENT_SPLIT_INFO 0x1e /* local of info to split segments */
+#define LC_REEXPORT_DYLIB (0x1f | LC_REQ_DYLD) /* load and re-export dylib */
+#define	LC_LAZY_LOAD_DYLIB 0x20	/* delay load of dylib until first use */
+#define	LC_ENCRYPTION_INFO 0x21	/* encrypted segment information */
+#define	LC_DYLD_INFO 	0x22	/* compressed dyld information */
+#define	LC_DYLD_INFO_ONLY (0x22|LC_REQ_DYLD)	/* compressed dyld information only */
+#define	LC_LOAD_UPWARD_DYLIB (0x23 | LC_REQ_DYLD) /* load upward dylib */
+#define LC_VERSION_MIN_MACOSX 0x24   /* build for MacOSX min OS version */
+#define LC_VERSION_MIN_IPHONEOS 0x25 /* build for iPhoneOS min OS version */
+#define LC_FUNCTION_STARTS 0x26 /* compressed table of function start addresses */
+#define LC_DYLD_ENVIRONMENT 0x27 /* string for dyld to treat
+				    like environment variable */
+#define LC_MAIN (0x28|LC_REQ_DYLD) /* replacement for LC_UNIXTHREAD */
+#define LC_DATA_IN_CODE 0x29 /* table of non-instructions in __text */
+#define LC_SOURCE_VERSION 0x2A /* source version used to build binary */
+#define LC_DYLIB_CODE_SIGN_DRS 0x2B /* Code signing DRs copied from linked dylibs */
+#define	LC_ENCRYPTION_INFO_64 0x2C /* 64-bit encrypted segment information */
+#define LC_LINKER_OPTION 0x2D /* linker options in MH_OBJECT files */
+#define LC_LINKER_OPTIMIZATION_HINT 0x2E /* optimization hints in MH_OBJECT files */
+#define LC_VERSION_MIN_TVOS 0x2F /* build for AppleTV min OS version */
+#define LC_VERSION_MIN_WATCHOS 0x30 /* build for Watch min OS version */
+#define LC_NOTE 0x31 /* arbitrary data included within a Mach-O file */
+#define LC_BUILD_VERSION 0x32 /* build for platform min OS version */
+#define LC_DYLD_EXPORTS_TRIE (0x33 | LC_REQ_DYLD) /* used with linkedit_data_command, payload is trie */
+#define LC_DYLD_CHAINED_FIXUPS (0x34 | LC_REQ_DYLD) /* used with linkedit_data_command */
+#define LC_FILESET_ENTRY (0x35 | LC_REQ_DYLD) /* used with fileset_entry_command */
+
+/*
+ * A variable length string in a load command is represented by an lc_str
+ * union.  The strings are stored just after the load command structure and
+ * the offset is from the start of the load command structure.  The size
+ * of the string is reflected in the cmdsize field of the load command.
+ * Once again any padded bytes to bring the cmdsize field to a multiple
+ * of 4 bytes must be zero.
+ */
+union lc_str {
+	uint32_t	offset;	/* offset to the string */
+#ifndef __LP64__
+	char		*ptr;	/* pointer to the string */
+#endif 
+};
+
+/*
+ * The segment load command indicates that a part of this file is to be
+ * mapped into the task's address space.  The size of this segment in memory,
+ * vmsize, maybe equal to or larger than the amount to map from this file,
+ * filesize.  The file is mapped starting at fileoff to the beginning of
+ * the segment in memory, vmaddr.  The rest of the memory of the segment,
+ * if any, is allocated zero fill on demand.  The segment's maximum virtual
+ * memory protection and initial virtual memory protection are specified
+ * by the maxprot and initprot fields.  If the segment has sections then the
+ * section structures directly follow the segment command and their size is
+ * reflected in cmdsize.
+ */
+struct segment_command { /* for 32-bit architectures */
+	uint32_t	cmd;		/* LC_SEGMENT */
+	uint32_t	cmdsize;	/* includes sizeof section structs */
+	char		segname[16];	/* segment name */
+	uint32_t	vmaddr;		/* memory address of this segment */
+	uint32_t	vmsize;		/* memory size of this segment */
+	uint32_t	fileoff;	/* file offset of this segment */
+	uint32_t	filesize;	/* amount to map from the file */
+	int32_t		maxprot;	/* maximum VM protection */
+	int32_t		initprot;	/* initial VM protection */
+	uint32_t	nsects;		/* number of sections in segment */
+	uint32_t	flags;		/* flags */
+};
+
+/*
+ * The 64-bit segment load command indicates that a part of this file is to be
+ * mapped into a 64-bit task's address space.  If the 64-bit segment has
+ * sections then section_64 structures directly follow the 64-bit segment
+ * command and their size is reflected in cmdsize.
+ */
+struct segment_command_64 { /* for 64-bit architectures */
+	uint32_t	cmd;		/* LC_SEGMENT_64 */
+	uint32_t	cmdsize;	/* includes sizeof section_64 structs */
+	char		segname[16];	/* segment name */
+	uint64_t	vmaddr;		/* memory address of this segment */
+	uint64_t	vmsize;		/* memory size of this segment */
+	uint64_t	fileoff;	/* file offset of this segment */
+	uint64_t	filesize;	/* amount to map from the file */
+	int32_t		maxprot;	/* maximum VM protection */
+	int32_t		initprot;	/* initial VM protection */
+	uint32_t	nsects;		/* number of sections in segment */
+	uint32_t	flags;		/* flags */
+};
+
+/* Constants for the flags field of the segment_command */
+#define	SG_HIGHVM	0x1	/* the file contents for this segment is for
+				   the high part of the VM space, the low part
+				   is zero filled (for stacks in core files) */
+#define	SG_FVMLIB	0x2	/* this segment is the VM that is allocated by
+				   a fixed VM library, for overlap checking in
+				   the link editor */
+#define	SG_NORELOC	0x4	/* this segment has nothing that was relocated
+				   in it and nothing relocated to it, that is
+				   it maybe safely replaced without relocation*/
+#define SG_PROTECTED_VERSION_1	0x8 /* This segment is protected.  If the
+				       segment starts at file offset 0, the
+				       first page of the segment is not
+				       protected.  All other pages of the
+				       segment are protected. */
+#define SG_READ_ONLY    0x10 /* This segment is made read-only after fixups */
+
+
+
+/*
+ * A segment is made up of zero or more sections.  Non-MH_OBJECT files have
+ * all of their segments with the proper sections in each, and padded to the
+ * specified segment alignment when produced by the link editor.  The first
+ * segment of a MH_EXECUTE and MH_FVMLIB format file contains the mach_header
+ * and load commands of the object file before its first section.  The zero
+ * fill sections are always last in their segment (in all formats).  This
+ * allows the zeroed segment padding to be mapped into memory where zero fill
+ * sections might be. The gigabyte zero fill sections, those with the section
+ * type S_GB_ZEROFILL, can only be in a segment with sections of this type.
+ * These segments are then placed after all other segments.
+ *
+ * The MH_OBJECT format has all of its sections in one segment for
+ * compactness.  There is no padding to a specified segment boundary and the
+ * mach_header and load commands are not part of the segment.
+ *
+ * Sections with the same section name, sectname, going into the same segment,
+ * segname, are combined by the link editor.  The resulting section is aligned
+ * to the maximum alignment of the combined sections and is the new section's
+ * alignment.  The combined sections are aligned to their original alignment in
+ * the combined section.  Any padded bytes to get the specified alignment are
+ * zeroed.
+ *
+ * The format of the relocation entries referenced by the reloff and nreloc
+ * fields of the section structure for mach object files is described in the
+ * header file .
+ */
+struct section { /* for 32-bit architectures */
+	char		sectname[16];	/* name of this section */
+	char		segname[16];	/* segment this section goes in */
+	uint32_t	addr;		/* memory address of this section */
+	uint32_t	size;		/* size in bytes of this section */
+	uint32_t	offset;		/* file offset of this section */
+	uint32_t	align;		/* section alignment (power of 2) */
+	uint32_t	reloff;		/* file offset of relocation entries */
+	uint32_t	nreloc;		/* number of relocation entries */
+	uint32_t	flags;		/* flags (section type and attributes)*/
+	uint32_t	reserved1;	/* reserved (for offset or index) */
+	uint32_t	reserved2;	/* reserved (for count or sizeof) */
+};
+
+struct section_64 { /* for 64-bit architectures */
+	char		sectname[16];	/* name of this section */
+	char		segname[16];	/* segment this section goes in */
+	uint64_t	addr;		/* memory address of this section */
+	uint64_t	size;		/* size in bytes of this section */
+	uint32_t	offset;		/* file offset of this section */
+	uint32_t	align;		/* section alignment (power of 2) */
+	uint32_t	reloff;		/* file offset of relocation entries */
+	uint32_t	nreloc;		/* number of relocation entries */
+	uint32_t	flags;		/* flags (section type and attributes)*/
+	uint32_t	reserved1;	/* reserved (for offset or index) */
+	uint32_t	reserved2;	/* reserved (for count or sizeof) */
+	uint32_t	reserved3;	/* reserved */
+};
+
+/*
+ * The flags field of a section structure is separated into two parts a section
+ * type and section attributes.  The section types are mutually exclusive (it
+ * can only have one type) but the section attributes are not (it may have more
+ * than one attribute).
+ */
+#define SECTION_TYPE		 0x000000ff	/* 256 section types */
+#define SECTION_ATTRIBUTES	 0xffffff00	/*  24 section attributes */
+
+/* Constants for the type of a section */
+#define	S_REGULAR		0x0	/* regular section */
+#define	S_ZEROFILL		0x1	/* zero fill on demand section */
+#define	S_CSTRING_LITERALS	0x2	/* section with only literal C strings*/
+#define	S_4BYTE_LITERALS	0x3	/* section with only 4 byte literals */
+#define	S_8BYTE_LITERALS	0x4	/* section with only 8 byte literals */
+#define	S_LITERAL_POINTERS	0x5	/* section with only pointers to */
+					/*  literals */
+/*
+ * For the two types of symbol pointers sections and the symbol stubs section
+ * they have indirect symbol table entries.  For each of the entries in the
+ * section the indirect symbol table entries, in corresponding order in the
+ * indirect symbol table, start at the index stored in the reserved1 field
+ * of the section structure.  Since the indirect symbol table entries
+ * correspond to the entries in the section the number of indirect symbol table
+ * entries is inferred from the size of the section divided by the size of the
+ * entries in the section.  For symbol pointers sections the size of the entries
+ * in the section is 4 bytes and for symbol stubs sections the byte size of the
+ * stubs is stored in the reserved2 field of the section structure.
+ */
+#define	S_NON_LAZY_SYMBOL_POINTERS	0x6	/* section with only non-lazy
+						   symbol pointers */
+#define	S_LAZY_SYMBOL_POINTERS		0x7	/* section with only lazy symbol
+						   pointers */
+#define	S_SYMBOL_STUBS			0x8	/* section with only symbol
+						   stubs, byte size of stub in
+						   the reserved2 field */
+#define	S_MOD_INIT_FUNC_POINTERS	0x9	/* section with only function
+						   pointers for initialization*/
+#define	S_MOD_TERM_FUNC_POINTERS	0xa	/* section with only function
+						   pointers for termination */
+#define	S_COALESCED			0xb	/* section contains symbols that
+						   are to be coalesced */
+#define	S_GB_ZEROFILL			0xc	/* zero fill on demand section
+						   (that can be larger than 4
+						   gigabytes) */
+#define	S_INTERPOSING			0xd	/* section with only pairs of
+						   function pointers for
+						   interposing */
+#define	S_16BYTE_LITERALS		0xe	/* section with only 16 byte
+						   literals */
+#define	S_DTRACE_DOF			0xf	/* section contains 
+						   DTrace Object Format */
+#define	S_LAZY_DYLIB_SYMBOL_POINTERS	0x10	/* section with only lazy
+						   symbol pointers to lazy
+						   loaded dylibs */
+/*
+ * Section types to support thread local variables
+ */
+#define S_THREAD_LOCAL_REGULAR                   0x11  /* template of initial 
+							  values for TLVs */
+#define S_THREAD_LOCAL_ZEROFILL                  0x12  /* template of initial 
+							  values for TLVs */
+#define S_THREAD_LOCAL_VARIABLES                 0x13  /* TLV descriptors */
+#define S_THREAD_LOCAL_VARIABLE_POINTERS         0x14  /* pointers to TLV 
+                                                          descriptors */
+#define S_THREAD_LOCAL_INIT_FUNCTION_POINTERS    0x15  /* functions to call
+							  to initialize TLV
+							  values */
+#define S_INIT_FUNC_OFFSETS                      0x16  /* 32-bit offsets to
+							  initializers */
+
+/*
+ * Constants for the section attributes part of the flags field of a section
+ * structure.
+ */
+#define SECTION_ATTRIBUTES_USR	 0xff000000	/* User setable attributes */
+#define S_ATTR_PURE_INSTRUCTIONS 0x80000000	/* section contains only true
+						   machine instructions */
+#define S_ATTR_NO_TOC 		 0x40000000	/* section contains coalesced
+						   symbols that are not to be
+						   in a ranlib table of
+						   contents */
+#define S_ATTR_STRIP_STATIC_SYMS 0x20000000	/* ok to strip static symbols
+						   in this section in files
+						   with the MH_DYLDLINK flag */
+#define S_ATTR_NO_DEAD_STRIP	 0x10000000	/* no dead stripping */
+#define S_ATTR_LIVE_SUPPORT	 0x08000000	/* blocks are live if they
+						   reference live blocks */
+#define S_ATTR_SELF_MODIFYING_CODE 0x04000000	/* Used with i386 code stubs
+						   written on by dyld */
+/*
+ * If a segment contains any sections marked with S_ATTR_DEBUG then all
+ * sections in that segment must have this attribute.  No section other than
+ * a section marked with this attribute may reference the contents of this
+ * section.  A section with this attribute may contain no symbols and must have
+ * a section type S_REGULAR.  The static linker will not copy section contents
+ * from sections with this attribute into its output file.  These sections
+ * generally contain DWARF debugging info.
+ */ 
+#define	S_ATTR_DEBUG		 0x02000000	/* a debug section */
+#define SECTION_ATTRIBUTES_SYS	 0x00ffff00	/* system setable attributes */
+#define S_ATTR_SOME_INSTRUCTIONS 0x00000400	/* section contains some
+						   machine instructions */
+#define S_ATTR_EXT_RELOC	 0x00000200	/* section has external
+						   relocation entries */
+#define S_ATTR_LOC_RELOC	 0x00000100	/* section has local
+						   relocation entries */
+
+
+/*
+ * The names of segments and sections in them are mostly meaningless to the
+ * link-editor.  But there are few things to support traditional UNIX
+ * executables that require the link-editor and assembler to use some names
+ * agreed upon by convention.
+ *
+ * The initial protection of the "__TEXT" segment has write protection turned
+ * off (not writeable).
+ *
+ * The link-editor will allocate common symbols at the end of the "__common"
+ * section in the "__DATA" segment.  It will create the section and segment
+ * if needed.
+ */
+
+/* The currently known segment names and the section names in those segments */
+
+#define	SEG_PAGEZERO	"__PAGEZERO"	/* the pagezero segment which has no */
+					/* protections and catches NULL */
+					/* references for MH_EXECUTE files */
+
+
+#define	SEG_TEXT	"__TEXT"	/* the tradition UNIX text segment */
+#define	SECT_TEXT	"__text"	/* the real text part of the text */
+					/* section no headers, and no padding */
+#define SECT_FVMLIB_INIT0 "__fvmlib_init0"	/* the fvmlib initialization */
+						/*  section */
+#define SECT_FVMLIB_INIT1 "__fvmlib_init1"	/* the section following the */
+					        /*  fvmlib initialization */
+						/*  section */
+
+#define	SEG_DATA	"__DATA"	/* the tradition UNIX data segment */
+#define	SECT_DATA	"__data"	/* the real initialized data section */
+					/* no padding, no bss overlap */
+#define	SECT_BSS	"__bss"		/* the real uninitialized data section*/
+					/* no padding */
+#define SECT_COMMON	"__common"	/* the section common symbols are */
+					/* allocated in by the link editor */
+
+#define	SEG_OBJC	"__OBJC"	/* objective-C runtime segment */
+#define SECT_OBJC_SYMBOLS "__symbol_table"	/* symbol table */
+#define SECT_OBJC_MODULES "__module_info"	/* module information */
+#define SECT_OBJC_STRINGS "__selector_strs"	/* string table */
+#define SECT_OBJC_REFS "__selector_refs"	/* string table */
+
+#define	SEG_ICON	 "__ICON"	/* the icon segment */
+#define	SECT_ICON_HEADER "__header"	/* the icon headers */
+#define	SECT_ICON_TIFF   "__tiff"	/* the icons in tiff format */
+
+#define	SEG_LINKEDIT	"__LINKEDIT"	/* the segment containing all structs */
+					/* created and maintained by the link */
+					/* editor.  Created with -seglinkedit */
+					/* option to ld(1) for MH_EXECUTE and */
+					/* FVMLIB file types only */
+
+#define SEG_UNIXSTACK	"__UNIXSTACK"	/* the unix stack segment */
+
+#define SEG_IMPORT	"__IMPORT"	/* the segment for the self (dyld) */
+					/* modifing code stubs that has read, */
+					/* write and execute permissions */
+
+/*
+ * Fixed virtual memory shared libraries are identified by two things.  The
+ * target pathname (the name of the library as found for execution), and the
+ * minor version number.  The address of where the headers are loaded is in
+ * header_addr. (THIS IS OBSOLETE and no longer supported).
+ */
+struct fvmlib {
+	union lc_str	name;		/* library's target pathname */
+	uint32_t	minor_version;	/* library's minor version number */
+	uint32_t	header_addr;	/* library's header address */
+};
+
+/*
+ * A fixed virtual shared library (filetype == MH_FVMLIB in the mach header)
+ * contains a fvmlib_command (cmd == LC_IDFVMLIB) to identify the library.
+ * An object that uses a fixed virtual shared library also contains a
+ * fvmlib_command (cmd == LC_LOADFVMLIB) for each library it uses.
+ * (THIS IS OBSOLETE and no longer supported).
+ */
+struct fvmlib_command {
+	uint32_t	cmd;		/* LC_IDFVMLIB or LC_LOADFVMLIB */
+	uint32_t	cmdsize;	/* includes pathname string */
+	struct fvmlib	fvmlib;		/* the library identification */
+};
+
+/*
+ * Dynamicly linked shared libraries are identified by two things.  The
+ * pathname (the name of the library as found for execution), and the
+ * compatibility version number.  The pathname must match and the compatibility
+ * number in the user of the library must be greater than or equal to the
+ * library being used.  The time stamp is used to record the time a library was
+ * built and copied into user so it can be use to determined if the library used
+ * at runtime is exactly the same as used to built the program.
+ */
+struct dylib {
+    union lc_str  name;			/* library's path name */
+    uint32_t timestamp;			/* library's build time stamp */
+    uint32_t current_version;		/* library's current version number */
+    uint32_t compatibility_version;	/* library's compatibility vers number*/
+};
+
+/*
+ * A dynamically linked shared library (filetype == MH_DYLIB in the mach header)
+ * contains a dylib_command (cmd == LC_ID_DYLIB) to identify the library.
+ * An object that uses a dynamically linked shared library also contains a
+ * dylib_command (cmd == LC_LOAD_DYLIB, LC_LOAD_WEAK_DYLIB, or
+ * LC_REEXPORT_DYLIB) for each library it uses.
+ */
+struct dylib_command {
+	uint32_t	cmd;		/* LC_ID_DYLIB, LC_LOAD_{,WEAK_}DYLIB,
+					   LC_REEXPORT_DYLIB */
+	uint32_t	cmdsize;	/* includes pathname string */
+	struct dylib	dylib;		/* the library identification */
+};
+
+/*
+ * A dynamically linked shared library may be a subframework of an umbrella
+ * framework.  If so it will be linked with "-umbrella umbrella_name" where
+ * Where "umbrella_name" is the name of the umbrella framework. A subframework
+ * can only be linked against by its umbrella framework or other subframeworks
+ * that are part of the same umbrella framework.  Otherwise the static link
+ * editor produces an error and states to link against the umbrella framework.
+ * The name of the umbrella framework for subframeworks is recorded in the
+ * following structure.
+ */
+struct sub_framework_command {
+	uint32_t	cmd;		/* LC_SUB_FRAMEWORK */
+	uint32_t	cmdsize;	/* includes umbrella string */
+	union lc_str 	umbrella;	/* the umbrella framework name */
+};
+
+/*
+ * For dynamically linked shared libraries that are subframework of an umbrella
+ * framework they can allow clients other than the umbrella framework or other
+ * subframeworks in the same umbrella framework.  To do this the subframework
+ * is built with "-allowable_client client_name" and an LC_SUB_CLIENT load
+ * command is created for each -allowable_client flag.  The client_name is
+ * usually a framework name.  It can also be a name used for bundles clients
+ * where the bundle is built with "-client_name client_name".
+ */
+struct sub_client_command {
+	uint32_t	cmd;		/* LC_SUB_CLIENT */
+	uint32_t	cmdsize;	/* includes client string */
+	union lc_str 	client;		/* the client name */
+};
+
+/*
+ * A dynamically linked shared library may be a sub_umbrella of an umbrella
+ * framework.  If so it will be linked with "-sub_umbrella umbrella_name" where
+ * Where "umbrella_name" is the name of the sub_umbrella framework.  When
+ * staticly linking when -twolevel_namespace is in effect a twolevel namespace 
+ * umbrella framework will only cause its subframeworks and those frameworks
+ * listed as sub_umbrella frameworks to be implicited linked in.  Any other
+ * dependent dynamic libraries will not be linked it when -twolevel_namespace
+ * is in effect.  The primary library recorded by the static linker when
+ * resolving a symbol in these libraries will be the umbrella framework.
+ * Zero or more sub_umbrella frameworks may be use by an umbrella framework.
+ * The name of a sub_umbrella framework is recorded in the following structure.
+ */
+struct sub_umbrella_command {
+	uint32_t	cmd;		/* LC_SUB_UMBRELLA */
+	uint32_t	cmdsize;	/* includes sub_umbrella string */
+	union lc_str 	sub_umbrella;	/* the sub_umbrella framework name */
+};
+
+/*
+ * A dynamically linked shared library may be a sub_library of another shared
+ * library.  If so it will be linked with "-sub_library library_name" where
+ * Where "library_name" is the name of the sub_library shared library.  When
+ * staticly linking when -twolevel_namespace is in effect a twolevel namespace 
+ * shared library will only cause its subframeworks and those frameworks
+ * listed as sub_umbrella frameworks and libraries listed as sub_libraries to
+ * be implicited linked in.  Any other dependent dynamic libraries will not be
+ * linked it when -twolevel_namespace is in effect.  The primary library
+ * recorded by the static linker when resolving a symbol in these libraries
+ * will be the umbrella framework (or dynamic library). Zero or more sub_library
+ * shared libraries may be use by an umbrella framework or (or dynamic library).
+ * The name of a sub_library framework is recorded in the following structure.
+ * For example /usr/lib/libobjc_profile.A.dylib would be recorded as "libobjc".
+ */
+struct sub_library_command {
+	uint32_t	cmd;		/* LC_SUB_LIBRARY */
+	uint32_t	cmdsize;	/* includes sub_library string */
+	union lc_str 	sub_library;	/* the sub_library name */
+};
+
+/*
+ * A program (filetype == MH_EXECUTE) that is
+ * prebound to its dynamic libraries has one of these for each library that
+ * the static linker used in prebinding.  It contains a bit vector for the
+ * modules in the library.  The bits indicate which modules are bound (1) and
+ * which are not (0) from the library.  The bit for module 0 is the low bit
+ * of the first byte.  So the bit for the Nth module is:
+ * (linked_modules[N/8] >> N%8) & 1
+ */
+struct prebound_dylib_command {
+	uint32_t	cmd;		/* LC_PREBOUND_DYLIB */
+	uint32_t	cmdsize;	/* includes strings */
+	union lc_str	name;		/* library's path name */
+	uint32_t	nmodules;	/* number of modules in library */
+	union lc_str	linked_modules;	/* bit vector of linked modules */
+};
+
+/*
+ * A program that uses a dynamic linker contains a dylinker_command to identify
+ * the name of the dynamic linker (LC_LOAD_DYLINKER).  And a dynamic linker
+ * contains a dylinker_command to identify the dynamic linker (LC_ID_DYLINKER).
+ * A file can have at most one of these.
+ * This struct is also used for the LC_DYLD_ENVIRONMENT load command and
+ * contains string for dyld to treat like environment variable.
+ */
+struct dylinker_command {
+	uint32_t	cmd;		/* LC_ID_DYLINKER, LC_LOAD_DYLINKER or
+					   LC_DYLD_ENVIRONMENT */
+	uint32_t	cmdsize;	/* includes pathname string */
+	union lc_str    name;		/* dynamic linker's path name */
+};
+
+/*
+ * Thread commands contain machine-specific data structures suitable for
+ * use in the thread state primitives.  The machine specific data structures
+ * follow the struct thread_command as follows.
+ * Each flavor of machine specific data structure is preceded by an uint32_t
+ * constant for the flavor of that data structure, an uint32_t that is the
+ * count of uint32_t's of the size of the state data structure and then
+ * the state data structure follows.  This triple may be repeated for many
+ * flavors.  The constants for the flavors, counts and state data structure
+ * definitions are expected to be in the header file .
+ * These machine specific data structures sizes must be multiples of
+ * 4 bytes.  The cmdsize reflects the total size of the thread_command
+ * and all of the sizes of the constants for the flavors, counts and state
+ * data structures.
+ *
+ * For executable objects that are unix processes there will be one
+ * thread_command (cmd == LC_UNIXTHREAD) created for it by the link-editor.
+ * This is the same as a LC_THREAD, except that a stack is automatically
+ * created (based on the shell's limit for the stack size).  Command arguments
+ * and environment variables are copied onto that stack.
+ */
+struct thread_command {
+	uint32_t	cmd;		/* LC_THREAD or  LC_UNIXTHREAD */
+	uint32_t	cmdsize;	/* total size of this command */
+	/* uint32_t flavor		   flavor of thread state */
+	/* uint32_t count		   count of uint32_t's in thread state */
+	/* struct XXX_thread_state state   thread state for this flavor */
+	/* ... */
+};
+
+/*
+ * The routines command contains the address of the dynamic shared library 
+ * initialization routine and an index into the module table for the module
+ * that defines the routine.  Before any modules are used from the library the
+ * dynamic linker fully binds the module that defines the initialization routine
+ * and then calls it.  This gets called before any module initialization
+ * routines (used for C++ static constructors) in the library.
+ */
+struct routines_command { /* for 32-bit architectures */
+	uint32_t	cmd;		/* LC_ROUTINES */
+	uint32_t	cmdsize;	/* total size of this command */
+	uint32_t	init_address;	/* address of initialization routine */
+	uint32_t	init_module;	/* index into the module table that */
+				        /*  the init routine is defined in */
+	uint32_t	reserved1;
+	uint32_t	reserved2;
+	uint32_t	reserved3;
+	uint32_t	reserved4;
+	uint32_t	reserved5;
+	uint32_t	reserved6;
+};
+
+/*
+ * The 64-bit routines command.  Same use as above.
+ */
+struct routines_command_64 { /* for 64-bit architectures */
+	uint32_t	cmd;		/* LC_ROUTINES_64 */
+	uint32_t	cmdsize;	/* total size of this command */
+	uint64_t	init_address;	/* address of initialization routine */
+	uint64_t	init_module;	/* index into the module table that */
+					/*  the init routine is defined in */
+	uint64_t	reserved1;
+	uint64_t	reserved2;
+	uint64_t	reserved3;
+	uint64_t	reserved4;
+	uint64_t	reserved5;
+	uint64_t	reserved6;
+};
+
+/*
+ * The symtab_command contains the offsets and sizes of the link-edit 4.3BSD
+ * "stab" style symbol table information as described in the header files
+ *  and .
+ */
+struct symtab_command {
+	uint32_t	cmd;		/* LC_SYMTAB */
+	uint32_t	cmdsize;	/* sizeof(struct symtab_command) */
+	uint32_t	symoff;		/* symbol table offset */
+	uint32_t	nsyms;		/* number of symbol table entries */
+	uint32_t	stroff;		/* string table offset */
+	uint32_t	strsize;	/* string table size in bytes */
+};
+
+/*
+ * This is the second set of the symbolic information which is used to support
+ * the data structures for the dynamically link editor.
+ *
+ * The original set of symbolic information in the symtab_command which contains
+ * the symbol and string tables must also be present when this load command is
+ * present.  When this load command is present the symbol table is organized
+ * into three groups of symbols:
+ *	local symbols (static and debugging symbols) - grouped by module
+ *	defined external symbols - grouped by module (sorted by name if not lib)
+ *	undefined external symbols (sorted by name if MH_BINDATLOAD is not set,
+ *	     			    and in order the were seen by the static
+ *				    linker if MH_BINDATLOAD is set)
+ * In this load command there are offsets and counts to each of the three groups
+ * of symbols.
+ *
+ * This load command contains a the offsets and sizes of the following new
+ * symbolic information tables:
+ *	table of contents
+ *	module table
+ *	reference symbol table
+ *	indirect symbol table
+ * The first three tables above (the table of contents, module table and
+ * reference symbol table) are only present if the file is a dynamically linked
+ * shared library.  For executable and object modules, which are files
+ * containing only one module, the information that would be in these three
+ * tables is determined as follows:
+ * 	table of contents - the defined external symbols are sorted by name
+ *	module table - the file contains only one module so everything in the
+ *		       file is part of the module.
+ *	reference symbol table - is the defined and undefined external symbols
+ *
+ * For dynamically linked shared library files this load command also contains
+ * offsets and sizes to the pool of relocation entries for all sections
+ * separated into two groups:
+ *	external relocation entries
+ *	local relocation entries
+ * For executable and object modules the relocation entries continue to hang
+ * off the section structures.
+ */
+struct dysymtab_command {
+    uint32_t cmd;	/* LC_DYSYMTAB */
+    uint32_t cmdsize;	/* sizeof(struct dysymtab_command) */
+
+    /*
+     * The symbols indicated by symoff and nsyms of the LC_SYMTAB load command
+     * are grouped into the following three groups:
+     *    local symbols (further grouped by the module they are from)
+     *    defined external symbols (further grouped by the module they are from)
+     *    undefined symbols
+     *
+     * The local symbols are used only for debugging.  The dynamic binding
+     * process may have to use them to indicate to the debugger the local
+     * symbols for a module that is being bound.
+     *
+     * The last two groups are used by the dynamic binding process to do the
+     * binding (indirectly through the module table and the reference symbol
+     * table when this is a dynamically linked shared library file).
+     */
+    uint32_t ilocalsym;	/* index to local symbols */
+    uint32_t nlocalsym;	/* number of local symbols */
+
+    uint32_t iextdefsym;/* index to externally defined symbols */
+    uint32_t nextdefsym;/* number of externally defined symbols */
+
+    uint32_t iundefsym;	/* index to undefined symbols */
+    uint32_t nundefsym;	/* number of undefined symbols */
+
+    /*
+     * For the for the dynamic binding process to find which module a symbol
+     * is defined in the table of contents is used (analogous to the ranlib
+     * structure in an archive) which maps defined external symbols to modules
+     * they are defined in.  This exists only in a dynamically linked shared
+     * library file.  For executable and object modules the defined external
+     * symbols are sorted by name and is use as the table of contents.
+     */
+    uint32_t tocoff;	/* file offset to table of contents */
+    uint32_t ntoc;	/* number of entries in table of contents */
+
+    /*
+     * To support dynamic binding of "modules" (whole object files) the symbol
+     * table must reflect the modules that the file was created from.  This is
+     * done by having a module table that has indexes and counts into the merged
+     * tables for each module.  The module structure that these two entries
+     * refer to is described below.  This exists only in a dynamically linked
+     * shared library file.  For executable and object modules the file only
+     * contains one module so everything in the file belongs to the module.
+     */
+    uint32_t modtaboff;	/* file offset to module table */
+    uint32_t nmodtab;	/* number of module table entries */
+
+    /*
+     * To support dynamic module binding the module structure for each module
+     * indicates the external references (defined and undefined) each module
+     * makes.  For each module there is an offset and a count into the
+     * reference symbol table for the symbols that the module references.
+     * This exists only in a dynamically linked shared library file.  For
+     * executable and object modules the defined external symbols and the
+     * undefined external symbols indicates the external references.
+     */
+    uint32_t extrefsymoff;	/* offset to referenced symbol table */
+    uint32_t nextrefsyms;	/* number of referenced symbol table entries */
+
+    /*
+     * The sections that contain "symbol pointers" and "routine stubs" have
+     * indexes and (implied counts based on the size of the section and fixed
+     * size of the entry) into the "indirect symbol" table for each pointer
+     * and stub.  For every section of these two types the index into the
+     * indirect symbol table is stored in the section header in the field
+     * reserved1.  An indirect symbol table entry is simply a 32bit index into
+     * the symbol table to the symbol that the pointer or stub is referring to.
+     * The indirect symbol table is ordered to match the entries in the section.
+     */
+    uint32_t indirectsymoff; /* file offset to the indirect symbol table */
+    uint32_t nindirectsyms;  /* number of indirect symbol table entries */
+
+    /*
+     * To support relocating an individual module in a library file quickly the
+     * external relocation entries for each module in the library need to be
+     * accessed efficiently.  Since the relocation entries can't be accessed
+     * through the section headers for a library file they are separated into
+     * groups of local and external entries further grouped by module.  In this
+     * case the presents of this load command who's extreloff, nextrel,
+     * locreloff and nlocrel fields are non-zero indicates that the relocation
+     * entries of non-merged sections are not referenced through the section
+     * structures (and the reloff and nreloc fields in the section headers are
+     * set to zero).
+     *
+     * Since the relocation entries are not accessed through the section headers
+     * this requires the r_address field to be something other than a section
+     * offset to identify the item to be relocated.  In this case r_address is
+     * set to the offset from the vmaddr of the first LC_SEGMENT command.
+     * For MH_SPLIT_SEGS images r_address is set to the the offset from the
+     * vmaddr of the first read-write LC_SEGMENT command.
+     *
+     * The relocation entries are grouped by module and the module table
+     * entries have indexes and counts into them for the group of external
+     * relocation entries for that the module.
+     *
+     * For sections that are merged across modules there must not be any
+     * remaining external relocation entries for them (for merged sections
+     * remaining relocation entries must be local).
+     */
+    uint32_t extreloff;	/* offset to external relocation entries */
+    uint32_t nextrel;	/* number of external relocation entries */
+
+    /*
+     * All the local relocation entries are grouped together (they are not
+     * grouped by their module since they are only used if the object is moved
+     * from it staticly link edited address).
+     */
+    uint32_t locreloff;	/* offset to local relocation entries */
+    uint32_t nlocrel;	/* number of local relocation entries */
+
+};	
+
+/*
+ * An indirect symbol table entry is simply a 32bit index into the symbol table 
+ * to the symbol that the pointer or stub is refering to.  Unless it is for a
+ * non-lazy symbol pointer section for a defined symbol which strip(1) as 
+ * removed.  In which case it has the value INDIRECT_SYMBOL_LOCAL.  If the
+ * symbol was also absolute INDIRECT_SYMBOL_ABS is or'ed with that.
+ */
+#define INDIRECT_SYMBOL_LOCAL	0x80000000
+#define INDIRECT_SYMBOL_ABS	0x40000000
+
+
+/* a table of contents entry */
+struct dylib_table_of_contents {
+    uint32_t symbol_index;	/* the defined external symbol
+				   (index into the symbol table) */
+    uint32_t module_index;	/* index into the module table this symbol
+				   is defined in */
+};	
+
+/* a module table entry */
+struct dylib_module {
+    uint32_t module_name;	/* the module name (index into string table) */
+
+    uint32_t iextdefsym;	/* index into externally defined symbols */
+    uint32_t nextdefsym;	/* number of externally defined symbols */
+    uint32_t irefsym;		/* index into reference symbol table */
+    uint32_t nrefsym;		/* number of reference symbol table entries */
+    uint32_t ilocalsym;		/* index into symbols for local symbols */
+    uint32_t nlocalsym;		/* number of local symbols */
+
+    uint32_t iextrel;		/* index into external relocation entries */
+    uint32_t nextrel;		/* number of external relocation entries */
+
+    uint32_t iinit_iterm;	/* low 16 bits are the index into the init
+				   section, high 16 bits are the index into
+			           the term section */
+    uint32_t ninit_nterm;	/* low 16 bits are the number of init section
+				   entries, high 16 bits are the number of
+				   term section entries */
+
+    uint32_t			/* for this module address of the start of */
+	objc_module_info_addr;  /*  the (__OBJC,__module_info) section */
+    uint32_t			/* for this module size of */
+	objc_module_info_size;	/*  the (__OBJC,__module_info) section */
+};	
+
+/* a 64-bit module table entry */
+struct dylib_module_64 {
+    uint32_t module_name;	/* the module name (index into string table) */
+
+    uint32_t iextdefsym;	/* index into externally defined symbols */
+    uint32_t nextdefsym;	/* number of externally defined symbols */
+    uint32_t irefsym;		/* index into reference symbol table */
+    uint32_t nrefsym;		/* number of reference symbol table entries */
+    uint32_t ilocalsym;		/* index into symbols for local symbols */
+    uint32_t nlocalsym;		/* number of local symbols */
+
+    uint32_t iextrel;		/* index into external relocation entries */
+    uint32_t nextrel;		/* number of external relocation entries */
+
+    uint32_t iinit_iterm;	/* low 16 bits are the index into the init
+				   section, high 16 bits are the index into
+				   the term section */
+    uint32_t ninit_nterm;      /* low 16 bits are the number of init section
+				  entries, high 16 bits are the number of
+				  term section entries */
+
+    uint32_t			/* for this module size of */
+        objc_module_info_size;	/*  the (__OBJC,__module_info) section */
+    uint64_t			/* for this module address of the start of */
+        objc_module_info_addr;	/*  the (__OBJC,__module_info) section */
+};
+
+/* 
+ * The entries in the reference symbol table are used when loading the module
+ * (both by the static and dynamic link editors) and if the module is unloaded
+ * or replaced.  Therefore all external symbols (defined and undefined) are
+ * listed in the module's reference table.  The flags describe the type of
+ * reference that is being made.  The constants for the flags are defined in
+ *  as they are also used for symbol table entries.
+ */
+struct dylib_reference {
+    uint32_t isym:24,		/* index into the symbol table */
+    		  flags:8;	/* flags to indicate the type of reference */
+};
+
+/*
+ * The twolevel_hints_command contains the offset and number of hints in the
+ * two-level namespace lookup hints table.
+ */
+struct twolevel_hints_command {
+    uint32_t cmd;	/* LC_TWOLEVEL_HINTS */
+    uint32_t cmdsize;	/* sizeof(struct twolevel_hints_command) */
+    uint32_t offset;	/* offset to the hint table */
+    uint32_t nhints;	/* number of hints in the hint table */
+};
+
+/*
+ * The entries in the two-level namespace lookup hints table are twolevel_hint
+ * structs.  These provide hints to the dynamic link editor where to start
+ * looking for an undefined symbol in a two-level namespace image.  The
+ * isub_image field is an index into the sub-images (sub-frameworks and
+ * sub-umbrellas list) that made up the two-level image that the undefined
+ * symbol was found in when it was built by the static link editor.  If
+ * isub-image is 0 the the symbol is expected to be defined in library and not
+ * in the sub-images.  If isub-image is non-zero it is an index into the array
+ * of sub-images for the umbrella with the first index in the sub-images being
+ * 1. The array of sub-images is the ordered list of sub-images of the umbrella
+ * that would be searched for a symbol that has the umbrella recorded as its
+ * primary library.  The table of contents index is an index into the
+ * library's table of contents.  This is used as the starting point of the
+ * binary search or a directed linear search.
+ */
+struct twolevel_hint {
+    uint32_t 
+	isub_image:8,	/* index into the sub images */
+	itoc:24;	/* index into the table of contents */
+};
+
+/*
+ * The prebind_cksum_command contains the value of the original check sum for
+ * prebound files or zero.  When a prebound file is first created or modified
+ * for other than updating its prebinding information the value of the check sum
+ * is set to zero.  When the file has it prebinding re-done and if the value of
+ * the check sum is zero the original check sum is calculated and stored in
+ * cksum field of this load command in the output file.  If when the prebinding
+ * is re-done and the cksum field is non-zero it is left unchanged from the
+ * input file.
+ */
+struct prebind_cksum_command {
+    uint32_t cmd;	/* LC_PREBIND_CKSUM */
+    uint32_t cmdsize;	/* sizeof(struct prebind_cksum_command) */
+    uint32_t cksum;	/* the check sum or zero */
+};
+
+/*
+ * The uuid load command contains a single 128-bit unique random number that
+ * identifies an object produced by the static link editor.
+ */
+struct uuid_command {
+    uint32_t	cmd;		/* LC_UUID */
+    uint32_t	cmdsize;	/* sizeof(struct uuid_command) */
+    uint8_t	uuid[16];	/* the 128-bit uuid */
+};
+
+/*
+ * The rpath_command contains a path which at runtime should be added to
+ * the current run path used to find @rpath prefixed dylibs.
+ */
+struct rpath_command {
+    uint32_t	 cmd;		/* LC_RPATH */
+    uint32_t	 cmdsize;	/* includes string */
+    union lc_str path;		/* path to add to run path */
+};
+
+/*
+ * The linkedit_data_command contains the offsets and sizes of a blob
+ * of data in the __LINKEDIT segment.  
+ */
+struct linkedit_data_command {
+    uint32_t	cmd;		/* LC_CODE_SIGNATURE, LC_SEGMENT_SPLIT_INFO,
+				   LC_FUNCTION_STARTS, LC_DATA_IN_CODE,
+				   LC_DYLIB_CODE_SIGN_DRS,
+				   LC_LINKER_OPTIMIZATION_HINT,
+				   LC_DYLD_EXPORTS_TRIE, or
+				   LC_DYLD_CHAINED_FIXUPS. */
+    uint32_t	cmdsize;	/* sizeof(struct linkedit_data_command) */
+    uint32_t	dataoff;	/* file offset of data in __LINKEDIT segment */
+    uint32_t	datasize;	/* file size of data in __LINKEDIT segment  */
+};
+
+/*
+ * The encryption_info_command contains the file offset and size of an
+ * of an encrypted segment.
+ */
+struct encryption_info_command {
+   uint32_t	cmd;		/* LC_ENCRYPTION_INFO */
+   uint32_t	cmdsize;	/* sizeof(struct encryption_info_command) */
+   uint32_t	cryptoff;	/* file offset of encrypted range */
+   uint32_t	cryptsize;	/* file size of encrypted range */
+   uint32_t	cryptid;	/* which enryption system,
+				   0 means not-encrypted yet */
+};
+
+/*
+ * The encryption_info_command_64 contains the file offset and size of an
+ * of an encrypted segment (for use in x86_64 targets).
+ */
+struct encryption_info_command_64 {
+   uint32_t	cmd;		/* LC_ENCRYPTION_INFO_64 */
+   uint32_t	cmdsize;	/* sizeof(struct encryption_info_command_64) */
+   uint32_t	cryptoff;	/* file offset of encrypted range */
+   uint32_t	cryptsize;	/* file size of encrypted range */
+   uint32_t	cryptid;	/* which enryption system,
+				   0 means not-encrypted yet */
+   uint32_t	pad;		/* padding to make this struct's size a multiple
+				   of 8 bytes */
+};
+
+/*
+ * The version_min_command contains the min OS version on which this 
+ * binary was built to run.
+ */
+struct version_min_command {
+    uint32_t	cmd;		/* LC_VERSION_MIN_MACOSX or
+				   LC_VERSION_MIN_IPHONEOS or
+				   LC_VERSION_MIN_WATCHOS or
+				   LC_VERSION_MIN_TVOS */
+    uint32_t	cmdsize;	/* sizeof(struct min_version_command) */
+    uint32_t	version;	/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
+    uint32_t	sdk;		/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
+};
+
+/*
+ * The build_version_command contains the min OS version on which this 
+ * binary was built to run for its platform.  The list of known platforms and
+ * tool values following it.
+ */
+struct build_version_command {
+    uint32_t	cmd;		/* LC_BUILD_VERSION */
+    uint32_t	cmdsize;	/* sizeof(struct build_version_command) plus */
+				/* ntools * sizeof(struct build_tool_version) */
+    uint32_t	platform;	/* platform */
+    uint32_t	minos;		/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
+    uint32_t	sdk;		/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
+    uint32_t	ntools;		/* number of tool entries following this */
+};
+
+struct build_tool_version {
+    uint32_t	tool;		/* enum for the tool */
+    uint32_t	version;	/* version number of the tool */
+};
+
+/* Known values for the platform field above. */
+#define PLATFORM_UNKNOWN 0
+#define PLATFORM_ANY 0xFFFFFFFF
+#define PLATFORM_MACOS 1
+#define PLATFORM_IOS 2
+#define PLATFORM_TVOS 3
+#define PLATFORM_WATCHOS 4
+#define PLATFORM_BRIDGEOS 5
+#define PLATFORM_MACCATALYST 6
+#define PLATFORM_IOSSIMULATOR 7
+#define PLATFORM_TVOSSIMULATOR 8
+#define PLATFORM_WATCHOSSIMULATOR 9
+#define PLATFORM_DRIVERKIT 10
+
+#ifndef __OPEN_SOURCE__
+
+#endif /* __OPEN_SOURCE__ */
+
+#define PLATFORM_FIRMWARE 13
+#define PLATFORM_SEPOS 14
+
+#ifndef __OPEN_SOURCE__
+
+#endif /* __OPEN_SOURCE__ */
+
+/* Known values for the tool field above. */
+#define TOOL_CLANG 1
+#define TOOL_SWIFT 2
+#define TOOL_LD	3
+#define TOOL_LLD 4
+
+/* values for gpu tools (1024 to 1048) */
+#define TOOL_METAL                 1024
+#define TOOL_AIRLLD                1025
+#define TOOL_AIRNT                 1026
+#define TOOL_AIRNT_PLUGIN          1027
+#define TOOL_AIRPACK               1028
+#define TOOL_GPUARCHIVER           1031
+#define TOOL_METAL_FRAMEWORK       1032
+
+
+/*
+ * The dyld_info_command contains the file offsets and sizes of 
+ * the new compressed form of the information dyld needs to 
+ * load the image.  This information is used by dyld on Mac OS X
+ * 10.6 and later.  All information pointed to by this command
+ * is encoded using byte streams, so no endian swapping is needed
+ * to interpret it. 
+ */
+struct dyld_info_command {
+   uint32_t   cmd;		/* LC_DYLD_INFO or LC_DYLD_INFO_ONLY */
+   uint32_t   cmdsize;		/* sizeof(struct dyld_info_command) */
+
+    /*
+     * Dyld rebases an image whenever dyld loads it at an address different
+     * from its preferred address.  The rebase information is a stream
+     * of byte sized opcodes whose symbolic names start with REBASE_OPCODE_.
+     * Conceptually the rebase information is a table of tuples:
+     *    
+     * The opcodes are a compressed way to encode the table by only
+     * encoding when a column changes.  In addition simple patterns
+     * like "every n'th offset for m times" can be encoded in a few
+     * bytes.
+     */
+    uint32_t   rebase_off;	/* file offset to rebase info  */
+    uint32_t   rebase_size;	/* size of rebase info   */
+    
+    /*
+     * Dyld binds an image during the loading process, if the image
+     * requires any pointers to be initialized to symbols in other images.  
+     * The bind information is a stream of byte sized 
+     * opcodes whose symbolic names start with BIND_OPCODE_.
+     * Conceptually the bind information is a table of tuples:
+     *    
+     * The opcodes are a compressed way to encode the table by only
+     * encoding when a column changes.  In addition simple patterns
+     * like for runs of pointers initialzed to the same value can be 
+     * encoded in a few bytes.
+     */
+    uint32_t   bind_off;	/* file offset to binding info   */
+    uint32_t   bind_size;	/* size of binding info  */
+        
+    /*
+     * Some C++ programs require dyld to unique symbols so that all
+     * images in the process use the same copy of some code/data.
+     * This step is done after binding. The content of the weak_bind
+     * info is an opcode stream like the bind_info.  But it is sorted
+     * alphabetically by symbol name.  This enable dyld to walk 
+     * all images with weak binding information in order and look
+     * for collisions.  If there are no collisions, dyld does
+     * no updating.  That means that some fixups are also encoded
+     * in the bind_info.  For instance, all calls to "operator new"
+     * are first bound to libstdc++.dylib using the information
+     * in bind_info.  Then if some image overrides operator new
+     * that is detected when the weak_bind information is processed
+     * and the call to operator new is then rebound.
+     */
+    uint32_t   weak_bind_off;	/* file offset to weak binding info   */
+    uint32_t   weak_bind_size;  /* size of weak binding info  */
+    
+    /*
+     * Some uses of external symbols do not need to be bound immediately.
+     * Instead they can be lazily bound on first use.  The lazy_bind
+     * are contains a stream of BIND opcodes to bind all lazy symbols.
+     * Normal use is that dyld ignores the lazy_bind section when
+     * loading an image.  Instead the static linker arranged for the
+     * lazy pointer to initially point to a helper function which 
+     * pushes the offset into the lazy_bind area for the symbol
+     * needing to be bound, then jumps to dyld which simply adds
+     * the offset to lazy_bind_off to get the information on what 
+     * to bind.  
+     */
+    uint32_t   lazy_bind_off;	/* file offset to lazy binding info */
+    uint32_t   lazy_bind_size;  /* size of lazy binding infs */
+    
+    /*
+     * The symbols exported by a dylib are encoded in a trie.  This
+     * is a compact representation that factors out common prefixes.
+     * It also reduces LINKEDIT pages in RAM because it encodes all  
+     * information (name, address, flags) in one small, contiguous range.
+     * The export area is a stream of nodes.  The first node sequentially
+     * is the start node for the trie.  
+     *
+     * Nodes for a symbol start with a uleb128 that is the length of
+     * the exported symbol information for the string so far.
+     * If there is no exported symbol, the node starts with a zero byte. 
+     * If there is exported info, it follows the length.  
+     *
+     * First is a uleb128 containing flags. Normally, it is followed by
+     * a uleb128 encoded offset which is location of the content named
+     * by the symbol from the mach_header for the image.  If the flags
+     * is EXPORT_SYMBOL_FLAGS_REEXPORT, then following the flags is
+     * a uleb128 encoded library ordinal, then a zero terminated
+     * UTF8 string.  If the string is zero length, then the symbol
+     * is re-export from the specified dylib with the same name.
+     * If the flags is EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER, then following
+     * the flags is two uleb128s: the stub offset and the resolver offset.
+     * The stub is used by non-lazy pointers.  The resolver is used
+     * by lazy pointers and must be called to get the actual address to use.
+     *
+     * After the optional exported symbol information is a byte of
+     * how many edges (0-255) that this node has leaving it, 
+     * followed by each edge.
+     * Each edge is a zero terminated UTF8 of the addition chars
+     * in the symbol, followed by a uleb128 offset for the node that
+     * edge points to.
+     *  
+     */
+    uint32_t   export_off;	/* file offset to lazy binding info */
+    uint32_t   export_size;	/* size of lazy binding infs */
+};
+
+/*
+ * The following are used to encode rebasing information
+ */
+#define REBASE_TYPE_POINTER					1
+#define REBASE_TYPE_TEXT_ABSOLUTE32				2
+#define REBASE_TYPE_TEXT_PCREL32				3
+
+#define REBASE_OPCODE_MASK					0xF0
+#define REBASE_IMMEDIATE_MASK					0x0F
+#define REBASE_OPCODE_DONE					0x00
+#define REBASE_OPCODE_SET_TYPE_IMM				0x10
+#define REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB		0x20
+#define REBASE_OPCODE_ADD_ADDR_ULEB				0x30
+#define REBASE_OPCODE_ADD_ADDR_IMM_SCALED			0x40
+#define REBASE_OPCODE_DO_REBASE_IMM_TIMES			0x50
+#define REBASE_OPCODE_DO_REBASE_ULEB_TIMES			0x60
+#define REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB			0x70
+#define REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB	0x80
+
+
+/*
+ * The following are used to encode binding information
+ */
+#define BIND_TYPE_POINTER					1
+#define BIND_TYPE_TEXT_ABSOLUTE32				2
+#define BIND_TYPE_TEXT_PCREL32					3
+
+#define BIND_SPECIAL_DYLIB_SELF					 0
+#define BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE			-1
+#define BIND_SPECIAL_DYLIB_FLAT_LOOKUP				-2
+#define BIND_SPECIAL_DYLIB_WEAK_LOOKUP				-3
+
+#define BIND_SYMBOL_FLAGS_WEAK_IMPORT				0x1
+#define BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION			0x8
+
+#define BIND_OPCODE_MASK					0xF0
+#define BIND_IMMEDIATE_MASK					0x0F
+#define BIND_OPCODE_DONE					0x00
+#define BIND_OPCODE_SET_DYLIB_ORDINAL_IMM			0x10
+#define BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB			0x20
+#define BIND_OPCODE_SET_DYLIB_SPECIAL_IMM			0x30
+#define BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM		0x40
+#define BIND_OPCODE_SET_TYPE_IMM				0x50
+#define BIND_OPCODE_SET_ADDEND_SLEB				0x60
+#define BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB			0x70
+#define BIND_OPCODE_ADD_ADDR_ULEB				0x80
+#define BIND_OPCODE_DO_BIND					0x90
+#define BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB			0xA0
+#define BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED			0xB0
+#define BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB		0xC0
+#define	BIND_OPCODE_THREADED					0xD0
+#define	BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB 0x00
+#define	BIND_SUBOPCODE_THREADED_APPLY				 0x01
+
+
+/*
+ * The following are used on the flags byte of a terminal node
+ * in the export information.
+ */
+#define EXPORT_SYMBOL_FLAGS_KIND_MASK				0x03
+#define EXPORT_SYMBOL_FLAGS_KIND_REGULAR			0x00
+#define EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL			0x01
+#define EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE			0x02
+#define EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION			0x04
+#define EXPORT_SYMBOL_FLAGS_REEXPORT				0x08
+#define EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER			0x10
+#define EXPORT_SYMBOL_FLAGS_STATIC_RESOLVER			0x20
+
+
+/*
+ * The linker_option_command contains linker options embedded in object files.
+ */
+struct linker_option_command {
+    uint32_t  cmd;	/* LC_LINKER_OPTION only used in MH_OBJECT filetypes */
+    uint32_t  cmdsize;
+    uint32_t  count;	/* number of strings */
+    /* concatenation of zero terminated UTF8 strings.
+       Zero filled at end to align */
+};
+
+/*
+ * The symseg_command contains the offset and size of the GNU style
+ * symbol table information as described in the header file .
+ * The symbol roots of the symbol segments must also be aligned properly
+ * in the file.  So the requirement of keeping the offsets aligned to a
+ * multiple of a 4 bytes translates to the length field of the symbol
+ * roots also being a multiple of a long.  Also the padding must again be
+ * zeroed. (THIS IS OBSOLETE and no longer supported).
+ */
+struct symseg_command {
+	uint32_t	cmd;		/* LC_SYMSEG */
+	uint32_t	cmdsize;	/* sizeof(struct symseg_command) */
+	uint32_t	offset;		/* symbol segment offset */
+	uint32_t	size;		/* symbol segment size in bytes */
+};
+
+/*
+ * The ident_command contains a free format string table following the
+ * ident_command structure.  The strings are null terminated and the size of
+ * the command is padded out with zero bytes to a multiple of 4 bytes/
+ * (THIS IS OBSOLETE and no longer supported).
+ */
+struct ident_command {
+	uint32_t cmd;		/* LC_IDENT */
+	uint32_t cmdsize;	/* strings that follow this command */
+};
+
+/*
+ * The fvmfile_command contains a reference to a file to be loaded at the
+ * specified virtual address.  (Presently, this command is reserved for
+ * internal use.  The kernel ignores this command when loading a program into
+ * memory).
+ */
+struct fvmfile_command {
+	uint32_t cmd;			/* LC_FVMFILE */
+	uint32_t cmdsize;		/* includes pathname string */
+	union lc_str	name;		/* files pathname */
+	uint32_t	header_addr;	/* files virtual address */
+};
+
+
+/*
+ * The entry_point_command is a replacement for thread_command.
+ * It is used for main executables to specify the location (file offset)
+ * of main().  If -stack_size was used at link time, the stacksize
+ * field will contain the stack size need for the main thread.
+ */
+struct entry_point_command {
+    uint32_t  cmd;	/* LC_MAIN only used in MH_EXECUTE filetypes */
+    uint32_t  cmdsize;	/* 24 */
+    uint64_t  entryoff;	/* file (__TEXT) offset of main() */
+    uint64_t  stacksize;/* if not zero, initial stack size */
+};
+
+
+/*
+ * The source_version_command is an optional load command containing
+ * the version of the sources used to build the binary.
+ */
+struct source_version_command {
+    uint32_t  cmd;	/* LC_SOURCE_VERSION */
+    uint32_t  cmdsize;	/* 16 */
+    uint64_t  version;	/* A.B.C.D.E packed as a24.b10.c10.d10.e10 */
+};
+
+
+/*
+ * The LC_DATA_IN_CODE load commands uses a linkedit_data_command 
+ * to point to an array of data_in_code_entry entries. Each entry
+ * describes a range of data in a code section.
+ */
+struct data_in_code_entry {
+    uint32_t	offset;  /* from mach_header to start of data range*/
+    uint16_t	length;  /* number of bytes in data range */
+    uint16_t	kind;    /* a DICE_KIND_* value  */
+};
+#define DICE_KIND_DATA              0x0001
+#define DICE_KIND_JUMP_TABLE8       0x0002
+#define DICE_KIND_JUMP_TABLE16      0x0003
+#define DICE_KIND_JUMP_TABLE32      0x0004
+#define DICE_KIND_ABS_JUMP_TABLE32  0x0005
+
+
+
+/*
+ * Sections of type S_THREAD_LOCAL_VARIABLES contain an array 
+ * of tlv_descriptor structures.
+ */
+struct tlv_descriptor
+{
+	void*		(*thunk)(struct tlv_descriptor*);
+	unsigned long	key;
+	unsigned long	offset;
+};
+
+/*
+ * LC_NOTE commands describe a region of arbitrary data included in a Mach-O
+ * file.  Its initial use is to record extra data in MH_CORE files.
+ */
+struct note_command {
+    uint32_t	cmd;		/* LC_NOTE */
+    uint32_t	cmdsize;	/* sizeof(struct note_command) */
+    char	data_owner[16];	/* owner name for this LC_NOTE */
+    uint64_t	offset;		/* file offset of this data */
+    uint64_t	size;		/* length of data region */
+};
+
+/*
+ * LC_FILESET_ENTRY commands describe constituent Mach-O files that are part
+ * of a fileset. In one implementation, entries are dylibs with individual
+ * mach headers and repositionable text and data segments. Each entry is
+ * further described by its own mach header.
+ */
+struct fileset_entry_command {
+    uint32_t     cmd;        /* LC_FILESET_ENTRY */
+    uint32_t     cmdsize;    /* includes entry_id string */
+    uint64_t     vmaddr;     /* memory address of the entry */
+    uint64_t     fileoff;    /* file offset of the entry */
+    union lc_str entry_id;   /* contained entry id */
+    uint32_t     reserved;   /* reserved */
+};
+
+/*
+ * These deprecated values may still be used within Apple but are mechanically
+ * removed from public API. The mechanical process may produce unusual results.
+ */
+#if (!defined(PLATFORM_MACCATALYST))
+#define PLATFORM_MACCATALYST PLATFORM_MACCATALYST
+#endif
+
+#endif /* _MACHO_LOADER_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/clock.h b/lib/libc/include/any-macos.13-any/mach/clock.h
new file mode 100644
index 0000000000000000000000000000000000000000..04c8b8ec0bc7b5f6da3a2e976a82a1bddf0e379b
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/clock.h
@@ -0,0 +1,249 @@
+#ifndef	_clock_user_
+#define	_clock_user_
+
+/* Module clock */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	clock_MSG_COUNT
+#define	clock_MSG_COUNT	3
+#endif	/* clock_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine clock_get_time */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t clock_get_time
+(
+	clock_serv_t clock_serv,
+	mach_timespec_t *cur_time
+);
+
+/* Routine clock_get_attributes */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t clock_get_attributes
+(
+	clock_serv_t clock_serv,
+	clock_flavor_t flavor,
+	clock_attr_t clock_attr,
+	mach_msg_type_number_t *clock_attrCnt
+);
+
+/* Routine clock_alarm */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t clock_alarm
+(
+	clock_serv_t clock_serv,
+	alarm_type_t alarm_type,
+	mach_timespec_t alarm_time,
+	clock_reply_t alarm_port
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__clock_subsystem__defined
+#define __Request__clock_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__clock_get_time_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		clock_flavor_t flavor;
+		mach_msg_type_number_t clock_attrCnt;
+	} __Request__clock_get_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t alarm_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		alarm_type_t alarm_type;
+		mach_timespec_t alarm_time;
+	} __Request__clock_alarm_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__clock_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__clock_subsystem__defined
+#define __RequestUnion__clock_subsystem__defined
+union __RequestUnion__clock_subsystem {
+	__Request__clock_get_time_t Request_clock_get_time;
+	__Request__clock_get_attributes_t Request_clock_get_attributes;
+	__Request__clock_alarm_t Request_clock_alarm;
+};
+#endif /* !__RequestUnion__clock_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__clock_subsystem__defined
+#define __Reply__clock_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_timespec_t cur_time;
+	} __Reply__clock_get_time_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t clock_attrCnt;
+		int clock_attr[1];
+	} __Reply__clock_get_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__clock_alarm_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__clock_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__clock_subsystem__defined
+#define __ReplyUnion__clock_subsystem__defined
+union __ReplyUnion__clock_subsystem {
+	__Reply__clock_get_time_t Reply_clock_get_time;
+	__Reply__clock_get_attributes_t Reply_clock_get_attributes;
+	__Reply__clock_alarm_t Reply_clock_alarm;
+};
+#endif /* !__RequestUnion__clock_subsystem__defined */
+
+#ifndef subsystem_to_name_map_clock
+#define subsystem_to_name_map_clock \
+    { "clock_get_time", 1000 },\
+    { "clock_get_attributes", 1001 },\
+    { "clock_alarm", 1002 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _clock_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/clock_priv.h b/lib/libc/include/any-macos.13-any/mach/clock_priv.h
new file mode 100644
index 0000000000000000000000000000000000000000..ced1925a050ca8aab0970eb325aa25998b646175
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/clock_priv.h
@@ -0,0 +1,203 @@
+#ifndef	_clock_priv_user_
+#define	_clock_priv_user_
+
+/* Module clock_priv */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	clock_priv_MSG_COUNT
+#define	clock_priv_MSG_COUNT	2
+#endif	/* clock_priv_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine clock_set_time */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t clock_set_time
+(
+	clock_ctrl_t clock_ctrl,
+	mach_timespec_t new_time
+);
+
+/* Routine clock_set_attributes */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t clock_set_attributes
+(
+	clock_ctrl_t clock_ctrl,
+	clock_flavor_t flavor,
+	clock_attr_t clock_attr,
+	mach_msg_type_number_t clock_attrCnt
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__clock_priv_subsystem__defined
+#define __Request__clock_priv_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_timespec_t new_time;
+	} __Request__clock_set_time_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		clock_flavor_t flavor;
+		mach_msg_type_number_t clock_attrCnt;
+		int clock_attr[1];
+	} __Request__clock_set_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__clock_priv_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__clock_priv_subsystem__defined
+#define __RequestUnion__clock_priv_subsystem__defined
+union __RequestUnion__clock_priv_subsystem {
+	__Request__clock_set_time_t Request_clock_set_time;
+	__Request__clock_set_attributes_t Request_clock_set_attributes;
+};
+#endif /* !__RequestUnion__clock_priv_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__clock_priv_subsystem__defined
+#define __Reply__clock_priv_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__clock_set_time_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__clock_set_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__clock_priv_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__clock_priv_subsystem__defined
+#define __ReplyUnion__clock_priv_subsystem__defined
+union __ReplyUnion__clock_priv_subsystem {
+	__Reply__clock_set_time_t Reply_clock_set_time;
+	__Reply__clock_set_attributes_t Reply_clock_set_attributes;
+};
+#endif /* !__RequestUnion__clock_priv_subsystem__defined */
+
+#ifndef subsystem_to_name_map_clock_priv
+#define subsystem_to_name_map_clock_priv \
+    { "clock_set_time", 1200 },\
+    { "clock_set_attributes", 1201 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _clock_priv_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/exception_types.h b/lib/libc/include/any-macos.13-any/mach/exception_types.h
new file mode 100644
index 0000000000000000000000000000000000000000..d56a8ac74897bea80869e69d8377dafe56aea334
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/exception_types.h
@@ -0,0 +1,214 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+#ifndef _MACH_EXCEPTION_TYPES_H_
+#define _MACH_EXCEPTION_TYPES_H_
+
+#include 
+
+/*
+ *	Machine-independent exception definitions.
+ */
+
+#define EXC_BAD_ACCESS          1       /* Could not access memory */
+/* Code contains kern_return_t describing error. */
+/* Subcode contains bad memory address. */
+
+#define EXC_BAD_INSTRUCTION     2       /* Instruction failed */
+/* Illegal or undefined instruction or operand */
+
+#define EXC_ARITHMETIC          3       /* Arithmetic exception */
+/* Exact nature of exception is in code field */
+
+#define EXC_EMULATION           4       /* Emulation instruction */
+/* Emulation support instruction encountered */
+/* Details in code and subcode fields	*/
+
+#define EXC_SOFTWARE            5       /* Software generated exception */
+/* Exact exception is in code field. */
+/* Codes 0 - 0xFFFF reserved to hardware */
+/* Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) */
+
+#define EXC_BREAKPOINT          6       /* Trace, breakpoint, etc. */
+/* Details in code field. */
+
+#define EXC_SYSCALL             7       /* System calls. */
+
+#define EXC_MACH_SYSCALL        8       /* Mach system calls. */
+
+#define EXC_RPC_ALERT           9       /* RPC alert */
+
+#define EXC_CRASH               10      /* Abnormal process exit */
+
+#define EXC_RESOURCE            11      /* Hit resource consumption limit */
+/* Exact resource is in code field. */
+
+#define EXC_GUARD               12      /* Violated guarded resource protections */
+
+#define EXC_CORPSE_NOTIFY       13      /* Abnormal process exited to corpse state */
+
+
+/*
+ *	Machine-independent exception behaviors
+ */
+
+#define EXCEPTION_DEFAULT              1
+/*	Send a catch_exception_raise message including the identity.
+ */
+
+#define EXCEPTION_STATE                2
+/*	Send a catch_exception_raise_state message including the
+ *	thread state.
+ */
+
+#define EXCEPTION_STATE_IDENTITY       3
+/*	Send a catch_exception_raise_state_identity message including
+ *	the thread identity and state.
+ */
+
+#define EXCEPTION_IDENTITY_PROTECTED   4
+/*	Send a catch_exception_raise_identity_protected message including protected task
+ *  and thread identity.
+ */
+
+#define MACH_EXCEPTION_BACKTRACE_PREFERRED   0x20000000
+/* Prefer sending a catch_exception_raice_backtrace message, if applicable */
+
+#define MACH_EXCEPTION_ERRORS           0x40000000
+/*	include additional exception specific errors, not used yet.  */
+
+#define MACH_EXCEPTION_CODES            0x80000000
+/*	Send 64-bit code and subcode in the exception header */
+
+#define MACH_EXCEPTION_MASK             (MACH_EXCEPTION_CODES | \
+	                                    MACH_EXCEPTION_ERRORS | \
+	                                    MACH_EXCEPTION_BACKTRACE_PREFERRED)
+/*
+ * Masks for exception definitions, above
+ * bit zero is unused, therefore 1 word = 31 exception types
+ */
+
+#define EXC_MASK_BAD_ACCESS             (1 << EXC_BAD_ACCESS)
+#define EXC_MASK_BAD_INSTRUCTION        (1 << EXC_BAD_INSTRUCTION)
+#define EXC_MASK_ARITHMETIC             (1 << EXC_ARITHMETIC)
+#define EXC_MASK_EMULATION              (1 << EXC_EMULATION)
+#define EXC_MASK_SOFTWARE               (1 << EXC_SOFTWARE)
+#define EXC_MASK_BREAKPOINT             (1 << EXC_BREAKPOINT)
+#define EXC_MASK_SYSCALL                (1 << EXC_SYSCALL)
+#define EXC_MASK_MACH_SYSCALL           (1 << EXC_MACH_SYSCALL)
+#define EXC_MASK_RPC_ALERT              (1 << EXC_RPC_ALERT)
+#define EXC_MASK_CRASH                  (1 << EXC_CRASH)
+#define EXC_MASK_RESOURCE               (1 << EXC_RESOURCE)
+#define EXC_MASK_GUARD                  (1 << EXC_GUARD)
+#define EXC_MASK_CORPSE_NOTIFY          (1 << EXC_CORPSE_NOTIFY)
+
+#define EXC_MASK_ALL    (EXC_MASK_BAD_ACCESS |                  \
+	                 EXC_MASK_BAD_INSTRUCTION |             \
+	                 EXC_MASK_ARITHMETIC |                  \
+	                 EXC_MASK_EMULATION |                   \
+	                 EXC_MASK_SOFTWARE |                    \
+	                 EXC_MASK_BREAKPOINT |                  \
+	                 EXC_MASK_SYSCALL |                     \
+	                 EXC_MASK_MACH_SYSCALL |                \
+	                 EXC_MASK_RPC_ALERT |                   \
+	                 EXC_MASK_RESOURCE |                    \
+	                 EXC_MASK_GUARD |                       \
+	                 EXC_MASK_MACHINE)
+
+
+#define FIRST_EXCEPTION         1       /* ZERO is illegal */
+
+/*
+ * Machine independent codes for EXC_SOFTWARE
+ * Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix)
+ * 0x10000 - 0x10002 in use for unix signals
+ * 0x20000 - 0x2FFFF reserved for MACF
+ */
+#define EXC_SOFT_SIGNAL         0x10003 /* Unix signal exceptions */
+
+#define EXC_MACF_MIN            0x20000 /* MACF exceptions */
+#define EXC_MACF_MAX            0x2FFFF
+
+#ifndef ASSEMBLER
+
+#include 
+#include 
+#include 
+#include 
+/*
+ * Exported types
+ */
+
+typedef int                             exception_type_t;
+typedef integer_t                       exception_data_type_t;
+typedef int64_t                         mach_exception_data_type_t;
+typedef int                             exception_behavior_t;
+typedef exception_data_type_t           *exception_data_t;
+typedef mach_exception_data_type_t      *mach_exception_data_t;
+typedef unsigned int                    exception_mask_t;
+typedef exception_mask_t                *exception_mask_array_t;
+typedef exception_behavior_t            *exception_behavior_array_t;
+typedef thread_state_flavor_t           *exception_flavor_array_t;
+typedef mach_port_t                     *exception_port_array_t;
+typedef ipc_info_port_t                 *exception_port_info_array_t;
+typedef mach_exception_data_type_t      mach_exception_code_t;
+typedef mach_exception_data_type_t      mach_exception_subcode_t;
+
+#endif  /* ASSEMBLER */
+
+#endif  /* _MACH_EXCEPTION_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/host_priv.h b/lib/libc/include/any-macos.13-any/mach/host_priv.h
new file mode 100644
index 0000000000000000000000000000000000000000..79d27d1f67ee259b411a32a51d0fb84b0ba53113
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/host_priv.h
@@ -0,0 +1,1167 @@
+#ifndef	_host_priv_user_
+#define	_host_priv_user_
+
+/* Module host_priv */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	host_priv_MSG_COUNT
+#define	host_priv_MSG_COUNT	26
+#endif	/* host_priv_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine host_get_boot_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_boot_info
+(
+	host_priv_t host_priv,
+	kernel_boot_info_t boot_info
+);
+
+/* Routine host_reboot */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_reboot
+(
+	host_priv_t host_priv,
+	int options
+);
+
+/* Routine host_priv_statistics */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_priv_statistics
+(
+	host_priv_t host_priv,
+	host_flavor_t flavor,
+	host_info_t host_info_out,
+	mach_msg_type_number_t *host_info_outCnt
+);
+
+/* Routine host_default_memory_manager */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_default_memory_manager
+(
+	host_priv_t host_priv,
+	memory_object_default_t *default_manager,
+	memory_object_cluster_size_t cluster_size
+);
+
+/* Routine vm_wire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_wire
+(
+	host_priv_t host_priv,
+	vm_map_t task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_prot_t desired_access
+);
+
+/* Routine thread_wire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_wire
+(
+	host_priv_t host_priv,
+	thread_act_t thread,
+	boolean_t wired
+);
+
+/* Routine vm_allocate_cpm */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_allocate_cpm
+(
+	host_priv_t host_priv,
+	vm_map_t task,
+	vm_address_t *address,
+	vm_size_t size,
+	int flags
+);
+
+/* Routine host_processors */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_processors
+(
+	host_priv_t host_priv,
+	processor_array_t *out_processor_list,
+	mach_msg_type_number_t *out_processor_listCnt
+);
+
+/* Routine host_get_clock_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_clock_control
+(
+	host_priv_t host_priv,
+	clock_id_t clock_id,
+	clock_ctrl_t *clock_ctrl
+);
+
+/* Routine kmod_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kmod_create
+(
+	host_priv_t host_priv,
+	vm_address_t info,
+	kmod_t *module
+);
+
+/* Routine kmod_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kmod_destroy
+(
+	host_priv_t host_priv,
+	kmod_t module
+);
+
+/* Routine kmod_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kmod_control
+(
+	host_priv_t host_priv,
+	kmod_t module,
+	kmod_control_flavor_t flavor,
+	kmod_args_t *data,
+	mach_msg_type_number_t *dataCnt
+);
+
+/* Routine host_get_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_special_port
+(
+	host_priv_t host_priv,
+	int node,
+	int which,
+	mach_port_t *port
+);
+
+/* Routine host_set_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_set_special_port
+(
+	host_priv_t host_priv,
+	int which,
+	mach_port_t port
+);
+
+/* Routine host_set_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_set_exception_ports
+(
+	host_priv_t host_priv,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor
+);
+
+/* Routine host_get_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_exception_ports
+(
+	host_priv_t host_priv,
+	exception_mask_t exception_mask,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine host_swap_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_swap_exception_ports
+(
+	host_priv_t host_priv,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlerss,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine mach_vm_wire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_vm_wire
+(
+	host_priv_t host_priv,
+	vm_map_t task,
+	mach_vm_address_t address,
+	mach_vm_size_t size,
+	vm_prot_t desired_access
+);
+
+/* Routine host_processor_sets */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_processor_sets
+(
+	host_priv_t host_priv,
+	processor_set_name_array_t *processor_sets,
+	mach_msg_type_number_t *processor_setsCnt
+);
+
+/* Routine host_processor_set_priv */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_processor_set_priv
+(
+	host_priv_t host_priv,
+	processor_set_name_t set_name,
+	processor_set_t *set
+);
+
+/* Routine host_set_UNDServer */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_set_UNDServer
+(
+	host_priv_t host,
+	UNDServerRef server
+);
+
+/* Routine host_get_UNDServer */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_UNDServer
+(
+	host_priv_t host,
+	UNDServerRef *server
+);
+
+/* Routine kext_request */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kext_request
+(
+	host_priv_t host_priv,
+	uint32_t user_log_flags,
+	vm_offset_t request_data,
+	mach_msg_type_number_t request_dataCnt,
+	vm_offset_t *response_data,
+	mach_msg_type_number_t *response_dataCnt,
+	vm_offset_t *log_data,
+	mach_msg_type_number_t *log_dataCnt,
+	kern_return_t *op_result
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__host_priv_subsystem__defined
+#define __Request__host_priv_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_boot_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int options;
+	} __Request__host_reboot_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		host_flavor_t flavor;
+		mach_msg_type_number_t host_info_outCnt;
+	} __Request__host_priv_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t default_manager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		memory_object_cluster_size_t cluster_size;
+	} __Request__host_default_memory_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_prot_t desired_access;
+	} __Request__vm_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t thread;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t wired;
+	} __Request__thread_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		int flags;
+	} __Request__vm_allocate_cpm_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_processors_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		clock_id_t clock_id;
+	} __Request__host_get_clock_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t info;
+	} __Request__kmod_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kmod_t module;
+	} __Request__kmod_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		kmod_t module;
+		kmod_control_flavor_t flavor;
+		mach_msg_type_number_t dataCnt;
+	} __Request__kmod_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int node;
+		int which;
+	} __Request__host_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int which;
+	} __Request__host_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__host_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+	} __Request__host_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__host_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_vm_address_t address;
+		mach_vm_size_t size;
+		vm_prot_t desired_access;
+	} __Request__mach_vm_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_processor_sets_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t set_name;
+		/* end of the kernel processed data */
+	} __Request__host_processor_set_priv_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t server;
+		/* end of the kernel processed data */
+	} __Request__host_set_UNDServer_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_UNDServer_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t request_data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		uint32_t user_log_flags;
+		mach_msg_type_number_t request_dataCnt;
+	} __Request__kext_request_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__host_priv_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__host_priv_subsystem__defined
+#define __RequestUnion__host_priv_subsystem__defined
+union __RequestUnion__host_priv_subsystem {
+	__Request__host_get_boot_info_t Request_host_get_boot_info;
+	__Request__host_reboot_t Request_host_reboot;
+	__Request__host_priv_statistics_t Request_host_priv_statistics;
+	__Request__host_default_memory_manager_t Request_host_default_memory_manager;
+	__Request__vm_wire_t Request_vm_wire;
+	__Request__thread_wire_t Request_thread_wire;
+	__Request__vm_allocate_cpm_t Request_vm_allocate_cpm;
+	__Request__host_processors_t Request_host_processors;
+	__Request__host_get_clock_control_t Request_host_get_clock_control;
+	__Request__kmod_create_t Request_kmod_create;
+	__Request__kmod_destroy_t Request_kmod_destroy;
+	__Request__kmod_control_t Request_kmod_control;
+	__Request__host_get_special_port_t Request_host_get_special_port;
+	__Request__host_set_special_port_t Request_host_set_special_port;
+	__Request__host_set_exception_ports_t Request_host_set_exception_ports;
+	__Request__host_get_exception_ports_t Request_host_get_exception_ports;
+	__Request__host_swap_exception_ports_t Request_host_swap_exception_ports;
+	__Request__mach_vm_wire_t Request_mach_vm_wire;
+	__Request__host_processor_sets_t Request_host_processor_sets;
+	__Request__host_processor_set_priv_t Request_host_processor_set_priv;
+	__Request__host_set_UNDServer_t Request_host_set_UNDServer;
+	__Request__host_get_UNDServer_t Request_host_get_UNDServer;
+	__Request__kext_request_t Request_kext_request;
+};
+#endif /* !__RequestUnion__host_priv_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__host_priv_subsystem__defined
+#define __Reply__host_priv_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t boot_infoOffset; /* MiG doesn't use it */
+		mach_msg_type_number_t boot_infoCnt;
+		char boot_info[4096];
+	} __Reply__host_get_boot_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_reboot_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t host_info_outCnt;
+		integer_t host_info_out[68];
+	} __Reply__host_priv_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t default_manager;
+		/* end of the kernel processed data */
+	} __Reply__host_default_memory_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+	} __Reply__vm_allocate_cpm_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t out_processor_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t out_processor_listCnt;
+	} __Reply__host_processors_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t clock_ctrl;
+		/* end of the kernel processed data */
+	} __Reply__host_get_clock_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		kmod_t module;
+	} __Reply__kmod_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__kmod_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dataCnt;
+	} __Reply__kmod_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t port;
+		/* end of the kernel processed data */
+	} __Reply__host_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__host_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlerss[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__host_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_vm_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t processor_sets;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t processor_setsCnt;
+	} __Reply__host_processor_sets_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t set;
+		/* end of the kernel processed data */
+	} __Reply__host_processor_set_priv_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_UNDServer_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t server;
+		/* end of the kernel processed data */
+	} __Reply__host_get_UNDServer_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t response_data;
+		mach_msg_ool_descriptor_t log_data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t response_dataCnt;
+		mach_msg_type_number_t log_dataCnt;
+		kern_return_t op_result;
+	} __Reply__kext_request_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__host_priv_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__host_priv_subsystem__defined
+#define __ReplyUnion__host_priv_subsystem__defined
+union __ReplyUnion__host_priv_subsystem {
+	__Reply__host_get_boot_info_t Reply_host_get_boot_info;
+	__Reply__host_reboot_t Reply_host_reboot;
+	__Reply__host_priv_statistics_t Reply_host_priv_statistics;
+	__Reply__host_default_memory_manager_t Reply_host_default_memory_manager;
+	__Reply__vm_wire_t Reply_vm_wire;
+	__Reply__thread_wire_t Reply_thread_wire;
+	__Reply__vm_allocate_cpm_t Reply_vm_allocate_cpm;
+	__Reply__host_processors_t Reply_host_processors;
+	__Reply__host_get_clock_control_t Reply_host_get_clock_control;
+	__Reply__kmod_create_t Reply_kmod_create;
+	__Reply__kmod_destroy_t Reply_kmod_destroy;
+	__Reply__kmod_control_t Reply_kmod_control;
+	__Reply__host_get_special_port_t Reply_host_get_special_port;
+	__Reply__host_set_special_port_t Reply_host_set_special_port;
+	__Reply__host_set_exception_ports_t Reply_host_set_exception_ports;
+	__Reply__host_get_exception_ports_t Reply_host_get_exception_ports;
+	__Reply__host_swap_exception_ports_t Reply_host_swap_exception_ports;
+	__Reply__mach_vm_wire_t Reply_mach_vm_wire;
+	__Reply__host_processor_sets_t Reply_host_processor_sets;
+	__Reply__host_processor_set_priv_t Reply_host_processor_set_priv;
+	__Reply__host_set_UNDServer_t Reply_host_set_UNDServer;
+	__Reply__host_get_UNDServer_t Reply_host_get_UNDServer;
+	__Reply__kext_request_t Reply_kext_request;
+};
+#endif /* !__RequestUnion__host_priv_subsystem__defined */
+
+#ifndef subsystem_to_name_map_host_priv
+#define subsystem_to_name_map_host_priv \
+    { "host_get_boot_info", 400 },\
+    { "host_reboot", 401 },\
+    { "host_priv_statistics", 402 },\
+    { "host_default_memory_manager", 403 },\
+    { "vm_wire", 404 },\
+    { "thread_wire", 405 },\
+    { "vm_allocate_cpm", 406 },\
+    { "host_processors", 407 },\
+    { "host_get_clock_control", 408 },\
+    { "kmod_create", 409 },\
+    { "kmod_destroy", 410 },\
+    { "kmod_control", 411 },\
+    { "host_get_special_port", 412 },\
+    { "host_set_special_port", 413 },\
+    { "host_set_exception_ports", 414 },\
+    { "host_get_exception_ports", 415 },\
+    { "host_swap_exception_ports", 416 },\
+    { "mach_vm_wire", 418 },\
+    { "host_processor_sets", 419 },\
+    { "host_processor_set_priv", 420 },\
+    { "host_set_UNDServer", 423 },\
+    { "host_get_UNDServer", 424 },\
+    { "kext_request", 425 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _host_priv_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/host_security.h b/lib/libc/include/any-macos.13-any/mach/host_security.h
new file mode 100644
index 0000000000000000000000000000000000000000..4f7e86ad3053ae9346bbcdc393a5579b5627463b
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/host_security.h
@@ -0,0 +1,225 @@
+#ifndef	_host_security_user_
+#define	_host_security_user_
+
+/* Module host_security */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	host_security_MSG_COUNT
+#define	host_security_MSG_COUNT	2
+#endif	/* host_security_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine host_security_create_task_token */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_security_create_task_token
+(
+	host_security_t host_security,
+	task_t parent_task,
+	security_token_t sec_token,
+	audit_token_t audit_token,
+	host_t host,
+	ledger_array_t ledgers,
+	mach_msg_type_number_t ledgersCnt,
+	boolean_t inherit_memory,
+	task_t *child_task
+);
+
+/* Routine host_security_set_task_token */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_security_set_task_token
+(
+	host_security_t host_security,
+	task_t target_task,
+	security_token_t sec_token,
+	audit_token_t audit_token,
+	host_t host
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__host_security_subsystem__defined
+#define __Request__host_security_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t parent_task;
+		mach_msg_port_descriptor_t host;
+		mach_msg_ool_ports_descriptor_t ledgers;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		security_token_t sec_token;
+		audit_token_t audit_token;
+		mach_msg_type_number_t ledgersCnt;
+		boolean_t inherit_memory;
+	} __Request__host_security_create_task_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t target_task;
+		mach_msg_port_descriptor_t host;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		security_token_t sec_token;
+		audit_token_t audit_token;
+	} __Request__host_security_set_task_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__host_security_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__host_security_subsystem__defined
+#define __RequestUnion__host_security_subsystem__defined
+union __RequestUnion__host_security_subsystem {
+	__Request__host_security_create_task_token_t Request_host_security_create_task_token;
+	__Request__host_security_set_task_token_t Request_host_security_set_task_token;
+};
+#endif /* !__RequestUnion__host_security_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__host_security_subsystem__defined
+#define __Reply__host_security_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t child_task;
+		/* end of the kernel processed data */
+	} __Reply__host_security_create_task_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_security_set_task_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__host_security_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__host_security_subsystem__defined
+#define __ReplyUnion__host_security_subsystem__defined
+union __ReplyUnion__host_security_subsystem {
+	__Reply__host_security_create_task_token_t Reply_host_security_create_task_token;
+	__Reply__host_security_set_task_token_t Reply_host_security_set_task_token;
+};
+#endif /* !__RequestUnion__host_security_subsystem__defined */
+
+#ifndef subsystem_to_name_map_host_security
+#define subsystem_to_name_map_host_security \
+    { "host_security_create_task_token", 600 },\
+    { "host_security_set_task_token", 601 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _host_security_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/host_special_ports.h b/lib/libc/include/any-macos.13-any/mach/host_special_ports.h
new file mode 100644
index 0000000000000000000000000000000000000000..6b73217bbeff498e53e16064b52b74b9dd92dad1
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/host_special_ports.h
@@ -0,0 +1,295 @@
+/*
+ * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/host_special_ports.h
+ *
+ *	Defines codes for access to host-wide special ports.
+ */
+
+#ifndef _MACH_HOST_SPECIAL_PORTS_H_
+#define _MACH_HOST_SPECIAL_PORTS_H_
+
+/*
+ * Cannot be set or gotten from user space
+ */
+#define HOST_SECURITY_PORT               0
+
+#define HOST_MIN_SPECIAL_PORT            HOST_SECURITY_PORT
+
+/*
+ * Always provided by kernel (cannot be set from user-space).
+ */
+#define HOST_PORT                        1
+#define HOST_PRIV_PORT                   2
+#define HOST_IO_MAIN_PORT                3
+#define HOST_MAX_SPECIAL_KERNEL_PORT     7 /* room to grow */
+
+#define HOST_LAST_SPECIAL_KERNEL_PORT    HOST_IO_MAIN_PORT
+
+/*
+ * Not provided by kernel
+ */
+#define HOST_DYNAMIC_PAGER_PORT         (1 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_AUDIT_CONTROL_PORT         (2 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_USER_NOTIFICATION_PORT     (3 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_AUTOMOUNTD_PORT            (4 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_LOCKD_PORT                 (5 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_KTRACE_BACKGROUND_PORT     (6 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_SEATBELT_PORT              (7 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_KEXTD_PORT                 (8 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_LAUNCHCTL_PORT             (9 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_UNFREED_PORT               (10 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_AMFID_PORT                 (11 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_GSSD_PORT                  (12 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_TELEMETRY_PORT             (13 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_ATM_NOTIFICATION_PORT      (14 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_COALITION_PORT             (15 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_SYSDIAGNOSE_PORT           (16 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_XPC_EXCEPTION_PORT         (17 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_CONTAINERD_PORT            (18 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_NODE_PORT                  (19 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_RESOURCE_NOTIFY_PORT       (20 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_CLOSURED_PORT              (21 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_SYSPOLICYD_PORT            (22 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_FILECOORDINATIOND_PORT     (23 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_FAIRPLAYD_PORT             (24 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_IOCOMPRESSIONSTATS_PORT    (25 + HOST_MAX_SPECIAL_KERNEL_PORT)
+#define HOST_MEMORY_ERROR_PORT          (26 + HOST_MAX_SPECIAL_KERNEL_PORT)
+
+#define HOST_MAX_SPECIAL_PORT           HOST_MEMORY_ERROR_PORT
+/* MAX = last since rdar://59872249 */
+
+/* obsolete name */
+#define HOST_CHUD_PORT HOST_LAUNCHCTL_PORT
+
+/*
+ * Special node identifier to always represent the local node.
+ */
+#define HOST_LOCAL_NODE                  -1
+
+/*
+ * Definitions for ease of use.
+ *
+ * In the get call, the host parameter can be any host, but will generally
+ * be the local node host port. In the set call, the host must the per-node
+ * host port for the node being affected.
+ */
+#define host_get_host_port(host, port)  \
+	(host_get_special_port((host),  \
+	HOST_LOCAL_NODE, HOST_PORT, (port)))
+#define host_set_host_port(host, port) (KERN_INVALID_ARGUMENT)
+
+#define host_get_host_priv_port(host, port)     \
+	(host_get_special_port((host),          \
+	HOST_LOCAL_NODE, HOST_PRIV_PORT, (port)))
+#define host_set_host_priv_port(host, port) (KERN_INVALID_ARGUMENT)
+
+#define host_get_io_main_port(host, port)     \
+	(host_get_special_port((host),          \
+	HOST_LOCAL_NODE, HOST_IO_MAIN_PORT, (port)))
+#define host_set_io_main_port(host, port) (KERN_INVALID_ARGUMENT)
+
+/*
+ * User-settable special ports.
+ */
+#define host_get_dynamic_pager_port(host, port) \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_DYNAMIC_PAGER_PORT, (port)))
+#define host_set_dynamic_pager_port(host, port) \
+	(host_set_special_port((host), HOST_DYNAMIC_PAGER_PORT, (port)))
+
+#define host_get_audit_control_port(host, port) \
+	(host_get_special_port((host),          \
+	HOST_LOCAL_NODE, HOST_AUDIT_CONTROL_PORT, (port)))
+#define host_set_audit_control_port(host, port) \
+	(host_set_special_port((host), HOST_AUDIT_CONTROL_PORT, (port)))
+
+#define host_get_user_notification_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_USER_NOTIFICATION_PORT, (port)))
+#define host_set_user_notification_port(host, port)     \
+	(host_set_special_port((host), HOST_USER_NOTIFICATION_PORT, (port)))
+
+#define host_get_automountd_port(host, port)    \
+	(host_get_special_port((host),          \
+	HOST_LOCAL_NODE, HOST_AUTOMOUNTD_PORT, (port)))
+#define host_set_automountd_port(host, port)    \
+	(host_set_special_port((host), HOST_AUTOMOUNTD_PORT, (port)))
+
+#define host_get_lockd_port(host, port) \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_LOCKD_PORT, (port)))
+#define host_set_lockd_port(host, port) \
+	(host_set_special_port((host), HOST_LOCKD_PORT, (port)))
+
+#define host_get_ktrace_background_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_KTRACE_BACKGROUND_PORT, (port)))
+#define host_set_ktrace_background_port(host, port)     \
+	(host_set_special_port((host), HOST_KTRACE_BACKGROUND_PORT, (port)))
+
+#define host_get_kextd_port(host, port) \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_KEXTD_PORT, (port)))
+#define host_set_kextd_port(host, port) \
+	(host_set_special_port((host), HOST_KEXTD_PORT, (port)))
+
+#define host_get_launchctl_port(host, port) \
+	(host_get_special_port((host), HOST_LOCAL_NODE, HOST_LAUNCHCTL_PORT, \
+	(port)))
+#define host_set_launchctl_port(host, port) \
+	(host_set_special_port((host), HOST_LAUNCHCTL_PORT, (port)))
+
+#define host_get_chud_port(host, port) host_get_launchctl_port(host, port)
+#define host_set_chud_port(host, port) host_set_launchctl_port(host, port)
+
+#define host_get_unfreed_port(host, port)       \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_UNFREED_PORT, (port)))
+#define host_set_unfreed_port(host, port)       \
+	(host_set_special_port((host), HOST_UNFREED_PORT, (port)))
+
+#define host_get_amfid_port(host, port) \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_AMFID_PORT, (port)))
+#define host_set_amfid_port(host, port) \
+	(host_set_special_port((host), HOST_AMFID_PORT, (port)))
+
+#define host_get_gssd_port(host, port)  \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_GSSD_PORT, (port)))
+#define host_set_gssd_port(host, port)  \
+	(host_set_special_port((host), HOST_GSSD_PORT, (port)))
+
+#define host_get_telemetry_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_TELEMETRY_PORT, (port)))
+#define host_set_telemetry_port(host, port)     \
+	(host_set_special_port((host), HOST_TELEMETRY_PORT, (port)))
+
+#define host_get_atm_notification_port(host, port)      \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_ATM_NOTIFICATION_PORT, (port)))
+#define host_set_atm_notification_port(host, port)      \
+	(host_set_special_port((host), HOST_ATM_NOTIFICATION_PORT, (port)))
+
+#define host_get_coalition_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_COALITION_PORT, (port)))
+#define host_set_coalition_port(host, port)     \
+	(host_set_special_port((host), HOST_COALITION_PORT, (port)))
+
+#define host_get_sysdiagnose_port(host, port)   \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_SYSDIAGNOSE_PORT, (port)))
+#define host_set_sysdiagnose_port(host, port)   \
+	(host_set_special_port((host), HOST_SYSDIAGNOSE_PORT, (port)))
+
+#define host_get_container_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_CONTAINERD_PORT, (port)))
+#define host_set_container_port(host, port)     \
+	(host_set_special_port((host), HOST_CONTAINERD_PORT, (port)))
+
+#define host_get_node_port(host, port)  \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_NODE_PORT, (port)))
+#define host_set_node_port(host, port)  \
+	(host_set_special_port((host), HOST_NODE_PORT, (port)))
+
+#define host_get_closured_port(host, port)      \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_CLOSURED_PORT, (port)))
+#define host_set_closured_port(host, port)      \
+	(host_set_special_port((host), HOST_CLOSURED_PORT, (port)))
+
+#define host_get_syspolicyd_port(host, port)    \
+	(host_get_special_port((host),                          \
+	HOST_LOCAL_NODE, HOST_SYSPOLICYD_PORT, (port)))
+#define host_set_syspolicyd_port(host, port)    \
+	(host_set_special_port((host), HOST_SYSPOLICYD_PORT, (port)))
+
+#define host_get_filecoordinationd_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_FILECOORDINATIOND_PORT, (port)))
+#define host_set_filecoordinationd_port(host, port)     \
+	(host_set_special_port((host), HOST_FILECOORDINATIOND_PORT, (port)))
+
+#define host_get_fairplayd_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_FAIRPLAYD_PORT, (port)))
+#define host_set_fairplayd_port(host, port)     \
+	(host_set_special_port((host), HOST_FAIRPLAYD_PORT, (port)))
+
+#define host_get_iocompressionstats_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_IOCOMPRESSIONSTATS_PORT, (port)))
+#define host_set_iocompressionstats_port(host, port)     \
+	(host_set_special_port((host), HOST_IOCOMPRESSIONSTATS_PORT, (port)))
+
+#define host_get_memory_error_port(host, port)     \
+	(host_get_special_port((host),                  \
+	HOST_LOCAL_NODE, HOST_MEMORY_ERROR_PORT, (port)))
+#define host_set_memory_error_port(host, port)     \
+	(host_set_special_port((host), HOST_MEMORY_ERROR_PORT, (port)))
+
+/* HOST_RESOURCE_NOTIFY_PORT doesn't #defines these conveniences.
+ *  All lookups go through send_resource_violation()
+ */
+
+#endif  /* _MACH_HOST_SPECIAL_PORTS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/mach.h b/lib/libc/include/any-macos.13-any/mach/mach.h
new file mode 100644
index 0000000000000000000000000000000000000000..712d4e1cab2025f4218cae246a550beb377d6fc0
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/mach.h
@@ -0,0 +1,241 @@
+/*
+ * Copyright (c) 1999-2014 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@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+/*
+ *  Includes all the types that a normal user
+ *  of Mach programs should need
+ */
+
+#ifndef _MACH_H_
+#define _MACH_H_
+
+#define __MACH30__
+#define MACH_IPC_FLAVOR UNTYPED
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include            /* for compatibility only */
+#include 
+
+#include 
+#include 
+
+#include 
+
+__BEGIN_DECLS
+/*
+ * Standard prototypes
+ */
+extern void                     panic_init(mach_port_t);
+extern void                     panic(const char *, ...);
+
+extern void                     slot_name(cpu_type_t,
+    cpu_subtype_t,
+    char **,
+    char **);
+
+extern void                     mig_reply_setup(mach_msg_header_t *,
+    mach_msg_header_t *);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern void                     mach_msg_destroy(mach_msg_header_t *);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_receive(mach_msg_header_t *);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_send(mach_msg_header_t *);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_server_once(boolean_t (*)
+    (mach_msg_header_t *,
+    mach_msg_header_t *),
+    mach_msg_size_t,
+    mach_port_t,
+    mach_msg_options_t);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_server(boolean_t (*)
+    (mach_msg_header_t *,
+    mach_msg_header_t *),
+    mach_msg_size_t,
+    mach_port_t,
+    mach_msg_options_t);
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_server_importance(boolean_t (*)
+    (mach_msg_header_t *,
+    mach_msg_header_t *),
+    mach_msg_size_t,
+    mach_port_t,
+    mach_msg_options_t);
+
+/*
+ * Prototypes for compatibility
+ */
+extern kern_return_t    clock_get_res(mach_port_t,
+    clock_res_t *);
+extern kern_return_t    clock_set_res(mach_port_t,
+    clock_res_t);
+
+extern kern_return_t    clock_sleep(mach_port_t,
+    int,
+    mach_timespec_t,
+    mach_timespec_t *);
+
+/*!
+ * @group voucher_mach_msg Prototypes
+ */
+
+#define VOUCHER_MACH_MSG_API_VERSION 20140205
+
+/*!
+ * @typedef voucher_mach_msg_state_t
+ *
+ * @abstract
+ * Opaque object encapsulating state changed by voucher_mach_msg_adopt().
+ */
+typedef struct voucher_mach_msg_state_s *voucher_mach_msg_state_t;
+
+/*!
+ * @const VOUCHER_MACH_MSG_STATE_UNCHANGED
+ *
+ * @discussion
+ * Constant indicating no state change occurred.
+ */
+#define VOUCHER_MACH_MSG_STATE_UNCHANGED ((voucher_mach_msg_state_t)~0ul)
+
+/*!
+ * @function voucher_mach_msg_set
+ *
+ * @abstract
+ * Change specified message header to contain current mach voucher with a
+ * COPY_SEND disposition.
+ * Does not change message if it already has non-zero MACH_MSGH_BITS_VOUCHER.
+ *
+ * @discussion
+ * Borrows reference to current thread voucher so message should be sent
+ * immediately (without intervening calls that might change that voucher).
+ *
+ * @param msg
+ * The message to modify.
+ *
+ * @result
+ * True if header was changed.
+ */
+extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg);
+
+/*!
+ * @function voucher_mach_msg_clear
+ *
+ * @abstract
+ * Removes changes made to specified message header by voucher_mach_msg_set()
+ * and any mach_msg() send operations (successful or not).
+ * If the message is not needed further, mach_msg_destroy() should be called
+ * instead.
+ *
+ * @discussion
+ * Not intended to be called if voucher_mach_msg_set() returned false.
+ * Releases reference to message mach voucher if an extra reference was
+ * acquired due to an unsuccessful send operation (pseudo-receive).
+ *
+ * @param msg
+ * The message to modify.
+ */
+extern void voucher_mach_msg_clear(mach_msg_header_t *msg);
+
+/*!
+ * @function voucher_mach_msg_adopt
+ *
+ * @abstract
+ * Adopt the voucher contained in the specified message on the current thread
+ * and return the previous thread voucher state.
+ *
+ * @discussion
+ * Ownership of the mach voucher in the message is transferred to the current
+ * thread and the message header voucher fields are cleared.
+ *
+ * @param msg
+ * The message to query and modify.
+ *
+ * @result
+ * The previous thread voucher state or VOUCHER_MACH_MSG_STATE_UNCHANGED if no
+ * state change occurred.
+ */
+extern voucher_mach_msg_state_t voucher_mach_msg_adopt(mach_msg_header_t *msg);
+
+/*!
+ * @function voucher_mach_msg_revert
+ *
+ * @abstract
+ * Restore thread voucher state previously modified by voucher_mach_msg_adopt().
+ *
+ * @discussion
+ * Current thread voucher reference is released.
+ * No change to thread voucher state if passed VOUCHER_MACH_MSG_STATE_UNCHANGED.
+ *
+ * @param state
+ * The thread voucher state to restore.
+ */
+extern void voucher_mach_msg_revert(voucher_mach_msg_state_t state);
+
+
+__END_DECLS
+
+#endif  /* _MACH_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/mach_host.h b/lib/libc/include/any-macos.13-any/mach/mach_host.h
new file mode 100644
index 0000000000000000000000000000000000000000..2cdf4c33a92c47f55fd00a0ac7422a5272e75859
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/mach_host.h
@@ -0,0 +1,1292 @@
+#ifndef	_mach_host_user_
+#define	_mach_host_user_
+
+/* Module mach_host */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	mach_host_MSG_COUNT
+#define	mach_host_MSG_COUNT	35
+#endif	/* mach_host_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine host_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t host_info
+(
+	host_t host,
+	host_flavor_t flavor,
+	host_info_t host_info_out,
+	mach_msg_type_number_t *host_info_outCnt
+);
+
+/* Routine host_kernel_version */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_kernel_version
+(
+	host_t host,
+	kernel_version_t kernel_version
+);
+
+/* Routine _host_page_size */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t _host_page_size
+(
+	host_t host,
+	vm_size_t *out_page_size
+);
+
+/* Routine mach_memory_object_memory_entry */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_memory_object_memory_entry
+(
+	host_t host,
+	boolean_t internal,
+	vm_size_t size,
+	vm_prot_t permission,
+	memory_object_t pager,
+	mach_port_t *entry_handle
+);
+
+/* Routine host_processor_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_processor_info
+(
+	host_t host,
+	processor_flavor_t flavor,
+	natural_t *out_processor_count,
+	processor_info_array_t *out_processor_info,
+	mach_msg_type_number_t *out_processor_infoCnt
+);
+
+/* Routine host_get_io_main */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_io_main
+(
+	host_t host,
+	io_main_t *io_main
+);
+
+/* Routine host_get_clock_service */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_clock_service
+(
+	host_t host,
+	clock_id_t clock_id,
+	clock_serv_t *clock_serv
+);
+
+/* Routine kmod_get_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t kmod_get_info
+(
+	host_t host,
+	kmod_args_t *modules,
+	mach_msg_type_number_t *modulesCnt
+);
+
+/* Routine host_virtual_physical_table_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_virtual_physical_table_info
+(
+	host_t host,
+	hash_info_bucket_array_t *info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine processor_set_default */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_default
+(
+	host_t host,
+	processor_set_name_t *default_set
+);
+
+/* Routine processor_set_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_create
+(
+	host_t host,
+	processor_set_t *new_set,
+	processor_set_name_t *new_name
+);
+
+/* Routine mach_memory_object_memory_entry_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_memory_object_memory_entry_64
+(
+	host_t host,
+	boolean_t internal,
+	memory_object_size_t size,
+	vm_prot_t permission,
+	memory_object_t pager,
+	mach_port_t *entry_handle
+);
+
+/* Routine host_statistics */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_statistics
+(
+	host_t host_priv,
+	host_flavor_t flavor,
+	host_info_t host_info_out,
+	mach_msg_type_number_t *host_info_outCnt
+);
+
+/* Routine host_request_notification */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t host_request_notification
+(
+	host_t host,
+	host_flavor_t notify_type,
+	mach_port_t notify_port
+);
+
+/* Routine host_lockgroup_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_lockgroup_info
+(
+	host_t host,
+	lockgroup_info_array_t *lockgroup_info,
+	mach_msg_type_number_t *lockgroup_infoCnt
+);
+
+/* Routine host_statistics64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_statistics64
+(
+	host_t host_priv,
+	host_flavor_t flavor,
+	host_info64_t host_info64_out,
+	mach_msg_type_number_t *host_info64_outCnt
+);
+
+/* Routine mach_zone_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_zone_info
+(
+	host_priv_t host,
+	mach_zone_name_array_t *names,
+	mach_msg_type_number_t *namesCnt,
+	mach_zone_info_array_t *info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine host_create_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t host_create_mach_voucher
+(
+	host_t host,
+	mach_voucher_attr_raw_recipe_array_t recipes,
+	mach_msg_type_number_t recipesCnt,
+	ipc_voucher_t *voucher
+);
+
+/* Routine host_register_mach_voucher_attr_manager */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t host_register_mach_voucher_attr_manager
+(
+	host_t host,
+	mach_voucher_attr_manager_t attr_manager,
+	mach_voucher_attr_value_handle_t default_value,
+	mach_voucher_attr_key_t *new_key,
+	ipc_voucher_attr_control_t *new_attr_control
+);
+
+/* Routine host_register_well_known_mach_voucher_attr_manager */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t host_register_well_known_mach_voucher_attr_manager
+(
+	host_t host,
+	mach_voucher_attr_manager_t attr_manager,
+	mach_voucher_attr_value_handle_t default_value,
+	mach_voucher_attr_key_t key,
+	ipc_voucher_attr_control_t *new_attr_control
+);
+
+/* Routine host_set_atm_diagnostic_flag */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t host_set_atm_diagnostic_flag
+(
+	host_t host,
+	uint32_t diagnostic_flag
+);
+
+/* Routine host_get_atm_diagnostic_flag */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t host_get_atm_diagnostic_flag
+(
+	host_t host,
+	uint32_t *diagnostic_flag
+);
+
+/* Routine mach_memory_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_memory_info
+(
+	host_priv_t host,
+	mach_zone_name_array_t *names,
+	mach_msg_type_number_t *namesCnt,
+	mach_zone_info_array_t *info,
+	mach_msg_type_number_t *infoCnt,
+	mach_memory_info_array_t *memory_info,
+	mach_msg_type_number_t *memory_infoCnt
+);
+
+/* Routine host_set_multiuser_config_flags */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_set_multiuser_config_flags
+(
+	host_priv_t host_priv,
+	uint32_t multiuser_flags
+);
+
+/* Routine host_get_multiuser_config_flags */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_get_multiuser_config_flags
+(
+	host_t host,
+	uint32_t *multiuser_flags
+);
+
+/* Routine host_check_multiuser_mode */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t host_check_multiuser_mode
+(
+	host_t host,
+	uint32_t *multiuser_mode
+);
+
+/* Routine mach_zone_info_for_zone */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_zone_info_for_zone
+(
+	host_priv_t host,
+	mach_zone_name_t name,
+	mach_zone_info_t *info
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__mach_host_subsystem__defined
+#define __Request__mach_host_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		host_flavor_t flavor;
+		mach_msg_type_number_t host_info_outCnt;
+	} __Request__host_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_kernel_version_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request___host_page_size_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t pager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t internal;
+		vm_size_t size;
+		vm_prot_t permission;
+	} __Request__mach_memory_object_memory_entry_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		processor_flavor_t flavor;
+	} __Request__host_processor_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_io_main_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		clock_id_t clock_id;
+	} __Request__host_get_clock_service_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__kmod_get_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_virtual_physical_table_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t pager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t internal;
+		memory_object_size_t size;
+		vm_prot_t permission;
+	} __Request__mach_memory_object_memory_entry_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		host_flavor_t flavor;
+		mach_msg_type_number_t host_info_outCnt;
+	} __Request__host_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t notify_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		host_flavor_t notify_type;
+	} __Request__host_request_notification_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_lockgroup_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		host_flavor_t flavor;
+		mach_msg_type_number_t host_info64_outCnt;
+	} __Request__host_statistics64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_zone_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_msg_type_number_t recipesCnt;
+		uint8_t recipes[5120];
+	} __Request__host_create_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t attr_manager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_voucher_attr_value_handle_t default_value;
+	} __Request__host_register_mach_voucher_attr_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t attr_manager;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_voucher_attr_value_handle_t default_value;
+		mach_voucher_attr_key_t key;
+	} __Request__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		uint32_t diagnostic_flag;
+	} __Request__host_set_atm_diagnostic_flag_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_atm_diagnostic_flag_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_memory_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		uint32_t multiuser_flags;
+	} __Request__host_set_multiuser_config_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_get_multiuser_config_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__host_check_multiuser_mode_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_zone_name_t name;
+	} __Request__mach_zone_info_for_zone_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__mach_host_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__mach_host_subsystem__defined
+#define __RequestUnion__mach_host_subsystem__defined
+union __RequestUnion__mach_host_subsystem {
+	__Request__host_info_t Request_host_info;
+	__Request__host_kernel_version_t Request_host_kernel_version;
+	__Request___host_page_size_t Request__host_page_size;
+	__Request__mach_memory_object_memory_entry_t Request_mach_memory_object_memory_entry;
+	__Request__host_processor_info_t Request_host_processor_info;
+	__Request__host_get_io_main_t Request_host_get_io_main;
+	__Request__host_get_clock_service_t Request_host_get_clock_service;
+	__Request__kmod_get_info_t Request_kmod_get_info;
+	__Request__host_virtual_physical_table_info_t Request_host_virtual_physical_table_info;
+	__Request__processor_set_default_t Request_processor_set_default;
+	__Request__processor_set_create_t Request_processor_set_create;
+	__Request__mach_memory_object_memory_entry_64_t Request_mach_memory_object_memory_entry_64;
+	__Request__host_statistics_t Request_host_statistics;
+	__Request__host_request_notification_t Request_host_request_notification;
+	__Request__host_lockgroup_info_t Request_host_lockgroup_info;
+	__Request__host_statistics64_t Request_host_statistics64;
+	__Request__mach_zone_info_t Request_mach_zone_info;
+	__Request__host_create_mach_voucher_t Request_host_create_mach_voucher;
+	__Request__host_register_mach_voucher_attr_manager_t Request_host_register_mach_voucher_attr_manager;
+	__Request__host_register_well_known_mach_voucher_attr_manager_t Request_host_register_well_known_mach_voucher_attr_manager;
+	__Request__host_set_atm_diagnostic_flag_t Request_host_set_atm_diagnostic_flag;
+	__Request__host_get_atm_diagnostic_flag_t Request_host_get_atm_diagnostic_flag;
+	__Request__mach_memory_info_t Request_mach_memory_info;
+	__Request__host_set_multiuser_config_flags_t Request_host_set_multiuser_config_flags;
+	__Request__host_get_multiuser_config_flags_t Request_host_get_multiuser_config_flags;
+	__Request__host_check_multiuser_mode_t Request_host_check_multiuser_mode;
+	__Request__mach_zone_info_for_zone_t Request_mach_zone_info_for_zone;
+};
+#endif /* !__RequestUnion__mach_host_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__mach_host_subsystem__defined
+#define __Reply__mach_host_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t host_info_outCnt;
+		integer_t host_info_out[68];
+	} __Reply__host_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t kernel_versionOffset; /* MiG doesn't use it */
+		mach_msg_type_number_t kernel_versionCnt;
+		char kernel_version[512];
+	} __Reply__host_kernel_version_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_size_t out_page_size;
+	} __Reply___host_page_size_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t entry_handle;
+		/* end of the kernel processed data */
+	} __Reply__mach_memory_object_memory_entry_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t out_processor_info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		natural_t out_processor_count;
+		mach_msg_type_number_t out_processor_infoCnt;
+	} __Reply__host_processor_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t io_main;
+		/* end of the kernel processed data */
+	} __Reply__host_get_io_main_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t clock_serv;
+		/* end of the kernel processed data */
+	} __Reply__host_get_clock_service_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t modules;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t modulesCnt;
+	} __Reply__kmod_get_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t infoCnt;
+	} __Reply__host_virtual_physical_table_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t default_set;
+		/* end of the kernel processed data */
+	} __Reply__processor_set_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_set;
+		mach_msg_port_descriptor_t new_name;
+		/* end of the kernel processed data */
+	} __Reply__processor_set_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t entry_handle;
+		/* end of the kernel processed data */
+	} __Reply__mach_memory_object_memory_entry_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t host_info_outCnt;
+		integer_t host_info_out[68];
+	} __Reply__host_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_request_notification_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t lockgroup_info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t lockgroup_infoCnt;
+	} __Reply__host_lockgroup_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t host_info64_outCnt;
+		integer_t host_info64_out[256];
+	} __Reply__host_statistics64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t names;
+		mach_msg_ool_descriptor_t info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t namesCnt;
+		mach_msg_type_number_t infoCnt;
+	} __Reply__mach_zone_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Reply__host_create_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_attr_control;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_voucher_attr_key_t new_key;
+	} __Reply__host_register_mach_voucher_attr_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_attr_control;
+		/* end of the kernel processed data */
+	} __Reply__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_atm_diagnostic_flag_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		uint32_t diagnostic_flag;
+	} __Reply__host_get_atm_diagnostic_flag_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t names;
+		mach_msg_ool_descriptor_t info;
+		mach_msg_ool_descriptor_t memory_info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t namesCnt;
+		mach_msg_type_number_t infoCnt;
+		mach_msg_type_number_t memory_infoCnt;
+	} __Reply__mach_memory_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__host_set_multiuser_config_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		uint32_t multiuser_flags;
+	} __Reply__host_get_multiuser_config_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		uint32_t multiuser_mode;
+	} __Reply__host_check_multiuser_mode_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_zone_info_t info;
+	} __Reply__mach_zone_info_for_zone_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__mach_host_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__mach_host_subsystem__defined
+#define __ReplyUnion__mach_host_subsystem__defined
+union __ReplyUnion__mach_host_subsystem {
+	__Reply__host_info_t Reply_host_info;
+	__Reply__host_kernel_version_t Reply_host_kernel_version;
+	__Reply___host_page_size_t Reply__host_page_size;
+	__Reply__mach_memory_object_memory_entry_t Reply_mach_memory_object_memory_entry;
+	__Reply__host_processor_info_t Reply_host_processor_info;
+	__Reply__host_get_io_main_t Reply_host_get_io_main;
+	__Reply__host_get_clock_service_t Reply_host_get_clock_service;
+	__Reply__kmod_get_info_t Reply_kmod_get_info;
+	__Reply__host_virtual_physical_table_info_t Reply_host_virtual_physical_table_info;
+	__Reply__processor_set_default_t Reply_processor_set_default;
+	__Reply__processor_set_create_t Reply_processor_set_create;
+	__Reply__mach_memory_object_memory_entry_64_t Reply_mach_memory_object_memory_entry_64;
+	__Reply__host_statistics_t Reply_host_statistics;
+	__Reply__host_request_notification_t Reply_host_request_notification;
+	__Reply__host_lockgroup_info_t Reply_host_lockgroup_info;
+	__Reply__host_statistics64_t Reply_host_statistics64;
+	__Reply__mach_zone_info_t Reply_mach_zone_info;
+	__Reply__host_create_mach_voucher_t Reply_host_create_mach_voucher;
+	__Reply__host_register_mach_voucher_attr_manager_t Reply_host_register_mach_voucher_attr_manager;
+	__Reply__host_register_well_known_mach_voucher_attr_manager_t Reply_host_register_well_known_mach_voucher_attr_manager;
+	__Reply__host_set_atm_diagnostic_flag_t Reply_host_set_atm_diagnostic_flag;
+	__Reply__host_get_atm_diagnostic_flag_t Reply_host_get_atm_diagnostic_flag;
+	__Reply__mach_memory_info_t Reply_mach_memory_info;
+	__Reply__host_set_multiuser_config_flags_t Reply_host_set_multiuser_config_flags;
+	__Reply__host_get_multiuser_config_flags_t Reply_host_get_multiuser_config_flags;
+	__Reply__host_check_multiuser_mode_t Reply_host_check_multiuser_mode;
+	__Reply__mach_zone_info_for_zone_t Reply_mach_zone_info_for_zone;
+};
+#endif /* !__RequestUnion__mach_host_subsystem__defined */
+
+#ifndef subsystem_to_name_map_mach_host
+#define subsystem_to_name_map_mach_host \
+    { "host_info", 200 },\
+    { "host_kernel_version", 201 },\
+    { "_host_page_size", 202 },\
+    { "mach_memory_object_memory_entry", 203 },\
+    { "host_processor_info", 204 },\
+    { "host_get_io_main", 205 },\
+    { "host_get_clock_service", 206 },\
+    { "kmod_get_info", 207 },\
+    { "host_virtual_physical_table_info", 209 },\
+    { "processor_set_default", 213 },\
+    { "processor_set_create", 214 },\
+    { "mach_memory_object_memory_entry_64", 215 },\
+    { "host_statistics", 216 },\
+    { "host_request_notification", 217 },\
+    { "host_lockgroup_info", 218 },\
+    { "host_statistics64", 219 },\
+    { "mach_zone_info", 220 },\
+    { "host_create_mach_voucher", 222 },\
+    { "host_register_mach_voucher_attr_manager", 223 },\
+    { "host_register_well_known_mach_voucher_attr_manager", 224 },\
+    { "host_set_atm_diagnostic_flag", 225 },\
+    { "host_get_atm_diagnostic_flag", 226 },\
+    { "mach_memory_info", 227 },\
+    { "host_set_multiuser_config_flags", 228 },\
+    { "host_get_multiuser_config_flags", 229 },\
+    { "host_check_multiuser_mode", 230 },\
+    { "mach_zone_info_for_zone", 231 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _mach_host_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/mach_interface.h b/lib/libc/include/any-macos.13-any/mach/mach_interface.h
new file mode 100644
index 0000000000000000000000000000000000000000..3006004f4431741c095f379216b6aeac53bc8cc6
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/mach_interface.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2003 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) Apple Computer 1998
+ * ALL Rights Reserved
+ */
+/*
+ * This file represents the interfaces that used to come
+ * from creating the user headers from the mach.defs file.
+ * Because mach.defs was decomposed, this file now just
+ * wraps up all the new interface headers generated from
+ * each of the new .defs resulting from that decomposition.
+ */
+#ifndef _MACH_INTERFACE_H_
+#define _MACH_INTERFACE_H_
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#endif /* _MACH_INTERFACE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/mach_port.h b/lib/libc/include/any-macos.13-any/mach/mach_port.h
new file mode 100644
index 0000000000000000000000000000000000000000..4220fad6b903000e7c5c62f19a312352ec488703
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/mach_port.h
@@ -0,0 +1,1942 @@
+#ifndef	_mach_port_user_
+#define	_mach_port_user_
+
+/* Module mach_port */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	mach_port_MSG_COUNT
+#define	mach_port_MSG_COUNT	43
+#endif	/* mach_port_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine mach_port_names */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_names
+(
+	ipc_space_t task,
+	mach_port_name_array_t *names,
+	mach_msg_type_number_t *namesCnt,
+	mach_port_type_array_t *types,
+	mach_msg_type_number_t *typesCnt
+);
+
+/* Routine mach_port_type */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_type
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_type_t *ptype
+);
+
+/* Routine mach_port_rename */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_rename
+(
+	ipc_space_t task,
+	mach_port_name_t old_name,
+	mach_port_name_t new_name
+);
+
+/* Routine mach_port_allocate_name */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t mach_port_allocate_name
+(
+	ipc_space_t task,
+	mach_port_right_t right,
+	mach_port_name_t name
+);
+
+/* Routine mach_port_allocate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_allocate
+(
+	ipc_space_t task,
+	mach_port_right_t right,
+	mach_port_name_t *name
+);
+
+/* Routine mach_port_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__API_DEPRECATED("Inherently unsafe API: instead manage rights with "
+    "mach_port_destruct(), mach_port_deallocate() or mach_port_mod_refs()",
+    macos(10.0, 12.0), ios(2.0, 15.0), tvos(9.0, 15.0), watchos(2.0, 8.0))
+kern_return_t mach_port_destroy
+(
+	ipc_space_t task,
+	mach_port_name_t name
+);
+
+/* Routine mach_port_deallocate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_deallocate
+(
+	ipc_space_t task,
+	mach_port_name_t name
+);
+
+/* Routine mach_port_get_refs */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_refs
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_right_t right,
+	mach_port_urefs_t *refs
+);
+
+/* Routine mach_port_mod_refs */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_mod_refs
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_right_t right,
+	mach_port_delta_t delta
+);
+
+/* Routine mach_port_peek */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_peek
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_msg_trailer_type_t trailer_type,
+	mach_port_seqno_t *request_seqnop,
+	mach_msg_size_t *msg_sizep,
+	mach_msg_id_t *msg_idp,
+	mach_msg_trailer_info_t trailer_infop,
+	mach_msg_type_number_t *trailer_infopCnt
+);
+
+/* Routine mach_port_set_mscount */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_set_mscount
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_mscount_t mscount
+);
+
+/* Routine mach_port_get_set_status */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_set_status
+(
+	ipc_space_read_t task,
+	mach_port_name_t name,
+	mach_port_name_array_t *members,
+	mach_msg_type_number_t *membersCnt
+);
+
+/* Routine mach_port_move_member */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_move_member
+(
+	ipc_space_t task,
+	mach_port_name_t member,
+	mach_port_name_t after
+);
+
+/* Routine mach_port_request_notification */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_request_notification
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_msg_id_t msgid,
+	mach_port_mscount_t sync,
+	mach_port_t notify,
+	mach_msg_type_name_t notifyPoly,
+	mach_port_t *previous
+);
+
+/* Routine mach_port_insert_right */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_insert_right
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_t poly,
+	mach_msg_type_name_t polyPoly
+);
+
+/* Routine mach_port_extract_right */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_extract_right
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_msg_type_name_t msgt_name,
+	mach_port_t *poly,
+	mach_msg_type_name_t *polyPoly
+);
+
+/* Routine mach_port_set_seqno */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_set_seqno
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_seqno_t seqno
+);
+
+/* Routine mach_port_get_attributes */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_attributes
+(
+	ipc_space_read_t task,
+	mach_port_name_t name,
+	mach_port_flavor_t flavor,
+	mach_port_info_t port_info_out,
+	mach_msg_type_number_t *port_info_outCnt
+);
+
+/* Routine mach_port_set_attributes */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_set_attributes
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_flavor_t flavor,
+	mach_port_info_t port_info,
+	mach_msg_type_number_t port_infoCnt
+);
+
+/* Routine mach_port_allocate_qos */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_allocate_qos
+(
+	ipc_space_t task,
+	mach_port_right_t right,
+	mach_port_qos_t *qos,
+	mach_port_name_t *name
+);
+
+/* Routine mach_port_allocate_full */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_allocate_full
+(
+	ipc_space_t task,
+	mach_port_right_t right,
+	mach_port_t proto,
+	mach_port_qos_t *qos,
+	mach_port_name_t *name
+);
+
+/* Routine task_set_port_space */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_set_port_space
+(
+	ipc_space_t task,
+	int table_entries
+);
+
+/* Routine mach_port_get_srights */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_srights
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_rights_t *srights
+);
+
+/* Routine mach_port_space_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_space_info
+(
+	ipc_space_read_t space,
+	ipc_info_space_t *space_info,
+	ipc_info_name_array_t *table_info,
+	mach_msg_type_number_t *table_infoCnt,
+	ipc_info_tree_name_array_t *tree_info,
+	mach_msg_type_number_t *tree_infoCnt
+);
+
+/* Routine mach_port_dnrequest_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_dnrequest_info
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	unsigned *dnr_total,
+	unsigned *dnr_used
+);
+
+/* Routine mach_port_kernel_object */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_kernel_object
+(
+	ipc_space_read_t task,
+	mach_port_name_t name,
+	unsigned *object_type,
+	unsigned *object_addr
+);
+
+/* Routine mach_port_insert_member */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_insert_member
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_name_t pset
+);
+
+/* Routine mach_port_extract_member */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_extract_member
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_name_t pset
+);
+
+/* Routine mach_port_get_context */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_context
+(
+	ipc_space_read_t task,
+	mach_port_name_t name,
+	mach_port_context_t *context
+);
+
+/* Routine mach_port_set_context */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_set_context
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t context
+);
+
+/* Routine mach_port_kobject */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_kobject
+(
+	ipc_space_read_t task,
+	mach_port_name_t name,
+	natural_t *object_type,
+	mach_vm_address_t *object_addr
+);
+
+/* Routine mach_port_construct */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_construct
+(
+	ipc_space_t task,
+	mach_port_options_ptr_t options,
+	mach_port_context_t context,
+	mach_port_name_t *name
+);
+
+/* Routine mach_port_destruct */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_destruct
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_delta_t srdelta,
+	mach_port_context_t guard
+);
+
+/* Routine mach_port_guard */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_guard
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t guard,
+	boolean_t strict
+);
+
+/* Routine mach_port_unguard */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_unguard
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t guard
+);
+
+/* Routine mach_port_space_basic_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_space_basic_info
+(
+	ipc_space_inspect_t task,
+	ipc_info_space_basic_t *basic_info
+);
+
+/* Routine mach_port_guard_with_flags */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_guard_with_flags
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t guard,
+	uint64_t flags
+);
+
+/* Routine mach_port_swap_guard */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_swap_guard
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_context_t old_guard,
+	mach_port_context_t new_guard
+);
+
+/* Routine mach_port_kobject_description */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_kobject_description
+(
+	ipc_space_read_t task,
+	mach_port_name_t name,
+	natural_t *object_type,
+	mach_vm_address_t *object_addr,
+	kobject_description_t description
+);
+
+/* Routine mach_port_is_connection_for_service */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_is_connection_for_service
+(
+	ipc_space_t task,
+	mach_port_name_t connection_port,
+	mach_port_name_t service_port,
+	uint64_t *filter_policy_id
+);
+
+/* Routine mach_port_get_service_port_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_get_service_port_info
+(
+	ipc_space_read_t task,
+	mach_port_name_t name,
+	mach_service_port_info_data_t *sp_info_out
+);
+
+/* Routine mach_port_assert_attributes */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_port_assert_attributes
+(
+	ipc_space_t task,
+	mach_port_name_t name,
+	mach_port_flavor_t flavor,
+	mach_port_info_t info,
+	mach_msg_type_number_t infoCnt
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__mach_port_subsystem__defined
+#define __Request__mach_port_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_port_names_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_type_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t old_name;
+		mach_port_name_t new_name;
+	} __Request__mach_port_rename_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_right_t right;
+		mach_port_name_t name;
+	} __Request__mach_port_allocate_name_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_right_t right;
+	} __Request__mach_port_allocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_deallocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_right_t right;
+	} __Request__mach_port_get_refs_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_right_t right;
+		mach_port_delta_t delta;
+	} __Request__mach_port_mod_refs_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_msg_trailer_type_t trailer_type;
+		mach_port_seqno_t request_seqnop;
+		mach_msg_type_number_t trailer_infopCnt;
+	} __Request__mach_port_peek_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_mscount_t mscount;
+	} __Request__mach_port_set_mscount_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_get_set_status_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t member;
+		mach_port_name_t after;
+	} __Request__mach_port_move_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t notify;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_msg_id_t msgid;
+		mach_port_mscount_t sync;
+	} __Request__mach_port_request_notification_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t poly;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_insert_right_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_msg_type_name_t msgt_name;
+	} __Request__mach_port_extract_right_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_seqno_t seqno;
+	} __Request__mach_port_set_seqno_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_flavor_t flavor;
+		mach_msg_type_number_t port_info_outCnt;
+	} __Request__mach_port_get_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_flavor_t flavor;
+		mach_msg_type_number_t port_infoCnt;
+		integer_t port_info[17];
+	} __Request__mach_port_set_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_right_t right;
+		mach_port_qos_t qos;
+	} __Request__mach_port_allocate_qos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t proto;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_port_right_t right;
+		mach_port_qos_t qos;
+		mach_port_name_t name;
+	} __Request__mach_port_allocate_full_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int table_entries;
+	} __Request__task_set_port_space_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_get_srights_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_port_space_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_dnrequest_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_kernel_object_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_name_t pset;
+	} __Request__mach_port_insert_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_name_t pset;
+	} __Request__mach_port_extract_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_get_context_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t context;
+	} __Request__mach_port_set_context_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_kobject_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t options;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_port_context_t context;
+	} __Request__mach_port_construct_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_delta_t srdelta;
+		mach_port_context_t guard;
+	} __Request__mach_port_destruct_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t guard;
+		boolean_t strict;
+	} __Request__mach_port_guard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t guard;
+	} __Request__mach_port_unguard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_port_space_basic_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t guard;
+		uint64_t flags;
+	} __Request__mach_port_guard_with_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_context_t old_guard;
+		mach_port_context_t new_guard;
+	} __Request__mach_port_swap_guard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_kobject_description_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t connection_port;
+		mach_port_name_t service_port;
+	} __Request__mach_port_is_connection_for_service_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+	} __Request__mach_port_get_service_port_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t name;
+		mach_port_flavor_t flavor;
+		mach_msg_type_number_t infoCnt;
+		integer_t info[17];
+	} __Request__mach_port_assert_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__mach_port_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__mach_port_subsystem__defined
+#define __RequestUnion__mach_port_subsystem__defined
+union __RequestUnion__mach_port_subsystem {
+	__Request__mach_port_names_t Request_mach_port_names;
+	__Request__mach_port_type_t Request_mach_port_type;
+	__Request__mach_port_rename_t Request_mach_port_rename;
+	__Request__mach_port_allocate_name_t Request_mach_port_allocate_name;
+	__Request__mach_port_allocate_t Request_mach_port_allocate;
+	__Request__mach_port_destroy_t Request_mach_port_destroy;
+	__Request__mach_port_deallocate_t Request_mach_port_deallocate;
+	__Request__mach_port_get_refs_t Request_mach_port_get_refs;
+	__Request__mach_port_mod_refs_t Request_mach_port_mod_refs;
+	__Request__mach_port_peek_t Request_mach_port_peek;
+	__Request__mach_port_set_mscount_t Request_mach_port_set_mscount;
+	__Request__mach_port_get_set_status_t Request_mach_port_get_set_status;
+	__Request__mach_port_move_member_t Request_mach_port_move_member;
+	__Request__mach_port_request_notification_t Request_mach_port_request_notification;
+	__Request__mach_port_insert_right_t Request_mach_port_insert_right;
+	__Request__mach_port_extract_right_t Request_mach_port_extract_right;
+	__Request__mach_port_set_seqno_t Request_mach_port_set_seqno;
+	__Request__mach_port_get_attributes_t Request_mach_port_get_attributes;
+	__Request__mach_port_set_attributes_t Request_mach_port_set_attributes;
+	__Request__mach_port_allocate_qos_t Request_mach_port_allocate_qos;
+	__Request__mach_port_allocate_full_t Request_mach_port_allocate_full;
+	__Request__task_set_port_space_t Request_task_set_port_space;
+	__Request__mach_port_get_srights_t Request_mach_port_get_srights;
+	__Request__mach_port_space_info_t Request_mach_port_space_info;
+	__Request__mach_port_dnrequest_info_t Request_mach_port_dnrequest_info;
+	__Request__mach_port_kernel_object_t Request_mach_port_kernel_object;
+	__Request__mach_port_insert_member_t Request_mach_port_insert_member;
+	__Request__mach_port_extract_member_t Request_mach_port_extract_member;
+	__Request__mach_port_get_context_t Request_mach_port_get_context;
+	__Request__mach_port_set_context_t Request_mach_port_set_context;
+	__Request__mach_port_kobject_t Request_mach_port_kobject;
+	__Request__mach_port_construct_t Request_mach_port_construct;
+	__Request__mach_port_destruct_t Request_mach_port_destruct;
+	__Request__mach_port_guard_t Request_mach_port_guard;
+	__Request__mach_port_unguard_t Request_mach_port_unguard;
+	__Request__mach_port_space_basic_info_t Request_mach_port_space_basic_info;
+	__Request__mach_port_guard_with_flags_t Request_mach_port_guard_with_flags;
+	__Request__mach_port_swap_guard_t Request_mach_port_swap_guard;
+	__Request__mach_port_kobject_description_t Request_mach_port_kobject_description;
+	__Request__mach_port_is_connection_for_service_t Request_mach_port_is_connection_for_service;
+	__Request__mach_port_get_service_port_info_t Request_mach_port_get_service_port_info;
+	__Request__mach_port_assert_attributes_t Request_mach_port_assert_attributes;
+};
+#endif /* !__RequestUnion__mach_port_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__mach_port_subsystem__defined
+#define __Reply__mach_port_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t names;
+		mach_msg_ool_descriptor_t types;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t namesCnt;
+		mach_msg_type_number_t typesCnt;
+	} __Reply__mach_port_names_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_type_t ptype;
+	} __Reply__mach_port_type_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_rename_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_allocate_name_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_name_t name;
+	} __Reply__mach_port_allocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_deallocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_urefs_t refs;
+	} __Reply__mach_port_get_refs_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_mod_refs_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_seqno_t request_seqnop;
+		mach_msg_size_t msg_sizep;
+		mach_msg_id_t msg_idp;
+		mach_msg_type_number_t trailer_infopCnt;
+		char trailer_infop[68];
+	} __Reply__mach_port_peek_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_set_mscount_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t members;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t membersCnt;
+	} __Reply__mach_port_get_set_status_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_move_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t previous;
+		/* end of the kernel processed data */
+	} __Reply__mach_port_request_notification_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_insert_right_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t poly;
+		/* end of the kernel processed data */
+	} __Reply__mach_port_extract_right_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_set_seqno_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t port_info_outCnt;
+		integer_t port_info_out[17];
+	} __Reply__mach_port_get_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_set_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_qos_t qos;
+		mach_port_name_t name;
+	} __Reply__mach_port_allocate_qos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_qos_t qos;
+		mach_port_name_t name;
+	} __Reply__mach_port_allocate_full_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_port_space_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_rights_t srights;
+	} __Reply__mach_port_get_srights_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t table_info;
+		mach_msg_ool_descriptor_t tree_info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		ipc_info_space_t space_info;
+		mach_msg_type_number_t table_infoCnt;
+		mach_msg_type_number_t tree_infoCnt;
+	} __Reply__mach_port_space_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		unsigned dnr_total;
+		unsigned dnr_used;
+	} __Reply__mach_port_dnrequest_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		unsigned object_type;
+		unsigned object_addr;
+	} __Reply__mach_port_kernel_object_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_insert_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_extract_member_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_context_t context;
+	} __Reply__mach_port_get_context_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_set_context_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		natural_t object_type;
+		mach_vm_address_t object_addr;
+	} __Reply__mach_port_kobject_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_port_name_t name;
+	} __Reply__mach_port_construct_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_destruct_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_guard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_unguard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		ipc_info_space_basic_t basic_info;
+	} __Reply__mach_port_space_basic_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_guard_with_flags_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_swap_guard_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		natural_t object_type;
+		mach_vm_address_t object_addr;
+		mach_msg_type_number_t descriptionOffset; /* MiG doesn't use it */
+		mach_msg_type_number_t descriptionCnt;
+		char description[512];
+	} __Reply__mach_port_kobject_description_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		uint64_t filter_policy_id;
+	} __Reply__mach_port_is_connection_for_service_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_service_port_info_data_t sp_info_out;
+	} __Reply__mach_port_get_service_port_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_port_assert_attributes_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__mach_port_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__mach_port_subsystem__defined
+#define __ReplyUnion__mach_port_subsystem__defined
+union __ReplyUnion__mach_port_subsystem {
+	__Reply__mach_port_names_t Reply_mach_port_names;
+	__Reply__mach_port_type_t Reply_mach_port_type;
+	__Reply__mach_port_rename_t Reply_mach_port_rename;
+	__Reply__mach_port_allocate_name_t Reply_mach_port_allocate_name;
+	__Reply__mach_port_allocate_t Reply_mach_port_allocate;
+	__Reply__mach_port_destroy_t Reply_mach_port_destroy;
+	__Reply__mach_port_deallocate_t Reply_mach_port_deallocate;
+	__Reply__mach_port_get_refs_t Reply_mach_port_get_refs;
+	__Reply__mach_port_mod_refs_t Reply_mach_port_mod_refs;
+	__Reply__mach_port_peek_t Reply_mach_port_peek;
+	__Reply__mach_port_set_mscount_t Reply_mach_port_set_mscount;
+	__Reply__mach_port_get_set_status_t Reply_mach_port_get_set_status;
+	__Reply__mach_port_move_member_t Reply_mach_port_move_member;
+	__Reply__mach_port_request_notification_t Reply_mach_port_request_notification;
+	__Reply__mach_port_insert_right_t Reply_mach_port_insert_right;
+	__Reply__mach_port_extract_right_t Reply_mach_port_extract_right;
+	__Reply__mach_port_set_seqno_t Reply_mach_port_set_seqno;
+	__Reply__mach_port_get_attributes_t Reply_mach_port_get_attributes;
+	__Reply__mach_port_set_attributes_t Reply_mach_port_set_attributes;
+	__Reply__mach_port_allocate_qos_t Reply_mach_port_allocate_qos;
+	__Reply__mach_port_allocate_full_t Reply_mach_port_allocate_full;
+	__Reply__task_set_port_space_t Reply_task_set_port_space;
+	__Reply__mach_port_get_srights_t Reply_mach_port_get_srights;
+	__Reply__mach_port_space_info_t Reply_mach_port_space_info;
+	__Reply__mach_port_dnrequest_info_t Reply_mach_port_dnrequest_info;
+	__Reply__mach_port_kernel_object_t Reply_mach_port_kernel_object;
+	__Reply__mach_port_insert_member_t Reply_mach_port_insert_member;
+	__Reply__mach_port_extract_member_t Reply_mach_port_extract_member;
+	__Reply__mach_port_get_context_t Reply_mach_port_get_context;
+	__Reply__mach_port_set_context_t Reply_mach_port_set_context;
+	__Reply__mach_port_kobject_t Reply_mach_port_kobject;
+	__Reply__mach_port_construct_t Reply_mach_port_construct;
+	__Reply__mach_port_destruct_t Reply_mach_port_destruct;
+	__Reply__mach_port_guard_t Reply_mach_port_guard;
+	__Reply__mach_port_unguard_t Reply_mach_port_unguard;
+	__Reply__mach_port_space_basic_info_t Reply_mach_port_space_basic_info;
+	__Reply__mach_port_guard_with_flags_t Reply_mach_port_guard_with_flags;
+	__Reply__mach_port_swap_guard_t Reply_mach_port_swap_guard;
+	__Reply__mach_port_kobject_description_t Reply_mach_port_kobject_description;
+	__Reply__mach_port_is_connection_for_service_t Reply_mach_port_is_connection_for_service;
+	__Reply__mach_port_get_service_port_info_t Reply_mach_port_get_service_port_info;
+	__Reply__mach_port_assert_attributes_t Reply_mach_port_assert_attributes;
+};
+#endif /* !__RequestUnion__mach_port_subsystem__defined */
+
+#ifndef subsystem_to_name_map_mach_port
+#define subsystem_to_name_map_mach_port \
+    { "mach_port_names", 3200 },\
+    { "mach_port_type", 3201 },\
+    { "mach_port_rename", 3202 },\
+    { "mach_port_allocate_name", 3203 },\
+    { "mach_port_allocate", 3204 },\
+    { "mach_port_destroy", 3205 },\
+    { "mach_port_deallocate", 3206 },\
+    { "mach_port_get_refs", 3207 },\
+    { "mach_port_mod_refs", 3208 },\
+    { "mach_port_peek", 3209 },\
+    { "mach_port_set_mscount", 3210 },\
+    { "mach_port_get_set_status", 3211 },\
+    { "mach_port_move_member", 3212 },\
+    { "mach_port_request_notification", 3213 },\
+    { "mach_port_insert_right", 3214 },\
+    { "mach_port_extract_right", 3215 },\
+    { "mach_port_set_seqno", 3216 },\
+    { "mach_port_get_attributes", 3217 },\
+    { "mach_port_set_attributes", 3218 },\
+    { "mach_port_allocate_qos", 3219 },\
+    { "mach_port_allocate_full", 3220 },\
+    { "task_set_port_space", 3221 },\
+    { "mach_port_get_srights", 3222 },\
+    { "mach_port_space_info", 3223 },\
+    { "mach_port_dnrequest_info", 3224 },\
+    { "mach_port_kernel_object", 3225 },\
+    { "mach_port_insert_member", 3226 },\
+    { "mach_port_extract_member", 3227 },\
+    { "mach_port_get_context", 3228 },\
+    { "mach_port_set_context", 3229 },\
+    { "mach_port_kobject", 3230 },\
+    { "mach_port_construct", 3231 },\
+    { "mach_port_destruct", 3232 },\
+    { "mach_port_guard", 3233 },\
+    { "mach_port_unguard", 3234 },\
+    { "mach_port_space_basic_info", 3235 },\
+    { "mach_port_guard_with_flags", 3237 },\
+    { "mach_port_swap_guard", 3238 },\
+    { "mach_port_kobject_description", 3239 },\
+    { "mach_port_is_connection_for_service", 3240 },\
+    { "mach_port_get_service_port_info", 3241 },\
+    { "mach_port_assert_attributes", 3242 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _mach_port_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/mach_types.h b/lib/libc/include/any-macos.13-any/mach/mach_types.h
new file mode 100644
index 0000000000000000000000000000000000000000..ed1885d120ce618f01f348697594845a28afacc4
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/mach_types.h
@@ -0,0 +1,290 @@
+/*
+ * Copyright (c) 2000-2018 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+/*
+ *	File:	mach/mach_types.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
+ *	Date:	1986
+ *
+ *	Mach external interface definitions.
+ *
+ */
+
+#ifndef _MACH_MACH_TYPES_H_
+#define _MACH_MACH_TYPES_H_
+
+#include 
+
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+
+/*
+ * If we are not in the kernel, then these will all be represented by
+ * ports at user-space.
+ */
+typedef mach_port_t             task_t;
+typedef mach_port_t             task_name_t;
+typedef mach_port_t             task_policy_set_t;
+typedef mach_port_t             task_policy_get_t;
+typedef mach_port_t             task_inspect_t;
+typedef mach_port_t             task_read_t;
+typedef mach_port_t             task_suspension_token_t;
+typedef mach_port_t             thread_t;
+typedef mach_port_t             thread_act_t;
+typedef mach_port_t             thread_inspect_t;
+typedef mach_port_t             thread_read_t;
+typedef mach_port_t             ipc_space_t;
+typedef mach_port_t             ipc_space_read_t;
+typedef mach_port_t             ipc_space_inspect_t;
+typedef mach_port_t             coalition_t;
+typedef mach_port_t             host_t;
+typedef mach_port_t             host_priv_t;
+typedef mach_port_t             host_security_t;
+typedef mach_port_t             processor_t;
+typedef mach_port_t             processor_set_t;
+typedef mach_port_t             processor_set_control_t;
+typedef mach_port_t             semaphore_t;
+typedef mach_port_t             lock_set_t;
+typedef mach_port_t             ledger_t;
+typedef mach_port_t             alarm_t;
+typedef mach_port_t             clock_serv_t;
+typedef mach_port_t             clock_ctrl_t;
+typedef mach_port_t             arcade_register_t;
+typedef mach_port_t             ipc_eventlink_t;
+typedef mach_port_t             eventlink_port_pair_t[2];
+typedef mach_port_t             task_id_token_t;
+typedef mach_port_t             kcdata_object_t;
+
+
+/*
+ * These aren't really unique types.  They are just called
+ * out as unique types at one point in history.  So we list
+ * them here for compatibility.
+ */
+typedef processor_set_t         processor_set_name_t;
+
+/*
+ * These types are just hard-coded as ports
+ */
+typedef mach_port_t             clock_reply_t;
+typedef mach_port_t             bootstrap_t;
+typedef mach_port_t             mem_entry_name_port_t;
+typedef mach_port_t             exception_handler_t;
+typedef exception_handler_t     *exception_handler_array_t;
+typedef mach_port_t             vm_task_entry_t;
+typedef mach_port_t             io_main_t;
+typedef mach_port_t             UNDServerRef;
+typedef mach_port_t             mach_eventlink_t;
+
+typedef ipc_info_port_t         exception_handler_info_t;
+
+/*
+ * Mig doesn't translate the components of an array.
+ * For example, Mig won't use the thread_t translations
+ * to translate a thread_array_t argument.  So, these definitions
+ * are not completely accurate at the moment for other kernel
+ * components.
+ */
+typedef task_t                  *task_array_t;
+typedef thread_t                *thread_array_t;
+typedef processor_set_t         *processor_set_array_t;
+typedef processor_set_t         *processor_set_name_array_t;
+typedef processor_t             *processor_array_t;
+typedef thread_act_t            *thread_act_array_t;
+typedef ledger_t                *ledger_array_t;
+
+/*
+ * However the real mach_types got declared, we also have to declare
+ * types with "port" in the name for compatability with the way OSF
+ * had declared the user interfaces at one point.  Someday these should
+ * go away.
+ */
+typedef task_t                  task_port_t;
+typedef task_array_t            task_port_array_t;
+typedef thread_t                thread_port_t;
+typedef thread_array_t          thread_port_array_t;
+typedef ipc_space_t             ipc_space_port_t;
+typedef host_t                  host_name_t;
+typedef host_t                  host_name_port_t;
+typedef processor_set_t         processor_set_port_t;
+typedef processor_set_t         processor_set_name_port_t;
+typedef processor_set_array_t   processor_set_name_port_array_t;
+typedef processor_set_t         processor_set_control_port_t;
+typedef processor_t             processor_port_t;
+typedef processor_array_t       processor_port_array_t;
+typedef thread_act_t            thread_act_port_t;
+typedef thread_act_array_t      thread_act_port_array_t;
+typedef semaphore_t             semaphore_port_t;
+typedef lock_set_t              lock_set_port_t;
+typedef ledger_t                ledger_port_t;
+typedef ledger_array_t          ledger_port_array_t;
+typedef alarm_t                 alarm_port_t;
+typedef clock_serv_t            clock_serv_port_t;
+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 */
+
+#define TASK_NULL               ((task_t) 0)
+#define TASK_NAME_NULL          ((task_name_t) 0)
+#define TASK_INSPECT_NULL       ((task_inspect_t) 0)
+#define TASK_READ_NULL          ((task_read_t) 0)
+#define THREAD_NULL             ((thread_t) 0)
+#define THREAD_INSPECT_NULL     ((thread_inspect_t) 0)
+#define THREAD_READ_NULL        ((thread_read_t) 0)
+#define TID_NULL                ((uint64_t) 0)
+#define THR_ACT_NULL            ((thread_act_t) 0)
+#define IPC_SPACE_NULL          ((ipc_space_t) 0)
+#define IPC_SPACE_READ_NULL     ((ipc_space_read_t) 0)
+#define IPC_SPACE_INSPECT_NULL  ((ipc_space_inspect_t) 0)
+#define COALITION_NULL          ((coalition_t) 0)
+#define HOST_NULL               ((host_t) 0)
+#define HOST_PRIV_NULL          ((host_priv_t) 0)
+#define HOST_SECURITY_NULL      ((host_security_t) 0)
+#define PROCESSOR_SET_NULL      ((processor_set_t) 0)
+#define PROCESSOR_NULL          ((processor_t) 0)
+#define SEMAPHORE_NULL          ((semaphore_t) 0)
+#define LOCK_SET_NULL           ((lock_set_t) 0)
+#define LEDGER_NULL             ((ledger_t) 0)
+#define ALARM_NULL              ((alarm_t) 0)
+#define CLOCK_NULL              ((clock_t) 0)
+#define UND_SERVER_NULL         ((UNDServerRef) 0)
+#define ARCADE_REG_NULL         ((arcade_register_t) 0)
+#define MACH_EVENTLINK_NULL     ((mach_eventlink_t) 0)
+#define IPC_EVENTLINK_NULL      ((ipc_eventlink_t) 0)
+#define TASK_ID_TOKEN_NULL      ((task_id_token_t) 0)
+#define KCDATA_OBJECT_NULL      ((kcdata_object_t) 0)
+
+/* capability strictly _DECREASING_.
+ * not ordered the other way around because we want TASK_FLAVOR_CONTROL
+ * to be closest to the itk_lock. see task.h.
+ */
+typedef unsigned int            mach_task_flavor_t;
+#define TASK_FLAVOR_CONTROL     0    /* a task_t */
+#define TASK_FLAVOR_READ        1    /* a task_read_t */
+#define TASK_FLAVOR_INSPECT     2    /* a task_inspect_t */
+#define TASK_FLAVOR_NAME        3    /* a task_name_t */
+
+#define TASK_FLAVOR_MAX         TASK_FLAVOR_NAME
+
+/* capability strictly _DECREASING_ */
+typedef unsigned int            mach_thread_flavor_t;
+#define THREAD_FLAVOR_CONTROL   0    /* a thread_t */
+#define THREAD_FLAVOR_READ      1    /* a thread_read_t */
+#define THREAD_FLAVOR_INSPECT   2    /* a thread_inspect_t */
+
+#define THREAD_FLAVOR_MAX       THREAD_FLAVOR_INSPECT
+
+/* DEPRECATED */
+typedef natural_t               ledger_item_t;
+#define LEDGER_ITEM_INFINITY    ((ledger_item_t) (~0))
+
+typedef int64_t                 ledger_amount_t;
+#define LEDGER_LIMIT_INFINITY   ((ledger_amount_t)((1ULL << 63) - 1))
+
+typedef mach_vm_offset_t        *emulation_vector_t;
+typedef char                    *user_subsystem_t;
+
+typedef char                    *labelstr_t;
+/*
+ *	Backwards compatibility, for those programs written
+ *	before mach/{std,mach}_types.{defs,h} were set up.
+ */
+#include 
+
+#endif  /* _MACH_MACH_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/mach_voucher_types.h b/lib/libc/include/any-macos.13-any/mach/mach_voucher_types.h
new file mode 100644
index 0000000000000000000000000000000000000000..5a54f936336d4a734c5de56e19eb9971a9ff2f61
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/mach_voucher_types.h
@@ -0,0 +1,248 @@
+/*
+ * Copyright (c) 2013 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 _MACH_VOUCHER_TYPES_H_
+#define _MACH_VOUCHER_TYPES_H_
+
+#include 
+#include 
+#include 
+
+/*
+ * Mach Voucher - an immutable collection of attribute value handles.
+ *
+ * The mach voucher is such that it can be passed between processes
+ * as a Mach port send right (by convention in the mach_msg_header_t’s
+ * msgh_voucher field).
+ *
+ * You may construct a new mach voucher by passing a construction
+ * recipe to host_create_mach_voucher().  The construction recipe supports
+ * generic commands for copying, removing, and redeeming attribute value
+ * handles from previous vouchers, or running attribute-mananger-specific
+ * commands within the recipe.
+ *
+ * Once the set of attribute value handles is constructed and returned,
+ * that set will not change for the life of the voucher (just because the
+ * attribute value handle itself doesn't change, the value the handle refers
+ * to is free to change at will).
+ */
+typedef mach_port_t             mach_voucher_t;
+#define MACH_VOUCHER_NULL       ((mach_voucher_t) 0)
+
+typedef mach_port_name_t        mach_voucher_name_t;
+#define MACH_VOUCHER_NAME_NULL  ((mach_voucher_name_t) 0)
+
+typedef mach_voucher_name_t     *mach_voucher_name_array_t;
+#define MACH_VOUCHER_NAME_ARRAY_NULL ((mach_voucher_name_array_t) 0)
+
+/*
+ * This type changes appearance between user-space and kernel.  It is
+ * a port at user-space and a reference to an ipc_voucher structure in-kernel.
+ */
+typedef mach_voucher_t          ipc_voucher_t;
+#define IPC_VOUCHER_NULL        ((ipc_voucher_t) 0)
+
+/*
+ * mach_voucher_selector_t - A means of specifying which thread/task value to extract -
+ *  the current voucher set at this level, or a voucher representing
+ * the full [layered] effective value for the task/thread.
+ */
+typedef uint32_t mach_voucher_selector_t;
+#define MACH_VOUCHER_SELECTOR_CURRENT           ((mach_voucher_selector_t)0)
+#define MACH_VOUCHER_SELECTOR_EFFECTIVE         ((mach_voucher_selector_t)1)
+
+
+/*
+ * mach_voucher_attr_key_t - The key used to identify a particular managed resource or
+ * to select the specific resource manager’s data associated
+ * with a given voucher.
+ */
+typedef uint32_t mach_voucher_attr_key_t;
+typedef mach_voucher_attr_key_t *mach_voucher_attr_key_array_t;
+
+#define MACH_VOUCHER_ATTR_KEY_ALL               ((mach_voucher_attr_key_t)~0)
+#define MACH_VOUCHER_ATTR_KEY_NONE              ((mach_voucher_attr_key_t)0)
+
+/* other well-known-keys will be added here */
+#define MACH_VOUCHER_ATTR_KEY_ATM               ((mach_voucher_attr_key_t)1)
+#define MACH_VOUCHER_ATTR_KEY_IMPORTANCE        ((mach_voucher_attr_key_t)2)
+#define MACH_VOUCHER_ATTR_KEY_BANK              ((mach_voucher_attr_key_t)3)
+
+/* following keys have been removed from embedded platforms */
+#define MACH_VOUCHER_ATTR_KEY_PTHPRIORITY       ((mach_voucher_attr_key_t)4)
+#define MACH_VOUCHER_ATTR_KEY_USER_DATA         ((mach_voucher_attr_key_t)7)
+#define MACH_VOUCHER_ATTR_KEY_BITS              MACH_VOUCHER_ATTR_KEY_USER_DATA
+#define MACH_VOUCHER_ATTR_KEY_TEST              ((mach_voucher_attr_key_t)8)
+
+/* not used, for compatibility only */
+#define MACH_VOUCHER_ATTR_KEY_NUM_WELL_KNOWN    MACH_VOUCHER_ATTR_KEY_TEST
+
+/*
+ * mach_voucher_attr_content_t
+ *
+ * Data passed to a resource manager for modifying an attribute
+ * value or returned from the resource manager in response to a
+ * request to externalize the current value for that attribute.
+ */
+typedef uint8_t *mach_voucher_attr_content_t;
+typedef uint32_t mach_voucher_attr_content_size_t;
+
+/*
+ * mach_voucher_attr_command_t - The private verbs implemented by each voucher
+ * attribute manager via mach_voucher_attr_command().
+ */
+typedef uint32_t mach_voucher_attr_command_t;
+
+/*
+ * mach_voucher_attr_recipe_command_t
+ *
+ * The verbs used to create/morph a voucher attribute value.
+ * We define some system-wide commands here - related to creation, and transport of
+ * vouchers and attributes.  Additional commands can be defined by, and supported by,
+ * individual attribute resource managers.
+ */
+typedef uint32_t mach_voucher_attr_recipe_command_t;
+typedef mach_voucher_attr_recipe_command_t *mach_voucher_attr_recipe_command_array_t;
+
+#define MACH_VOUCHER_ATTR_NOOP                  ((mach_voucher_attr_recipe_command_t)0)
+#define MACH_VOUCHER_ATTR_COPY                  ((mach_voucher_attr_recipe_command_t)1)
+#define MACH_VOUCHER_ATTR_REMOVE                ((mach_voucher_attr_recipe_command_t)2)
+#define MACH_VOUCHER_ATTR_SET_VALUE_HANDLE      ((mach_voucher_attr_recipe_command_t)3)
+#define MACH_VOUCHER_ATTR_AUTO_REDEEM           ((mach_voucher_attr_recipe_command_t)4)
+#define MACH_VOUCHER_ATTR_SEND_PREPROCESS       ((mach_voucher_attr_recipe_command_t)5)
+
+/* redeem is on its way out? */
+#define MACH_VOUCHER_ATTR_REDEEM                ((mach_voucher_attr_recipe_command_t)10)
+
+/* recipe command(s) for importance attribute manager */
+#define MACH_VOUCHER_ATTR_IMPORTANCE_SELF       ((mach_voucher_attr_recipe_command_t)200)
+
+/* recipe command(s) for bit-store attribute manager */
+#define MACH_VOUCHER_ATTR_USER_DATA_STORE       ((mach_voucher_attr_recipe_command_t)211)
+#define MACH_VOUCHER_ATTR_BITS_STORE            MACH_VOUCHER_ATTR_USER_DATA_STORE /* deprecated */
+
+/* recipe command(s) for test attribute manager */
+#define MACH_VOUCHER_ATTR_TEST_STORE            MACH_VOUCHER_ATTR_USER_DATA_STORE
+
+/*
+ * mach_voucher_attr_recipe_t
+ *
+ * An element in a recipe list to create a voucher.
+ */
+#pragma pack(push, 1)
+
+typedef struct mach_voucher_attr_recipe_data {
+	mach_voucher_attr_key_t                 key;
+	mach_voucher_attr_recipe_command_t      command;
+	mach_voucher_name_t                     previous_voucher;
+	mach_voucher_attr_content_size_t        content_size;
+	uint8_t                                 content[];
+} mach_voucher_attr_recipe_data_t;
+typedef mach_voucher_attr_recipe_data_t *mach_voucher_attr_recipe_t;
+typedef mach_msg_type_number_t mach_voucher_attr_recipe_size_t;
+
+/* Make the above palatable to MIG */
+typedef uint8_t *mach_voucher_attr_raw_recipe_t;
+typedef mach_voucher_attr_raw_recipe_t mach_voucher_attr_raw_recipe_array_t;
+typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_size_t;
+typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_array_size_t;
+
+#define MACH_VOUCHER_ATTR_MAX_RAW_RECIPE_ARRAY_SIZE   5120
+#define MACH_VOUCHER_TRAP_STACK_LIMIT                 256
+
+#pragma pack(pop)
+
+/*
+ * VOUCHER ATTRIBUTE MANAGER Writer types
+ */
+
+/*
+ * mach_voucher_attr_manager_t
+ *
+ * A handle through which the mach voucher mechanism communicates with the voucher
+ * attribute manager for a given attribute key.
+ */
+typedef mach_port_t                     mach_voucher_attr_manager_t;
+#define MACH_VOUCHER_ATTR_MANAGER_NULL  ((mach_voucher_attr_manager_t) 0)
+
+/*
+ * mach_voucher_attr_control_t
+ *
+ * A handle provided to the voucher attribute manager for a given attribute key
+ * through which it makes inquiries or control operations of the mach voucher mechanism.
+ */
+typedef mach_port_t                     mach_voucher_attr_control_t;
+#define MACH_VOUCHER_ATTR_CONTROL_NULL  ((mach_voucher_attr_control_t) 0)
+
+/*
+ * These types are different in-kernel vs user-space.  They are ports in user-space,
+ * pointers to opaque structs in most of the kernel, and pointers to known struct
+ * types in the Mach portion of the kernel.
+ */
+typedef mach_port_t             ipc_voucher_attr_manager_t;
+typedef mach_port_t             ipc_voucher_attr_control_t;
+#define IPC_VOUCHER_ATTR_MANAGER_NULL ((ipc_voucher_attr_manager_t) 0)
+#define IPC_VOUCHER_ATTR_CONTROL_NULL ((ipc_voucher_attr_control_t) 0)
+
+/*
+ * mach_voucher_attr_value_handle_t
+ *
+ * The private handle that the voucher attribute manager provides to
+ * the mach voucher mechanism to represent a given attr content/value.
+ */
+typedef uint64_t mach_voucher_attr_value_handle_t __kernel_ptr_semantics;
+typedef mach_voucher_attr_value_handle_t *mach_voucher_attr_value_handle_array_t;
+
+typedef mach_msg_type_number_t mach_voucher_attr_value_handle_array_size_t;
+#define MACH_VOUCHER_ATTR_VALUE_MAX_NESTED      ((mach_voucher_attr_value_handle_array_size_t)4)
+
+typedef uint32_t mach_voucher_attr_value_reference_t;
+typedef uint32_t mach_voucher_attr_value_flags_t;
+#define MACH_VOUCHER_ATTR_VALUE_FLAGS_NONE      ((mach_voucher_attr_value_flags_t)0)
+#define MACH_VOUCHER_ATTR_VALUE_FLAGS_PERSIST   ((mach_voucher_attr_value_flags_t)1)
+
+/* USE - TBD */
+typedef uint32_t mach_voucher_attr_control_flags_t;
+#define MACH_VOUCHER_ATTR_CONTROL_FLAGS_NONE    ((mach_voucher_attr_control_flags_t)0)
+
+/*
+ * Commands and types for the IPC Importance Attribute Manager
+ *
+ * These are the valid mach_voucher_attr_command() options with the
+ * MACH_VOUCHER_ATTR_KEY_IMPORTANCE key.
+ */
+#define MACH_VOUCHER_IMPORTANCE_ATTR_ADD_EXTERNAL       1  /* Add some number of external refs (not supported) */
+#define MACH_VOUCHER_IMPORTANCE_ATTR_DROP_EXTERNAL      2  /* Drop some number of external refs */
+typedef uint32_t mach_voucher_attr_importance_refs;
+
+/*
+ * Activity id Generation defines
+ */
+#define MACH_ACTIVITY_ID_COUNT_MAX 16
+
+#endif  /* _MACH_VOUCHER_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/machine.h b/lib/libc/include/any-macos.13-any/mach/machine.h
new file mode 100644
index 0000000000000000000000000000000000000000..21f1b3892e0d9e15020ec148623f7d37850e5e94
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/machine.h
@@ -0,0 +1,413 @@
+/*
+ * Copyright (c) 2007-2016 Apple, Inc. All rights reserved.
+ * Copyright (c) 2000 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@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*	File:	machine.h
+ *	Author:	Avadis Tevanian, Jr.
+ *	Date:	1986
+ *
+ *	Machine independent machine abstraction.
+ */
+
+#ifndef _MACH_MACHINE_H_
+#define _MACH_MACHINE_H_
+
+#ifndef __ASSEMBLER__
+
+#include 
+#include 
+#include 
+
+typedef integer_t       cpu_type_t;
+typedef integer_t       cpu_subtype_t;
+typedef integer_t       cpu_threadtype_t;
+
+#define CPU_STATE_MAX           4
+
+#define CPU_STATE_USER          0
+#define CPU_STATE_SYSTEM        1
+#define CPU_STATE_IDLE          2
+#define CPU_STATE_NICE          3
+
+
+
+/*
+ * Capability bits used in the definition of cpu_type.
+ */
+#define CPU_ARCH_MASK           0xff000000      /* mask for architecture bits */
+#define CPU_ARCH_ABI64          0x01000000      /* 64 bit ABI */
+#define CPU_ARCH_ABI64_32       0x02000000      /* ABI for 64-bit hardware with 32-bit types; LP32 */
+
+/*
+ *	Machine types known by all.
+ */
+
+#define CPU_TYPE_ANY            ((cpu_type_t) -1)
+
+#define CPU_TYPE_VAX            ((cpu_type_t) 1)
+/* skip				((cpu_type_t) 2)	*/
+/* skip				((cpu_type_t) 3)	*/
+/* skip				((cpu_type_t) 4)	*/
+/* skip				((cpu_type_t) 5)	*/
+#define CPU_TYPE_MC680x0        ((cpu_type_t) 6)
+#define CPU_TYPE_X86            ((cpu_type_t) 7)
+#define CPU_TYPE_I386           CPU_TYPE_X86            /* compatibility */
+#define CPU_TYPE_X86_64         (CPU_TYPE_X86 | CPU_ARCH_ABI64)
+
+/* skip CPU_TYPE_MIPS		((cpu_type_t) 8)	*/
+/* skip                         ((cpu_type_t) 9)	*/
+#define CPU_TYPE_MC98000        ((cpu_type_t) 10)
+#define CPU_TYPE_HPPA           ((cpu_type_t) 11)
+#define CPU_TYPE_ARM            ((cpu_type_t) 12)
+#define CPU_TYPE_ARM64          (CPU_TYPE_ARM | CPU_ARCH_ABI64)
+#define CPU_TYPE_ARM64_32       (CPU_TYPE_ARM | CPU_ARCH_ABI64_32)
+#define CPU_TYPE_MC88000        ((cpu_type_t) 13)
+#define CPU_TYPE_SPARC          ((cpu_type_t) 14)
+#define CPU_TYPE_I860           ((cpu_type_t) 15)
+/* skip	CPU_TYPE_ALPHA		((cpu_type_t) 16)	*/
+/* skip				((cpu_type_t) 17)	*/
+#define CPU_TYPE_POWERPC                ((cpu_type_t) 18)
+#define CPU_TYPE_POWERPC64              (CPU_TYPE_POWERPC | CPU_ARCH_ABI64)
+/* skip				((cpu_type_t) 19)	*/
+/* skip				((cpu_type_t) 20 */
+/* skip				((cpu_type_t) 21 */
+/* skip				((cpu_type_t) 22 */
+/* skip				((cpu_type_t) 23 */
+
+/*
+ *	Machine subtypes (these are defined here, instead of in a machine
+ *	dependent directory, so that any program can get all definitions
+ *	regardless of where is it compiled).
+ */
+
+/*
+ * Capability bits used in the definition of cpu_subtype.
+ */
+#define CPU_SUBTYPE_MASK        0xff000000      /* mask for feature flags */
+#define CPU_SUBTYPE_LIB64       0x80000000      /* 64 bit libraries */
+#define CPU_SUBTYPE_PTRAUTH_ABI 0x80000000      /* pointer authentication with versioned ABI */
+
+/*
+ *      When selecting a slice, ANY will pick the slice with the best
+ *      grading for the selected cpu_type_t, unlike the "ALL" subtypes,
+ *      which are the slices that can run on any hardware for that cpu type.
+ */
+#define CPU_SUBTYPE_ANY         ((cpu_subtype_t) -1)
+
+/*
+ *	Object files that are hand-crafted to run on any
+ *	implementation of an architecture are tagged with
+ *	CPU_SUBTYPE_MULTIPLE.  This functions essentially the same as
+ *	the "ALL" subtype of an architecture except that it allows us
+ *	to easily find object files that may need to be modified
+ *	whenever a new implementation of an architecture comes out.
+ *
+ *	It is the responsibility of the implementor to make sure the
+ *	software handles unsupported implementations elegantly.
+ */
+#define CPU_SUBTYPE_MULTIPLE            ((cpu_subtype_t) -1)
+#define CPU_SUBTYPE_LITTLE_ENDIAN       ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_BIG_ENDIAN          ((cpu_subtype_t) 1)
+
+/*
+ *     Machine threadtypes.
+ *     This is none - not defined - for most machine types/subtypes.
+ */
+#define CPU_THREADTYPE_NONE             ((cpu_threadtype_t) 0)
+
+/*
+ *	VAX subtypes (these do *not* necessary conform to the actual cpu
+ *	ID assigned by DEC available via the SID register).
+ */
+
+#define CPU_SUBTYPE_VAX_ALL     ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_VAX780      ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_VAX785      ((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_VAX750      ((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_VAX730      ((cpu_subtype_t) 4)
+#define CPU_SUBTYPE_UVAXI       ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_UVAXII      ((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_VAX8200     ((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_VAX8500     ((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_VAX8600     ((cpu_subtype_t) 9)
+#define CPU_SUBTYPE_VAX8650     ((cpu_subtype_t) 10)
+#define CPU_SUBTYPE_VAX8800     ((cpu_subtype_t) 11)
+#define CPU_SUBTYPE_UVAXIII     ((cpu_subtype_t) 12)
+
+/*
+ *      680x0 subtypes
+ *
+ * The subtype definitions here are unusual for historical reasons.
+ * NeXT used to consider 68030 code as generic 68000 code.  For
+ * backwards compatability:
+ *
+ *	CPU_SUBTYPE_MC68030 symbol has been preserved for source code
+ *	compatability.
+ *
+ *	CPU_SUBTYPE_MC680x0_ALL has been defined to be the same
+ *	subtype as CPU_SUBTYPE_MC68030 for binary comatability.
+ *
+ *	CPU_SUBTYPE_MC68030_ONLY has been added to allow new object
+ *	files to be tagged as containing 68030-specific instructions.
+ */
+
+#define CPU_SUBTYPE_MC680x0_ALL         ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MC68030             ((cpu_subtype_t) 1) /* compat */
+#define CPU_SUBTYPE_MC68040             ((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_MC68030_ONLY        ((cpu_subtype_t) 3)
+
+/*
+ *	I386 subtypes
+ */
+
+#define CPU_SUBTYPE_INTEL(f, m) ((cpu_subtype_t) (f) + ((m) << 4))
+
+#define CPU_SUBTYPE_I386_ALL                    CPU_SUBTYPE_INTEL(3, 0)
+#define CPU_SUBTYPE_386                                 CPU_SUBTYPE_INTEL(3, 0)
+#define CPU_SUBTYPE_486                                 CPU_SUBTYPE_INTEL(4, 0)
+#define CPU_SUBTYPE_486SX                               CPU_SUBTYPE_INTEL(4, 8) // 8 << 4 = 128
+#define CPU_SUBTYPE_586                                 CPU_SUBTYPE_INTEL(5, 0)
+#define CPU_SUBTYPE_PENT        CPU_SUBTYPE_INTEL(5, 0)
+#define CPU_SUBTYPE_PENTPRO     CPU_SUBTYPE_INTEL(6, 1)
+#define CPU_SUBTYPE_PENTII_M3   CPU_SUBTYPE_INTEL(6, 3)
+#define CPU_SUBTYPE_PENTII_M5   CPU_SUBTYPE_INTEL(6, 5)
+#define CPU_SUBTYPE_CELERON                             CPU_SUBTYPE_INTEL(7, 6)
+#define CPU_SUBTYPE_CELERON_MOBILE              CPU_SUBTYPE_INTEL(7, 7)
+#define CPU_SUBTYPE_PENTIUM_3                   CPU_SUBTYPE_INTEL(8, 0)
+#define CPU_SUBTYPE_PENTIUM_3_M                 CPU_SUBTYPE_INTEL(8, 1)
+#define CPU_SUBTYPE_PENTIUM_3_XEON              CPU_SUBTYPE_INTEL(8, 2)
+#define CPU_SUBTYPE_PENTIUM_M                   CPU_SUBTYPE_INTEL(9, 0)
+#define CPU_SUBTYPE_PENTIUM_4                   CPU_SUBTYPE_INTEL(10, 0)
+#define CPU_SUBTYPE_PENTIUM_4_M                 CPU_SUBTYPE_INTEL(10, 1)
+#define CPU_SUBTYPE_ITANIUM                             CPU_SUBTYPE_INTEL(11, 0)
+#define CPU_SUBTYPE_ITANIUM_2                   CPU_SUBTYPE_INTEL(11, 1)
+#define CPU_SUBTYPE_XEON                                CPU_SUBTYPE_INTEL(12, 0)
+#define CPU_SUBTYPE_XEON_MP                             CPU_SUBTYPE_INTEL(12, 1)
+
+#define CPU_SUBTYPE_INTEL_FAMILY(x)     ((x) & 15)
+#define CPU_SUBTYPE_INTEL_FAMILY_MAX    15
+
+#define CPU_SUBTYPE_INTEL_MODEL(x)      ((x) >> 4)
+#define CPU_SUBTYPE_INTEL_MODEL_ALL     0
+
+/*
+ *	X86 subtypes.
+ */
+
+#define CPU_SUBTYPE_X86_ALL             ((cpu_subtype_t)3)
+#define CPU_SUBTYPE_X86_64_ALL          ((cpu_subtype_t)3)
+#define CPU_SUBTYPE_X86_ARCH1           ((cpu_subtype_t)4)
+#define CPU_SUBTYPE_X86_64_H            ((cpu_subtype_t)8)      /* Haswell feature subset */
+
+
+#define CPU_THREADTYPE_INTEL_HTT        ((cpu_threadtype_t) 1)
+
+/*
+ *	Mips subtypes.
+ */
+
+#define CPU_SUBTYPE_MIPS_ALL    ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MIPS_R2300  ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MIPS_R2600  ((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_MIPS_R2800  ((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_MIPS_R2000a ((cpu_subtype_t) 4)     /* pmax */
+#define CPU_SUBTYPE_MIPS_R2000  ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_MIPS_R3000a ((cpu_subtype_t) 6)     /* 3max */
+#define CPU_SUBTYPE_MIPS_R3000  ((cpu_subtype_t) 7)
+
+/*
+ *	MC98000 (PowerPC) subtypes
+ */
+#define CPU_SUBTYPE_MC98000_ALL ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MC98601     ((cpu_subtype_t) 1)
+
+/*
+ *	HPPA subtypes for Hewlett-Packard HP-PA family of
+ *	risc processors. Port by NeXT to 700 series.
+ */
+
+#define CPU_SUBTYPE_HPPA_ALL            ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_HPPA_7100           ((cpu_subtype_t) 0) /* compat */
+#define CPU_SUBTYPE_HPPA_7100LC         ((cpu_subtype_t) 1)
+
+/*
+ *	MC88000 subtypes.
+ */
+#define CPU_SUBTYPE_MC88000_ALL ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_MC88100     ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_MC88110     ((cpu_subtype_t) 2)
+
+/*
+ *	SPARC subtypes
+ */
+#define CPU_SUBTYPE_SPARC_ALL           ((cpu_subtype_t) 0)
+
+/*
+ *	I860 subtypes
+ */
+#define CPU_SUBTYPE_I860_ALL    ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_I860_860    ((cpu_subtype_t) 1)
+
+/*
+ *	PowerPC subtypes
+ */
+#define CPU_SUBTYPE_POWERPC_ALL         ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_POWERPC_601         ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_POWERPC_602         ((cpu_subtype_t) 2)
+#define CPU_SUBTYPE_POWERPC_603         ((cpu_subtype_t) 3)
+#define CPU_SUBTYPE_POWERPC_603e        ((cpu_subtype_t) 4)
+#define CPU_SUBTYPE_POWERPC_603ev       ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_POWERPC_604         ((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_POWERPC_604e        ((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_POWERPC_620         ((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_POWERPC_750         ((cpu_subtype_t) 9)
+#define CPU_SUBTYPE_POWERPC_7400        ((cpu_subtype_t) 10)
+#define CPU_SUBTYPE_POWERPC_7450        ((cpu_subtype_t) 11)
+#define CPU_SUBTYPE_POWERPC_970         ((cpu_subtype_t) 100)
+
+/*
+ *	ARM subtypes
+ */
+#define CPU_SUBTYPE_ARM_ALL             ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_ARM_V4T             ((cpu_subtype_t) 5)
+#define CPU_SUBTYPE_ARM_V6              ((cpu_subtype_t) 6)
+#define CPU_SUBTYPE_ARM_V5TEJ           ((cpu_subtype_t) 7)
+#define CPU_SUBTYPE_ARM_XSCALE          ((cpu_subtype_t) 8)
+#define CPU_SUBTYPE_ARM_V7              ((cpu_subtype_t) 9)  /* ARMv7-A and ARMv7-R */
+#define CPU_SUBTYPE_ARM_V7F             ((cpu_subtype_t) 10) /* Cortex A9 */
+#define CPU_SUBTYPE_ARM_V7S             ((cpu_subtype_t) 11) /* Swift */
+#define CPU_SUBTYPE_ARM_V7K             ((cpu_subtype_t) 12)
+#define CPU_SUBTYPE_ARM_V8              ((cpu_subtype_t) 13)
+#define CPU_SUBTYPE_ARM_V6M             ((cpu_subtype_t) 14) /* Not meant to be run under xnu */
+#define CPU_SUBTYPE_ARM_V7M             ((cpu_subtype_t) 15) /* Not meant to be run under xnu */
+#define CPU_SUBTYPE_ARM_V7EM            ((cpu_subtype_t) 16) /* Not meant to be run under xnu */
+#define CPU_SUBTYPE_ARM_V8M             ((cpu_subtype_t) 17) /* Not meant to be run under xnu */
+
+/*
+ *  ARM64 subtypes
+ */
+#define CPU_SUBTYPE_ARM64_ALL           ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_ARM64_V8            ((cpu_subtype_t) 1)
+#define CPU_SUBTYPE_ARM64E              ((cpu_subtype_t) 2)
+
+/* CPU subtype feature flags for ptrauth on arm64e platforms */
+#define CPU_SUBTYPE_ARM64_PTR_AUTH_MASK 0x0f000000
+#define CPU_SUBTYPE_ARM64_PTR_AUTH_VERSION(x) (((x) & CPU_SUBTYPE_ARM64_PTR_AUTH_MASK) >> 24)
+
+/*
+ *  ARM64_32 subtypes
+ */
+#define CPU_SUBTYPE_ARM64_32_ALL        ((cpu_subtype_t) 0)
+#define CPU_SUBTYPE_ARM64_32_V8 ((cpu_subtype_t) 1)
+
+#endif /* !__ASSEMBLER__ */
+
+/*
+ *	CPU families (sysctl hw.cpufamily)
+ *
+ * These are meant to identify the CPU's marketing name - an
+ * application can map these to (possibly) localized strings.
+ * NB: the encodings of the CPU families are intentionally arbitrary.
+ * There is no ordering, and you should never try to deduce whether
+ * or not some feature is available based on the family.
+ * Use feature flags (eg, hw.optional.altivec) to test for optional
+ * functionality.
+ */
+#define CPUFAMILY_UNKNOWN               0
+#define CPUFAMILY_POWERPC_G3            0xcee41549
+#define CPUFAMILY_POWERPC_G4            0x77c184ae
+#define CPUFAMILY_POWERPC_G5            0xed76d8aa
+#define CPUFAMILY_INTEL_6_13            0xaa33392b
+#define CPUFAMILY_INTEL_PENRYN          0x78ea4fbc
+#define CPUFAMILY_INTEL_NEHALEM         0x6b5a4cd2
+#define CPUFAMILY_INTEL_WESTMERE        0x573b5eec
+#define CPUFAMILY_INTEL_SANDYBRIDGE     0x5490b78c
+#define CPUFAMILY_INTEL_IVYBRIDGE       0x1f65e835
+#define CPUFAMILY_INTEL_HASWELL         0x10b282dc
+#define CPUFAMILY_INTEL_BROADWELL       0x582ed09c
+#define CPUFAMILY_INTEL_SKYLAKE         0x37fc219f
+#define CPUFAMILY_INTEL_KABYLAKE        0x0f817246
+#define CPUFAMILY_INTEL_ICELAKE         0x38435547
+#define CPUFAMILY_INTEL_COMETLAKE       0x1cf8a03e
+#define CPUFAMILY_ARM_9                 0xe73283ae
+#define CPUFAMILY_ARM_11                0x8ff620d8
+#define CPUFAMILY_ARM_XSCALE            0x53b005f5
+#define CPUFAMILY_ARM_12                0xbd1b0ae9
+#define CPUFAMILY_ARM_13                0x0cc90e64
+#define CPUFAMILY_ARM_14                0x96077ef1
+#define CPUFAMILY_ARM_15                0xa8511bca
+#define CPUFAMILY_ARM_SWIFT             0x1e2d6381
+#define CPUFAMILY_ARM_CYCLONE           0x37a09642
+#define CPUFAMILY_ARM_TYPHOON           0x2c91a47e
+#define CPUFAMILY_ARM_TWISTER           0x92fb37c8
+#define CPUFAMILY_ARM_HURRICANE         0x67ceee93
+#define CPUFAMILY_ARM_MONSOON_MISTRAL   0xe81e7ef6
+#define CPUFAMILY_ARM_VORTEX_TEMPEST    0x07d34b9f
+#define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504d2
+#define CPUFAMILY_ARM_FIRESTORM_ICESTORM 0x1b588bb3
+#define CPUFAMILY_ARM_BLIZZARD_AVALANCHE 0xda33d83d
+#define CPUFAMILY_ARM_EVEREST_SAWTOOTH  0x8765edea
+
+/* Described in rdar://64125549 */
+#define CPUSUBFAMILY_UNKNOWN            0
+#define CPUSUBFAMILY_ARM_HP             1
+#define CPUSUBFAMILY_ARM_HG             2
+#define CPUSUBFAMILY_ARM_M              3
+#define CPUSUBFAMILY_ARM_HS             4
+#define CPUSUBFAMILY_ARM_HC_HD          5
+
+/* The following synonyms are deprecated: */
+#define CPUFAMILY_INTEL_6_23    CPUFAMILY_INTEL_PENRYN
+#define CPUFAMILY_INTEL_6_26    CPUFAMILY_INTEL_NEHALEM
+
+
+#endif  /* _MACH_MACHINE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/message.h b/lib/libc/include/any-macos.13-any/mach/message.h
new file mode 100644
index 0000000000000000000000000000000000000000..a6e6e2e043e70c9427665c468c9f10fdbb76fbfc
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/message.h
@@ -0,0 +1,925 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ * NOTICE: This file was modified by McAfee Research in 2004 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ * Copyright (c) 2005 SPARTA, Inc.
+ */
+/*
+ */
+/*
+ *	File:	mach/message.h
+ *
+ *	Mach IPC message and primitive function definitions.
+ */
+
+#ifndef _MACH_MESSAGE_H_
+#define _MACH_MESSAGE_H_
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+/*
+ *  The timeout mechanism uses mach_msg_timeout_t values,
+ *  passed by value.  The timeout units are milliseconds.
+ *  It is controlled with the MACH_SEND_TIMEOUT
+ *  and MACH_RCV_TIMEOUT options.
+ */
+
+typedef natural_t mach_msg_timeout_t;
+
+/*
+ *  The value to be used when there is no timeout.
+ *  (No MACH_SEND_TIMEOUT/MACH_RCV_TIMEOUT option.)
+ */
+
+#define MACH_MSG_TIMEOUT_NONE           ((mach_msg_timeout_t) 0)
+
+/*
+ *  The kernel uses MACH_MSGH_BITS_COMPLEX as a hint.  If it isn't on, it
+ *  assumes the body of the message doesn't contain port rights or OOL
+ *  data.  The field is set in received messages.  A user task must
+ *  use caution in interpreting the body of a message if the bit isn't
+ *  on, because the mach_msg_type's in the body might "lie" about the
+ *  contents.  If the bit isn't on, but the mach_msg_types
+ *  in the body specify rights or OOL data, the behavior is undefined.
+ *  (Ie, an error may or may not be produced.)
+ *
+ *  The value of MACH_MSGH_BITS_REMOTE determines the interpretation
+ *  of the msgh_remote_port field.  It is handled like a msgt_name,
+ *  but must result in a send or send-once type right.
+ *
+ *  The value of MACH_MSGH_BITS_LOCAL determines the interpretation
+ *  of the msgh_local_port field.  It is handled like a msgt_name,
+ *  and also must result in a send or send-once type right.
+ *
+ *  The value of MACH_MSGH_BITS_VOUCHER determines the interpretation
+ *  of the msgh_voucher_port field.  It is handled like a msgt_name,
+ *  but must result in a send right (and the msgh_voucher_port field
+ *  must be the name of a send right to a Mach voucher kernel object.
+ *
+ *  MACH_MSGH_BITS() combines two MACH_MSG_TYPE_* values, for the remote
+ *  and local fields, into a single value suitable for msgh_bits.
+ *
+ *  MACH_MSGH_BITS_CIRCULAR should be zero; is is used internally.
+ *
+ *  The unused bits should be zero and are reserved for the kernel
+ *  or for future interface expansion.
+ */
+
+#define MACH_MSGH_BITS_ZERO             0x00000000
+
+#define MACH_MSGH_BITS_REMOTE_MASK      0x0000001f
+#define MACH_MSGH_BITS_LOCAL_MASK       0x00001f00
+#define MACH_MSGH_BITS_VOUCHER_MASK     0x001f0000
+
+#define MACH_MSGH_BITS_PORTS_MASK               \
+	        (MACH_MSGH_BITS_REMOTE_MASK |   \
+	         MACH_MSGH_BITS_LOCAL_MASK |    \
+	         MACH_MSGH_BITS_VOUCHER_MASK)
+
+#define MACH_MSGH_BITS_COMPLEX          0x80000000U     /* message is complex */
+
+#define MACH_MSGH_BITS_USER             0x801f1f1fU     /* allowed bits user->kernel */
+
+#define MACH_MSGH_BITS_RAISEIMP         0x20000000U     /* importance raised due to msg */
+#define MACH_MSGH_BITS_DENAP            MACH_MSGH_BITS_RAISEIMP
+
+#define MACH_MSGH_BITS_IMPHOLDASRT      0x10000000U     /* assertion help, userland private */
+#define MACH_MSGH_BITS_DENAPHOLDASRT    MACH_MSGH_BITS_IMPHOLDASRT
+
+#define MACH_MSGH_BITS_CIRCULAR         0x10000000U     /* message circular, kernel private */
+
+#define MACH_MSGH_BITS_USED             0xb01f1f1fU
+
+/* setter macros for the bits */
+#define MACH_MSGH_BITS(remote, local)  /* legacy */             \
+	        ((remote) | ((local) << 8))
+#define MACH_MSGH_BITS_SET_PORTS(remote, local, voucher)        \
+	(((remote) & MACH_MSGH_BITS_REMOTE_MASK) |              \
+	 (((local) << 8) & MACH_MSGH_BITS_LOCAL_MASK) |         \
+	 (((voucher) << 16) & MACH_MSGH_BITS_VOUCHER_MASK))
+#define MACH_MSGH_BITS_SET(remote, local, voucher, other)       \
+	(MACH_MSGH_BITS_SET_PORTS((remote), (local), (voucher)) \
+	 | ((other) &~ MACH_MSGH_BITS_PORTS_MASK))
+
+/* getter macros for pulling values out of the bits field */
+#define MACH_MSGH_BITS_REMOTE(bits)                             \
+	        ((bits) & MACH_MSGH_BITS_REMOTE_MASK)
+#define MACH_MSGH_BITS_LOCAL(bits)                              \
+	        (((bits) & MACH_MSGH_BITS_LOCAL_MASK) >> 8)
+#define MACH_MSGH_BITS_VOUCHER(bits)                            \
+	        (((bits) & MACH_MSGH_BITS_VOUCHER_MASK) >> 16)
+#define MACH_MSGH_BITS_PORTS(bits)                              \
+	((bits) & MACH_MSGH_BITS_PORTS_MASK)
+#define MACH_MSGH_BITS_OTHER(bits)                              \
+	        ((bits) &~ MACH_MSGH_BITS_PORTS_MASK)
+
+/* checking macros */
+#define MACH_MSGH_BITS_HAS_REMOTE(bits)                         \
+	(MACH_MSGH_BITS_REMOTE(bits) != MACH_MSGH_BITS_ZERO)
+#define MACH_MSGH_BITS_HAS_LOCAL(bits)                          \
+	(MACH_MSGH_BITS_LOCAL(bits) != MACH_MSGH_BITS_ZERO)
+#define MACH_MSGH_BITS_HAS_VOUCHER(bits)                        \
+	(MACH_MSGH_BITS_VOUCHER(bits) != MACH_MSGH_BITS_ZERO)
+#define MACH_MSGH_BITS_IS_COMPLEX(bits)                         \
+	(((bits) & MACH_MSGH_BITS_COMPLEX) != MACH_MSGH_BITS_ZERO)
+
+/* importance checking macros */
+#define MACH_MSGH_BITS_RAISED_IMPORTANCE(bits)                  \
+	(((bits) & MACH_MSGH_BITS_RAISEIMP) != MACH_MSGH_BITS_ZERO)
+#define MACH_MSGH_BITS_HOLDS_IMPORTANCE_ASSERTION(bits)         \
+	(((bits) & MACH_MSGH_BITS_IMPHOLDASRT) != MACH_MSGH_BITS_ZERO)
+
+/*
+ *  Every message starts with a message header.
+ *  Following the message header, if the message is complex, are a count
+ *  of type descriptors and the type descriptors themselves
+ *  (mach_msg_descriptor_t). The size of the message must be specified in
+ *  bytes, and includes the message header, descriptor count, descriptors,
+ *  and inline data.
+ *
+ *  The msgh_remote_port field specifies the destination of the message.
+ *  It must specify a valid send or send-once right for a port.
+ *
+ *  The msgh_local_port field specifies a "reply port".  Normally,
+ *  This field carries a send-once right that the receiver will use
+ *  to reply to the message.  It may carry the values MACH_PORT_NULL,
+ *  MACH_PORT_DEAD, a send-once right, or a send right.
+ *
+ *  The msgh_voucher_port field specifies a Mach voucher port. Only
+ *  send rights to kernel-implemented Mach Voucher kernel objects in
+ *  addition to MACH_PORT_NULL or MACH_PORT_DEAD may be passed.
+ *
+ *  The msgh_id field is uninterpreted by the message primitives.
+ *  It normally carries information specifying the format
+ *  or meaning of the message.
+ */
+
+typedef unsigned int mach_msg_bits_t;
+typedef natural_t mach_msg_size_t;
+typedef integer_t mach_msg_id_t;
+
+#define MACH_MSG_SIZE_NULL (mach_msg_size_t *) 0
+
+typedef unsigned int mach_msg_priority_t;
+
+#define MACH_MSG_PRIORITY_UNSPECIFIED (mach_msg_priority_t) 0
+
+
+typedef unsigned int mach_msg_type_name_t;
+
+#define MACH_MSG_TYPE_MOVE_RECEIVE      16      /* Must hold receive right */
+#define MACH_MSG_TYPE_MOVE_SEND         17      /* Must hold send right(s) */
+#define MACH_MSG_TYPE_MOVE_SEND_ONCE    18      /* Must hold sendonce right */
+#define MACH_MSG_TYPE_COPY_SEND         19      /* Must hold send right(s) */
+#define MACH_MSG_TYPE_MAKE_SEND         20      /* Must hold receive right */
+#define MACH_MSG_TYPE_MAKE_SEND_ONCE    21      /* Must hold receive right */
+#define MACH_MSG_TYPE_COPY_RECEIVE      22      /* NOT VALID */
+#define MACH_MSG_TYPE_DISPOSE_RECEIVE   24      /* must hold receive right */
+#define MACH_MSG_TYPE_DISPOSE_SEND      25      /* must hold send right(s) */
+#define MACH_MSG_TYPE_DISPOSE_SEND_ONCE 26      /* must hold sendonce right */
+
+typedef unsigned int mach_msg_copy_options_t;
+
+#define MACH_MSG_PHYSICAL_COPY          0
+#define MACH_MSG_VIRTUAL_COPY           1
+#define MACH_MSG_ALLOCATE               2
+#define MACH_MSG_OVERWRITE              3       /* deprecated */
+#ifdef  MACH_KERNEL
+#define MACH_MSG_KALLOC_COPY_T          4
+#endif  /* MACH_KERNEL */
+
+#define MACH_MSG_GUARD_FLAGS_NONE                   0x0000
+#define MACH_MSG_GUARD_FLAGS_IMMOVABLE_RECEIVE      0x0001    /* Move the receive right and mark it as immovable */
+#define MACH_MSG_GUARD_FLAGS_UNGUARDED_ON_SEND      0x0002    /* Verify that the port is unguarded */
+#define MACH_MSG_GUARD_FLAGS_MASK                   0x0003    /* Valid flag bits */
+typedef unsigned int mach_msg_guard_flags_t;
+
+/*
+ * In a complex mach message, the mach_msg_header_t is followed by
+ * a descriptor count, then an array of that number of descriptors
+ * (mach_msg_*_descriptor_t). The type field of mach_msg_type_descriptor_t
+ * (which any descriptor can be cast to) indicates the flavor of the
+ * descriptor.
+ *
+ * Note that in LP64, the various types of descriptors are no longer all
+ * the same size as mach_msg_descriptor_t, so the array cannot be indexed
+ * as expected.
+ */
+
+typedef unsigned int mach_msg_descriptor_type_t;
+
+#define MACH_MSG_PORT_DESCRIPTOR                0
+#define MACH_MSG_OOL_DESCRIPTOR                 1
+#define MACH_MSG_OOL_PORTS_DESCRIPTOR           2
+#define MACH_MSG_OOL_VOLATILE_DESCRIPTOR        3
+#define MACH_MSG_GUARDED_PORT_DESCRIPTOR        4
+
+#define MACH_MSG_DESCRIPTOR_MAX MACH_MSG_GUARDED_PORT_DESCRIPTOR
+
+#pragma pack(push, 4)
+
+typedef struct {
+	natural_t                     pad1;
+	mach_msg_size_t               pad2;
+	unsigned int                  pad3 : 24;
+	mach_msg_descriptor_type_t    type : 8;
+} mach_msg_type_descriptor_t;
+
+typedef struct {
+	mach_port_t                   name;
+// Pad to 8 bytes everywhere except the K64 kernel where mach_port_t is 8 bytes
+	mach_msg_size_t               pad1;
+	unsigned int                  pad2 : 16;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+} mach_msg_port_descriptor_t;
+
+
+typedef struct {
+	uint32_t                      address;
+	mach_msg_size_t               size;
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	unsigned int                  pad1: 8;
+	mach_msg_descriptor_type_t    type: 8;
+} mach_msg_ool_descriptor32_t;
+
+typedef struct {
+	uint64_t                      address;
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	unsigned int                  pad1: 8;
+	mach_msg_descriptor_type_t    type: 8;
+	mach_msg_size_t               size;
+} mach_msg_ool_descriptor64_t;
+
+typedef struct {
+	void*                         address;
+#if !defined(__LP64__)
+	mach_msg_size_t               size;
+#endif
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	unsigned int                  pad1: 8;
+	mach_msg_descriptor_type_t    type: 8;
+#if defined(__LP64__)
+	mach_msg_size_t               size;
+#endif
+} mach_msg_ool_descriptor_t;
+
+typedef struct {
+	uint32_t                      address;
+	mach_msg_size_t               count;
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+} mach_msg_ool_ports_descriptor32_t;
+
+typedef struct {
+	uint64_t                      address;
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+	mach_msg_size_t               count;
+} mach_msg_ool_ports_descriptor64_t;
+
+typedef struct {
+	void*                         address;
+#if !defined(__LP64__)
+	mach_msg_size_t               count;
+#endif
+	boolean_t                     deallocate: 8;
+	mach_msg_copy_options_t       copy: 8;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+#if defined(__LP64__)
+	mach_msg_size_t               count;
+#endif
+} mach_msg_ool_ports_descriptor_t;
+
+typedef struct {
+	uint32_t                      context;
+	mach_port_name_t              name;
+	mach_msg_guard_flags_t        flags : 16;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+} mach_msg_guarded_port_descriptor32_t;
+
+typedef struct {
+	uint64_t                      context;
+	mach_msg_guard_flags_t        flags : 16;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+	mach_port_name_t              name;
+} mach_msg_guarded_port_descriptor64_t;
+
+typedef struct {
+	mach_port_context_t           context;
+#if !defined(__LP64__)
+	mach_port_name_t              name;
+#endif
+	mach_msg_guard_flags_t        flags : 16;
+	mach_msg_type_name_t          disposition : 8;
+	mach_msg_descriptor_type_t    type : 8;
+#if defined(__LP64__)
+	mach_port_name_t              name;
+#endif /* defined(__LP64__) */
+} mach_msg_guarded_port_descriptor_t;
+
+/*
+ * LP64support - This union definition is not really
+ * appropriate in LP64 mode because not all descriptors
+ * are of the same size in that environment.
+ */
+typedef union{
+	mach_msg_port_descriptor_t            port;
+	mach_msg_ool_descriptor_t             out_of_line;
+	mach_msg_ool_ports_descriptor_t       ool_ports;
+	mach_msg_type_descriptor_t            type;
+	mach_msg_guarded_port_descriptor_t    guarded_port;
+} mach_msg_descriptor_t;
+
+typedef struct {
+	mach_msg_size_t msgh_descriptor_count;
+} mach_msg_body_t;
+
+#define MACH_MSG_BODY_NULL            ((mach_msg_body_t *) 0)
+#define MACH_MSG_DESCRIPTOR_NULL      ((mach_msg_descriptor_t *) 0)
+
+typedef struct {
+	mach_msg_bits_t               msgh_bits;
+	mach_msg_size_t               msgh_size;
+	mach_port_t                   msgh_remote_port;
+	mach_port_t                   msgh_local_port;
+	mach_port_name_t              msgh_voucher_port;
+	mach_msg_id_t                 msgh_id;
+} mach_msg_header_t;
+
+
+#define msgh_reserved                 msgh_voucher_port
+#define MACH_MSG_NULL                 ((mach_msg_header_t *) 0)
+
+typedef struct {
+	mach_msg_header_t             header;
+	mach_msg_body_t               body;
+} mach_msg_base_t;
+
+
+typedef unsigned int mach_msg_trailer_type_t;
+
+#define MACH_MSG_TRAILER_FORMAT_0       0
+
+typedef unsigned int mach_msg_trailer_size_t;
+typedef char *mach_msg_trailer_info_t;
+
+typedef struct {
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+} mach_msg_trailer_t;
+
+/*
+ *  The msgh_seqno field carries a sequence number
+ *  associated with the received-from port.  A port's
+ *  sequence number is incremented every time a message
+ *  is received from it and included in the received
+ *  trailer to help put messages back in sequence if
+ *  multiple threads receive and/or process received
+ *  messages.
+ */
+typedef struct {
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+} mach_msg_seqno_trailer_t;
+
+typedef struct {
+	unsigned int                  val[2];
+} security_token_t;
+
+typedef struct {
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+	security_token_t              msgh_sender;
+} mach_msg_security_trailer_t;
+
+/*
+ * The audit token is an opaque token which identifies
+ * Mach tasks and senders of Mach messages as subjects
+ * to the BSM audit system.  Only the appropriate BSM
+ * library routines should be used to interpret the
+ * contents of the audit token as the representation
+ * of the subject identity within the token may change
+ * over time.
+ */
+typedef struct {
+	unsigned int                  val[8];
+} audit_token_t;
+
+typedef struct {
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+	security_token_t              msgh_sender;
+	audit_token_t                 msgh_audit;
+} mach_msg_audit_trailer_t;
+
+typedef struct {
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+	security_token_t              msgh_sender;
+	audit_token_t                 msgh_audit;
+	mach_port_context_t           msgh_context;
+} mach_msg_context_trailer_t;
+
+
+
+typedef struct {
+	mach_port_name_t sender;
+} msg_labels_t;
+
+typedef int mach_msg_filter_id;
+#define MACH_MSG_FILTER_POLICY_ALLOW (mach_msg_filter_id)0
+
+/*
+ *  Trailer type to pass MAC policy label info as a mach message trailer.
+ *
+ */
+
+typedef struct {
+	mach_msg_trailer_type_t       msgh_trailer_type;
+	mach_msg_trailer_size_t       msgh_trailer_size;
+	mach_port_seqno_t             msgh_seqno;
+	security_token_t              msgh_sender;
+	audit_token_t                 msgh_audit;
+	mach_port_context_t           msgh_context;
+	mach_msg_filter_id            msgh_ad;
+	msg_labels_t                  msgh_labels;
+} mach_msg_mac_trailer_t;
+
+
+#define MACH_MSG_TRAILER_MINIMUM_SIZE  sizeof(mach_msg_trailer_t)
+
+/*
+ * These values can change from release to release - but clearly
+ * code cannot request additional trailer elements one was not
+ * compiled to understand.  Therefore, it is safe to use this
+ * constant when the same module specified the receive options.
+ * Otherwise, you run the risk that the options requested by
+ * another module may exceed the local modules notion of
+ * MAX_TRAILER_SIZE.
+ */
+
+typedef mach_msg_mac_trailer_t mach_msg_max_trailer_t;
+#define MAX_TRAILER_SIZE ((mach_msg_size_t)sizeof(mach_msg_max_trailer_t))
+
+/*
+ * Legacy requirements keep us from ever updating these defines (even
+ * when the format_0 trailers gain new option data fields in the future).
+ * Therefore, they shouldn't be used going forward.  Instead, the sizes
+ * should be compared against the specific element size requested using
+ * REQUESTED_TRAILER_SIZE.
+ */
+typedef mach_msg_security_trailer_t mach_msg_format_0_trailer_t;
+
+/*typedef mach_msg_mac_trailer_t mach_msg_format_0_trailer_t;
+ */
+
+#define MACH_MSG_TRAILER_FORMAT_0_SIZE sizeof(mach_msg_format_0_trailer_t)
+
+#define   KERNEL_SECURITY_TOKEN_VALUE  { {0, 1} }
+extern const security_token_t KERNEL_SECURITY_TOKEN;
+
+#define   KERNEL_AUDIT_TOKEN_VALUE  { {0, 0, 0, 0, 0, 0, 0, 0} }
+extern const audit_token_t KERNEL_AUDIT_TOKEN;
+
+typedef integer_t mach_msg_options_t;
+
+#define MACH_MSG_HEADER_EMPTY (mach_msg_header_t){ }
+
+typedef struct {
+	mach_msg_header_t     header;
+} mach_msg_empty_send_t;
+
+typedef struct {
+	mach_msg_header_t     header;
+	mach_msg_trailer_t    trailer;
+} mach_msg_empty_rcv_t;
+
+typedef union{
+	mach_msg_empty_send_t send;
+	mach_msg_empty_rcv_t  rcv;
+} mach_msg_empty_t;
+
+#pragma pack(pop)
+
+/* utility to round the message size - will become machine dependent */
+#define round_msg(x)    (((mach_msg_size_t)(x) + sizeof (natural_t) - 1) & \
+	                        ~(sizeof (natural_t) - 1))
+
+
+/*
+ *  There is no fixed upper bound to the size of Mach messages.
+ */
+#define MACH_MSG_SIZE_MAX       ((mach_msg_size_t) ~0)
+
+#if defined(__APPLE_API_PRIVATE)
+/*
+ *  But architectural limits of a given implementation, or
+ *  temporal conditions may cause unpredictable send failures
+ *  for messages larger than MACH_MSG_SIZE_RELIABLE.
+ *
+ *  In either case, waiting for memory is [currently] outside
+ *  the scope of send timeout values provided to IPC.
+ */
+#define MACH_MSG_SIZE_RELIABLE  ((mach_msg_size_t) 256 * 1024)
+#endif
+/*
+ *  Compatibility definitions, for code written
+ *  when there was a msgh_kind instead of msgh_seqno.
+ */
+#define MACH_MSGH_KIND_NORMAL           0x00000000
+#define MACH_MSGH_KIND_NOTIFICATION     0x00000001
+#define msgh_kind                       msgh_seqno
+#define mach_msg_kind_t                 mach_port_seqno_t
+
+typedef natural_t mach_msg_type_size_t;
+typedef natural_t mach_msg_type_number_t;
+
+/*
+ *  Values received/carried in messages.  Tells the receiver what
+ *  sort of port right he now has.
+ *
+ *  MACH_MSG_TYPE_PORT_NAME is used to transfer a port name
+ *  which should remain uninterpreted by the kernel.  (Port rights
+ *  are not transferred, just the port name.)
+ */
+
+#define MACH_MSG_TYPE_PORT_NONE         0
+
+#define MACH_MSG_TYPE_PORT_NAME         15
+#define MACH_MSG_TYPE_PORT_RECEIVE      MACH_MSG_TYPE_MOVE_RECEIVE
+#define MACH_MSG_TYPE_PORT_SEND         MACH_MSG_TYPE_MOVE_SEND
+#define MACH_MSG_TYPE_PORT_SEND_ONCE    MACH_MSG_TYPE_MOVE_SEND_ONCE
+
+#define MACH_MSG_TYPE_LAST              22              /* Last assigned */
+
+/*
+ *  A dummy value.  Mostly used to indicate that the actual value
+ *  will be filled in later, dynamically.
+ */
+
+#define MACH_MSG_TYPE_POLYMORPHIC       ((mach_msg_type_name_t) -1)
+
+/*
+ *	Is a given item a port type?
+ */
+
+#define MACH_MSG_TYPE_PORT_ANY(x)                       \
+	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) &&         \
+	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
+
+#define MACH_MSG_TYPE_PORT_ANY_SEND(x)                  \
+	(((x) >= MACH_MSG_TYPE_MOVE_SEND) &&            \
+	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
+
+#define MACH_MSG_TYPE_PORT_ANY_RIGHT(x)                 \
+	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) &&         \
+	 ((x) <= MACH_MSG_TYPE_MOVE_SEND_ONCE))
+
+typedef integer_t mach_msg_option_t;
+
+#define MACH_MSG_OPTION_NONE    0x00000000
+
+#define MACH_SEND_MSG           0x00000001
+#define MACH_RCV_MSG            0x00000002
+
+#define MACH_RCV_LARGE          0x00000004      /* report large message sizes */
+#define MACH_RCV_LARGE_IDENTITY 0x00000008      /* identify source of large messages */
+
+#define MACH_SEND_TIMEOUT       0x00000010      /* timeout value applies to send */
+#define MACH_SEND_OVERRIDE      0x00000020      /* priority override for send */
+#define MACH_SEND_INTERRUPT     0x00000040      /* don't restart interrupted sends */
+#define MACH_SEND_NOTIFY        0x00000080      /* arm send-possible notify */
+#define MACH_SEND_ALWAYS        0x00010000      /* ignore qlimits - kernel only */
+#define MACH_SEND_FILTER_NONFATAL        0x00010000      /* rejection by message filter should return failure - user only */
+#define MACH_SEND_TRAILER       0x00020000      /* sender-provided trailer */
+#define MACH_SEND_NOIMPORTANCE  0x00040000      /* msg won't carry importance */
+#define MACH_SEND_NODENAP       MACH_SEND_NOIMPORTANCE
+#define MACH_SEND_IMPORTANCE    0x00080000      /* msg carries importance - kernel only */
+#define MACH_SEND_SYNC_OVERRIDE 0x00100000      /* msg should do sync IPC override (on legacy kernels) */
+#define MACH_SEND_PROPAGATE_QOS 0x00200000      /* IPC should propagate the caller's QoS */
+#define MACH_SEND_SYNC_USE_THRPRI       MACH_SEND_PROPAGATE_QOS /* obsolete name */
+#define MACH_SEND_KERNEL        0x00400000      /* full send from kernel space - kernel only */
+#define MACH_SEND_SYNC_BOOTSTRAP_CHECKIN  0x00800000      /* special reply port should boost thread doing sync bootstrap checkin */
+
+#define MACH_RCV_TIMEOUT        0x00000100      /* timeout value applies to receive */
+#define MACH_RCV_NOTIFY         0x00000000      /* legacy name (value was: 0x00000200) */
+#define MACH_RCV_INTERRUPT      0x00000400      /* don't restart interrupted receive */
+#define MACH_RCV_VOUCHER        0x00000800      /* willing to receive voucher port */
+#define MACH_RCV_OVERWRITE      0x00000000      /* scatter receive (deprecated) */
+#define MACH_RCV_GUARDED_DESC   0x00001000      /* Can receive new guarded descriptor */
+#define MACH_RCV_SYNC_WAIT      0x00004000      /* sync waiter waiting for rcv */
+#define MACH_RCV_SYNC_PEEK      0x00008000      /* sync waiter waiting to peek */
+
+#define MACH_MSG_STRICT_REPLY   0x00000200      /* Enforce specific properties about the reply port, and
+	                                         * the context in which a thread replies to a message.
+	                                         * This flag must be passed on both the SEND and RCV */
+
+
+/*
+ * NOTE: a 0x00------ RCV mask implies to ask for
+ * a MACH_MSG_TRAILER_FORMAT_0 with 0 Elements,
+ * which is equivalent to a mach_msg_trailer_t.
+ *
+ * XXXMAC: unlike the rest of the MACH_RCV_* flags, MACH_RCV_TRAILER_LABELS
+ * needs its own private bit since we only calculate its fields when absolutely
+ * required.
+ */
+#define MACH_RCV_TRAILER_NULL   0
+#define MACH_RCV_TRAILER_SEQNO  1
+#define MACH_RCV_TRAILER_SENDER 2
+#define MACH_RCV_TRAILER_AUDIT  3
+#define MACH_RCV_TRAILER_CTX    4
+#define MACH_RCV_TRAILER_AV     7
+#define MACH_RCV_TRAILER_LABELS 8
+
+#define MACH_RCV_TRAILER_TYPE(x)     (((x) & 0xf) << 28)
+#define MACH_RCV_TRAILER_ELEMENTS(x) (((x) & 0xf) << 24)
+#define MACH_RCV_TRAILER_MASK        ((0xf << 24))
+
+#define GET_RCV_ELEMENTS(y) (((y) >> 24) & 0xf)
+
+
+/*
+ * XXXMAC: note that in the case of MACH_RCV_TRAILER_LABELS,
+ * we just fall through to mach_msg_max_trailer_t.
+ * This is correct behavior since mach_msg_max_trailer_t is defined as
+ * mac_msg_mac_trailer_t which is used for the LABELS trailer.
+ * It also makes things work properly if MACH_RCV_TRAILER_LABELS is ORed
+ * with one of the other options.
+ */
+
+#define REQUESTED_TRAILER_SIZE_NATIVE(y)                        \
+	((mach_msg_trailer_size_t)                              \
+	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_NULL) ?      \
+	  sizeof(mach_msg_trailer_t) :                          \
+	  ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SEQNO) ?    \
+	   sizeof(mach_msg_seqno_trailer_t) :                   \
+	  ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SENDER) ?   \
+	   sizeof(mach_msg_security_trailer_t) :                \
+	   ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AUDIT) ?   \
+	    sizeof(mach_msg_audit_trailer_t) :                  \
+	    ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_CTX) ?    \
+	     sizeof(mach_msg_context_trailer_t) :               \
+	     ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AV) ?    \
+	      sizeof(mach_msg_mac_trailer_t) :                  \
+	     sizeof(mach_msg_max_trailer_t))))))))
+
+
+#define REQUESTED_TRAILER_SIZE(y) REQUESTED_TRAILER_SIZE_NATIVE(y)
+
+/*
+ *  Much code assumes that mach_msg_return_t == kern_return_t.
+ *  This definition is useful for descriptive purposes.
+ *
+ *  See  for the format of error codes.
+ *  IPC errors are system 4.  Send errors are subsystem 0;
+ *  receive errors are subsystem 1.  The code field is always non-zero.
+ *  The high bits of the code field communicate extra information
+ *  for some error codes.  MACH_MSG_MASK masks off these special bits.
+ */
+
+typedef kern_return_t mach_msg_return_t;
+
+#define MACH_MSG_SUCCESS                0x00000000
+
+
+#define MACH_MSG_MASK                   0x00003e00
+/* All special error code bits defined below. */
+#define MACH_MSG_IPC_SPACE              0x00002000
+/* No room in IPC name space for another capability name. */
+#define MACH_MSG_VM_SPACE               0x00001000
+/* No room in VM address space for out-of-line memory. */
+#define MACH_MSG_IPC_KERNEL             0x00000800
+/* Kernel resource shortage handling an IPC capability. */
+#define MACH_MSG_VM_KERNEL              0x00000400
+/* Kernel resource shortage handling out-of-line memory. */
+
+#define MACH_SEND_IN_PROGRESS           0x10000001
+/* Thread is waiting to send.  (Internal use only.) */
+#define MACH_SEND_INVALID_DATA          0x10000002
+/* Bogus in-line data. */
+#define MACH_SEND_INVALID_DEST          0x10000003
+/* Bogus destination port. */
+#define MACH_SEND_TIMED_OUT             0x10000004
+/* Message not sent before timeout expired. */
+#define MACH_SEND_INVALID_VOUCHER       0x10000005
+/* Bogus voucher port. */
+#define MACH_SEND_INTERRUPTED           0x10000007
+/* Software interrupt. */
+#define MACH_SEND_MSG_TOO_SMALL         0x10000008
+/* Data doesn't contain a complete message. */
+#define MACH_SEND_INVALID_REPLY         0x10000009
+/* Bogus reply port. */
+#define MACH_SEND_INVALID_RIGHT         0x1000000a
+/* Bogus port rights in the message body. */
+#define MACH_SEND_INVALID_NOTIFY        0x1000000b
+/* Bogus notify port argument. */
+#define MACH_SEND_INVALID_MEMORY        0x1000000c
+/* Invalid out-of-line memory pointer. */
+#define MACH_SEND_NO_BUFFER             0x1000000d
+/* No message buffer is available. */
+#define MACH_SEND_TOO_LARGE             0x1000000e
+/* Send is too large for port */
+#define MACH_SEND_INVALID_TYPE          0x1000000f
+/* Invalid msg-type specification. */
+#define MACH_SEND_INVALID_HEADER        0x10000010
+/* A field in the header had a bad value. */
+#define MACH_SEND_INVALID_TRAILER       0x10000011
+/* The trailer to be sent does not match kernel format. */
+#define MACH_SEND_INVALID_CONTEXT       0x10000012
+/* The sending thread context did not match the context on the dest port */
+#define MACH_SEND_INVALID_OPTIONS       0x10000013
+/* Send options are invalid. */
+#define MACH_SEND_INVALID_RT_OOL_SIZE   0x10000015
+/* compatibility: no longer a returned error */
+#define MACH_SEND_NO_GRANT_DEST         0x10000016
+/* The destination port doesn't accept ports in body */
+#define MACH_SEND_MSG_FILTERED          0x10000017
+/* Message send was rejected by message filter */
+#define MACH_SEND_AUX_TOO_SMALL         0x10000018
+/* Message auxiliary data is too small */
+#define MACH_SEND_AUX_TOO_LARGE         0x10000019
+/* Message auxiliary data is too large */
+
+#define MACH_RCV_IN_PROGRESS            0x10004001
+/* Thread is waiting for receive.  (Internal use only.) */
+#define MACH_RCV_INVALID_NAME           0x10004002
+/* Bogus name for receive port/port-set. */
+#define MACH_RCV_TIMED_OUT              0x10004003
+/* Didn't get a message within the timeout value. */
+#define MACH_RCV_TOO_LARGE              0x10004004
+/* Message buffer is not large enough for inline data. */
+#define MACH_RCV_INTERRUPTED            0x10004005
+/* Software interrupt. */
+#define MACH_RCV_PORT_CHANGED           0x10004006
+/* compatibility: no longer a returned error */
+#define MACH_RCV_INVALID_NOTIFY         0x10004007
+/* Bogus notify port argument. */
+#define MACH_RCV_INVALID_DATA           0x10004008
+/* Bogus message buffer for inline data. */
+#define MACH_RCV_PORT_DIED              0x10004009
+/* Port/set was sent away/died during receive. */
+#define MACH_RCV_IN_SET                 0x1000400a
+/* compatibility: no longer a returned error */
+#define MACH_RCV_HEADER_ERROR           0x1000400b
+/* Error receiving message header.  See special bits. */
+#define MACH_RCV_BODY_ERROR             0x1000400c
+/* Error receiving message body.  See special bits. */
+#define MACH_RCV_INVALID_TYPE           0x1000400d
+/* Invalid msg-type specification in scatter list. */
+#define MACH_RCV_SCATTER_SMALL          0x1000400e
+/* Out-of-line overwrite region is not large enough */
+#define MACH_RCV_INVALID_TRAILER        0x1000400f
+/* trailer type or number of trailer elements not supported */
+#define MACH_RCV_IN_PROGRESS_TIMED      0x10004011
+/* Waiting for receive with timeout. (Internal use only.) */
+#define MACH_RCV_INVALID_REPLY          0x10004012
+/* invalid reply port used in a STRICT_REPLY message */
+#define MACH_RCV_INVALID_ARGUMENTS      0x10004013
+/* invalid receive arguments, receive has not started */
+
+
+
+__BEGIN_DECLS
+
+/*
+ *	Routine:	mach_msg_overwrite
+ *	Purpose:
+ *		Send and/or receive a message.  If the message operation
+ *		is interrupted, and the user did not request an indication
+ *		of that fact, then restart the appropriate parts of the
+ *		operation silently (trap version does not restart).
+ *
+ *		Distinct send and receive buffers may be specified.  If
+ *		no separate receive buffer is specified, the msg parameter
+ *		will be used for both send and receive operations.
+ *
+ *		In addition to a distinct receive buffer, that buffer may
+ *		already contain scatter control information to direct the
+ *		receiving of the message.
+ */
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg_overwrite(
+	mach_msg_header_t *msg,
+	mach_msg_option_t option,
+	mach_msg_size_t send_size,
+	mach_msg_size_t rcv_size,
+	mach_port_name_t rcv_name,
+	mach_msg_timeout_t timeout,
+	mach_port_name_t notify,
+	mach_msg_header_t *rcv_msg,
+	mach_msg_size_t rcv_limit);
+
+
+/*
+ *	Routine:	mach_msg
+ *	Purpose:
+ *		Send and/or receive a message.  If the message operation
+ *		is interrupted, and the user did not request an indication
+ *		of that fact, then restart the appropriate parts of the
+ *		operation silently (trap version does not restart).
+ */
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern mach_msg_return_t        mach_msg(
+	mach_msg_header_t *msg,
+	mach_msg_option_t option,
+	mach_msg_size_t send_size,
+	mach_msg_size_t rcv_size,
+	mach_port_name_t rcv_name,
+	mach_msg_timeout_t timeout,
+	mach_port_name_t notify);
+
+
+/*
+ *  Routine:    mach_voucher_deallocate
+ *  Purpose:
+ *      Deallocate a mach voucher created or received in a message.  Drops
+ *      one (send right) reference to the voucher.
+ */
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+extern kern_return_t            mach_voucher_deallocate(
+	mach_port_name_t voucher);
+
+
+__END_DECLS
+
+#endif  /* _MACH_MESSAGE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/port.h b/lib/libc/include/any-macos.13-any/mach/port.h
new file mode 100644
index 0000000000000000000000000000000000000000..effc74aba4a4f49c2a58d5b3953543b9615ec9c7
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/port.h
@@ -0,0 +1,483 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ * NOTICE: This file was modified by McAfee Research in 2004 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+/*
+ */
+/*
+ *	File:	mach/port.h
+ *
+ *	Definition of a Mach port
+ *
+ *	Mach ports are the endpoints to Mach-implemented communications
+ *	channels (usually uni-directional message queues, but other types
+ *	also exist).
+ *
+ *	Unique collections of these endpoints are maintained for each
+ *	Mach task.  Each Mach port in the task's collection is given a
+ *	[task-local] name to identify it - and the the various "rights"
+ *	held by the task for that specific endpoint.
+ *
+ *	This header defines the types used to identify these Mach ports
+ *	and the various rights associated with them.  For more info see:
+ *
+ *	 - manipulation of port rights in a given space
+ *	 - message queue [and port right passing] mechanism
+ *
+ */
+
+#ifndef _MACH_PORT_H_
+#define _MACH_PORT_H_
+
+#include 
+#include 
+#include 
+#include 
+
+/*
+ *	mach_port_name_t - the local identity for a Mach port
+ *
+ *	The name is Mach port namespace specific.  It is used to
+ *	identify the rights held for that port by the task whose
+ *	namespace is implied [or specifically provided].
+ *
+ *	Use of this type usually implies just a name - no rights.
+ *	See mach_port_t for a type that implies a "named right."
+ *
+ */
+
+typedef natural_t mach_port_name_t;
+typedef mach_port_name_t *mach_port_name_array_t;
+
+
+/*
+ *	mach_port_t - a named port right
+ *
+ *	In user-space, "rights" are represented by the name of the
+ *	right in the Mach port namespace.  Even so, this type is
+ *	presented as a unique one to more clearly denote the presence
+ *	of a right coming along with the name.
+ *
+ *	Often, various rights for a port held in a single name space
+ *	will coalesce and are, therefore, be identified by a single name
+ *	[this is the case for send and receive rights].  But not
+ *	always [send-once rights currently get a unique name for
+ *	each right].
+ *
+ */
+
+#include 
+#include 
+
+
+typedef mach_port_t                     *mach_port_array_t;
+
+/*
+ *  MACH_PORT_NULL is a legal value that can be carried in messages.
+ *  It indicates the absence of any port or port rights.  (A port
+ *  argument keeps the message from being "simple", even if the
+ *  value is MACH_PORT_NULL.)  The value MACH_PORT_DEAD is also a legal
+ *  value that can be carried in messages.  It indicates
+ *  that a port right was present, but it died.
+ */
+
+#define MACH_PORT_NULL          0  /* intentional loose typing */
+#define MACH_PORT_DEAD          ((mach_port_name_t) ~0)
+#define MACH_PORT_VALID(name)                           \
+	        (((name) != MACH_PORT_NULL) &&          \
+	         ((name) != MACH_PORT_DEAD))
+
+
+/*
+ *	For kernel-selected [assigned] port names, the name is
+ *	comprised of two parts: a generation number and an index.
+ *	This approach keeps the exact same name from being generated
+ *	and reused too quickly [to catch right/reference counting bugs].
+ *	The dividing line between the constituent parts is exposed so
+ *	that efficient "mach_port_name_t to data structure pointer"
+ *	conversion implementation can be made.  But it is possible
+ *	for user-level code to assign their own names to Mach ports.
+ *	These are not required to participate in this algorithm.  So
+ *	care should be taken before "assuming" this model.
+ *
+ */
+
+#ifndef NO_PORT_GEN
+
+#define MACH_PORT_INDEX(name)           ((name) >> 8)
+#define MACH_PORT_GEN(name)             (((name) & 0xff) << 24)
+#define MACH_PORT_MAKE(index, gen)      \
+	        (((index) << 8) | (gen) >> 24)
+
+#else   /* NO_PORT_GEN */
+
+#define MACH_PORT_INDEX(name)           (name)
+#define MACH_PORT_GEN(name)             (0)
+#define MACH_PORT_MAKE(index, gen)      (index)
+
+#endif  /* NO_PORT_GEN */
+
+
+/*
+ *  These are the different rights a task may have for a port.
+ *  The MACH_PORT_RIGHT_* definitions are used as arguments
+ *  to mach_port_allocate, mach_port_get_refs, etc, to specify
+ *  a particular right to act upon.  The mach_port_names and
+ *  mach_port_type calls return bitmasks using the MACH_PORT_TYPE_*
+ *  definitions.  This is because a single name may denote
+ *  multiple rights.
+ */
+
+typedef natural_t mach_port_right_t;
+
+#define MACH_PORT_RIGHT_SEND            ((mach_port_right_t) 0)
+#define MACH_PORT_RIGHT_RECEIVE         ((mach_port_right_t) 1)
+#define MACH_PORT_RIGHT_SEND_ONCE       ((mach_port_right_t) 2)
+#define MACH_PORT_RIGHT_PORT_SET        ((mach_port_right_t) 3)
+#define MACH_PORT_RIGHT_DEAD_NAME       ((mach_port_right_t) 4)
+#define MACH_PORT_RIGHT_LABELH          ((mach_port_right_t) 5) /* obsolete right */
+#define MACH_PORT_RIGHT_NUMBER          ((mach_port_right_t) 6) /* right not implemented */
+
+
+typedef natural_t mach_port_type_t;
+typedef mach_port_type_t *mach_port_type_array_t;
+
+#define MACH_PORT_TYPE(right)                                           \
+	        ((mach_port_type_t)(((mach_port_type_t) 1)              \
+	        << ((right) + ((mach_port_right_t) 16))))
+#define MACH_PORT_TYPE_NONE         ((mach_port_type_t) 0L)
+#define MACH_PORT_TYPE_SEND         MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND)
+#define MACH_PORT_TYPE_RECEIVE      MACH_PORT_TYPE(MACH_PORT_RIGHT_RECEIVE)
+#define MACH_PORT_TYPE_SEND_ONCE    MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND_ONCE)
+#define MACH_PORT_TYPE_PORT_SET     MACH_PORT_TYPE(MACH_PORT_RIGHT_PORT_SET)
+#define MACH_PORT_TYPE_DEAD_NAME    MACH_PORT_TYPE(MACH_PORT_RIGHT_DEAD_NAME)
+#define MACH_PORT_TYPE_LABELH       MACH_PORT_TYPE(MACH_PORT_RIGHT_LABELH) /* obsolete */
+
+
+/* Convenient combinations. */
+
+#define MACH_PORT_TYPE_SEND_RECEIVE                                     \
+	        (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_RECEIVE)
+#define MACH_PORT_TYPE_SEND_RIGHTS                                      \
+	        (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_SEND_ONCE)
+#define MACH_PORT_TYPE_PORT_RIGHTS                                      \
+	        (MACH_PORT_TYPE_SEND_RIGHTS|MACH_PORT_TYPE_RECEIVE)
+#define MACH_PORT_TYPE_PORT_OR_DEAD                                     \
+	        (MACH_PORT_TYPE_PORT_RIGHTS|MACH_PORT_TYPE_DEAD_NAME)
+#define MACH_PORT_TYPE_ALL_RIGHTS                                       \
+	        (MACH_PORT_TYPE_PORT_OR_DEAD|MACH_PORT_TYPE_PORT_SET)
+
+/* Dummy type bits that mach_port_type/mach_port_names can return. */
+
+#define MACH_PORT_TYPE_DNREQUEST                0x80000000
+#define MACH_PORT_TYPE_SPREQUEST                0x40000000
+#define MACH_PORT_TYPE_SPREQUEST_DELAYED        0x20000000
+
+/* User-references for capabilities. */
+
+typedef natural_t mach_port_urefs_t;
+typedef integer_t mach_port_delta_t;                    /* change in urefs */
+
+/* Attributes of ports.  (See mach_port_get_receive_status.) */
+
+typedef natural_t mach_port_seqno_t;            /* sequence number */
+typedef natural_t mach_port_mscount_t;          /* make-send count */
+typedef natural_t mach_port_msgcount_t;         /* number of msgs */
+typedef natural_t mach_port_rights_t;           /* number of rights */
+
+/*
+ *	Are there outstanding send rights for a given port?
+ */
+#define MACH_PORT_SRIGHTS_NONE          0               /* no srights */
+#define MACH_PORT_SRIGHTS_PRESENT       1               /* srights */
+typedef unsigned int mach_port_srights_t;       /* status of send rights */
+
+typedef struct mach_port_status {
+	mach_port_rights_t      mps_pset;       /* count of containing port sets */
+	mach_port_seqno_t       mps_seqno;      /* sequence number */
+	mach_port_mscount_t     mps_mscount;    /* make-send count */
+	mach_port_msgcount_t    mps_qlimit;     /* queue limit */
+	mach_port_msgcount_t    mps_msgcount;   /* number in the queue */
+	mach_port_rights_t      mps_sorights;   /* how many send-once rights */
+	boolean_t               mps_srights;    /* do send rights exist? */
+	boolean_t               mps_pdrequest;  /* port-deleted requested? */
+	boolean_t               mps_nsrequest;  /* no-senders requested? */
+	natural_t               mps_flags;              /* port flags */
+} mach_port_status_t;
+
+/* System-wide values for setting queue limits on a port */
+#define MACH_PORT_QLIMIT_ZERO           (0)
+#define MACH_PORT_QLIMIT_BASIC          (5)
+#define MACH_PORT_QLIMIT_SMALL          (16)
+#define MACH_PORT_QLIMIT_LARGE          (1024)
+#define MACH_PORT_QLIMIT_KERNEL         (65534)
+#define MACH_PORT_QLIMIT_MIN            MACH_PORT_QLIMIT_ZERO
+#define MACH_PORT_QLIMIT_DEFAULT        MACH_PORT_QLIMIT_BASIC
+#define MACH_PORT_QLIMIT_MAX            MACH_PORT_QLIMIT_LARGE
+
+typedef struct mach_port_limits {
+	mach_port_msgcount_t    mpl_qlimit;     /* number of msgs */
+} mach_port_limits_t;
+
+/* Possible values for mps_flags (part of mach_port_status_t) */
+#define MACH_PORT_STATUS_FLAG_TEMPOWNER         0x01
+#define MACH_PORT_STATUS_FLAG_GUARDED           0x02
+#define MACH_PORT_STATUS_FLAG_STRICT_GUARD      0x04
+#define MACH_PORT_STATUS_FLAG_IMP_DONATION      0x08
+#define MACH_PORT_STATUS_FLAG_REVIVE            0x10
+#define MACH_PORT_STATUS_FLAG_TASKPTR           0x20
+#define MACH_PORT_STATUS_FLAG_GUARD_IMMOVABLE_RECEIVE 0x40
+#define MACH_PORT_STATUS_FLAG_NO_GRANT          0x80
+
+typedef struct mach_port_info_ext {
+	mach_port_status_t      mpie_status;
+	mach_port_msgcount_t    mpie_boost_cnt;
+	uint32_t                reserved[6];
+} mach_port_info_ext_t;
+
+typedef struct mach_port_guard_info {
+	uint64_t    mpgi_guard;     /* guard value */
+} mach_port_guard_info_t;
+
+typedef integer_t *mach_port_info_t;            /* varying array of natural_t */
+
+/* Flavors for mach_port_get/set/assert_attributes() */
+typedef int     mach_port_flavor_t;
+#define MACH_PORT_LIMITS_INFO           1       /* uses mach_port_limits_t */
+#define MACH_PORT_RECEIVE_STATUS        2       /* uses mach_port_status_t */
+#define MACH_PORT_DNREQUESTS_SIZE       3       /* info is int */
+#define MACH_PORT_TEMPOWNER             4       /* indicates receive right will be reassigned to another task */
+#define MACH_PORT_IMPORTANCE_RECEIVER   5       /* indicates recieve right accepts priority donation */
+#define MACH_PORT_DENAP_RECEIVER        6       /* indicates receive right accepts de-nap donation */
+#define MACH_PORT_INFO_EXT              7       /* uses mach_port_info_ext_t */
+#define MACH_PORT_GUARD_INFO            8       /* asserts if the strict guard value is correct */
+
+#define MACH_PORT_LIMITS_INFO_COUNT     ((natural_t) \
+	(sizeof(mach_port_limits_t)/sizeof(natural_t)))
+#define MACH_PORT_RECEIVE_STATUS_COUNT  ((natural_t) \
+	(sizeof(mach_port_status_t)/sizeof(natural_t)))
+#define MACH_PORT_DNREQUESTS_SIZE_COUNT 1
+#define MACH_PORT_INFO_EXT_COUNT        ((natural_t) \
+	(sizeof(mach_port_info_ext_t)/sizeof(natural_t)))
+#define MACH_PORT_GUARD_INFO_COUNT      ((natural_t) \
+	(sizeof(mach_port_guard_info_t)/sizeof(natural_t)))
+
+/*
+ * Structure used to pass information about port allocation requests.
+ * Must be padded to 64-bits total length.
+ */
+typedef struct mach_port_qos {
+	unsigned int            name:1;         /* name given */
+	unsigned int            prealloc:1;     /* prealloced message */
+	boolean_t               pad1:30;
+	natural_t               len;
+} mach_port_qos_t;
+
+/*
+ * Structure used to pass information about the service port
+ */
+#define MACH_SERVICE_PORT_INFO_STRING_NAME_MAX_BUF_LEN  255    /* Maximum length of the port string name buffer */
+
+typedef struct mach_service_port_info {
+	char                    mspi_string_name[MACH_SERVICE_PORT_INFO_STRING_NAME_MAX_BUF_LEN]; /* Service port's string name */
+	uint8_t                 mspi_domain_type;          /* Service port domain */
+} mach_service_port_info_data_t;
+
+#define MACH_SERVICE_PORT_INFO_COUNT ((char) \
+	(sizeof(mach_service_port_info_data_t)/sizeof(char)))
+
+typedef struct mach_service_port_info * mach_service_port_info_t;
+
+/*
+ * Flags for mach_port_options (used for
+ * invocation of mach_port_construct).
+ * Indicates attributes to be set for the newly
+ * allocated port.
+ */
+#define MPO_CONTEXT_AS_GUARD               0x01    /* Add guard to the port */
+#define MPO_QLIMIT                         0x02    /* Set qlimit for the port msg queue */
+#define MPO_TEMPOWNER                      0x04    /* Set the tempowner bit of the port */
+#define MPO_IMPORTANCE_RECEIVER            0x08    /* Mark the port as importance receiver */
+#define MPO_INSERT_SEND_RIGHT              0x10    /* Insert a send right for the port */
+#define MPO_STRICT                         0x20    /* Apply strict guarding for port */
+#define MPO_DENAP_RECEIVER                 0x40    /* Mark the port as App de-nap receiver */
+#define MPO_IMMOVABLE_RECEIVE              0x80    /* Mark the port as immovable; protected by the guard context */
+#define MPO_FILTER_MSG                     0x100   /* Allow message filtering */
+#define MPO_TG_BLOCK_TRACKING              0x200   /* Track blocking relationship for thread group during sync IPC */
+#define MPO_SERVICE_PORT                   0x400   /* Create a service port with the given name; should be used only by launchd */
+#define MPO_CONNECTION_PORT                0x800   /* Derive new peer connection port from a given service port */
+#define MPO_REPLY_PORT                     0x1000  /* Designate port as a reply port. */
+#define MPO_ENFORCE_REPLY_PORT_SEMANTICS   0x2000  /* When talking to this port, local port of mach msg needs to follow reply port semantics.*/
+#define MPO_PROVISIONAL_REPLY_PORT         0x4000  /* Designate port as a provisional reply port. */
+
+
+/*
+ * Structure to define optional attributes for a newly
+ * constructed port.
+ */
+typedef struct mach_port_options {
+	uint32_t                flags;          /* Flags defining attributes for port */
+	mach_port_limits_t      mpl;            /* Message queue limit for port */
+	union {
+		uint64_t                   reserved[2];           /* Reserved */
+		mach_port_name_t           work_interval_port;    /* Work interval port */
+		mach_service_port_info_t   service_port_info;     /* Service port (MPO_SERVICE_PORT) */
+		mach_port_name_t           service_port_name;     /* Service port (MPO_CONNECTION_PORT) */
+	};
+}mach_port_options_t;
+
+typedef mach_port_options_t *mach_port_options_ptr_t;
+
+/* Mach Port Guarding definitions */
+
+/*
+ * EXC_GUARD represents a guard violation for both
+ * mach ports and file descriptors. GUARD_TYPE_ is used
+ * to differentiate among them.
+ */
+#define GUARD_TYPE_MACH_PORT    0x1
+
+/* Reasons for exception for a guarded mach port */
+enum mach_port_guard_exception_codes {
+	kGUARD_EXC_DESTROY                   = 1,
+	kGUARD_EXC_MOD_REFS                  = 2,
+	kGUARD_EXC_INVALID_OPTIONS           = 3,
+	kGUARD_EXC_SET_CONTEXT               = 4,
+	kGUARD_EXC_UNGUARDED                 = 1u << 3,
+	kGUARD_EXC_INCORRECT_GUARD           = 1u << 4,
+	kGUARD_EXC_IMMOVABLE                 = 1u << 5,
+	kGUARD_EXC_STRICT_REPLY              = 1u << 6,
+	kGUARD_EXC_MSG_FILTERED              = 1u << 7,
+	/* start of [optionally] non-fatal guards */
+	kGUARD_EXC_INVALID_RIGHT         = 1u << 8,
+	kGUARD_EXC_INVALID_NAME          = 1u << 9,
+	kGUARD_EXC_INVALID_VALUE         = 1u << 10,
+	kGUARD_EXC_INVALID_ARGUMENT      = 1u << 11,
+	kGUARD_EXC_RIGHT_EXISTS          = 1u << 12,
+	kGUARD_EXC_KERN_NO_SPACE         = 1u << 13,
+	kGUARD_EXC_KERN_FAILURE          = 1u << 14,
+	kGUARD_EXC_KERN_RESOURCE         = 1u << 15,
+	kGUARD_EXC_SEND_INVALID_REPLY    = 1u << 16,
+	kGUARD_EXC_SEND_INVALID_VOUCHER  = 1u << 17,
+	kGUARD_EXC_SEND_INVALID_RIGHT    = 1u << 18,
+	kGUARD_EXC_RCV_INVALID_NAME      = 1u << 19,
+	/* start of always non-fatal guards */
+	kGUARD_EXC_RCV_GUARDED_DESC             = 1u << 20, /* for development only */
+	kGUARD_EXC_MOD_REFS_NON_FATAL           = 1u << 21,
+	kGUARD_EXC_IMMOVABLE_NON_FATAL          = 1u << 22,
+	kGUARD_EXC_REQUIRE_REPLY_PORT_SEMANTICS = 1u << 23,
+};
+
+#define MAX_FATAL_kGUARD_EXC_CODE (1u << 7)
+
+/*
+ * Mach port guard flags.
+ */
+#define MPG_FLAGS_NONE                             (0x00ull)
+
+#define MAX_OPTIONAL_kGUARD_EXC_CODE (1u << 19)
+
+/*
+ * These flags are used as bits in the subcode of kGUARD_EXC_STRICT_REPLY exceptions.
+ */
+#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_DISP  (0x01ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_PORT  (0x02ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_INVALID_VOUCHER     (0x04ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_NO_BANK_ATTR        (0x08ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_MISMATCHED_PERSONA  (0x10ull << 56)
+#define MPG_FLAGS_STRICT_REPLY_MASK                (0xffull << 56)
+
+/*
+ * These flags are used as bits in the subcode of kGUARD_EXC_MOD_REFS exceptions.
+ */
+#define MPG_FLAGS_MOD_REFS_PINNED_DEALLOC          (0x01ull << 56)
+#define MPG_FLAGS_MOD_REFS_PINNED_DESTROY          (0x02ull << 56)
+#define MPG_FLAGS_MOD_REFS_PINNED_COPYIN           (0x04ull << 56)
+
+/*
+ * These flags are used as bits in the subcode of kGUARD_EXC_IMMOVABLE exceptions.
+ */
+#define MPG_FLAGS_IMMOVABLE_PINNED                 (0x01ull << 56)
+
+/*
+ * Flags for mach_port_guard_with_flags. These flags extend
+ * the attributes associated with a guarded port.
+ */
+#define MPG_STRICT              0x01    /* Apply strict guarding for a port */
+#define MPG_IMMOVABLE_RECEIVE   0x02    /* Receive right cannot be moved out of the space */
+
+#if     !__DARWIN_UNIX03 && !defined(_NO_PORT_T_FROM_MACH)
+/*
+ *  Mach 3.0 renamed everything to have mach_ in front of it.
+ *  These types and macros are provided for backward compatibility
+ *	but are deprecated.
+ */
+typedef mach_port_t             port_t;
+typedef mach_port_name_t        port_name_t;
+typedef mach_port_name_t        *port_name_array_t;
+
+#define PORT_NULL               ((port_t) 0)
+#define PORT_DEAD               ((port_t) ~0)
+#define PORT_VALID(name) \
+	        ((port_t)(name) != PORT_NULL && (port_t)(name) != PORT_DEAD)
+
+#endif  /* !__DARWIN_UNIX03 && !_NO_PORT_T_FROM_MACH */
+
+#endif  /* _MACH_PORT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/processor.h b/lib/libc/include/any-macos.13-any/mach/processor.h
new file mode 100644
index 0000000000000000000000000000000000000000..054f258910e112c11b0b5f5e225fdcf340f79f37
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/processor.h
@@ -0,0 +1,364 @@
+#ifndef	_processor_user_
+#define	_processor_user_
+
+/* Module processor */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	processor_MSG_COUNT
+#define	processor_MSG_COUNT	6
+#endif	/* processor_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine processor_start */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_start
+(
+	processor_t processor
+);
+
+/* Routine processor_exit */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_exit
+(
+	processor_t processor
+);
+
+/* Routine processor_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_info
+(
+	processor_t processor,
+	processor_flavor_t flavor,
+	host_t *host,
+	processor_info_t processor_info_out,
+	mach_msg_type_number_t *processor_info_outCnt
+);
+
+/* Routine processor_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_control
+(
+	processor_t processor,
+	processor_info_t processor_cmd,
+	mach_msg_type_number_t processor_cmdCnt
+);
+
+/* Routine processor_assign */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_assign
+(
+	processor_t processor,
+	processor_set_t new_set,
+	boolean_t wait
+);
+
+/* Routine processor_get_assignment */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_get_assignment
+(
+	processor_t processor,
+	processor_set_name_t *assigned_set
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__processor_subsystem__defined
+#define __Request__processor_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_start_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_exit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		processor_flavor_t flavor;
+		mach_msg_type_number_t processor_info_outCnt;
+	} __Request__processor_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_msg_type_number_t processor_cmdCnt;
+		integer_t processor_cmd[20];
+	} __Request__processor_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_set;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t wait;
+	} __Request__processor_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__processor_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__processor_subsystem__defined
+#define __RequestUnion__processor_subsystem__defined
+union __RequestUnion__processor_subsystem {
+	__Request__processor_start_t Request_processor_start;
+	__Request__processor_exit_t Request_processor_exit;
+	__Request__processor_info_t Request_processor_info;
+	__Request__processor_control_t Request_processor_control;
+	__Request__processor_assign_t Request_processor_assign;
+	__Request__processor_get_assignment_t Request_processor_get_assignment;
+};
+#endif /* !__RequestUnion__processor_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__processor_subsystem__defined
+#define __Reply__processor_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_start_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_exit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t host;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t processor_info_outCnt;
+		integer_t processor_info_out[20];
+	} __Reply__processor_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t assigned_set;
+		/* end of the kernel processed data */
+	} __Reply__processor_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__processor_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__processor_subsystem__defined
+#define __ReplyUnion__processor_subsystem__defined
+union __ReplyUnion__processor_subsystem {
+	__Reply__processor_start_t Reply_processor_start;
+	__Reply__processor_exit_t Reply_processor_exit;
+	__Reply__processor_info_t Reply_processor_info;
+	__Reply__processor_control_t Reply_processor_control;
+	__Reply__processor_assign_t Reply_processor_assign;
+	__Reply__processor_get_assignment_t Reply_processor_get_assignment;
+};
+#endif /* !__RequestUnion__processor_subsystem__defined */
+
+#ifndef subsystem_to_name_map_processor
+#define subsystem_to_name_map_processor \
+    { "processor_start", 3000 },\
+    { "processor_exit", 3001 },\
+    { "processor_info", 3002 },\
+    { "processor_control", 3003 },\
+    { "processor_assign", 3004 },\
+    { "processor_get_assignment", 3005 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _processor_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/processor_info.h b/lib/libc/include/any-macos.13-any/mach/processor_info.h
new file mode 100644
index 0000000000000000000000000000000000000000..31bc0e89290719aeaa72a1b22202c87ab212fb6f
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/processor_info.h
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+
+/*
+ *	File:	mach/processor_info.h
+ *	Author:	David L. Black
+ *	Date:	1988
+ *
+ *	Data structure definitions for processor_info, processor_set_info
+ */
+
+#ifndef _MACH_PROCESSOR_INFO_H_
+#define _MACH_PROCESSOR_INFO_H_
+
+#include 
+#include 
+#include 
+
+/*
+ *	Generic information structure to allow for expansion.
+ */
+typedef integer_t       *processor_info_t;      /* varying array of int. */
+typedef integer_t       *processor_info_array_t;  /* varying array of int */
+
+#define PROCESSOR_INFO_MAX      (1024)  /* max array size */
+typedef integer_t       processor_info_data_t[PROCESSOR_INFO_MAX];
+
+
+typedef integer_t       *processor_set_info_t;  /* varying array of int. */
+
+#define PROCESSOR_SET_INFO_MAX  (1024)  /* max array size */
+typedef integer_t       processor_set_info_data_t[PROCESSOR_SET_INFO_MAX];
+
+/*
+ *	Currently defined information.
+ */
+typedef int     processor_flavor_t;
+#define PROCESSOR_BASIC_INFO    1               /* basic information */
+#define PROCESSOR_CPU_LOAD_INFO 2       /* cpu load information */
+#define PROCESSOR_PM_REGS_INFO  0x10000001      /* performance monitor register info */
+#define PROCESSOR_TEMPERATURE   0x10000002      /* Processor core temperature */
+
+struct processor_basic_info {
+	cpu_type_t      cpu_type;       /* type of cpu */
+	cpu_subtype_t   cpu_subtype;    /* subtype of cpu */
+	boolean_t       running;        /* is processor running */
+	int             slot_num;       /* slot number */
+	union {
+		boolean_t       is_master;  /* deprecated */
+		boolean_t       is_main;    /* is this the main processor */
+	};
+};
+
+typedef struct processor_basic_info     processor_basic_info_data_t;
+typedef struct processor_basic_info     *processor_basic_info_t;
+#define PROCESSOR_BASIC_INFO_COUNT      ((mach_msg_type_number_t) \
+	        (sizeof(processor_basic_info_data_t)/sizeof(natural_t)))
+
+struct processor_cpu_load_info {             /* number of ticks while running... */
+	unsigned int    cpu_ticks[CPU_STATE_MAX]; /* ... in the given mode */
+};
+
+typedef struct processor_cpu_load_info  processor_cpu_load_info_data_t;
+typedef struct processor_cpu_load_info  *processor_cpu_load_info_t;
+#define PROCESSOR_CPU_LOAD_INFO_COUNT   ((mach_msg_type_number_t) \
+	        (sizeof(processor_cpu_load_info_data_t)/sizeof(natural_t)))
+
+/*
+ *	Scaling factor for load_average, mach_factor.
+ */
+#define LOAD_SCALE      1000
+
+typedef int     processor_set_flavor_t;
+#define PROCESSOR_SET_BASIC_INFO        5       /* basic information */
+
+struct processor_set_basic_info {
+	int             processor_count;        /* How many processors */
+	int             default_policy;         /* When others not enabled */
+};
+
+typedef struct processor_set_basic_info processor_set_basic_info_data_t;
+typedef struct processor_set_basic_info *processor_set_basic_info_t;
+#define PROCESSOR_SET_BASIC_INFO_COUNT  ((mach_msg_type_number_t) \
+	        (sizeof(processor_set_basic_info_data_t)/sizeof(natural_t)))
+
+#define PROCESSOR_SET_LOAD_INFO         4       /* scheduling statistics */
+
+struct processor_set_load_info {
+	int             task_count;             /* How many tasks */
+	int             thread_count;           /* How many threads */
+	integer_t       load_average;           /* Scaled */
+	integer_t       mach_factor;            /* Scaled */
+};
+
+typedef struct processor_set_load_info processor_set_load_info_data_t;
+typedef struct processor_set_load_info *processor_set_load_info_t;
+#define PROCESSOR_SET_LOAD_INFO_COUNT   ((mach_msg_type_number_t) \
+	        (sizeof(processor_set_load_info_data_t)/sizeof(natural_t)))
+
+
+#endif  /* _MACH_PROCESSOR_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/processor_set.h b/lib/libc/include/any-macos.13-any/mach/processor_set.h
new file mode 100644
index 0000000000000000000000000000000000000000..49fcfbd2332e38937f22f574b64c2cf43cf65d83
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/processor_set.h
@@ -0,0 +1,589 @@
+#ifndef	_processor_set_user_
+#define	_processor_set_user_
+
+/* Module processor_set */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	processor_set_MSG_COUNT
+#define	processor_set_MSG_COUNT	11
+#endif	/* processor_set_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine processor_set_statistics */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_statistics
+(
+	processor_set_name_t pset,
+	processor_set_flavor_t flavor,
+	processor_set_info_t info_out,
+	mach_msg_type_number_t *info_outCnt
+);
+
+/* Routine processor_set_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_destroy
+(
+	processor_set_t set
+);
+
+/* Routine processor_set_max_priority */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_max_priority
+(
+	processor_set_t processor_set,
+	int max_priority,
+	boolean_t change_threads
+);
+
+/* Routine processor_set_policy_enable */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_policy_enable
+(
+	processor_set_t processor_set,
+	int policy
+);
+
+/* Routine processor_set_policy_disable */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_policy_disable
+(
+	processor_set_t processor_set,
+	int policy,
+	boolean_t change_threads
+);
+
+/* Routine processor_set_tasks */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_tasks
+(
+	processor_set_t processor_set,
+	task_array_t *task_list,
+	mach_msg_type_number_t *task_listCnt
+);
+
+/* Routine processor_set_threads */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_threads
+(
+	processor_set_t processor_set,
+	thread_act_array_t *thread_list,
+	mach_msg_type_number_t *thread_listCnt
+);
+
+/* Routine processor_set_policy_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_policy_control
+(
+	processor_set_t pset,
+	processor_set_flavor_t flavor,
+	processor_set_info_t policy_info,
+	mach_msg_type_number_t policy_infoCnt,
+	boolean_t change
+);
+
+/* Routine processor_set_stack_usage */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_stack_usage
+(
+	processor_set_t pset,
+	unsigned *ltotal,
+	vm_size_t *space,
+	vm_size_t *resident,
+	vm_size_t *maxusage,
+	vm_offset_t *maxstack
+);
+
+/* Routine processor_set_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_info
+(
+	processor_set_name_t set_name,
+	int flavor,
+	host_t *host,
+	processor_set_info_t info_out,
+	mach_msg_type_number_t *info_outCnt
+);
+
+/* Routine processor_set_tasks_with_flavor */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t processor_set_tasks_with_flavor
+(
+	processor_set_t processor_set,
+	mach_task_flavor_t flavor,
+	task_array_t *task_list,
+	mach_msg_type_number_t *task_listCnt
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__processor_set_subsystem__defined
+#define __Request__processor_set_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		processor_set_flavor_t flavor;
+		mach_msg_type_number_t info_outCnt;
+	} __Request__processor_set_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int max_priority;
+		boolean_t change_threads;
+	} __Request__processor_set_max_priority_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int policy;
+	} __Request__processor_set_policy_enable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int policy;
+		boolean_t change_threads;
+	} __Request__processor_set_policy_disable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_tasks_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_threads_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		processor_set_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[5];
+		boolean_t change;
+	} __Request__processor_set_policy_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__processor_set_stack_usage_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int flavor;
+		mach_msg_type_number_t info_outCnt;
+	} __Request__processor_set_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_task_flavor_t flavor;
+	} __Request__processor_set_tasks_with_flavor_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__processor_set_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__processor_set_subsystem__defined
+#define __RequestUnion__processor_set_subsystem__defined
+union __RequestUnion__processor_set_subsystem {
+	__Request__processor_set_statistics_t Request_processor_set_statistics;
+	__Request__processor_set_destroy_t Request_processor_set_destroy;
+	__Request__processor_set_max_priority_t Request_processor_set_max_priority;
+	__Request__processor_set_policy_enable_t Request_processor_set_policy_enable;
+	__Request__processor_set_policy_disable_t Request_processor_set_policy_disable;
+	__Request__processor_set_tasks_t Request_processor_set_tasks;
+	__Request__processor_set_threads_t Request_processor_set_threads;
+	__Request__processor_set_policy_control_t Request_processor_set_policy_control;
+	__Request__processor_set_stack_usage_t Request_processor_set_stack_usage;
+	__Request__processor_set_info_t Request_processor_set_info;
+	__Request__processor_set_tasks_with_flavor_t Request_processor_set_tasks_with_flavor;
+};
+#endif /* !__RequestUnion__processor_set_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__processor_set_subsystem__defined
+#define __Reply__processor_set_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t info_outCnt;
+		integer_t info_out[5];
+	} __Reply__processor_set_statistics_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_max_priority_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_policy_enable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_policy_disable_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t task_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t task_listCnt;
+	} __Reply__processor_set_tasks_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t thread_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t thread_listCnt;
+	} __Reply__processor_set_threads_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__processor_set_policy_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		unsigned ltotal;
+		vm_size_t space;
+		vm_size_t resident;
+		vm_size_t maxusage;
+		vm_offset_t maxstack;
+	} __Reply__processor_set_stack_usage_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t host;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t info_outCnt;
+		integer_t info_out[5];
+	} __Reply__processor_set_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t task_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t task_listCnt;
+	} __Reply__processor_set_tasks_with_flavor_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__processor_set_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__processor_set_subsystem__defined
+#define __ReplyUnion__processor_set_subsystem__defined
+union __ReplyUnion__processor_set_subsystem {
+	__Reply__processor_set_statistics_t Reply_processor_set_statistics;
+	__Reply__processor_set_destroy_t Reply_processor_set_destroy;
+	__Reply__processor_set_max_priority_t Reply_processor_set_max_priority;
+	__Reply__processor_set_policy_enable_t Reply_processor_set_policy_enable;
+	__Reply__processor_set_policy_disable_t Reply_processor_set_policy_disable;
+	__Reply__processor_set_tasks_t Reply_processor_set_tasks;
+	__Reply__processor_set_threads_t Reply_processor_set_threads;
+	__Reply__processor_set_policy_control_t Reply_processor_set_policy_control;
+	__Reply__processor_set_stack_usage_t Reply_processor_set_stack_usage;
+	__Reply__processor_set_info_t Reply_processor_set_info;
+	__Reply__processor_set_tasks_with_flavor_t Reply_processor_set_tasks_with_flavor;
+};
+#endif /* !__RequestUnion__processor_set_subsystem__defined */
+
+#ifndef subsystem_to_name_map_processor_set
+#define subsystem_to_name_map_processor_set \
+    { "processor_set_statistics", 4000 },\
+    { "processor_set_destroy", 4001 },\
+    { "processor_set_max_priority", 4002 },\
+    { "processor_set_policy_enable", 4003 },\
+    { "processor_set_policy_disable", 4004 },\
+    { "processor_set_tasks", 4005 },\
+    { "processor_set_threads", 4006 },\
+    { "processor_set_policy_control", 4007 },\
+    { "processor_set_stack_usage", 4008 },\
+    { "processor_set_info", 4009 },\
+    { "processor_set_tasks_with_flavor", 4010 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _processor_set_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/task.h b/lib/libc/include/any-macos.13-any/mach/task.h
new file mode 100644
index 0000000000000000000000000000000000000000..2fd8ea9876d1dce3a2a067de16cbd126b1e99533
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/task.h
@@ -0,0 +1,2839 @@
+#ifndef	_task_user_
+#define	_task_user_
+
+/* Module task */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	task_MSG_COUNT
+#define	task_MSG_COUNT	65
+#endif	/* task_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine task_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_create
+(
+	task_t target_task,
+	ledger_array_t ledgers,
+	mach_msg_type_number_t ledgersCnt,
+	boolean_t inherit_memory,
+	task_t *child_task
+);
+
+/* Routine task_terminate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_terminate
+(
+	task_t target_task
+);
+
+/* Routine task_threads */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_threads
+(
+	task_inspect_t target_task,
+	thread_act_array_t *act_list,
+	mach_msg_type_number_t *act_listCnt
+);
+
+/* Routine mach_ports_register */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t mach_ports_register
+(
+	task_t target_task,
+	mach_port_array_t init_port_set,
+	mach_msg_type_number_t init_port_setCnt
+);
+
+/* Routine mach_ports_lookup */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t mach_ports_lookup
+(
+	task_t target_task,
+	mach_port_array_t *init_port_set,
+	mach_msg_type_number_t *init_port_setCnt
+);
+
+/* Routine task_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_info
+(
+	task_name_t target_task,
+	task_flavor_t flavor,
+	task_info_t task_info_out,
+	mach_msg_type_number_t *task_info_outCnt
+);
+
+/* Routine task_set_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_set_info
+(
+	task_t target_task,
+	task_flavor_t flavor,
+	task_info_t task_info_in,
+	mach_msg_type_number_t task_info_inCnt
+);
+
+/* Routine task_suspend */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_suspend
+(
+	task_read_t target_task
+);
+
+/* Routine task_resume */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_resume
+(
+	task_read_t target_task
+);
+
+/* Routine task_get_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_get_special_port
+(
+	task_inspect_t task,
+	int which_port,
+	mach_port_t *special_port
+);
+
+/* Routine task_set_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_set_special_port
+(
+	task_t task,
+	int which_port,
+	mach_port_t special_port
+);
+
+/* Routine thread_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_create
+(
+	task_t parent_task,
+	thread_act_t *child_act
+);
+
+/* Routine thread_create_running */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_create_running
+(
+	task_t parent_task,
+	thread_state_flavor_t flavor,
+	thread_state_t new_state,
+	mach_msg_type_number_t new_stateCnt,
+	thread_act_t *child_act
+);
+
+/* Routine task_set_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_set_exception_ports
+(
+	task_t task,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor
+);
+
+/* Routine task_get_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_get_exception_ports
+(
+	task_t task,
+	exception_mask_t exception_mask,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine task_swap_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_swap_exception_ports
+(
+	task_t task,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine lock_set_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_set_create
+(
+	task_t task,
+	lock_set_t *new_lock_set,
+	int n_ulocks,
+	int policy
+);
+
+/* Routine lock_set_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t lock_set_destroy
+(
+	task_t task,
+	lock_set_t lock_set
+);
+
+/* Routine semaphore_create */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t semaphore_create
+(
+	task_t task,
+	semaphore_t *semaphore,
+	int policy,
+	int value
+);
+
+/* Routine semaphore_destroy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t semaphore_destroy
+(
+	task_t task,
+	semaphore_t semaphore
+);
+
+/* Routine task_policy_set */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_policy_set
+(
+	task_policy_set_t task,
+	task_policy_flavor_t flavor,
+	task_policy_t policy_info,
+	mach_msg_type_number_t policy_infoCnt
+);
+
+/* Routine task_policy_get */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_policy_get
+(
+	task_policy_get_t task,
+	task_policy_flavor_t flavor,
+	task_policy_t policy_info,
+	mach_msg_type_number_t *policy_infoCnt,
+	boolean_t *get_default
+);
+
+/* Routine task_sample */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_sample
+(
+	task_t task,
+	mach_port_t reply
+);
+
+/* Routine task_policy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_policy
+(
+	task_t task,
+	policy_t policy,
+	policy_base_t base,
+	mach_msg_type_number_t baseCnt,
+	boolean_t set_limit,
+	boolean_t change
+);
+
+/* Routine task_set_emulation */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_emulation
+(
+	task_t target_port,
+	vm_address_t routine_entry_pt,
+	int routine_number
+);
+
+/* Routine task_get_emulation_vector */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_emulation_vector
+(
+	task_t task,
+	int *vector_start,
+	emulation_vector_t *emulation_vector,
+	mach_msg_type_number_t *emulation_vectorCnt
+);
+
+/* Routine task_set_emulation_vector */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_emulation_vector
+(
+	task_t task,
+	int vector_start,
+	emulation_vector_t emulation_vector,
+	mach_msg_type_number_t emulation_vectorCnt
+);
+
+/* Routine task_set_ras_pc */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_ras_pc
+(
+	task_t target_task,
+	vm_address_t basepc,
+	vm_address_t boundspc
+);
+
+/* Routine task_zone_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_zone_info
+(
+	task_inspect_t target_task,
+	mach_zone_name_array_t *names,
+	mach_msg_type_number_t *namesCnt,
+	task_zone_info_array_t *info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine task_assign */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_assign
+(
+	task_t task,
+	processor_set_t new_set,
+	boolean_t assign_threads
+);
+
+/* Routine task_assign_default */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_assign_default
+(
+	task_t task,
+	boolean_t assign_threads
+);
+
+/* Routine task_get_assignment */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_assignment
+(
+	task_inspect_t task,
+	processor_set_name_t *assigned_set
+);
+
+/* Routine task_set_policy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_policy
+(
+	task_t task,
+	processor_set_t pset,
+	policy_t policy,
+	policy_base_t base,
+	mach_msg_type_number_t baseCnt,
+	policy_limit_t limit,
+	mach_msg_type_number_t limitCnt,
+	boolean_t change
+);
+
+/* Routine task_get_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_get_state
+(
+	task_read_t task,
+	thread_state_flavor_t flavor,
+	thread_state_t old_state,
+	mach_msg_type_number_t *old_stateCnt
+);
+
+/* Routine task_set_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_set_state
+(
+	task_t task,
+	thread_state_flavor_t flavor,
+	thread_state_t new_state,
+	mach_msg_type_number_t new_stateCnt
+);
+
+/* Routine task_set_phys_footprint_limit */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_set_phys_footprint_limit
+(
+	task_t task,
+	int new_limit,
+	int *old_limit
+);
+
+/* Routine task_suspend2 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_suspend2
+(
+	task_read_t target_task,
+	task_suspension_token_t *suspend_token
+);
+
+/* Routine task_resume2 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_resume2
+(
+	task_suspension_token_t suspend_token
+);
+
+/* Routine task_purgable_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_purgable_info
+(
+	task_inspect_t task,
+	task_purgable_info_t *stats
+);
+
+/* Routine task_get_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_get_mach_voucher
+(
+	task_read_t task,
+	mach_voucher_selector_t which,
+	ipc_voucher_t *voucher
+);
+
+/* Routine task_set_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_set_mach_voucher
+(
+	task_t task,
+	ipc_voucher_t voucher
+);
+
+/* Routine task_swap_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_swap_mach_voucher
+(
+	task_t task,
+	ipc_voucher_t new_voucher,
+	ipc_voucher_t *old_voucher
+);
+
+/* Routine task_generate_corpse */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_generate_corpse
+(
+	task_read_t task,
+	mach_port_t *corpse_task_port
+);
+
+/* Routine task_map_corpse_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_map_corpse_info
+(
+	task_t task,
+	task_read_t corspe_task,
+	vm_address_t *kcd_addr_begin,
+	uint32_t *kcd_size
+);
+
+/* Routine task_register_dyld_image_infos */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_register_dyld_image_infos
+(
+	task_t task,
+	dyld_kernel_image_info_array_t dyld_images,
+	mach_msg_type_number_t dyld_imagesCnt
+);
+
+/* Routine task_unregister_dyld_image_infos */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_unregister_dyld_image_infos
+(
+	task_t task,
+	dyld_kernel_image_info_array_t dyld_images,
+	mach_msg_type_number_t dyld_imagesCnt
+);
+
+/* Routine task_get_dyld_image_infos */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_dyld_image_infos
+(
+	task_read_t task,
+	dyld_kernel_image_info_array_t *dyld_images,
+	mach_msg_type_number_t *dyld_imagesCnt
+);
+
+/* Routine task_register_dyld_shared_cache_image_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_register_dyld_shared_cache_image_info
+(
+	task_t task,
+	dyld_kernel_image_info_t dyld_cache_image,
+	boolean_t no_cache,
+	boolean_t private_cache
+);
+
+/* Routine task_register_dyld_set_dyld_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_register_dyld_set_dyld_state
+(
+	task_t task,
+	uint8_t dyld_state
+);
+
+/* Routine task_register_dyld_get_process_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_register_dyld_get_process_state
+(
+	task_t task,
+	dyld_kernel_process_info_t *dyld_process_state
+);
+
+/* Routine task_map_corpse_info_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_map_corpse_info_64
+(
+	task_t task,
+	task_read_t corspe_task,
+	mach_vm_address_t *kcd_addr_begin,
+	mach_vm_size_t *kcd_size
+);
+
+/* Routine task_inspect */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_inspect
+(
+	task_inspect_t task,
+	task_inspect_flavor_t flavor,
+	task_inspect_info_t info_out,
+	mach_msg_type_number_t *info_outCnt
+);
+
+/* Routine task_get_exc_guard_behavior */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_exc_guard_behavior
+(
+	task_inspect_t task,
+	task_exc_guard_behavior_t *behavior
+);
+
+/* Routine task_set_exc_guard_behavior */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_exc_guard_behavior
+(
+	task_t task,
+	task_exc_guard_behavior_t behavior
+);
+
+/* Routine task_dyld_process_info_notify_register */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_dyld_process_info_notify_register
+(
+	task_read_t target_task,
+	mach_port_t notify
+);
+
+/* Routine task_create_identity_token */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_create_identity_token
+(
+	task_t task,
+	task_id_token_t *token
+);
+
+/* Routine task_identity_token_get_task_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_identity_token_get_task_port
+(
+	task_id_token_t token,
+	task_flavor_t flavor,
+	mach_port_t *task_port
+);
+
+/* Routine task_dyld_process_info_notify_deregister */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_dyld_process_info_notify_deregister
+(
+	task_read_t target_task,
+	mach_port_name_t notify
+);
+
+/* Routine task_get_exception_ports_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_get_exception_ports_info
+(
+	mach_port_t port,
+	exception_mask_t exception_mask,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_info_array_t old_handlers_info,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine task_test_sync_upcall */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_test_sync_upcall
+(
+	task_t task,
+	mach_port_t port
+);
+
+/* Routine task_set_corpse_forking_behavior */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_set_corpse_forking_behavior
+(
+	task_t task,
+	task_corpse_forking_behavior_t behavior
+);
+
+/* Routine task_test_async_upcall_propagation */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_test_async_upcall_propagation
+(
+	task_t task,
+	mach_port_t port,
+	int qos,
+	int iotier
+);
+
+/* Routine task_map_kcdata_object_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t task_map_kcdata_object_64
+(
+	task_t task,
+	kcdata_object_t kcdata_object,
+	mach_vm_address_t *kcd_addr_begin,
+	mach_vm_size_t *kcd_size
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__task_subsystem__defined
+#define __Request__task_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t ledgers;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t ledgersCnt;
+		boolean_t inherit_memory;
+	} __Request__task_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_terminate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_threads_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t init_port_set;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t init_port_setCnt;
+	} __Request__mach_ports_register_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__mach_ports_lookup_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_flavor_t flavor;
+		mach_msg_type_number_t task_info_outCnt;
+	} __Request__task_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_flavor_t flavor;
+		mach_msg_type_number_t task_info_inCnt;
+		integer_t task_info_in[90];
+	} __Request__task_set_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_suspend_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_resume_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int which_port;
+	} __Request__task_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t special_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int which_port;
+	} __Request__task_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t new_stateCnt;
+		natural_t new_state[1296];
+	} __Request__thread_create_running_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__task_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+	} __Request__task_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__task_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int n_ulocks;
+		int policy;
+	} __Request__lock_set_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t lock_set;
+		/* end of the kernel processed data */
+	} __Request__lock_set_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int policy;
+		int value;
+	} __Request__semaphore_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t semaphore;
+		/* end of the kernel processed data */
+	} __Request__semaphore_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_policy_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[16];
+	} __Request__task_policy_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_policy_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		boolean_t get_default;
+	} __Request__task_policy_get_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t reply;
+		/* end of the kernel processed data */
+	} __Request__task_sample_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		policy_t policy;
+		mach_msg_type_number_t baseCnt;
+		integer_t base[5];
+		boolean_t set_limit;
+		boolean_t change;
+	} __Request__task_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t routine_entry_pt;
+		int routine_number;
+	} __Request__task_set_emulation_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_get_emulation_vector_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t emulation_vector;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int vector_start;
+		mach_msg_type_number_t emulation_vectorCnt;
+	} __Request__task_set_emulation_vector_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t basepc;
+		vm_address_t boundspc;
+	} __Request__task_set_ras_pc_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_zone_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_set;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		boolean_t assign_threads;
+	} __Request__task_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		boolean_t assign_threads;
+	} __Request__task_assign_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t pset;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		policy_t policy;
+		mach_msg_type_number_t baseCnt;
+		integer_t base[5];
+		mach_msg_type_number_t limitCnt;
+		integer_t limit[1];
+		boolean_t change;
+	} __Request__task_set_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t old_stateCnt;
+	} __Request__task_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t new_stateCnt;
+		natural_t new_state[1296];
+	} __Request__task_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int new_limit;
+	} __Request__task_set_phys_footprint_limit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_suspend2_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_resume2_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_purgable_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_voucher_selector_t which;
+	} __Request__task_get_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Request__task_set_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_voucher;
+		mach_msg_port_descriptor_t old_voucher;
+		/* end of the kernel processed data */
+	} __Request__task_swap_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_generate_corpse_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t corspe_task;
+		/* end of the kernel processed data */
+	} __Request__task_map_corpse_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t dyld_images;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dyld_imagesCnt;
+	} __Request__task_register_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t dyld_images;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dyld_imagesCnt;
+	} __Request__task_unregister_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_get_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		dyld_kernel_image_info_t dyld_cache_image;
+		boolean_t no_cache;
+		boolean_t private_cache;
+	} __Request__task_register_dyld_shared_cache_image_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		uint8_t dyld_state;
+		char dyld_statePad[3];
+	} __Request__task_register_dyld_set_dyld_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_register_dyld_get_process_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t corspe_task;
+		/* end of the kernel processed data */
+	} __Request__task_map_corpse_info_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_inspect_flavor_t flavor;
+		mach_msg_type_number_t info_outCnt;
+	} __Request__task_inspect_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_get_exc_guard_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_exc_guard_behavior_t behavior;
+	} __Request__task_set_exc_guard_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t notify;
+		/* end of the kernel processed data */
+	} __Request__task_dyld_process_info_notify_register_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__task_create_identity_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_flavor_t flavor;
+	} __Request__task_identity_token_get_task_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_port_name_t notify;
+	} __Request__task_dyld_process_info_notify_deregister_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+	} __Request__task_get_exception_ports_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t port;
+		/* end of the kernel processed data */
+	} __Request__task_test_sync_upcall_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		task_corpse_forking_behavior_t behavior;
+	} __Request__task_set_corpse_forking_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int qos;
+		int iotier;
+	} __Request__task_test_async_upcall_propagation_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t kcdata_object;
+		/* end of the kernel processed data */
+	} __Request__task_map_kcdata_object_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__task_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__task_subsystem__defined
+#define __RequestUnion__task_subsystem__defined
+union __RequestUnion__task_subsystem {
+	__Request__task_create_t Request_task_create;
+	__Request__task_terminate_t Request_task_terminate;
+	__Request__task_threads_t Request_task_threads;
+	__Request__mach_ports_register_t Request_mach_ports_register;
+	__Request__mach_ports_lookup_t Request_mach_ports_lookup;
+	__Request__task_info_t Request_task_info;
+	__Request__task_set_info_t Request_task_set_info;
+	__Request__task_suspend_t Request_task_suspend;
+	__Request__task_resume_t Request_task_resume;
+	__Request__task_get_special_port_t Request_task_get_special_port;
+	__Request__task_set_special_port_t Request_task_set_special_port;
+	__Request__thread_create_t Request_thread_create;
+	__Request__thread_create_running_t Request_thread_create_running;
+	__Request__task_set_exception_ports_t Request_task_set_exception_ports;
+	__Request__task_get_exception_ports_t Request_task_get_exception_ports;
+	__Request__task_swap_exception_ports_t Request_task_swap_exception_ports;
+	__Request__lock_set_create_t Request_lock_set_create;
+	__Request__lock_set_destroy_t Request_lock_set_destroy;
+	__Request__semaphore_create_t Request_semaphore_create;
+	__Request__semaphore_destroy_t Request_semaphore_destroy;
+	__Request__task_policy_set_t Request_task_policy_set;
+	__Request__task_policy_get_t Request_task_policy_get;
+	__Request__task_sample_t Request_task_sample;
+	__Request__task_policy_t Request_task_policy;
+	__Request__task_set_emulation_t Request_task_set_emulation;
+	__Request__task_get_emulation_vector_t Request_task_get_emulation_vector;
+	__Request__task_set_emulation_vector_t Request_task_set_emulation_vector;
+	__Request__task_set_ras_pc_t Request_task_set_ras_pc;
+	__Request__task_zone_info_t Request_task_zone_info;
+	__Request__task_assign_t Request_task_assign;
+	__Request__task_assign_default_t Request_task_assign_default;
+	__Request__task_get_assignment_t Request_task_get_assignment;
+	__Request__task_set_policy_t Request_task_set_policy;
+	__Request__task_get_state_t Request_task_get_state;
+	__Request__task_set_state_t Request_task_set_state;
+	__Request__task_set_phys_footprint_limit_t Request_task_set_phys_footprint_limit;
+	__Request__task_suspend2_t Request_task_suspend2;
+	__Request__task_resume2_t Request_task_resume2;
+	__Request__task_purgable_info_t Request_task_purgable_info;
+	__Request__task_get_mach_voucher_t Request_task_get_mach_voucher;
+	__Request__task_set_mach_voucher_t Request_task_set_mach_voucher;
+	__Request__task_swap_mach_voucher_t Request_task_swap_mach_voucher;
+	__Request__task_generate_corpse_t Request_task_generate_corpse;
+	__Request__task_map_corpse_info_t Request_task_map_corpse_info;
+	__Request__task_register_dyld_image_infos_t Request_task_register_dyld_image_infos;
+	__Request__task_unregister_dyld_image_infos_t Request_task_unregister_dyld_image_infos;
+	__Request__task_get_dyld_image_infos_t Request_task_get_dyld_image_infos;
+	__Request__task_register_dyld_shared_cache_image_info_t Request_task_register_dyld_shared_cache_image_info;
+	__Request__task_register_dyld_set_dyld_state_t Request_task_register_dyld_set_dyld_state;
+	__Request__task_register_dyld_get_process_state_t Request_task_register_dyld_get_process_state;
+	__Request__task_map_corpse_info_64_t Request_task_map_corpse_info_64;
+	__Request__task_inspect_t Request_task_inspect;
+	__Request__task_get_exc_guard_behavior_t Request_task_get_exc_guard_behavior;
+	__Request__task_set_exc_guard_behavior_t Request_task_set_exc_guard_behavior;
+	__Request__task_dyld_process_info_notify_register_t Request_task_dyld_process_info_notify_register;
+	__Request__task_create_identity_token_t Request_task_create_identity_token;
+	__Request__task_identity_token_get_task_port_t Request_task_identity_token_get_task_port;
+	__Request__task_dyld_process_info_notify_deregister_t Request_task_dyld_process_info_notify_deregister;
+	__Request__task_get_exception_ports_info_t Request_task_get_exception_ports_info;
+	__Request__task_test_sync_upcall_t Request_task_test_sync_upcall;
+	__Request__task_set_corpse_forking_behavior_t Request_task_set_corpse_forking_behavior;
+	__Request__task_test_async_upcall_propagation_t Request_task_test_async_upcall_propagation;
+	__Request__task_map_kcdata_object_64_t Request_task_map_kcdata_object_64;
+};
+#endif /* !__RequestUnion__task_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__task_subsystem__defined
+#define __Reply__task_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t child_task;
+		/* end of the kernel processed data */
+	} __Reply__task_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_terminate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t act_list;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t act_listCnt;
+	} __Reply__task_threads_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__mach_ports_register_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_ports_descriptor_t init_port_set;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t init_port_setCnt;
+	} __Reply__mach_ports_lookup_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t task_info_outCnt;
+		integer_t task_info_out[90];
+	} __Reply__task_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_suspend_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_resume_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t special_port;
+		/* end of the kernel processed data */
+	} __Reply__task_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t child_act;
+		/* end of the kernel processed data */
+	} __Reply__thread_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t child_act;
+		/* end of the kernel processed data */
+	} __Reply__thread_create_running_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__task_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__task_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_lock_set;
+		/* end of the kernel processed data */
+	} __Reply__lock_set_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__lock_set_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t semaphore;
+		/* end of the kernel processed data */
+	} __Reply__semaphore_create_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__semaphore_destroy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_policy_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[16];
+		boolean_t get_default;
+	} __Reply__task_policy_get_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_sample_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_emulation_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t emulation_vector;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int vector_start;
+		mach_msg_type_number_t emulation_vectorCnt;
+	} __Reply__task_get_emulation_vector_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_emulation_vector_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_ras_pc_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t names;
+		mach_msg_ool_descriptor_t info;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t namesCnt;
+		mach_msg_type_number_t infoCnt;
+	} __Reply__task_zone_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_assign_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t assigned_set;
+		/* end of the kernel processed data */
+	} __Reply__task_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t old_stateCnt;
+		natural_t old_state[1296];
+	} __Reply__task_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		int old_limit;
+	} __Reply__task_set_phys_footprint_limit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t suspend_token;
+		/* end of the kernel processed data */
+	} __Reply__task_suspend2_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_resume2_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		task_purgable_info_t stats;
+	} __Reply__task_purgable_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Reply__task_get_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_voucher;
+		/* end of the kernel processed data */
+	} __Reply__task_swap_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t corpse_task_port;
+		/* end of the kernel processed data */
+	} __Reply__task_generate_corpse_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t kcd_addr_begin;
+		uint32_t kcd_size;
+	} __Reply__task_map_corpse_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_register_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_unregister_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t dyld_images;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dyld_imagesCnt;
+	} __Reply__task_get_dyld_image_infos_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_register_dyld_shared_cache_image_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_register_dyld_set_dyld_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		dyld_kernel_process_info_t dyld_process_state;
+	} __Reply__task_register_dyld_get_process_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_vm_address_t kcd_addr_begin;
+		mach_vm_size_t kcd_size;
+	} __Reply__task_map_corpse_info_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t info_outCnt;
+		integer_t info_out[4];
+	} __Reply__task_inspect_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		task_exc_guard_behavior_t behavior;
+	} __Reply__task_get_exc_guard_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_exc_guard_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_dyld_process_info_notify_register_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t token;
+		/* end of the kernel processed data */
+	} __Reply__task_create_identity_token_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t task_port;
+		/* end of the kernel processed data */
+	} __Reply__task_identity_token_get_task_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_dyld_process_info_notify_deregister_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_handler_info_t old_handlers_info[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__task_get_exception_ports_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_test_sync_upcall_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_set_corpse_forking_behavior_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_test_async_upcall_propagation_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_vm_address_t kcd_addr_begin;
+		mach_vm_size_t kcd_size;
+	} __Reply__task_map_kcdata_object_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__task_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__task_subsystem__defined
+#define __ReplyUnion__task_subsystem__defined
+union __ReplyUnion__task_subsystem {
+	__Reply__task_create_t Reply_task_create;
+	__Reply__task_terminate_t Reply_task_terminate;
+	__Reply__task_threads_t Reply_task_threads;
+	__Reply__mach_ports_register_t Reply_mach_ports_register;
+	__Reply__mach_ports_lookup_t Reply_mach_ports_lookup;
+	__Reply__task_info_t Reply_task_info;
+	__Reply__task_set_info_t Reply_task_set_info;
+	__Reply__task_suspend_t Reply_task_suspend;
+	__Reply__task_resume_t Reply_task_resume;
+	__Reply__task_get_special_port_t Reply_task_get_special_port;
+	__Reply__task_set_special_port_t Reply_task_set_special_port;
+	__Reply__thread_create_t Reply_thread_create;
+	__Reply__thread_create_running_t Reply_thread_create_running;
+	__Reply__task_set_exception_ports_t Reply_task_set_exception_ports;
+	__Reply__task_get_exception_ports_t Reply_task_get_exception_ports;
+	__Reply__task_swap_exception_ports_t Reply_task_swap_exception_ports;
+	__Reply__lock_set_create_t Reply_lock_set_create;
+	__Reply__lock_set_destroy_t Reply_lock_set_destroy;
+	__Reply__semaphore_create_t Reply_semaphore_create;
+	__Reply__semaphore_destroy_t Reply_semaphore_destroy;
+	__Reply__task_policy_set_t Reply_task_policy_set;
+	__Reply__task_policy_get_t Reply_task_policy_get;
+	__Reply__task_sample_t Reply_task_sample;
+	__Reply__task_policy_t Reply_task_policy;
+	__Reply__task_set_emulation_t Reply_task_set_emulation;
+	__Reply__task_get_emulation_vector_t Reply_task_get_emulation_vector;
+	__Reply__task_set_emulation_vector_t Reply_task_set_emulation_vector;
+	__Reply__task_set_ras_pc_t Reply_task_set_ras_pc;
+	__Reply__task_zone_info_t Reply_task_zone_info;
+	__Reply__task_assign_t Reply_task_assign;
+	__Reply__task_assign_default_t Reply_task_assign_default;
+	__Reply__task_get_assignment_t Reply_task_get_assignment;
+	__Reply__task_set_policy_t Reply_task_set_policy;
+	__Reply__task_get_state_t Reply_task_get_state;
+	__Reply__task_set_state_t Reply_task_set_state;
+	__Reply__task_set_phys_footprint_limit_t Reply_task_set_phys_footprint_limit;
+	__Reply__task_suspend2_t Reply_task_suspend2;
+	__Reply__task_resume2_t Reply_task_resume2;
+	__Reply__task_purgable_info_t Reply_task_purgable_info;
+	__Reply__task_get_mach_voucher_t Reply_task_get_mach_voucher;
+	__Reply__task_set_mach_voucher_t Reply_task_set_mach_voucher;
+	__Reply__task_swap_mach_voucher_t Reply_task_swap_mach_voucher;
+	__Reply__task_generate_corpse_t Reply_task_generate_corpse;
+	__Reply__task_map_corpse_info_t Reply_task_map_corpse_info;
+	__Reply__task_register_dyld_image_infos_t Reply_task_register_dyld_image_infos;
+	__Reply__task_unregister_dyld_image_infos_t Reply_task_unregister_dyld_image_infos;
+	__Reply__task_get_dyld_image_infos_t Reply_task_get_dyld_image_infos;
+	__Reply__task_register_dyld_shared_cache_image_info_t Reply_task_register_dyld_shared_cache_image_info;
+	__Reply__task_register_dyld_set_dyld_state_t Reply_task_register_dyld_set_dyld_state;
+	__Reply__task_register_dyld_get_process_state_t Reply_task_register_dyld_get_process_state;
+	__Reply__task_map_corpse_info_64_t Reply_task_map_corpse_info_64;
+	__Reply__task_inspect_t Reply_task_inspect;
+	__Reply__task_get_exc_guard_behavior_t Reply_task_get_exc_guard_behavior;
+	__Reply__task_set_exc_guard_behavior_t Reply_task_set_exc_guard_behavior;
+	__Reply__task_dyld_process_info_notify_register_t Reply_task_dyld_process_info_notify_register;
+	__Reply__task_create_identity_token_t Reply_task_create_identity_token;
+	__Reply__task_identity_token_get_task_port_t Reply_task_identity_token_get_task_port;
+	__Reply__task_dyld_process_info_notify_deregister_t Reply_task_dyld_process_info_notify_deregister;
+	__Reply__task_get_exception_ports_info_t Reply_task_get_exception_ports_info;
+	__Reply__task_test_sync_upcall_t Reply_task_test_sync_upcall;
+	__Reply__task_set_corpse_forking_behavior_t Reply_task_set_corpse_forking_behavior;
+	__Reply__task_test_async_upcall_propagation_t Reply_task_test_async_upcall_propagation;
+	__Reply__task_map_kcdata_object_64_t Reply_task_map_kcdata_object_64;
+};
+#endif /* !__RequestUnion__task_subsystem__defined */
+
+#ifndef subsystem_to_name_map_task
+#define subsystem_to_name_map_task \
+    { "task_create", 3400 },\
+    { "task_terminate", 3401 },\
+    { "task_threads", 3402 },\
+    { "mach_ports_register", 3403 },\
+    { "mach_ports_lookup", 3404 },\
+    { "task_info", 3405 },\
+    { "task_set_info", 3406 },\
+    { "task_suspend", 3407 },\
+    { "task_resume", 3408 },\
+    { "task_get_special_port", 3409 },\
+    { "task_set_special_port", 3410 },\
+    { "thread_create", 3411 },\
+    { "thread_create_running", 3412 },\
+    { "task_set_exception_ports", 3413 },\
+    { "task_get_exception_ports", 3414 },\
+    { "task_swap_exception_ports", 3415 },\
+    { "lock_set_create", 3416 },\
+    { "lock_set_destroy", 3417 },\
+    { "semaphore_create", 3418 },\
+    { "semaphore_destroy", 3419 },\
+    { "task_policy_set", 3420 },\
+    { "task_policy_get", 3421 },\
+    { "task_sample", 3422 },\
+    { "task_policy", 3423 },\
+    { "task_set_emulation", 3424 },\
+    { "task_get_emulation_vector", 3425 },\
+    { "task_set_emulation_vector", 3426 },\
+    { "task_set_ras_pc", 3427 },\
+    { "task_zone_info", 3428 },\
+    { "task_assign", 3429 },\
+    { "task_assign_default", 3430 },\
+    { "task_get_assignment", 3431 },\
+    { "task_set_policy", 3432 },\
+    { "task_get_state", 3433 },\
+    { "task_set_state", 3434 },\
+    { "task_set_phys_footprint_limit", 3435 },\
+    { "task_suspend2", 3436 },\
+    { "task_resume2", 3437 },\
+    { "task_purgable_info", 3438 },\
+    { "task_get_mach_voucher", 3439 },\
+    { "task_set_mach_voucher", 3440 },\
+    { "task_swap_mach_voucher", 3441 },\
+    { "task_generate_corpse", 3442 },\
+    { "task_map_corpse_info", 3443 },\
+    { "task_register_dyld_image_infos", 3444 },\
+    { "task_unregister_dyld_image_infos", 3445 },\
+    { "task_get_dyld_image_infos", 3446 },\
+    { "task_register_dyld_shared_cache_image_info", 3447 },\
+    { "task_register_dyld_set_dyld_state", 3448 },\
+    { "task_register_dyld_get_process_state", 3449 },\
+    { "task_map_corpse_info_64", 3450 },\
+    { "task_inspect", 3451 },\
+    { "task_get_exc_guard_behavior", 3452 },\
+    { "task_set_exc_guard_behavior", 3453 },\
+    { "task_dyld_process_info_notify_register", 3456 },\
+    { "task_create_identity_token", 3457 },\
+    { "task_identity_token_get_task_port", 3458 },\
+    { "task_dyld_process_info_notify_deregister", 3459 },\
+    { "task_get_exception_ports_info", 3460 },\
+    { "task_test_sync_upcall", 3461 },\
+    { "task_set_corpse_forking_behavior", 3462 },\
+    { "task_test_async_upcall_propagation", 3463 },\
+    { "task_map_kcdata_object_64", 3464 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _task_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/task_policy.h b/lib/libc/include/any-macos.13-any/mach/task_policy.h
new file mode 100644
index 0000000000000000000000000000000000000000..3e141668be80c1673a3ab98dfe15b5c347be1383
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/task_policy.h
@@ -0,0 +1,184 @@
+/*
+ * Copyright (c) 2000-2005 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 _MACH_TASK_POLICY_H_
+#define _MACH_TASK_POLICY_H_
+
+#include 
+
+/*
+ * These are the calls for accessing the policy parameters
+ * of a particular task.
+ *
+ * The extra 'get_default' parameter to the second call is
+ * IN/OUT as follows:
+ * 1) if asserted on the way in it indicates that the default
+ * values should be returned, not the ones currently set, in
+ * this case 'get_default' will always be asserted on return;
+ * 2) if unasserted on the way in, the current settings are
+ * desired and if still unasserted on return, then the info
+ * returned reflects the current settings, otherwise if
+ * 'get_default' returns asserted, it means that there are no
+ * current settings due to other parameters taking precedence,
+ * and the default ones are being returned instead.
+ */
+
+typedef natural_t       task_policy_flavor_t;
+typedef integer_t       *task_policy_t;
+
+/*
+ *  kern_return_t	task_policy_set(
+ *                                       task_t					task,
+ *                                       task_policy_flavor_t	flavor,
+ *                                       task_policy_t			policy_info,
+ *                                       mach_msg_type_number_t	count);
+ *
+ *  kern_return_t	task_policy_get(
+ *                                       task_t					task,
+ *                                       task_policy_flavor_t	flavor,
+ *                                       task_policy_t			policy_info,
+ *                                       mach_msg_type_number_t	*count,
+ *                                       boolean_t				*get_default);
+ */
+
+/*
+ * Defined flavors.
+ */
+/*
+ * TASK_CATEGORY_POLICY:
+ *
+ * This provides information to the kernel about the role
+ * of the task in the system.
+ *
+ * Parameters:
+ *
+ * role: Enumerated as follows:
+ *
+ * TASK_UNSPECIFIED is the default, since the role is not
+ * inherited from the parent.
+ *
+ * TASK_FOREGROUND_APPLICATION should be assigned when the
+ * task is a normal UI application in the foreground from
+ * the HI point of view.
+ * **N.B. There may be more than one of these at a given time.
+ *
+ * TASK_BACKGROUND_APPLICATION should be assigned when the
+ * task is a normal UI application in the background from
+ * the HI point of view.
+ *
+ * TASK_CONTROL_APPLICATION should be assigned to the unique
+ * UI application which implements the pop-up application dialog.
+ * There can only be one task at a time with this designation,
+ * which is assigned FCFS.
+ *
+ * TASK_GRAPHICS_SERVER should be assigned to the graphics
+ * management (window) server.  There can only be one task at
+ * a time with this designation, which is assigned FCFS.
+ */
+
+#define TASK_CATEGORY_POLICY            1
+
+#define TASK_SUPPRESSION_POLICY         3
+#define TASK_POLICY_STATE               4
+#define TASK_BASE_QOS_POLICY            8
+#define TASK_OVERRIDE_QOS_POLICY        9
+#define TASK_BASE_LATENCY_QOS_POLICY    10
+#define TASK_BASE_THROUGHPUT_QOS_POLICY 11
+
+typedef enum task_role {
+	TASK_RENICED                    = -1,
+	TASK_UNSPECIFIED                = 0,
+	TASK_FOREGROUND_APPLICATION     = 1,
+	TASK_BACKGROUND_APPLICATION     = 2,
+	TASK_CONTROL_APPLICATION        = 3,
+	TASK_GRAPHICS_SERVER            = 4,
+	TASK_THROTTLE_APPLICATION       = 5,
+	TASK_NONUI_APPLICATION          = 6,
+	TASK_DEFAULT_APPLICATION        = 7,
+	TASK_DARWINBG_APPLICATION       = 8,
+} task_role_t;
+
+struct task_category_policy {
+	task_role_t             role;
+};
+
+typedef struct task_category_policy             task_category_policy_data_t;
+typedef struct task_category_policy             *task_category_policy_t;
+
+#define TASK_CATEGORY_POLICY_COUNT      ((mach_msg_type_number_t) \
+	(sizeof (task_category_policy_data_t) / sizeof (integer_t)))
+
+
+enum task_latency_qos {
+	LATENCY_QOS_TIER_UNSPECIFIED = 0x0,
+	LATENCY_QOS_TIER_0 = ((0xFF << 16) | 1),
+	LATENCY_QOS_TIER_1 = ((0xFF << 16) | 2),
+	LATENCY_QOS_TIER_2 = ((0xFF << 16) | 3),
+	LATENCY_QOS_TIER_3 = ((0xFF << 16) | 4),
+	LATENCY_QOS_TIER_4 = ((0xFF << 16) | 5),
+	LATENCY_QOS_TIER_5 = ((0xFF << 16) | 6)
+};
+typedef integer_t       task_latency_qos_t;
+enum task_throughput_qos {
+	THROUGHPUT_QOS_TIER_UNSPECIFIED = 0x0,
+	THROUGHPUT_QOS_TIER_0 = ((0xFE << 16) | 1),
+	THROUGHPUT_QOS_TIER_1 = ((0xFE << 16) | 2),
+	THROUGHPUT_QOS_TIER_2 = ((0xFE << 16) | 3),
+	THROUGHPUT_QOS_TIER_3 = ((0xFE << 16) | 4),
+	THROUGHPUT_QOS_TIER_4 = ((0xFE << 16) | 5),
+	THROUGHPUT_QOS_TIER_5 = ((0xFE << 16) | 6),
+};
+
+#define LATENCY_QOS_LAUNCH_DEFAULT_TIER LATENCY_QOS_TIER_3
+#define THROUGHPUT_QOS_LAUNCH_DEFAULT_TIER THROUGHPUT_QOS_TIER_3
+
+typedef integer_t       task_throughput_qos_t;
+
+struct task_qos_policy {
+	task_latency_qos_t task_latency_qos_tier;
+	task_throughput_qos_t task_throughput_qos_tier;
+};
+
+typedef struct task_qos_policy *task_qos_policy_t;
+#define TASK_QOS_POLICY_COUNT   ((mach_msg_type_number_t) \
+	(sizeof (struct task_qos_policy) / sizeof (integer_t)))
+
+/* These should be removed - they belong in proc_info.h */
+#define PROC_FLAG_DARWINBG           0x8000    /* process in darwin background */
+#define PROC_FLAG_EXT_DARWINBG           0x10000   /* process in darwin background - external enforcement */
+#define PROC_FLAG_IOS_APPLEDAEMON    0x20000   /* process is apple ios daemon */
+#define PROC_FLAG_IOS_IMPPROMOTION   0x80000   /* process is apple ios daemon */
+#define PROC_FLAG_ADAPTIVE           0x100000  /* Process is adaptive */
+#define PROC_FLAG_ADAPTIVE_IMPORTANT 0x200000  /* Process is adaptive, and is currently important */
+#define PROC_FLAG_IMPORTANCE_DONOR   0x400000  /* Process is marked as an importance donor */
+#define PROC_FLAG_SUPPRESSED         0x800000  /* Process is suppressed */
+#define PROC_FLAG_APPLICATION        0x1000000 /* Process is an application */
+#define PROC_FLAG_IOS_APPLICATION PROC_FLAG_APPLICATION /* Process is an application */
+
+
+#endif  /* _MACH_TASK_POLICY_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/thread_act.h b/lib/libc/include/any-macos.13-any/mach/thread_act.h
new file mode 100644
index 0000000000000000000000000000000000000000..0e6c94350801fcf14151d6585280a8407986adca
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/thread_act.h
@@ -0,0 +1,1427 @@
+#ifndef	_thread_act_user_
+#define	_thread_act_user_
+
+/* Module thread_act */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	thread_act_MSG_COUNT
+#define	thread_act_MSG_COUNT	31
+#endif	/* thread_act_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine thread_terminate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_terminate
+(
+	thread_act_t target_act
+);
+
+/* Routine act_get_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t act_get_state
+(
+	thread_read_t target_act,
+	int flavor,
+	thread_state_t old_state,
+	mach_msg_type_number_t *old_stateCnt
+);
+
+/* Routine act_set_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t act_set_state
+(
+	thread_act_t target_act,
+	int flavor,
+	thread_state_t new_state,
+	mach_msg_type_number_t new_stateCnt
+);
+
+/* Routine thread_get_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_get_state
+(
+	thread_read_t target_act,
+	thread_state_flavor_t flavor,
+	thread_state_t old_state,
+	mach_msg_type_number_t *old_stateCnt
+);
+
+/* Routine thread_set_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_set_state
+(
+	thread_act_t target_act,
+	thread_state_flavor_t flavor,
+	thread_state_t new_state,
+	mach_msg_type_number_t new_stateCnt
+);
+
+/* Routine thread_suspend */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_suspend
+(
+	thread_read_t target_act
+);
+
+/* Routine thread_resume */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_resume
+(
+	thread_read_t target_act
+);
+
+/* Routine thread_abort */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_abort
+(
+	thread_act_t target_act
+);
+
+/* Routine thread_abort_safely */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__WATCHOS_PROHIBITED
+kern_return_t thread_abort_safely
+(
+	thread_act_t target_act
+);
+
+/* Routine thread_depress_abort */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_depress_abort
+(
+	thread_act_t thread
+);
+
+/* Routine thread_get_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_get_special_port
+(
+	thread_inspect_t thr_act,
+	int which_port,
+	mach_port_t *special_port
+);
+
+/* Routine thread_set_special_port */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_set_special_port
+(
+	thread_act_t thr_act,
+	int which_port,
+	mach_port_t special_port
+);
+
+/* Routine thread_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_info
+(
+	thread_inspect_t target_act,
+	thread_flavor_t flavor,
+	thread_info_t thread_info_out,
+	mach_msg_type_number_t *thread_info_outCnt
+);
+
+/* Routine thread_set_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_set_exception_ports
+(
+	thread_act_t thread,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor
+);
+
+/* Routine thread_get_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_get_exception_ports
+(
+	thread_act_t thread,
+	exception_mask_t exception_mask,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine thread_swap_exception_ports */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_swap_exception_ports
+(
+	thread_act_t thread,
+	exception_mask_t exception_mask,
+	mach_port_t new_port,
+	exception_behavior_t behavior,
+	thread_state_flavor_t new_flavor,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_array_t old_handlers,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+/* Routine thread_policy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_policy
+(
+	thread_act_t thr_act,
+	policy_t policy,
+	policy_base_t base,
+	mach_msg_type_number_t baseCnt,
+	boolean_t set_limit
+);
+
+/* Routine thread_policy_set */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_policy_set
+(
+	thread_act_t thread,
+	thread_policy_flavor_t flavor,
+	thread_policy_t policy_info,
+	mach_msg_type_number_t policy_infoCnt
+);
+
+/* Routine thread_policy_get */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_policy_get
+(
+	thread_inspect_t thread,
+	thread_policy_flavor_t flavor,
+	thread_policy_t policy_info,
+	mach_msg_type_number_t *policy_infoCnt,
+	boolean_t *get_default
+);
+
+/* Routine thread_sample */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_sample
+(
+	thread_act_t thread,
+	mach_port_t reply
+);
+
+/* Routine etap_trace_thread */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t etap_trace_thread
+(
+	thread_act_t target_act,
+	boolean_t trace_status
+);
+
+/* Routine thread_assign */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_assign
+(
+	thread_act_t thread,
+	processor_set_t new_set
+);
+
+/* Routine thread_assign_default */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_assign_default
+(
+	thread_act_t thread
+);
+
+/* Routine thread_get_assignment */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_get_assignment
+(
+	thread_inspect_t thread,
+	processor_set_name_t *assigned_set
+);
+
+/* Routine thread_set_policy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_set_policy
+(
+	thread_act_t thr_act,
+	processor_set_t pset,
+	policy_t policy,
+	policy_base_t base,
+	mach_msg_type_number_t baseCnt,
+	policy_limit_t limit,
+	mach_msg_type_number_t limitCnt
+);
+
+/* Routine thread_get_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_get_mach_voucher
+(
+	thread_read_t thr_act,
+	mach_voucher_selector_t which,
+	ipc_voucher_t *voucher
+);
+
+/* Routine thread_set_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_set_mach_voucher
+(
+	thread_act_t thr_act,
+	ipc_voucher_t voucher
+);
+
+/* Routine thread_swap_mach_voucher */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t thread_swap_mach_voucher
+(
+	thread_act_t thr_act,
+	ipc_voucher_t new_voucher,
+	ipc_voucher_t *old_voucher
+);
+
+/* Routine thread_convert_thread_state */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_convert_thread_state
+(
+	thread_act_t thread,
+	int direction,
+	thread_state_flavor_t flavor,
+	thread_state_t in_state,
+	mach_msg_type_number_t in_stateCnt,
+	thread_state_t out_state,
+	mach_msg_type_number_t *out_stateCnt
+);
+
+/* Routine thread_get_exception_ports_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t thread_get_exception_ports_info
+(
+	mach_port_t port,
+	exception_mask_t exception_mask,
+	exception_mask_array_t masks,
+	mach_msg_type_number_t *masksCnt,
+	exception_handler_info_array_t old_handlers_info,
+	exception_behavior_array_t old_behaviors,
+	exception_flavor_array_t old_flavors
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__thread_act_subsystem__defined
+#define __Request__thread_act_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_terminate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int flavor;
+		mach_msg_type_number_t old_stateCnt;
+	} __Request__act_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int flavor;
+		mach_msg_type_number_t new_stateCnt;
+		natural_t new_state[1296];
+	} __Request__act_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t old_stateCnt;
+	} __Request__thread_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t new_stateCnt;
+		natural_t new_state[1296];
+	} __Request__thread_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_suspend_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_resume_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_abort_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_abort_safely_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_depress_abort_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int which_port;
+	} __Request__thread_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t special_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		int which_port;
+	} __Request__thread_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_flavor_t flavor;
+		mach_msg_type_number_t thread_info_outCnt;
+	} __Request__thread_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__thread_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+	} __Request__thread_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_port;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+		exception_behavior_t behavior;
+		thread_state_flavor_t new_flavor;
+	} __Request__thread_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		policy_t policy;
+		mach_msg_type_number_t baseCnt;
+		integer_t base[5];
+		boolean_t set_limit;
+	} __Request__thread_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_policy_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[16];
+	} __Request__thread_policy_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		thread_policy_flavor_t flavor;
+		mach_msg_type_number_t policy_infoCnt;
+		boolean_t get_default;
+	} __Request__thread_policy_get_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t reply;
+		/* end of the kernel processed data */
+	} __Request__thread_sample_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		boolean_t trace_status;
+	} __Request__etap_trace_thread_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_set;
+		/* end of the kernel processed data */
+	} __Request__thread_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_assign_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__thread_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t pset;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		policy_t policy;
+		mach_msg_type_number_t baseCnt;
+		integer_t base[5];
+		mach_msg_type_number_t limitCnt;
+		integer_t limit[1];
+	} __Request__thread_set_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		mach_voucher_selector_t which;
+	} __Request__thread_get_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Request__thread_set_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t new_voucher;
+		mach_msg_port_descriptor_t old_voucher;
+		/* end of the kernel processed data */
+	} __Request__thread_swap_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		int direction;
+		thread_state_flavor_t flavor;
+		mach_msg_type_number_t in_stateCnt;
+		natural_t in_state[1296];
+		mach_msg_type_number_t out_stateCnt;
+	} __Request__thread_convert_thread_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		exception_mask_t exception_mask;
+	} __Request__thread_get_exception_ports_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__thread_act_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__thread_act_subsystem__defined
+#define __RequestUnion__thread_act_subsystem__defined
+union __RequestUnion__thread_act_subsystem {
+	__Request__thread_terminate_t Request_thread_terminate;
+	__Request__act_get_state_t Request_act_get_state;
+	__Request__act_set_state_t Request_act_set_state;
+	__Request__thread_get_state_t Request_thread_get_state;
+	__Request__thread_set_state_t Request_thread_set_state;
+	__Request__thread_suspend_t Request_thread_suspend;
+	__Request__thread_resume_t Request_thread_resume;
+	__Request__thread_abort_t Request_thread_abort;
+	__Request__thread_abort_safely_t Request_thread_abort_safely;
+	__Request__thread_depress_abort_t Request_thread_depress_abort;
+	__Request__thread_get_special_port_t Request_thread_get_special_port;
+	__Request__thread_set_special_port_t Request_thread_set_special_port;
+	__Request__thread_info_t Request_thread_info;
+	__Request__thread_set_exception_ports_t Request_thread_set_exception_ports;
+	__Request__thread_get_exception_ports_t Request_thread_get_exception_ports;
+	__Request__thread_swap_exception_ports_t Request_thread_swap_exception_ports;
+	__Request__thread_policy_t Request_thread_policy;
+	__Request__thread_policy_set_t Request_thread_policy_set;
+	__Request__thread_policy_get_t Request_thread_policy_get;
+	__Request__thread_sample_t Request_thread_sample;
+	__Request__etap_trace_thread_t Request_etap_trace_thread;
+	__Request__thread_assign_t Request_thread_assign;
+	__Request__thread_assign_default_t Request_thread_assign_default;
+	__Request__thread_get_assignment_t Request_thread_get_assignment;
+	__Request__thread_set_policy_t Request_thread_set_policy;
+	__Request__thread_get_mach_voucher_t Request_thread_get_mach_voucher;
+	__Request__thread_set_mach_voucher_t Request_thread_set_mach_voucher;
+	__Request__thread_swap_mach_voucher_t Request_thread_swap_mach_voucher;
+	__Request__thread_convert_thread_state_t Request_thread_convert_thread_state;
+	__Request__thread_get_exception_ports_info_t Request_thread_get_exception_ports_info;
+};
+#endif /* !__RequestUnion__thread_act_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__thread_act_subsystem__defined
+#define __Reply__thread_act_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_terminate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t old_stateCnt;
+		natural_t old_state[1296];
+	} __Reply__act_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__act_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t old_stateCnt;
+		natural_t old_state[1296];
+	} __Reply__thread_get_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_suspend_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_resume_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_abort_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_abort_safely_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_depress_abort_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t special_port;
+		/* end of the kernel processed data */
+	} __Reply__thread_get_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_special_port_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t thread_info_outCnt;
+		integer_t thread_info_out[32];
+	} __Reply__thread_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__thread_get_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_handlers[32];
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__thread_swap_exception_ports_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_policy_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t policy_infoCnt;
+		integer_t policy_info[16];
+		boolean_t get_default;
+	} __Reply__thread_policy_get_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_sample_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__etap_trace_thread_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_assign_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_assign_default_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t assigned_set;
+		/* end of the kernel processed data */
+	} __Reply__thread_get_assignment_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_policy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t voucher;
+		/* end of the kernel processed data */
+	} __Reply__thread_get_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__thread_set_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t old_voucher;
+		/* end of the kernel processed data */
+	} __Reply__thread_swap_mach_voucher_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t out_stateCnt;
+		natural_t out_state[1296];
+	} __Reply__thread_convert_thread_state_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		mach_msg_type_number_t masksCnt;
+		exception_mask_t masks[32];
+		exception_handler_info_t old_handlers_info[32];
+		exception_behavior_t old_behaviors[32];
+		thread_state_flavor_t old_flavors[32];
+	} __Reply__thread_get_exception_ports_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__thread_act_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__thread_act_subsystem__defined
+#define __ReplyUnion__thread_act_subsystem__defined
+union __ReplyUnion__thread_act_subsystem {
+	__Reply__thread_terminate_t Reply_thread_terminate;
+	__Reply__act_get_state_t Reply_act_get_state;
+	__Reply__act_set_state_t Reply_act_set_state;
+	__Reply__thread_get_state_t Reply_thread_get_state;
+	__Reply__thread_set_state_t Reply_thread_set_state;
+	__Reply__thread_suspend_t Reply_thread_suspend;
+	__Reply__thread_resume_t Reply_thread_resume;
+	__Reply__thread_abort_t Reply_thread_abort;
+	__Reply__thread_abort_safely_t Reply_thread_abort_safely;
+	__Reply__thread_depress_abort_t Reply_thread_depress_abort;
+	__Reply__thread_get_special_port_t Reply_thread_get_special_port;
+	__Reply__thread_set_special_port_t Reply_thread_set_special_port;
+	__Reply__thread_info_t Reply_thread_info;
+	__Reply__thread_set_exception_ports_t Reply_thread_set_exception_ports;
+	__Reply__thread_get_exception_ports_t Reply_thread_get_exception_ports;
+	__Reply__thread_swap_exception_ports_t Reply_thread_swap_exception_ports;
+	__Reply__thread_policy_t Reply_thread_policy;
+	__Reply__thread_policy_set_t Reply_thread_policy_set;
+	__Reply__thread_policy_get_t Reply_thread_policy_get;
+	__Reply__thread_sample_t Reply_thread_sample;
+	__Reply__etap_trace_thread_t Reply_etap_trace_thread;
+	__Reply__thread_assign_t Reply_thread_assign;
+	__Reply__thread_assign_default_t Reply_thread_assign_default;
+	__Reply__thread_get_assignment_t Reply_thread_get_assignment;
+	__Reply__thread_set_policy_t Reply_thread_set_policy;
+	__Reply__thread_get_mach_voucher_t Reply_thread_get_mach_voucher;
+	__Reply__thread_set_mach_voucher_t Reply_thread_set_mach_voucher;
+	__Reply__thread_swap_mach_voucher_t Reply_thread_swap_mach_voucher;
+	__Reply__thread_convert_thread_state_t Reply_thread_convert_thread_state;
+	__Reply__thread_get_exception_ports_info_t Reply_thread_get_exception_ports_info;
+};
+#endif /* !__RequestUnion__thread_act_subsystem__defined */
+
+#ifndef subsystem_to_name_map_thread_act
+#define subsystem_to_name_map_thread_act \
+    { "thread_terminate", 3600 },\
+    { "act_get_state", 3601 },\
+    { "act_set_state", 3602 },\
+    { "thread_get_state", 3603 },\
+    { "thread_set_state", 3604 },\
+    { "thread_suspend", 3605 },\
+    { "thread_resume", 3606 },\
+    { "thread_abort", 3607 },\
+    { "thread_abort_safely", 3608 },\
+    { "thread_depress_abort", 3609 },\
+    { "thread_get_special_port", 3610 },\
+    { "thread_set_special_port", 3611 },\
+    { "thread_info", 3612 },\
+    { "thread_set_exception_ports", 3613 },\
+    { "thread_get_exception_ports", 3614 },\
+    { "thread_swap_exception_ports", 3615 },\
+    { "thread_policy", 3616 },\
+    { "thread_policy_set", 3617 },\
+    { "thread_policy_get", 3618 },\
+    { "thread_sample", 3619 },\
+    { "etap_trace_thread", 3620 },\
+    { "thread_assign", 3621 },\
+    { "thread_assign_default", 3622 },\
+    { "thread_get_assignment", 3623 },\
+    { "thread_set_policy", 3624 },\
+    { "thread_get_mach_voucher", 3625 },\
+    { "thread_set_mach_voucher", 3626 },\
+    { "thread_swap_mach_voucher", 3627 },\
+    { "thread_convert_thread_state", 3628 },\
+    { "thread_get_exception_ports_info", 3630 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _thread_act_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/thread_policy.h b/lib/libc/include/any-macos.13-any/mach/thread_policy.h
new file mode 100644
index 0000000000000000000000000000000000000000..0e877929229ad8cec737b8cfb3ffa21b1c551dfc
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/thread_policy.h
@@ -0,0 +1,268 @@
+/*
+ * Copyright (c) 2000-2007 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 _MACH_THREAD_POLICY_H_
+#define _MACH_THREAD_POLICY_H_
+
+#include 
+
+/*
+ * These are the calls for accessing the policy parameters
+ * of a particular thread.
+ *
+ * The extra 'get_default' parameter to the second call is
+ * IN/OUT as follows:
+ * 1) if asserted on the way in it indicates that the default
+ * values should be returned, not the ones currently set, in
+ * this case 'get_default' will always be asserted on return;
+ * 2) if unasserted on the way in, the current settings are
+ * desired and if still unasserted on return, then the info
+ * returned reflects the current settings, otherwise if
+ * 'get_default' returns asserted, it means that there are no
+ * current settings due to other parameters taking precedence,
+ * and the default ones are being returned instead.
+ */
+
+typedef natural_t       thread_policy_flavor_t;
+typedef integer_t       *thread_policy_t;
+
+/*
+ *  kern_return_t	thread_policy_set(
+ *                                       thread_t					thread,
+ *                                       thread_policy_flavor_t		flavor,
+ *                                       thread_policy_t				policy_info,
+ *                                       mach_msg_type_number_t		count);
+ *
+ *  kern_return_t	thread_policy_get(
+ *                                       thread_t					thread,
+ *                                       thread_policy_flavor_t		flavor,
+ *                                       thread_policy_t				policy_info,
+ *                                       mach_msg_type_number_t		*count,
+ *                                       boolean_t					*get_default);
+ */
+
+/*
+ * Defined flavors.
+ */
+/*
+ * THREAD_STANDARD_POLICY:
+ *
+ * This is the standard (fair) scheduling mode, assigned to new
+ * threads.  The thread will be given processor time in a manner
+ * which apportions approximately equal share to long running
+ * computations.
+ *
+ * Parameters:
+ *	[none]
+ */
+
+#define THREAD_STANDARD_POLICY                  1
+
+struct thread_standard_policy {
+	natural_t               no_data;
+};
+
+typedef struct thread_standard_policy   thread_standard_policy_data_t;
+typedef struct thread_standard_policy   *thread_standard_policy_t;
+
+#define THREAD_STANDARD_POLICY_COUNT    0
+
+/*
+ * THREAD_EXTENDED_POLICY:
+ *
+ * Extended form of THREAD_STANDARD_POLICY, which supplies a
+ * hint indicating whether this is a long running computation.
+ *
+ * Parameters:
+ *
+ * timeshare: TRUE (the default) results in identical scheduling
+ * behavior as THREAD_STANDARD_POLICY.
+ */
+
+#define THREAD_EXTENDED_POLICY                  1
+
+struct thread_extended_policy {
+	boolean_t               timeshare;
+};
+
+typedef struct thread_extended_policy   thread_extended_policy_data_t;
+typedef struct thread_extended_policy   *thread_extended_policy_t;
+
+#define THREAD_EXTENDED_POLICY_COUNT    ((mach_msg_type_number_t) \
+	(sizeof (thread_extended_policy_data_t) / sizeof (integer_t)))
+
+/*
+ * THREAD_TIME_CONSTRAINT_POLICY:
+ *
+ * This scheduling mode is for threads which have real time
+ * constraints on their execution.
+ *
+ * Parameters:
+ *
+ * period: This is the nominal amount of time between separate
+ * processing arrivals, specified in absolute time units.  A
+ * value of 0 indicates that there is no inherent periodicity in
+ * the computation.
+ *
+ * computation: This is the nominal amount of computation
+ * time needed during a separate processing arrival, specified
+ * in absolute time units.  The thread may be preempted after
+ * the computation time has elapsed.
+ * If (computation < constraint/2) it will be forced to
+ * constraint/2 to avoid unintended preemption and associated
+ * timer interrupts.
+ *
+ * constraint: This is the maximum amount of real time that
+ * may elapse from the start of a separate processing arrival
+ * to the end of computation for logically correct functioning,
+ * specified in absolute time units.  Must be (>= computation).
+ * Note that latency = (constraint - computation).
+ *
+ * preemptible: IGNORED (This indicates that the computation may be
+ * interrupted, subject to the constraint specified above.)
+ */
+
+#define THREAD_TIME_CONSTRAINT_POLICY           2
+
+struct thread_time_constraint_policy {
+	uint32_t                period;
+	uint32_t                computation;
+	uint32_t                constraint;
+	boolean_t               preemptible;
+};
+
+typedef struct thread_time_constraint_policy    \
+        thread_time_constraint_policy_data_t;
+typedef struct thread_time_constraint_policy    \
+        *thread_time_constraint_policy_t;
+
+#define THREAD_TIME_CONSTRAINT_POLICY_COUNT     ((mach_msg_type_number_t) \
+	(sizeof (thread_time_constraint_policy_data_t) / sizeof (integer_t)))
+
+/*
+ * THREAD_PRECEDENCE_POLICY:
+ *
+ * This may be used to indicate the relative value of the
+ * computation compared to the other threads in the task.
+ *
+ * Parameters:
+ *
+ * importance: The importance is specified as a signed value.
+ */
+
+#define THREAD_PRECEDENCE_POLICY                3
+
+struct thread_precedence_policy {
+	integer_t               importance;
+};
+
+typedef struct thread_precedence_policy         thread_precedence_policy_data_t;
+typedef struct thread_precedence_policy         *thread_precedence_policy_t;
+
+#define THREAD_PRECEDENCE_POLICY_COUNT  ((mach_msg_type_number_t) \
+	(sizeof (thread_precedence_policy_data_t) / sizeof (integer_t)))
+
+/*
+ * THREAD_AFFINITY_POLICY:
+ *
+ * This policy is experimental.
+ * This may be used to express affinity relationships
+ * between threads in the task. Threads with the same affinity tag will
+ * be scheduled to share an L2 cache if possible. That is, affinity tags
+ * are a hint to the scheduler for thread placement.
+ *
+ * The namespace of affinity tags is generally local to one task. However,
+ * a child task created after the assignment of affinity tags by its parent
+ * will share that namespace. In particular, a family of forked processes
+ * may be created with a shared affinity namespace.
+ *
+ * Parameters:
+ * tag: The affinity set identifier.
+ */
+
+#define THREAD_AFFINITY_POLICY          4
+
+struct thread_affinity_policy {
+	integer_t       affinity_tag;
+};
+
+#define THREAD_AFFINITY_TAG_NULL                0
+
+typedef struct thread_affinity_policy           thread_affinity_policy_data_t;
+typedef struct thread_affinity_policy           *thread_affinity_policy_t;
+
+#define THREAD_AFFINITY_POLICY_COUNT    ((mach_msg_type_number_t) \
+	(sizeof (thread_affinity_policy_data_t) / sizeof (integer_t)))
+
+/*
+ * THREAD_BACKGROUND_POLICY:
+ */
+
+#define THREAD_BACKGROUND_POLICY        5
+
+struct thread_background_policy {
+	integer_t       priority;
+};
+
+#define THREAD_BACKGROUND_POLICY_DARWIN_BG 0x1000
+
+typedef struct thread_background_policy         thread_background_policy_data_t;
+typedef struct thread_background_policy         *thread_background_policy_t;
+
+#define THREAD_BACKGROUND_POLICY_COUNT  ((mach_msg_type_number_t) \
+	(sizeof (thread_background_policy_data_t) / sizeof (integer_t)))
+
+
+#define THREAD_LATENCY_QOS_POLICY       7
+typedef integer_t       thread_latency_qos_t;
+
+struct thread_latency_qos_policy {
+	thread_latency_qos_t thread_latency_qos_tier;
+};
+
+typedef struct thread_latency_qos_policy        thread_latency_qos_policy_data_t;
+typedef struct thread_latency_qos_policy        *thread_latency_qos_policy_t;
+
+#define THREAD_LATENCY_QOS_POLICY_COUNT ((mach_msg_type_number_t)       \
+	    (sizeof (thread_latency_qos_policy_data_t) / sizeof (integer_t)))
+
+#define THREAD_THROUGHPUT_QOS_POLICY    8
+typedef integer_t       thread_throughput_qos_t;
+
+struct thread_throughput_qos_policy {
+	thread_throughput_qos_t thread_throughput_qos_tier;
+};
+
+typedef struct thread_throughput_qos_policy     thread_throughput_qos_policy_data_t;
+typedef struct thread_throughput_qos_policy     *thread_throughput_qos_policy_t;
+
+#define THREAD_THROUGHPUT_QOS_POLICY_COUNT      ((mach_msg_type_number_t) \
+	    (sizeof (thread_throughput_qos_policy_data_t) / sizeof (integer_t)))
+
+
+#endif  /* _MACH_THREAD_POLICY_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/vm_map.h b/lib/libc/include/any-macos.13-any/mach/vm_map.h
new file mode 100644
index 0000000000000000000000000000000000000000..9d1f51b955600c868caa34f1f47f30f4c3201ccc
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/vm_map.h
@@ -0,0 +1,1506 @@
+#ifndef	_vm_map_user_
+#define	_vm_map_user_
+
+/* Module vm_map */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+	
+/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
+
+#if defined(__has_include)
+#if __has_include()
+#ifndef USING_MIG_STRNCPY_ZEROFILL
+#define USING_MIG_STRNCPY_ZEROFILL
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
+#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
+#endif
+	extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
+#endif /* __has_include() */
+#endif /* __has_include */
+	
+/* END MIG_STRNCPY_ZEROFILL CODE */
+
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+        char            * name;
+        function_ptr_t  function;
+} function_table_entry;
+typedef function_table_entry   *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef	vm_map_MSG_COUNT
+#define	vm_map_MSG_COUNT	33
+#endif	/* vm_map_MSG_COUNT */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include 
+__BEGIN_DECLS
+
+
+/* Routine vm_region */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_region
+(
+	vm_map_read_t target_task,
+	vm_address_t *address,
+	vm_size_t *size,
+	vm_region_flavor_t flavor,
+	vm_region_info_t info,
+	mach_msg_type_number_t *infoCnt,
+	mach_port_t *object_name
+);
+
+/* Routine vm_allocate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_allocate
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t size,
+	int flags
+);
+
+/* Routine vm_deallocate */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_deallocate
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size
+);
+
+/* Routine vm_protect */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_protect
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	boolean_t set_maximum,
+	vm_prot_t new_protection
+);
+
+/* Routine vm_inherit */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_inherit
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_inherit_t new_inheritance
+);
+
+/* Routine vm_read */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_read
+(
+	vm_map_read_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_offset_t *data,
+	mach_msg_type_number_t *dataCnt
+);
+
+/* Routine vm_read_list */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_read_list
+(
+	vm_map_read_t target_task,
+	vm_read_entry_t data_list,
+	natural_t count
+);
+
+/* Routine vm_write */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_write
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_offset_t data,
+	mach_msg_type_number_t dataCnt
+);
+
+/* Routine vm_copy */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_copy
+(
+	vm_map_t target_task,
+	vm_address_t source_address,
+	vm_size_t size,
+	vm_address_t dest_address
+);
+
+/* Routine vm_read_overwrite */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_read_overwrite
+(
+	vm_map_read_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_address_t data,
+	vm_size_t *outsize
+);
+
+/* Routine vm_msync */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_msync
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_sync_t sync_flags
+);
+
+/* Routine vm_behavior_set */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_behavior_set
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_behavior_t new_behavior
+);
+
+/* Routine vm_map */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_map
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t size,
+	vm_address_t mask,
+	int flags,
+	mem_entry_name_port_t object,
+	vm_offset_t offset,
+	boolean_t copy,
+	vm_prot_t cur_protection,
+	vm_prot_t max_protection,
+	vm_inherit_t inheritance
+);
+
+/* Routine vm_machine_attribute */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_machine_attribute
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_size_t size,
+	vm_machine_attribute_t attribute,
+	vm_machine_attribute_val_t *value
+);
+
+/* Routine vm_remap */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_remap
+(
+	vm_map_t target_task,
+	vm_address_t *target_address,
+	vm_size_t size,
+	vm_address_t mask,
+	int flags,
+	vm_map_t src_task,
+	vm_address_t src_address,
+	boolean_t copy,
+	vm_prot_t *cur_protection,
+	vm_prot_t *max_protection,
+	vm_inherit_t inheritance
+);
+
+/* Routine task_wire */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+__TVOS_PROHIBITED __WATCHOS_PROHIBITED
+kern_return_t task_wire
+(
+	vm_map_t target_task,
+	boolean_t must_wire
+);
+
+/* Routine mach_make_memory_entry */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_make_memory_entry
+(
+	vm_map_t target_task,
+	vm_size_t *size,
+	vm_offset_t offset,
+	vm_prot_t permission,
+	mem_entry_name_port_t *object_handle,
+	mem_entry_name_port_t parent_entry
+);
+
+/* Routine vm_map_page_query */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_map_page_query
+(
+	vm_map_read_t target_map,
+	vm_offset_t offset,
+	integer_t *disposition,
+	integer_t *ref_count
+);
+
+/* Routine mach_vm_region_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_vm_region_info
+(
+	vm_map_read_t task,
+	vm_address_t address,
+	vm_info_region_t *region,
+	vm_info_object_array_t *objects,
+	mach_msg_type_number_t *objectsCnt
+);
+
+/* Routine vm_mapped_pages_info */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_mapped_pages_info
+(
+	vm_map_read_t task,
+	page_address_array_t *pages,
+	mach_msg_type_number_t *pagesCnt
+);
+
+/* Routine vm_region_recurse */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_region_recurse
+(
+	vm_map_read_t target_task,
+	vm_address_t *address,
+	vm_size_t *size,
+	natural_t *nesting_depth,
+	vm_region_recurse_info_t info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine vm_region_recurse_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_region_recurse_64
+(
+	vm_map_read_t target_task,
+	vm_address_t *address,
+	vm_size_t *size,
+	natural_t *nesting_depth,
+	vm_region_recurse_info_t info,
+	mach_msg_type_number_t *infoCnt
+);
+
+/* Routine mach_vm_region_info_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_vm_region_info_64
+(
+	vm_map_read_t task,
+	vm_address_t address,
+	vm_info_region_64_t *region,
+	vm_info_object_array_t *objects,
+	mach_msg_type_number_t *objectsCnt
+);
+
+/* Routine vm_region_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_region_64
+(
+	vm_map_read_t target_task,
+	vm_address_t *address,
+	vm_size_t *size,
+	vm_region_flavor_t flavor,
+	vm_region_info_t info,
+	mach_msg_type_number_t *infoCnt,
+	mach_port_t *object_name
+);
+
+/* Routine mach_make_memory_entry_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t mach_make_memory_entry_64
+(
+	vm_map_t target_task,
+	memory_object_size_t *size,
+	memory_object_offset_t offset,
+	vm_prot_t permission,
+	mach_port_t *object_handle,
+	mem_entry_name_port_t parent_entry
+);
+
+/* Routine vm_map_64 */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_map_64
+(
+	vm_map_t target_task,
+	vm_address_t *address,
+	vm_size_t size,
+	vm_address_t mask,
+	int flags,
+	mem_entry_name_port_t object,
+	memory_object_offset_t offset,
+	boolean_t copy,
+	vm_prot_t cur_protection,
+	vm_prot_t max_protection,
+	vm_inherit_t inheritance
+);
+
+/* Routine vm_purgable_control */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_purgable_control
+(
+	vm_map_t target_task,
+	vm_address_t address,
+	vm_purgable_t control,
+	int *state
+);
+
+/* Routine vm_map_exec_lockdown */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_map_exec_lockdown
+(
+	vm_map_t target_task
+);
+
+/* Routine vm_remap_new */
+#ifdef	mig_external
+mig_external
+#else
+extern
+#endif	/* mig_external */
+kern_return_t vm_remap_new
+(
+	vm_map_t target_task,
+	vm_address_t *target_address,
+	vm_size_t size,
+	vm_address_t mask,
+	int flags,
+	vm_map_read_t src_task,
+	vm_address_t src_address,
+	boolean_t copy,
+	vm_prot_t *cur_protection,
+	vm_prot_t *max_protection,
+	vm_inherit_t inheritance
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate  */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here.  */
+/* For example, if any of the arguments are variable-    */
+/* sized, and less than the maximum is sent, the data    */
+/* will be packed tight in the actual message to reduce  */
+/* the presence of holes.                                */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__vm_map_subsystem__defined
+#define __Request__vm_map_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_region_flavor_t flavor;
+		mach_msg_type_number_t infoCnt;
+	} __Request__vm_region_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		int flags;
+	} __Request__vm_allocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+	} __Request__vm_deallocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		boolean_t set_maximum;
+		vm_prot_t new_protection;
+	} __Request__vm_protect_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_inherit_t new_inheritance;
+	} __Request__vm_inherit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+	} __Request__vm_read_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_read_entry_t data_list;
+		natural_t count;
+	} __Request__vm_read_list_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		mach_msg_type_number_t dataCnt;
+	} __Request__vm_write_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t source_address;
+		vm_size_t size;
+		vm_address_t dest_address;
+	} __Request__vm_copy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_address_t data;
+	} __Request__vm_read_overwrite_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_sync_t sync_flags;
+	} __Request__vm_msync_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_behavior_t new_behavior;
+	} __Request__vm_behavior_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_address_t mask;
+		int flags;
+		vm_offset_t offset;
+		boolean_t copy;
+		vm_prot_t cur_protection;
+		vm_prot_t max_protection;
+		vm_inherit_t inheritance;
+	} __Request__vm_map_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_machine_attribute_t attribute;
+		vm_machine_attribute_val_t value;
+	} __Request__vm_machine_attribute_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t src_task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t target_address;
+		vm_size_t size;
+		vm_address_t mask;
+		int flags;
+		vm_address_t src_address;
+		boolean_t copy;
+		vm_inherit_t inheritance;
+	} __Request__vm_remap_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		boolean_t must_wire;
+	} __Request__task_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t parent_entry;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_size_t size;
+		vm_offset_t offset;
+		vm_prot_t permission;
+	} __Request__mach_make_memory_entry_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_offset_t offset;
+	} __Request__vm_map_page_query_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+	} __Request__mach_vm_region_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__vm_mapped_pages_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		natural_t nesting_depth;
+		mach_msg_type_number_t infoCnt;
+	} __Request__vm_region_recurse_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		natural_t nesting_depth;
+		mach_msg_type_number_t infoCnt;
+	} __Request__vm_region_recurse_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+	} __Request__mach_vm_region_info_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_region_flavor_t flavor;
+		mach_msg_type_number_t infoCnt;
+	} __Request__vm_region_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t parent_entry;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		memory_object_size_t size;
+		memory_object_offset_t offset;
+		vm_prot_t permission;
+	} __Request__mach_make_memory_entry_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		vm_address_t mask;
+		int flags;
+		memory_object_offset_t offset;
+		boolean_t copy;
+		vm_prot_t cur_protection;
+		vm_prot_t max_protection;
+		vm_inherit_t inheritance;
+	} __Request__vm_map_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_purgable_t control;
+		int state;
+	} __Request__vm_purgable_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+	} __Request__vm_map_exec_lockdown_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t src_task;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t target_address;
+		vm_size_t size;
+		vm_address_t mask;
+		int flags;
+		vm_address_t src_address;
+		boolean_t copy;
+		vm_prot_t cur_protection;
+		vm_prot_t max_protection;
+		vm_inherit_t inheritance;
+	} __Request__vm_remap_new_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Request__vm_map_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__vm_map_subsystem__defined
+#define __RequestUnion__vm_map_subsystem__defined
+union __RequestUnion__vm_map_subsystem {
+	__Request__vm_region_t Request_vm_region;
+	__Request__vm_allocate_t Request_vm_allocate;
+	__Request__vm_deallocate_t Request_vm_deallocate;
+	__Request__vm_protect_t Request_vm_protect;
+	__Request__vm_inherit_t Request_vm_inherit;
+	__Request__vm_read_t Request_vm_read;
+	__Request__vm_read_list_t Request_vm_read_list;
+	__Request__vm_write_t Request_vm_write;
+	__Request__vm_copy_t Request_vm_copy;
+	__Request__vm_read_overwrite_t Request_vm_read_overwrite;
+	__Request__vm_msync_t Request_vm_msync;
+	__Request__vm_behavior_set_t Request_vm_behavior_set;
+	__Request__vm_map_t Request_vm_map;
+	__Request__vm_machine_attribute_t Request_vm_machine_attribute;
+	__Request__vm_remap_t Request_vm_remap;
+	__Request__task_wire_t Request_task_wire;
+	__Request__mach_make_memory_entry_t Request_mach_make_memory_entry;
+	__Request__vm_map_page_query_t Request_vm_map_page_query;
+	__Request__mach_vm_region_info_t Request_mach_vm_region_info;
+	__Request__vm_mapped_pages_info_t Request_vm_mapped_pages_info;
+	__Request__vm_region_recurse_t Request_vm_region_recurse;
+	__Request__vm_region_recurse_64_t Request_vm_region_recurse_64;
+	__Request__mach_vm_region_info_64_t Request_mach_vm_region_info_64;
+	__Request__vm_region_64_t Request_vm_region_64;
+	__Request__mach_make_memory_entry_64_t Request_mach_make_memory_entry_64;
+	__Request__vm_map_64_t Request_vm_map_64;
+	__Request__vm_purgable_control_t Request_vm_purgable_control;
+	__Request__vm_map_exec_lockdown_t Request_vm_map_exec_lockdown;
+	__Request__vm_remap_new_t Request_vm_remap_new;
+};
+#endif /* !__RequestUnion__vm_map_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__vm_map_subsystem__defined
+#define __Reply__vm_map_subsystem__defined
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object_name;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		mach_msg_type_number_t infoCnt;
+		int info[10];
+	} __Reply__vm_region_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+	} __Reply__vm_allocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_deallocate_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_protect_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_inherit_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t data;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t dataCnt;
+	} __Reply__vm_read_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_read_entry_t data_list;
+	} __Reply__vm_read_list_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_write_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_copy_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_size_t outsize;
+	} __Reply__vm_read_overwrite_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_msync_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_behavior_set_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+	} __Reply__vm_map_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_machine_attribute_val_t value;
+	} __Reply__vm_machine_attribute_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t target_address;
+		vm_prot_t cur_protection;
+		vm_prot_t max_protection;
+	} __Reply__vm_remap_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__task_wire_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object_handle;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_size_t size;
+	} __Reply__mach_make_memory_entry_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		integer_t disposition;
+		integer_t ref_count;
+	} __Reply__vm_map_page_query_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t objects;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_info_region_t region;
+		mach_msg_type_number_t objectsCnt;
+	} __Reply__mach_vm_region_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t pages;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		mach_msg_type_number_t pagesCnt;
+	} __Reply__vm_mapped_pages_info_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+		vm_size_t size;
+		natural_t nesting_depth;
+		mach_msg_type_number_t infoCnt;
+		int info[19];
+	} __Reply__vm_region_recurse_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+		vm_size_t size;
+		natural_t nesting_depth;
+		mach_msg_type_number_t infoCnt;
+		int info[19];
+	} __Reply__vm_region_recurse_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_ool_descriptor_t objects;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_info_region_64_t region;
+		mach_msg_type_number_t objectsCnt;
+	} __Reply__mach_vm_region_info_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object_name;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		vm_address_t address;
+		vm_size_t size;
+		mach_msg_type_number_t infoCnt;
+		int info[10];
+	} __Reply__vm_region_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		/* start of the kernel processed data */
+		mach_msg_body_t msgh_body;
+		mach_msg_port_descriptor_t object_handle;
+		/* end of the kernel processed data */
+		NDR_record_t NDR;
+		memory_object_size_t size;
+	} __Reply__mach_make_memory_entry_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t address;
+	} __Reply__vm_map_64_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		int state;
+	} __Reply__vm_purgable_control_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+	} __Reply__vm_map_exec_lockdown_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+
+#ifdef  __MigPackStructs
+#pragma pack(push, 4)
+#endif
+	typedef struct {
+		mach_msg_header_t Head;
+		NDR_record_t NDR;
+		kern_return_t RetCode;
+		vm_address_t target_address;
+		vm_prot_t cur_protection;
+		vm_prot_t max_protection;
+	} __Reply__vm_remap_new_t __attribute__((unused));
+#ifdef  __MigPackStructs
+#pragma pack(pop)
+#endif
+#endif /* !__Reply__vm_map_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__vm_map_subsystem__defined
+#define __ReplyUnion__vm_map_subsystem__defined
+union __ReplyUnion__vm_map_subsystem {
+	__Reply__vm_region_t Reply_vm_region;
+	__Reply__vm_allocate_t Reply_vm_allocate;
+	__Reply__vm_deallocate_t Reply_vm_deallocate;
+	__Reply__vm_protect_t Reply_vm_protect;
+	__Reply__vm_inherit_t Reply_vm_inherit;
+	__Reply__vm_read_t Reply_vm_read;
+	__Reply__vm_read_list_t Reply_vm_read_list;
+	__Reply__vm_write_t Reply_vm_write;
+	__Reply__vm_copy_t Reply_vm_copy;
+	__Reply__vm_read_overwrite_t Reply_vm_read_overwrite;
+	__Reply__vm_msync_t Reply_vm_msync;
+	__Reply__vm_behavior_set_t Reply_vm_behavior_set;
+	__Reply__vm_map_t Reply_vm_map;
+	__Reply__vm_machine_attribute_t Reply_vm_machine_attribute;
+	__Reply__vm_remap_t Reply_vm_remap;
+	__Reply__task_wire_t Reply_task_wire;
+	__Reply__mach_make_memory_entry_t Reply_mach_make_memory_entry;
+	__Reply__vm_map_page_query_t Reply_vm_map_page_query;
+	__Reply__mach_vm_region_info_t Reply_mach_vm_region_info;
+	__Reply__vm_mapped_pages_info_t Reply_vm_mapped_pages_info;
+	__Reply__vm_region_recurse_t Reply_vm_region_recurse;
+	__Reply__vm_region_recurse_64_t Reply_vm_region_recurse_64;
+	__Reply__mach_vm_region_info_64_t Reply_mach_vm_region_info_64;
+	__Reply__vm_region_64_t Reply_vm_region_64;
+	__Reply__mach_make_memory_entry_64_t Reply_mach_make_memory_entry_64;
+	__Reply__vm_map_64_t Reply_vm_map_64;
+	__Reply__vm_purgable_control_t Reply_vm_purgable_control;
+	__Reply__vm_map_exec_lockdown_t Reply_vm_map_exec_lockdown;
+	__Reply__vm_remap_new_t Reply_vm_remap_new;
+};
+#endif /* !__RequestUnion__vm_map_subsystem__defined */
+
+#ifndef subsystem_to_name_map_vm_map
+#define subsystem_to_name_map_vm_map \
+    { "vm_region", 3800 },\
+    { "vm_allocate", 3801 },\
+    { "vm_deallocate", 3802 },\
+    { "vm_protect", 3803 },\
+    { "vm_inherit", 3804 },\
+    { "vm_read", 3805 },\
+    { "vm_read_list", 3806 },\
+    { "vm_write", 3807 },\
+    { "vm_copy", 3808 },\
+    { "vm_read_overwrite", 3809 },\
+    { "vm_msync", 3810 },\
+    { "vm_behavior_set", 3811 },\
+    { "vm_map", 3812 },\
+    { "vm_machine_attribute", 3813 },\
+    { "vm_remap", 3814 },\
+    { "task_wire", 3815 },\
+    { "mach_make_memory_entry", 3816 },\
+    { "vm_map_page_query", 3817 },\
+    { "mach_vm_region_info", 3818 },\
+    { "vm_mapped_pages_info", 3819 },\
+    { "vm_region_recurse", 3821 },\
+    { "vm_region_recurse_64", 3822 },\
+    { "mach_vm_region_info_64", 3823 },\
+    { "vm_region_64", 3824 },\
+    { "mach_make_memory_entry_64", 3825 },\
+    { "vm_map_64", 3826 },\
+    { "vm_purgable_control", 3830 },\
+    { "vm_map_exec_lockdown", 3831 },\
+    { "vm_remap_new", 3832 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif	 /* _vm_map_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/vm_prot.h b/lib/libc/include/any-macos.13-any/mach/vm_prot.h
new file mode 100644
index 0000000000000000000000000000000000000000..9b455415fc46e0d18d93d7e6e8daae05ac30c19c
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/vm_prot.h
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2000-2021 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/vm_prot.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
+ *
+ *	Virtual memory protection definitions.
+ *
+ */
+
+#ifndef _MACH_VM_PROT_H_
+#define _MACH_VM_PROT_H_
+
+/*
+ *	Types defined:
+ *
+ *	vm_prot_t		VM protection values.
+ */
+
+typedef int             vm_prot_t;
+
+/*
+ *	Protection values, defined as bits within the vm_prot_t type
+ */
+
+#define VM_PROT_NONE    ((vm_prot_t) 0x00)
+
+#define VM_PROT_READ    ((vm_prot_t) 0x01)      /* read permission */
+#define VM_PROT_WRITE   ((vm_prot_t) 0x02)      /* write permission */
+#define VM_PROT_EXECUTE ((vm_prot_t) 0x04)      /* execute permission */
+
+/*
+ *	The default protection for newly-created virtual memory
+ */
+
+#define VM_PROT_DEFAULT (VM_PROT_READ|VM_PROT_WRITE)
+
+/*
+ *	The maximum privileges possible, for parameter checking.
+ */
+
+#define VM_PROT_ALL     (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
+
+/*
+ *	This is an alias to VM_PROT_EXECUTE to identify callers that
+ *	want to allocate an hardware assisted Read-only/read-write
+ *	trusted path in userland.
+ */
+#define        VM_PROT_RORW_TP                 (VM_PROT_EXECUTE)
+
+/*
+ *	An invalid protection value.
+ *	Used only by memory_object_lock_request to indicate no change
+ *	to page locks.  Using -1 here is a bad idea because it
+ *	looks like VM_PROT_ALL and then some.
+ */
+
+#define VM_PROT_NO_CHANGE_LEGACY       ((vm_prot_t) 0x08)
+#define VM_PROT_NO_CHANGE              ((vm_prot_t) 0x01000000)
+
+/*
+ *      When a caller finds that he cannot obtain write permission on a
+ *      mapped entry, the following flag can be used.  The entry will
+ *      be made "needs copy" effectively copying the object (using COW),
+ *      and write permission will be added to the maximum protections
+ *      for the associated entry.
+ */
+
+#define VM_PROT_COPY            ((vm_prot_t) 0x10)
+
+
+/*
+ *	Another invalid protection value.
+ *	Used only by memory_object_data_request upon an object
+ *	which has specified a copy_call copy strategy. It is used
+ *	when the kernel wants a page belonging to a copy of the
+ *	object, and is only asking the object as a result of
+ *	following a shadow chain. This solves the race between pages
+ *	being pushed up by the memory manager and the kernel
+ *	walking down the shadow chain.
+ */
+
+#define VM_PROT_WANTS_COPY      ((vm_prot_t) 0x10)
+
+
+/*
+ *      Another invalid protection value.
+ *	Indicates that the other protection bits are to be applied as a mask
+ *	against the actual protection bits of the map entry.
+ */
+#define VM_PROT_IS_MASK         ((vm_prot_t) 0x40)
+
+/*
+ * Another invalid protection value to support execute-only protection.
+ * VM_PROT_STRIP_READ is a special marker that tells mprotect to not
+ * set VM_PROT_READ. We have to do it this way because existing code
+ * expects the system to set VM_PROT_READ if VM_PROT_EXECUTE is set.
+ * VM_PROT_EXECUTE_ONLY is just a convenience value to indicate that
+ * the memory should be executable and explicitly not readable. It will
+ * be ignored on platforms that do not support this type of protection.
+ */
+#define VM_PROT_STRIP_READ              ((vm_prot_t) 0x80)
+#define VM_PROT_EXECUTE_ONLY    (VM_PROT_EXECUTE|VM_PROT_STRIP_READ)
+
+
+#if defined(__x86_64__)
+/*
+ * Another invalid protection value to support specifying different
+ * execute permissions for user- and supervisor- modes.  When
+ * MBE is enabled in a VM, VM_PROT_EXECUTE is used to indicate
+ * supervisor-mode execute permission, and VM_PROT_UEXEC specifies
+ * user-mode execute permission.  Currently only used by the
+ * x86 Hypervisor kext.
+ */
+#define VM_PROT_UEXEC                   ((vm_prot_t) 0x8)     /* User-mode Execute Permission */
+
+#define VM_PROT_ALLEXEC                 (VM_PROT_EXECUTE | VM_PROT_UEXEC)
+#else
+#define VM_PROT_ALLEXEC                 (VM_PROT_EXECUTE)
+#endif /* defined(__x86_64__) */
+
+
+#endif  /* _MACH_VM_PROT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach/vm_statistics.h b/lib/libc/include/any-macos.13-any/mach/vm_statistics.h
new file mode 100644
index 0000000000000000000000000000000000000000..172e7f3bef008ad716bb834d803283e935edc2a1
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach/vm_statistics.h
@@ -0,0 +1,566 @@
+/*
+ * Copyright (c) 2000-2020 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@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach/vm_statistics.h
+ *	Author:	Avadis Tevanian, Jr., Michael Wayne Young, David Golub
+ *
+ *	Virtual memory statistics structure.
+ *
+ */
+
+#ifndef _MACH_VM_STATISTICS_H_
+#define _MACH_VM_STATISTICS_H_
+
+#include 
+
+__BEGIN_DECLS
+
+#include 
+#include 
+
+/*
+ * vm_statistics
+ *
+ * History:
+ *	rev0 -  original structure.
+ *	rev1 -  added purgable info (purgable_count and purges).
+ *	rev2 -  added speculative_count.
+ *
+ * Note: you cannot add any new fields to this structure. Add them below in
+ *       vm_statistics64.
+ */
+
+struct vm_statistics {
+	natural_t       free_count;             /* # of pages free */
+	natural_t       active_count;           /* # of pages active */
+	natural_t       inactive_count;         /* # of pages inactive */
+	natural_t       wire_count;             /* # of pages wired down */
+	natural_t       zero_fill_count;        /* # of zero fill pages */
+	natural_t       reactivations;          /* # of pages reactivated */
+	natural_t       pageins;                /* # of pageins */
+	natural_t       pageouts;               /* # of pageouts */
+	natural_t       faults;                 /* # of faults */
+	natural_t       cow_faults;             /* # of copy-on-writes */
+	natural_t       lookups;                /* object cache lookups */
+	natural_t       hits;                   /* object cache hits */
+
+	/* added for rev1 */
+	natural_t       purgeable_count;        /* # of pages purgeable */
+	natural_t       purges;                 /* # of pages purged */
+
+	/* added for rev2 */
+	/*
+	 * NB: speculative pages are already accounted for in "free_count",
+	 * so "speculative_count" is the number of "free" pages that are
+	 * used to hold data that was read speculatively from disk but
+	 * haven't actually been used by anyone so far.
+	 */
+	natural_t       speculative_count;      /* # of pages speculative */
+};
+
+/* Used by all architectures */
+typedef struct vm_statistics    *vm_statistics_t;
+typedef struct vm_statistics    vm_statistics_data_t;
+
+/*
+ * vm_statistics64
+ *
+ * History:
+ *	rev0 -  original structure.
+ *	rev1 -  added purgable info (purgable_count and purges).
+ *	rev2 -  added speculative_count.
+ *	   ----
+ *	rev3 -  changed name to vm_statistics64.
+ *		changed some fields in structure to 64-bit on
+ *		arm, i386 and x86_64 architectures.
+ *	rev4 -  require 64-bit alignment for efficient access
+ *		in the kernel. No change to reported data.
+ *
+ */
+
+struct vm_statistics64 {
+	natural_t       free_count;             /* # of pages free */
+	natural_t       active_count;           /* # of pages active */
+	natural_t       inactive_count;         /* # of pages inactive */
+	natural_t       wire_count;             /* # of pages wired down */
+	uint64_t        zero_fill_count;        /* # of zero fill pages */
+	uint64_t        reactivations;          /* # of pages reactivated */
+	uint64_t        pageins;                /* # of pageins */
+	uint64_t        pageouts;               /* # of pageouts */
+	uint64_t        faults;                 /* # of faults */
+	uint64_t        cow_faults;             /* # of copy-on-writes */
+	uint64_t        lookups;                /* object cache lookups */
+	uint64_t        hits;                   /* object cache hits */
+	uint64_t        purges;                 /* # of pages purged */
+	natural_t       purgeable_count;        /* # of pages purgeable */
+	/*
+	 * NB: speculative pages are already accounted for in "free_count",
+	 * so "speculative_count" is the number of "free" pages that are
+	 * used to hold data that was read speculatively from disk but
+	 * haven't actually been used by anyone so far.
+	 */
+	natural_t       speculative_count;      /* # of pages speculative */
+
+	/* added for rev1 */
+	uint64_t        decompressions;         /* # of pages decompressed */
+	uint64_t        compressions;           /* # of pages compressed */
+	uint64_t        swapins;                /* # of pages swapped in (via compression segments) */
+	uint64_t        swapouts;               /* # of pages swapped out (via compression segments) */
+	natural_t       compressor_page_count;  /* # of pages used by the compressed pager to hold all the compressed data */
+	natural_t       throttled_count;        /* # of pages throttled */
+	natural_t       external_page_count;    /* # of pages that are file-backed (non-swap) */
+	natural_t       internal_page_count;    /* # of pages that are anonymous */
+	uint64_t        total_uncompressed_pages_in_compressor; /* # of pages (uncompressed) held within the compressor. */
+} __attribute__((aligned(8)));
+
+typedef struct vm_statistics64  *vm_statistics64_t;
+typedef struct vm_statistics64  vm_statistics64_data_t;
+
+kern_return_t vm_stats(void *info, unsigned int *count);
+
+/*
+ * VM_STATISTICS_TRUNCATE_TO_32_BIT
+ *
+ * This is used by host_statistics() to truncate and peg the 64-bit in-kernel values from
+ * vm_statistics64 to the 32-bit values of the older structure above (vm_statistics).
+ */
+#define VM_STATISTICS_TRUNCATE_TO_32_BIT(value) ((uint32_t)(((value) > UINT32_MAX ) ? UINT32_MAX : (value)))
+
+/*
+ * vm_extmod_statistics
+ *
+ * Structure to record modifications to a task by an
+ * external agent.
+ *
+ * History:
+ *	rev0 -  original structure.
+ */
+
+struct vm_extmod_statistics {
+	int64_t task_for_pid_count;                     /* # of times task port was looked up */
+	int64_t task_for_pid_caller_count;      /* # of times this task called task_for_pid */
+	int64_t thread_creation_count;          /* # of threads created in task */
+	int64_t thread_creation_caller_count;   /* # of threads created by task */
+	int64_t thread_set_state_count;         /* # of register state sets in task */
+	int64_t thread_set_state_caller_count;  /* # of register state sets by task */
+} __attribute__((aligned(8)));
+
+typedef struct vm_extmod_statistics *vm_extmod_statistics_t;
+typedef struct vm_extmod_statistics vm_extmod_statistics_data_t;
+
+typedef struct vm_purgeable_stat {
+	uint64_t        count;
+	uint64_t        size;
+}vm_purgeable_stat_t;
+
+struct vm_purgeable_info {
+	vm_purgeable_stat_t fifo_data[8];
+	vm_purgeable_stat_t obsolete_data;
+	vm_purgeable_stat_t lifo_data[8];
+};
+
+typedef struct vm_purgeable_info        *vm_purgeable_info_t;
+
+/* included for the vm_map_page_query call */
+
+#define VM_PAGE_QUERY_PAGE_PRESENT      0x1
+#define VM_PAGE_QUERY_PAGE_FICTITIOUS   0x2
+#define VM_PAGE_QUERY_PAGE_REF          0x4
+#define VM_PAGE_QUERY_PAGE_DIRTY        0x8
+#define VM_PAGE_QUERY_PAGE_PAGED_OUT    0x10
+#define VM_PAGE_QUERY_PAGE_COPIED       0x20
+#define VM_PAGE_QUERY_PAGE_SPECULATIVE  0x40
+#define VM_PAGE_QUERY_PAGE_EXTERNAL     0x80
+#define VM_PAGE_QUERY_PAGE_CS_VALIDATED 0x100
+#define VM_PAGE_QUERY_PAGE_CS_TAINTED   0x200
+#define VM_PAGE_QUERY_PAGE_CS_NX        0x400
+#define VM_PAGE_QUERY_PAGE_REUSABLE     0x800
+
+/*
+ * VM allocation flags:
+ *
+ * VM_FLAGS_FIXED
+ *      (really the absence of VM_FLAGS_ANYWHERE)
+ *	Allocate new VM region at the specified virtual address, if possible.
+ *
+ * VM_FLAGS_ANYWHERE
+ *	Allocate new VM region anywhere it would fit in the address space.
+ *
+ * VM_FLAGS_PURGABLE
+ *	Create a purgable VM object for that new VM region.
+ *
+ * VM_FLAGS_4GB_CHUNK
+ *	The new VM region will be chunked up into 4GB sized pieces.
+ *
+ * VM_FLAGS_NO_PMAP_CHECK
+ *	(for DEBUG kernel config only, ignored for other configs)
+ *	Do not check that there is no stale pmap mapping for the new VM region.
+ *	This is useful for kernel memory allocations at bootstrap when building
+ *	the initial kernel address space while some memory is already in use.
+ *
+ * VM_FLAGS_OVERWRITE
+ *	The new VM region can replace existing VM regions if necessary
+ *	(to be used in combination with VM_FLAGS_FIXED).
+ *
+ * VM_FLAGS_NO_CACHE
+ *	Pages brought in to this VM region are placed on the speculative
+ *	queue instead of the active queue.  In other words, they are not
+ *	cached so that they will be stolen first if memory runs low.
+ */
+
+#define VM_FLAGS_FIXED                  0x00000000
+#define VM_FLAGS_ANYWHERE               0x00000001
+#define VM_FLAGS_PURGABLE               0x00000002
+#define VM_FLAGS_4GB_CHUNK              0x00000004
+#define VM_FLAGS_RANDOM_ADDR            0x00000008
+#define VM_FLAGS_NO_CACHE               0x00000010
+#define VM_FLAGS_RESILIENT_CODESIGN     0x00000020
+#define VM_FLAGS_RESILIENT_MEDIA        0x00000040
+#define VM_FLAGS_PERMANENT              0x00000080
+#define VM_FLAGS_TPRO                   0x00001000
+#define VM_FLAGS_OVERWRITE              0x00004000  /* delete any existing mappings first */
+/*
+ * VM_FLAGS_SUPERPAGE_MASK
+ *	3 bits that specify whether large pages should be used instead of
+ *	base pages (!=0), as well as the requested page size.
+ */
+#define VM_FLAGS_SUPERPAGE_MASK         0x00070000 /* bits 0x10000, 0x20000, 0x40000 */
+#define VM_FLAGS_RETURN_DATA_ADDR       0x00100000 /* Return address of target data, rather than base of page */
+#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
+#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 |            \
+	                         VM_FLAGS_PURGABLE |            \
+	                         VM_FLAGS_4GB_CHUNK |           \
+	                         VM_FLAGS_RANDOM_ADDR |         \
+	                         VM_FLAGS_NO_CACHE |            \
+	                         VM_FLAGS_PERMANENT |           \
+	                         VM_FLAGS_OVERWRITE |           \
+	                         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 |         \
+	                         VM_FLAGS_OVERWRITE|            \
+	                         VM_FLAGS_RETURN_DATA_ADDR |    \
+	                         VM_FLAGS_RESILIENT_CODESIGN |  \
+	                         VM_FLAGS_RESILIENT_MEDIA)
+
+#define VM_FLAGS_SUPERPAGE_SHIFT 16
+#define SUPERPAGE_NONE                  0       /* no superpages, if all bits are 0 */
+#define SUPERPAGE_SIZE_ANY              1
+#define VM_FLAGS_SUPERPAGE_NONE     (SUPERPAGE_NONE     << VM_FLAGS_SUPERPAGE_SHIFT)
+#define VM_FLAGS_SUPERPAGE_SIZE_ANY (SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT)
+#define SUPERPAGE_SIZE_2MB              2
+#define VM_FLAGS_SUPERPAGE_SIZE_2MB (SUPERPAGE_SIZE_2MB<
+#include 
+
+#include 
+#include 
+
+typedef vm_offset_t             pointer_t __kernel_ptr_semantics;
+typedef vm_offset_t             vm_address_t __kernel_ptr_semantics;
+
+/*
+ * We use addr64_t for 64-bit addresses that are used on both
+ * 32 and 64-bit machines.  On PPC, they are passed and returned as
+ * two adjacent 32-bit GPRs.  We use addr64_t in places where
+ * common code must be useable both on 32 and 64-bit machines.
+ */
+typedef uint64_t addr64_t;              /* Basic effective address */
+
+/*
+ * We use reg64_t for addresses that are 32 bits on a 32-bit
+ * machine, and 64 bits on a 64-bit machine, but are always
+ * passed and returned in a single GPR on PPC.  This type
+ * cannot be used in generic 32-bit c, since on a 64-bit
+ * machine the upper half of the register will be ignored
+ * by the c compiler in 32-bit mode.  In c, we can only use the
+ * type in prototypes of functions that are written in and called
+ * from assembly language.  This type is basically a comment.
+ */
+typedef uint32_t        reg64_t;
+
+/*
+ * To minimize the use of 64-bit fields, we keep some physical
+ * 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 */
+#define PPNUM_MAX UINT32_MAX
+
+
+
+typedef mach_port_t             vm_map_t, vm_map_read_t, vm_map_inspect_t;
+
+
+#define VM_MAP_NULL             ((vm_map_t) 0)
+#define VM_MAP_INSPECT_NULL     ((vm_map_inspect_t) 0)
+#define VM_MAP_READ_NULL        ((vm_map_read_t) 0)
+
+/*
+ * Evolving definitions, likely to change.
+ */
+
+typedef uint64_t                vm_object_offset_t;
+typedef uint64_t                vm_object_size_t;
+
+/*!
+ * @typedef
+ *
+ * @brief
+ * Pair of a min/max address used to denote a memory region.
+ *
+ * @discussion
+ * @c min_address must be smaller or equal to @c max_address.
+ */
+typedef struct mach_vm_range {
+	mach_vm_offset_t        min_address;
+	mach_vm_offset_t        max_address;
+} *mach_vm_range_t;
+
+
+
+
+typedef mach_port_t             upl_t;
+typedef mach_port_t             vm_named_entry_t;
+
+
+#define UPL_NULL                ((upl_t) 0)
+#define VM_NAMED_ENTRY_NULL     ((vm_named_entry_t) 0)
+
+#endif  /* _MACH_VM_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach_debug/ipc_info.h b/lib/libc/include/any-macos.13-any/mach_debug/ipc_info.h
new file mode 100644
index 0000000000000000000000000000000000000000..fa4a5007881340386b4d840adc1584efabdce364
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach_debug/ipc_info.h
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	File:	mach_debug/ipc_info.h
+ *	Author:	Rich Draves
+ *	Date:	March, 1990
+ *
+ *	Definitions for the IPC debugging interface.
+ */
+
+#ifndef _MACH_DEBUG_IPC_INFO_H_
+#define _MACH_DEBUG_IPC_INFO_H_
+
+#include 
+#include 
+#include 
+
+/*
+ *	Remember to update the mig type definitions
+ *	in mach_debug_types.defs when adding/removing fields.
+ */
+
+typedef struct ipc_info_space {
+	natural_t iis_genno_mask;       /* generation number mask */
+	natural_t iis_table_size;       /* size of table */
+	natural_t iis_table_next;       /* next possible size of table (UNUSED) */
+	natural_t iis_tree_size;        /* size of tree (UNUSED) */
+	natural_t iis_tree_small;       /* # of small entries in tree (UNUSED) */
+	natural_t iis_tree_hash;        /* # of hashed entries in tree (UNUSED) */
+} ipc_info_space_t;
+
+typedef struct ipc_info_space_basic {
+	natural_t iisb_genno_mask;      /* generation number mask */
+	natural_t iisb_table_size;      /* size of table */
+	natural_t iisb_table_next;      /* next possible size of table (UNUSED) */
+	natural_t iisb_table_inuse;     /* number of entries in use */
+	natural_t iisb_reserved[2];     /* future expansion */
+} ipc_info_space_basic_t;
+
+typedef struct ipc_info_name {
+	mach_port_name_t iin_name;              /* port name, including gen number */
+/*boolean_t*/ integer_t iin_collision;   /* collision at this entry? */
+	mach_port_type_t iin_type;      /* straight port type */
+	mach_port_urefs_t iin_urefs;    /* user-references */
+	natural_t iin_object;           /* object pointer/identifier */
+	natural_t iin_next;             /* marequest/next in free list */
+	natural_t iin_hash;             /* hash index */
+} ipc_info_name_t;
+
+typedef ipc_info_name_t *ipc_info_name_array_t;
+
+/* UNUSED */
+typedef struct ipc_info_tree_name {
+	ipc_info_name_t iitn_name;
+	mach_port_name_t iitn_lchild;   /* name of left child */
+	mach_port_name_t iitn_rchild;   /* name of right child */
+} ipc_info_tree_name_t;
+
+typedef ipc_info_tree_name_t *ipc_info_tree_name_array_t;
+
+typedef struct ipc_info_port {
+	natural_t iip_port_object;      /* port object identifier */
+	natural_t iip_receiver_object;  /* receiver task identifier (if any) */
+} ipc_info_port_t;
+
+typedef ipc_info_port_t *exception_handler_info_array_t;
+
+#endif  /* _MACH_DEBUG_IPC_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/mach_debug/mach_debug_types.h b/lib/libc/include/any-macos.13-any/mach_debug/mach_debug_types.h
new file mode 100644
index 0000000000000000000000000000000000000000..599a91346dd5ea1aa7adf8e405c5aeb728d79f2a
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/mach_debug/mach_debug_types.h
@@ -0,0 +1,200 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/*
+ * @OSF_COPYRIGHT@
+ */
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ */
+/*
+ *	Mach kernel debugging interface type declarations
+ */
+
+#ifndef _MACH_DEBUG_MACH_DEBUG_TYPES_H_
+#define _MACH_DEBUG_MACH_DEBUG_TYPES_H_
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#define MACH_CORE_FILEHEADER_SIGNATURE    0x0063614d20646152ULL
+#define MACH_CORE_FILEHEADER_V2_SIGNATURE 0x63614d2073736f42ULL
+#define MACH_CORE_FILEHEADER_MAXFILES 16
+#define MACH_CORE_FILEHEADER_NAMELEN 16
+
+/* The following are defined for mach_core_fileheader_v2 */
+#define MACH_CORE_FILEHEADER_V2_FLAG_LOG_ENCRYPTED_AEA    (1ULL << 0) /* The log is encrypted using AEA */
+#define MACH_CORE_FILEHEADER_V2_FLAG_EXISTING_COREFILE_KEY_FORMAT_NIST_P256 (1ULL << 8) /* The public key is an NIST-P256 ECC key */
+#define MACH_CORE_FILEHEADER_V2_FLAG_NEXT_COREFILE_KEY_FORMAT_NIST_P256 (1ULL << 16) /* The next public key is an NIST-P256 ECC key */
+
+#define MACH_CORE_FILEHEADER_V2_FLAGS_EXISTING_COREFILE_KEY_FORMAT_MASK (0x1ULL << 8) /* A bit-mask for all supported key formats */
+#define MACH_CORE_FILEHEADER_V2_FLAGS_NEXT_COREFILE_KEY_FORMAT_MASK (0x1ULL << 16) /* A bit-mask for all supported next key formats */
+
+#define MACH_CORE_FILEHEADER_V2_FLAGS_NEXT_KEY_FORMAT_TO_KEY_FORMAT(x) (((x) >> 8) & MACH_CORE_FILEHEADER_V2_FLAGS_EXISTING_COREFILE_KEY_FORMAT_MASK)
+
+/* The following are defined for mach_core_details_v2 */
+#define MACH_CORE_DETAILS_V2_FLAG_ENCRYPTED_AEA   (1ULL << 0) /* This core is encrypted using AEA */
+#define MACH_CORE_DETAILS_V2_FLAG_COMPRESSED_ZLIB (1ULL << 8) /* This core is compressed using ZLib */
+#define MACH_CORE_DETAILS_V2_FLAG_COMPRESSED_LZ4 (1ULL << 9) /* This core is compressed using LZ4 */
+
+typedef char    symtab_name_t[32];
+
+/*
+ ***********************
+ *
+ * Mach corefile layout
+ *
+ ***********************
+ *
+ * uint64_t signature
+ * uint64_t log_offset                                 >---+
+ * uint64_t log_length                                     |
+ * mach_core_details files[MACH_CORE_FILEHEADER_MAXFILES]  |
+ *   |--> uint64_t gzip_offset                   >---+     |
+ *   |    uint64_t gzip_length                       |     |
+ *   |    char core_name[]                           |     |
+ *   |--> uint64_t gzip_offset             >---+     |     |
+ *   |    uint64_t gzip_length                 |     |     |
+ *   |    char core_name[]                     |     |     |
+ *   |--> [...]                                |     |     |
+ * [log data. Plain-text]                      |     | <---+
+ * [core #1 data. Zlib compressed]             | <---+
+ * [core #2 data. Zlib compressed]         <---+
+ * [core #x data...]
+ */
+
+struct mach_core_details {
+	uint64_t gzip_offset;
+	uint64_t gzip_length;
+	char core_name[MACH_CORE_FILEHEADER_NAMELEN];
+};
+
+struct mach_core_fileheader {
+	uint64_t signature; /* MACH_CORE_FILEHEADER_SIGNATURE */
+	uint64_t log_offset;
+	uint64_t log_length;
+	uint64_t num_files;
+	struct mach_core_details files[MACH_CORE_FILEHEADER_MAXFILES];
+};
+
+/*
+ * Mach corefile V2 headers are denoted with MACH_CORE_FILEHEADER_V2_SIGNATURE.
+ * Note that the V2 headers contain a version field that further indicates the version of the
+ * header's contents. For example, if a V2 header's 'version' field indicates version 5, then
+ * the header follows the format of the 'mach_core_fileheader_v5' structure.
+ *
+ * Further note that 'mach_core_details_' structures are not bound to the same versioning scheme
+ * as the header itself. This means that it's perfectly acceptable for a 'mach_core_fileheader_v5' header
+ * to make use of 'mach_core_details_v2'
+ *
+ **************************
+ *
+ * Mach corefile layout V2 (using a version 2 header struct as an example)
+ *
+ **************************
+ *
+ * uint64_t signature
+ * uint32_t version
+ * uint64_t flags
+ * uint64_t pub_key_offset                                                             >---+
+ * uint16_t pub_key_length                                                                 |
+ * uint64_t log_offset                                                           >---+     |
+ * uint64_t log_length                                                               |     |
+ * uint64_t num_files                                                                |     |
+ * mach_core_details_v2 files[]                                                      |     |
+ *   |--> uint64_t flags                                                             |     |
+ *   |    uint64_t offset                                                  >---+     |     |
+ *   |    uint64_t length                                                      |     |     |
+ *   |    char core_name[]                                                     |     |     |
+ *   |--> uint64_t flags                                                       |     |     |
+ *   |    uint64_t offset                                            >---+     |     |     |
+ *   |    uint64_t length                                                |     |     |     |
+ *   |    char core_name[]                                               |     |     |     |
+ *   |--> [...]                                                          |     |     |     |
+ * [public key data]                                                     |     |     | <---+
+ * [log data. Plain-text or an AEA container]                            |     | <---+
+ * [core #1 data. Zlib/LZ4 compressed. Possibly in an AEA container]     | <---+
+ * [core #2 data. Zlib/LZ4 compressed. Possibly in an AEA container] <---+
+ * [core #x data...]
+ */
+
+struct mach_core_details_v2 {
+	uint64_t flags;  /* See the MACH_CORE_DETAILS_V2_FLAG_* definitions */
+	uint64_t offset;
+	uint64_t length;
+	char core_name[MACH_CORE_FILEHEADER_NAMELEN];
+};
+
+struct mach_core_fileheader_base {
+	uint64_t signature; /* MACH_CORE_FILEHEADER_V2_SIGNATURE */
+	uint32_t version;
+};
+
+struct mach_core_fileheader_v2 {
+	uint64_t signature;       /* MACH_CORE_FILEHEADER_V2_SIGNATURE */
+	uint32_t version;         /* 2 */
+	uint64_t flags;           /* See the MACH_CORE_FILEHEADER_V2_FLAG_* definitions */
+	uint64_t pub_key_offset;  /* Offset of the public key */
+	uint16_t pub_key_length;  /* Length of the public key */
+	uint64_t log_offset;
+	uint64_t log_length;
+	uint64_t num_files;
+	struct mach_core_details_v2 files[];
+};
+
+#define KOBJECT_DESCRIPTION_LENGTH      512
+typedef char kobject_description_t[KOBJECT_DESCRIPTION_LENGTH];
+
+#endif  /* _MACH_DEBUG_MACH_DEBUG_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/malloc/malloc.h b/lib/libc/include/any-macos.13-any/malloc/malloc.h
new file mode 100644
index 0000000000000000000000000000000000000000..41db5dbb1a87b630cd3339217d1b1f644cf0b507
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/malloc/malloc.h
@@ -0,0 +1,349 @@
+/*
+ * Copyright (c) 1999 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 _MALLOC_MALLOC_H_
+#define _MALLOC_MALLOC_H_
+
+#include 
+#include 
+#include 
+#include 
+
+#if __has_feature(ptrauth_calls)
+#include 
+
+// Zone function pointer, type-diversified but not address-diversified (because
+// the zone can be copied). Process-independent because the zone structure may
+// be in the shared library cache.
+#define MALLOC_ZONE_FN_PTR(fn) __ptrauth(ptrauth_key_process_independent_code, \
+		FALSE, ptrauth_string_discriminator("malloc_zone_fn." #fn)) fn
+
+// Introspection function pointer, address- and type-diversified.
+// Process-independent because the malloc_introspection_t structure that contains
+// these pointers may be in the shared library cache.
+#define MALLOC_INTROSPECT_FN_PTR(fn) __ptrauth(ptrauth_key_process_independent_code, \
+		TRUE, ptrauth_string_discriminator("malloc_introspect_fn." #fn)) fn
+
+// Pointer to the introspection pointer table, type-diversified but not
+// address-diversified (because the zone can be copied).
+// Process-independent because the table pointer may be in the shared library cache.
+#define MALLOC_INTROSPECT_TBL_PTR(ptr) __ptrauth(ptrauth_key_process_independent_data,\
+		FALSE, ptrauth_string_discriminator("malloc_introspect_tbl")) ptr
+
+#endif	// __has_feature(ptrauth_calls)
+
+#ifndef MALLOC_ZONE_FN_PTR
+#define MALLOC_ZONE_FN_PTR(fn) fn
+#define MALLOC_INTROSPECT_FN_PTR(fn) fn
+#define MALLOC_INTROSPECT_TBL_PTR(ptr) ptr
+#endif // MALLOC_ZONE_FN_PTR
+
+__BEGIN_DECLS
+/*********	Type definitions	************/
+
+typedef struct _malloc_zone_t {
+    /* Only zone implementors should depend on the layout of this structure;
+    Regular callers should use the access functions below */
+    void	*reserved1;	/* RESERVED FOR CFAllocator DO NOT USE */
+    void	*reserved2;	/* RESERVED FOR CFAllocator DO NOT USE */
+    size_t 	(* MALLOC_ZONE_FN_PTR(size))(struct _malloc_zone_t *zone, const void *ptr); /* returns the size of a block or 0 if not in this zone; must be fast, especially for negative answers */
+    void 	*(* MALLOC_ZONE_FN_PTR(malloc))(struct _malloc_zone_t *zone, size_t size);
+    void 	*(* MALLOC_ZONE_FN_PTR(calloc))(struct _malloc_zone_t *zone, size_t num_items, size_t size); /* same as malloc, but block returned is set to zero */
+    void 	*(* MALLOC_ZONE_FN_PTR(valloc))(struct _malloc_zone_t *zone, size_t size); /* same as malloc, but block returned is set to zero and is guaranteed to be page aligned */
+    void 	(* MALLOC_ZONE_FN_PTR(free))(struct _malloc_zone_t *zone, void *ptr);
+    void 	*(* MALLOC_ZONE_FN_PTR(realloc))(struct _malloc_zone_t *zone, void *ptr, size_t size);
+    void 	(* MALLOC_ZONE_FN_PTR(destroy))(struct _malloc_zone_t *zone); /* zone is destroyed and all memory reclaimed */
+    const char	*zone_name;
+
+    /* Optional batch callbacks; these may be NULL */
+    unsigned	(* MALLOC_ZONE_FN_PTR(batch_malloc))(struct _malloc_zone_t *zone, size_t size, void **results, unsigned num_requested); /* given a size, returns pointers capable of holding that size; returns the number of pointers allocated (maybe 0 or less than num_requested) */
+    void	(* MALLOC_ZONE_FN_PTR(batch_free))(struct _malloc_zone_t *zone, void **to_be_freed, unsigned num_to_be_freed); /* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process */
+
+    struct malloc_introspection_t	* MALLOC_INTROSPECT_TBL_PTR(introspect);
+    unsigned	version;
+    	
+    /* aligned memory allocation. The callback may be NULL. Present in version >= 5. */
+    void *(* MALLOC_ZONE_FN_PTR(memalign))(struct _malloc_zone_t *zone, size_t alignment, size_t size);
+    
+    /* free a pointer known to be in zone and known to have the given size. The callback may be NULL. Present in version >= 6.*/
+    void (* MALLOC_ZONE_FN_PTR(free_definite_size))(struct _malloc_zone_t *zone, void *ptr, size_t size);
+
+    /* Empty out caches in the face of memory pressure. The callback may be NULL. Present in version >= 8. */
+    size_t 	(* MALLOC_ZONE_FN_PTR(pressure_relief))(struct _malloc_zone_t *zone, size_t goal);
+
+	/*
+	 * Checks whether an address might belong to the zone. May be NULL. Present in version >= 10.
+	 * False positives are allowed (e.g. the pointer was freed, or it's in zone space that has
+	 * not yet been allocated. False negatives are not allowed.
+	 */
+    boolean_t (* MALLOC_ZONE_FN_PTR(claimed_address))(struct _malloc_zone_t *zone, void *ptr);
+
+    /* For zone 0 implementations: try to free ptr, promising to call find_zone_and_free
+     * if it turns out not to belong to us */
+    void 	(* MALLOC_ZONE_FN_PTR(try_free_default))(struct _malloc_zone_t *zone, void *ptr);
+} malloc_zone_t;
+
+/*********	Creation and destruction	************/
+
+extern malloc_zone_t *malloc_default_zone(void);
+    /* The initial zone */
+
+extern malloc_zone_t *malloc_create_zone(vm_size_t start_size, unsigned flags);
+    /* Creates a new zone with default behavior and registers it */
+
+extern void malloc_destroy_zone(malloc_zone_t *zone);
+    /* Destroys zone and everything it allocated */
+
+/*********	Block creation and manipulation	************/
+
+extern void *malloc_zone_malloc(malloc_zone_t *zone, size_t size) __alloc_size(2);
+    /* Allocates a new pointer of size size; zone must be non-NULL */
+
+extern void *malloc_zone_calloc(malloc_zone_t *zone, size_t num_items, size_t size) __alloc_size(2,3);
+    /* Allocates a new pointer of size num_items * size; block is cleared; zone must be non-NULL */
+
+extern void *malloc_zone_valloc(malloc_zone_t *zone, size_t size) __alloc_size(2);
+    /* Allocates a new pointer of size size; zone must be non-NULL; Pointer is guaranteed to be page-aligned and block is cleared */
+
+extern void malloc_zone_free(malloc_zone_t *zone, void *ptr);
+    /* Frees pointer in zone; zone must be non-NULL */
+
+extern void *malloc_zone_realloc(malloc_zone_t *zone, void *ptr, size_t size) __alloc_size(3);
+    /* Enlarges block if necessary; zone must be non-NULL */
+
+extern malloc_zone_t *malloc_zone_from_ptr(const void *ptr);
+    /* Returns the zone for a pointer, or NULL if not in any zone.
+    The ptr must have been returned from a malloc or realloc call. */
+
+extern size_t malloc_size(const void *ptr);
+    /* Returns size of given ptr */
+
+extern size_t malloc_good_size(size_t size);
+    /* Returns number of bytes greater than or equal to size that can be allocated without padding */
+
+extern void *malloc_zone_memalign(malloc_zone_t *zone, size_t alignment, size_t size) __alloc_size(3) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+    /* 
+     * Allocates a new pointer of size size whose address is an exact multiple of alignment.
+     * alignment must be a power of two and at least as large as sizeof(void *).
+     * zone must be non-NULL.
+     */
+
+/*********	Batch methods	************/
+
+extern unsigned malloc_zone_batch_malloc(malloc_zone_t *zone, size_t size, void **results, unsigned num_requested);
+    /* Allocates num blocks of the same size; Returns the number truly allocated (may be 0) */
+
+extern void malloc_zone_batch_free(malloc_zone_t *zone, void **to_be_freed, unsigned num);
+    /* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process; This function will always free even if the zone has no batch callback */
+
+/*********	Functions for libcache	************/
+
+extern malloc_zone_t *malloc_default_purgeable_zone(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+    /* Returns a pointer to the default purgeable_zone. */
+
+extern void malloc_make_purgeable(void *ptr) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+    /* Make an allocation from the purgeable zone purgeable if possible.  */
+
+extern int malloc_make_nonpurgeable(void *ptr) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+    /* Makes an allocation from the purgeable zone nonpurgeable.
+     * Returns zero if the contents were not purged since the last
+     * call to malloc_make_purgeable, else returns non-zero. */
+
+/*********	Functions for zone implementors	************/
+
+extern void malloc_zone_register(malloc_zone_t *zone);
+    /* Registers a custom malloc zone; Should typically be called after a 
+     * malloc_zone_t has been filled in with custom methods by a client.  See
+     * malloc_create_zone for creating additional malloc zones with the
+     * default allocation and free behavior. */
+
+extern void malloc_zone_unregister(malloc_zone_t *zone);
+    /* De-registers a zone
+    Should typically be called before calling the zone destruction routine */
+
+extern void malloc_set_zone_name(malloc_zone_t *zone, const char *name);
+    /* Sets the name of a zone */
+
+extern const char *malloc_get_zone_name(malloc_zone_t *zone);
+    /* Returns the name of a zone */
+
+size_t malloc_zone_pressure_relief(malloc_zone_t *zone, size_t goal) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+    /* malloc_zone_pressure_relief() advises the malloc subsystem that the process is under memory pressure and 
+     * that the subsystem should make its best effort towards releasing (i.e. munmap()-ing) "goal" bytes from "zone". 
+     * If "goal" is passed as zero, the malloc subsystem will attempt to achieve maximal pressure relief in "zone". 
+     * If "zone" is passed as NULL, all zones are examined for pressure relief opportunities. 
+     * malloc_zone_pressure_relief() returns the number of bytes released. 
+     */
+
+typedef struct {
+    vm_address_t	address;
+    vm_size_t		size;
+} vm_range_t;
+
+typedef struct malloc_statistics_t {
+    unsigned	blocks_in_use;
+    size_t	size_in_use;
+    size_t	max_size_in_use;	/* high water mark of touched memory */
+    size_t	size_allocated;		/* reserved in memory */
+} malloc_statistics_t;
+
+typedef kern_return_t memory_reader_t(task_t remote_task, vm_address_t remote_address, vm_size_t size, void **local_memory);
+    /* given a task, "reads" the memory at the given address and size
+local_memory: set to a contiguous chunk of memory; validity of local_memory is assumed to be limited (until next call) */
+
+#define MALLOC_PTR_IN_USE_RANGE_TYPE	1	/* for allocated pointers */
+#define MALLOC_PTR_REGION_RANGE_TYPE	2	/* for region containing pointers */
+#define MALLOC_ADMIN_REGION_RANGE_TYPE	4	/* for region used internally */
+#define MALLOC_ZONE_SPECIFIC_FLAGS	0xff00	/* bits reserved for zone-specific purposes */
+
+typedef void vm_range_recorder_t(task_t, void *, unsigned type, vm_range_t *, unsigned);
+    /* given a task and context, "records" the specified addresses */
+
+/* Print function for the print_task() operation. */
+typedef void print_task_printer_t(const char *fmt, ...) __printflike(1,2);
+
+typedef struct malloc_introspection_t {
+	kern_return_t (* MALLOC_INTROSPECT_FN_PTR(enumerator))(task_t task, void *, unsigned type_mask, vm_address_t zone_address, memory_reader_t reader, vm_range_recorder_t recorder); /* enumerates all the malloc pointers in use */
+	size_t	(* MALLOC_INTROSPECT_FN_PTR(good_size))(malloc_zone_t *zone, size_t size);
+	boolean_t 	(* MALLOC_INTROSPECT_FN_PTR(check))(malloc_zone_t *zone); /* Consistency checker */
+	void 	(* MALLOC_INTROSPECT_FN_PTR(print))(malloc_zone_t *zone, boolean_t verbose); /* Prints zone  */
+	void	(* MALLOC_INTROSPECT_FN_PTR(log))(malloc_zone_t *zone, void *address); /* Enables logging of activity */
+	void	(* MALLOC_INTROSPECT_FN_PTR(force_lock))(malloc_zone_t *zone); /* Forces locking zone */
+	void	(* MALLOC_INTROSPECT_FN_PTR(force_unlock))(malloc_zone_t *zone); /* Forces unlocking zone */
+	void	(* MALLOC_INTROSPECT_FN_PTR(statistics))(malloc_zone_t *zone, malloc_statistics_t *stats); /* Fills statistics */
+	boolean_t   (* MALLOC_INTROSPECT_FN_PTR(zone_locked))(malloc_zone_t *zone); /* Are any zone locks held */
+
+    /* Discharge checking. Present in version >= 7. */
+	boolean_t	(* MALLOC_INTROSPECT_FN_PTR(enable_discharge_checking))(malloc_zone_t *zone);
+	void	(* MALLOC_INTROSPECT_FN_PTR(disable_discharge_checking))(malloc_zone_t *zone);
+	void	(* MALLOC_INTROSPECT_FN_PTR(discharge))(malloc_zone_t *zone, void *memory);
+#ifdef __BLOCKS__
+	void     (* MALLOC_INTROSPECT_FN_PTR(enumerate_discharged_pointers))(malloc_zone_t *zone, void (^report_discharged)(void *memory, void *info));
+	#else
+    void	*enumerate_unavailable_without_blocks;   
+#endif /* __BLOCKS__ */
+	void	(* MALLOC_INTROSPECT_FN_PTR(reinit_lock))(malloc_zone_t *zone); /* Reinitialize zone locks, called only from atfork_child handler. Present in version >= 9. */
+	void	(* MALLOC_INTROSPECT_FN_PTR(print_task))(task_t task, unsigned level, vm_address_t zone_address, memory_reader_t reader, print_task_printer_t printer); /* debug print for another process. Present in version >= 11. */
+	void (* MALLOC_INTROSPECT_FN_PTR(task_statistics))(task_t task, vm_address_t zone_address, memory_reader_t reader, malloc_statistics_t *stats); /* Present in version >= 12 */
+} malloc_introspection_t;
+
+// The value of "level" when passed to print_task() that corresponds to
+// verbose passed to print()
+#define MALLOC_VERBOSE_PRINT_LEVEL	2
+
+extern void malloc_printf(const char *format, ...);
+    /* Convenience for logging errors and warnings;
+    No allocation is performed during execution of this function;
+    Only understands usual %p %d %s formats, and %y that expresses a number of bytes (5b,10KB,1MB...)
+    */
+
+/*********	Functions for performance tools	************/
+
+extern kern_return_t malloc_get_all_zones(task_t task, memory_reader_t reader, vm_address_t **addresses, unsigned *count);
+    /* Fills addresses and count with the addresses of the zones in task;
+    Note that the validity of the addresses returned correspond to the validity of the memory returned by reader */
+
+/*********	Debug helpers	************/
+
+extern void malloc_zone_print_ptr_info(void *ptr);
+    /* print to stdout if this pointer is in the malloc heap, free status, and size */
+
+extern boolean_t malloc_zone_check(malloc_zone_t *zone);
+    /* Checks zone is well formed; if !zone, checks all zones */
+
+extern void malloc_zone_print(malloc_zone_t *zone, boolean_t verbose);
+    /* Prints summary on zone; if !zone, prints all zones */
+
+extern void malloc_zone_statistics(malloc_zone_t *zone, malloc_statistics_t *stats);
+    /* Fills statistics for zone; if !zone, sums up all zones */
+
+extern void malloc_zone_log(malloc_zone_t *zone, void *address);
+    /* Controls logging of all activity; if !zone, for all zones;
+    If address==0 nothing is logged;
+    If address==-1 all activity is logged;
+    Else only the activity regarding address is logged */
+
+struct mstats {
+    size_t	bytes_total;
+    size_t	chunks_used;
+    size_t	bytes_used;
+    size_t	chunks_free;
+    size_t	bytes_free;
+};
+
+extern struct mstats mstats(void);
+
+extern boolean_t malloc_zone_enable_discharge_checking(malloc_zone_t *zone) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+/* Increment the discharge checking enabled counter for a zone. Returns true if the zone supports checking, false if it does not. */
+
+extern void malloc_zone_disable_discharge_checking(malloc_zone_t *zone) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+/* Decrement the discharge checking enabled counter for a zone. */
+
+extern void malloc_zone_discharge(malloc_zone_t *zone, void *memory) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+/* Register memory that the programmer expects to be freed soon. 
+   zone may be NULL in which case the zone is determined using malloc_zone_from_ptr(). 
+   If discharge checking is off for the zone this function is a no-op. */
+ 
+#ifdef __BLOCKS__
+extern void malloc_zone_enumerate_discharged_pointers(malloc_zone_t *zone, void (^report_discharged)(void *memory, void *info)) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+/* Calls report_discharged for each block that was registered using malloc_zone_discharge() but has not yet been freed. 
+   info is used to provide zone defined information about the memory block. 
+   If zone is NULL then the enumeration covers all zones. */
+#else
+extern void malloc_zone_enumerate_discharged_pointers(malloc_zone_t *zone, void *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+#endif /* __BLOCKS__ */
+
+/*********  Zone version summary ************/
+// Version 0, but optional:
+//   malloc_zone_t::batch_malloc
+//   malloc_zone_t::batch_free
+// Version 5:
+//   malloc_zone_t::memalign
+// Version 6:
+//   malloc_zone_t::free_definite_size
+// Version 7:
+//   malloc_introspection_t::enable_discharge_checking
+//   malloc_introspection_t::disable_discharge_checking
+//   malloc_introspection_t::discharge
+// Version 8:
+//   malloc_zone_t::pressure_relief
+// Version 9:
+//   malloc_introspection_t::reinit_lock
+// Version 10:
+//   malloc_zone_t::claimed_address
+// Version 11:
+//   malloc_introspection_t::print_task
+// Version 12:
+//   malloc_introspection_t::task_statistics
+// Version 13:
+//   - malloc_zone_t::malloc and malloc_zone_t::calloc assume responsibility for
+//     setting errno to ENOMEM on failure
+//   - malloc_zone_t::try_free_default
+
+// These functions are optional and calling them requires two checks:
+//  * Check zone version to ensure zone struct is large enough to include the member.
+//  * Check that the function pointer is not null.
+
+__END_DECLS
+
+#endif /* _MALLOC_MALLOC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/net/if.h b/lib/libc/include/any-macos.13-any/net/if.h
new file mode 100644
index 0000000000000000000000000000000000000000..d06305aaa0ca984a4a09fe10e9bebe7e8b1e700b
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/net/if.h
@@ -0,0 +1,454 @@
+/*
+ * Copyright (c) 2000-2021 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@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1989, 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.
+ *
+ *	@(#)if.h	8.1 (Berkeley) 6/10/93
+ */
+
+#ifndef _NET_IF_H_
+#define _NET_IF_H_
+
+#define IF_NAMESIZE     16
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include 
+#include 
+#ifdef __APPLE__
+
+#include 
+#include 
+#include 
+#include 
+
+#endif
+
+#ifndef IFNAMSIZ
+#define IFNAMSIZ        IF_NAMESIZE
+#endif
+
+struct if_clonereq {
+	int     ifcr_total;             /* total cloners (out) */
+	int     ifcr_count;             /* room for this many in user buffer */
+	char    *ifcr_buffer;           /* buffer for cloner names */
+};
+
+#define IFF_UP          0x1             /* interface is up */
+#define IFF_BROADCAST   0x2             /* broadcast address valid */
+#define IFF_DEBUG       0x4             /* turn on debugging */
+#define IFF_LOOPBACK    0x8             /* is a loopback net */
+#define IFF_POINTOPOINT 0x10            /* interface is point-to-point link */
+#define IFF_NOTRAILERS  0x20            /* obsolete: avoid use of trailers */
+#define IFF_RUNNING     0x40            /* resources allocated */
+#define IFF_NOARP       0x80            /* no address resolution protocol */
+#define IFF_PROMISC     0x100           /* receive all packets */
+#define IFF_ALLMULTI    0x200           /* receive all multicast packets */
+#define IFF_OACTIVE     0x400           /* transmission in progress */
+#define IFF_SIMPLEX     0x800           /* can't hear own transmissions */
+#define IFF_LINK0       0x1000          /* per link layer defined bit */
+#define IFF_LINK1       0x2000          /* per link layer defined bit */
+#define IFF_LINK2       0x4000          /* per link layer defined bit */
+#define IFF_ALTPHYS     IFF_LINK2       /* use alternate physical connection */
+#define IFF_MULTICAST   0x8000          /* supports multicast */
+
+
+/*
+ * Capabilities that interfaces can advertise.
+ *
+ * struct ifnet.if_capabilities
+ *   contains the optional features & capabilities a particular interface
+ *   supports (not only the driver but also the detected hw revision).
+ *   Capabilities are defined by IFCAP_* below.
+ * struct ifnet.if_capenable
+ *   contains the enabled (either by default or through ifconfig) optional
+ *   features & capabilities on this interface.
+ *   Capabilities are defined by IFCAP_* below.
+ * struct if_data.ifi_hwassist in IFNET_* form, defined in net/kpi_interface.h,
+ *   contains the enabled optional features & capabilites that can be used
+ *   individually per packet and are specified in the mbuf pkthdr.csum_flags
+ *   field.  IFCAP_* and IFNET_* do not match one to one and IFNET_* may be
+ *   more detailed or differentiated than IFCAP_*.
+ *   IFNET_* hwassist flags have corresponding CSUM_* in sys/mbuf.h
+ */
+#define IFCAP_RXCSUM            0x00001 /* can offload checksum on RX */
+#define IFCAP_TXCSUM            0x00002 /* can offload checksum on TX */
+#define IFCAP_VLAN_MTU          0x00004 /* VLAN-compatible MTU */
+#define IFCAP_VLAN_HWTAGGING    0x00008 /* hardware VLAN tag support */
+#define IFCAP_JUMBO_MTU         0x00010 /* 9000 byte MTU supported */
+#define IFCAP_TSO4              0x00020 /* can do TCP Segmentation Offload */
+#define IFCAP_TSO6              0x00040 /* can do TCP6 Segmentation Offload */
+#define IFCAP_LRO               0x00080 /* can do Large Receive Offload */
+#define IFCAP_AV                0x00100 /* can do 802.1 AV Bridging */
+#define IFCAP_TXSTATUS          0x00200 /* can return linklevel xmit status */
+#define IFCAP_SKYWALK           0x00400 /* Skywalk mode supported/enabled */
+#define IFCAP_HW_TIMESTAMP      0x00800 /* Time stamping in hardware */
+#define IFCAP_SW_TIMESTAMP      0x01000 /* Time stamping in software */
+#define IFCAP_CSUM_PARTIAL      0x02000 /* can offload partial checksum */
+#define IFCAP_CSUM_ZERO_INVERT  0x04000 /* can invert 0 to -0 (0xffff) */
+
+#define IFCAP_HWCSUM    (IFCAP_RXCSUM | IFCAP_TXCSUM)
+#define IFCAP_TSO       (IFCAP_TSO4 | IFCAP_TSO6)
+
+#define IFCAP_VALID (IFCAP_HWCSUM | IFCAP_TSO | IFCAP_LRO | IFCAP_VLAN_MTU | \
+	IFCAP_VLAN_HWTAGGING | IFCAP_JUMBO_MTU | IFCAP_AV | IFCAP_TXSTATUS | \
+	IFCAP_SKYWALK | IFCAP_SW_TIMESTAMP | IFCAP_HW_TIMESTAMP | \
+	IFCAP_CSUM_PARTIAL | IFCAP_CSUM_ZERO_INVERT)
+
+#define IFQ_MAXLEN      128
+#define IFNET_SLOWHZ    1       /* granularity is 1 second */
+#define IFQ_DEF_C_TARGET_DELAY        (10ULL * 1000 * 1000)   /* 10 ms */
+#define IFQ_DEF_C_UPDATE_INTERVAL     (100ULL * 1000 * 1000)  /* 100 ms */
+#define IFQ_DEF_L4S_TARGET_DELAY        (10ULL * 1000 * 1000)   /* 10 ms */
+#define IFQ_DEF_L4S_UPDATE_INTERVAL     (100ULL * 1000 * 1000)  /* 100 ms */
+#define IFQ_LL_C_TARGET_DELAY     (10ULL * 1000 * 1000)   /* 10 ms */
+#define IFQ_LL_C_UPDATE_INTERVAL  (100ULL * 1000 * 1000)  /* 100 ms */
+#define IFQ_LL_L4S_TARGET_DELAY     (10ULL * 1000 * 1000)   /* 10 ms */
+#define IFQ_LL_L4S_UPDATE_INTERVAL  (100ULL * 1000 * 1000)  /* 100 ms */
+/*
+ * Message format for use in obtaining information about interfaces
+ * from sysctl and the routing socket
+ */
+struct if_msghdr {
+	unsigned short  ifm_msglen;     /* to skip non-understood messages */
+	unsigned char   ifm_version;    /* future binary compatability */
+	unsigned char   ifm_type;       /* message type */
+	int             ifm_addrs;      /* like rtm_addrs */
+	int             ifm_flags;      /* value of if_flags */
+	unsigned short  ifm_index;      /* index for associated ifp */
+	struct  if_data ifm_data;       /* statistics and other data about if */
+};
+
+/*
+ * Message format for use in obtaining information about interface addresses
+ * from sysctl and the routing socket
+ */
+struct ifa_msghdr {
+	unsigned short  ifam_msglen;    /* to skip non-understood messages */
+	unsigned char   ifam_version;   /* future binary compatability */
+	unsigned char   ifam_type;      /* message type */
+	int             ifam_addrs;     /* like rtm_addrs */
+	int             ifam_flags;     /* value of ifa_flags */
+	unsigned short  ifam_index;     /* index for associated ifp */
+	int             ifam_metric;    /* value of ifa_metric */
+};
+
+/*
+ * Message format for use in obtaining information about multicast addresses
+ * from the routing socket
+ */
+struct ifma_msghdr {
+	unsigned short  ifmam_msglen;   /* to skip non-understood messages */
+	unsigned char   ifmam_version;  /* future binary compatability */
+	unsigned char   ifmam_type;     /* message type */
+	int             ifmam_addrs;    /* like rtm_addrs */
+	int             ifmam_flags;    /* value of ifa_flags */
+	unsigned short  ifmam_index;    /* index for associated ifp */
+};
+
+/*
+ * Message format for use in obtaining information about interfaces
+ * from sysctl
+ */
+struct if_msghdr2 {
+	u_short ifm_msglen;     /* to skip over non-understood messages */
+	u_char  ifm_version;    /* future binary compatability */
+	u_char  ifm_type;       /* message type */
+	int     ifm_addrs;      /* like rtm_addrs */
+	int     ifm_flags;      /* value of if_flags */
+	u_short ifm_index;      /* index for associated ifp */
+	int     ifm_snd_len;    /* instantaneous length of send queue */
+	int     ifm_snd_maxlen; /* maximum length of send queue */
+	int     ifm_snd_drops;  /* number of drops in send queue */
+	int     ifm_timer;      /* time until if_watchdog called */
+	struct if_data64        ifm_data;       /* statistics and other data */
+};
+
+/*
+ * Message format for use in obtaining information about multicast addresses
+ * from sysctl
+ */
+struct ifma_msghdr2 {
+	u_short ifmam_msglen;   /* to skip over non-understood messages */
+	u_char  ifmam_version;  /* future binary compatability */
+	u_char  ifmam_type;     /* message type */
+	int     ifmam_addrs;    /* like rtm_addrs */
+	int     ifmam_flags;    /* value of ifa_flags */
+	u_short ifmam_index;    /* index for associated ifp */
+	int32_t ifmam_refcount;
+};
+
+/*
+ * ifdevmtu: interface device mtu
+ *    Used with SIOCGIFDEVMTU to get the current mtu in use by the device,
+ *    as well as the minimum and maximum mtu allowed by the device.
+ */
+struct ifdevmtu {
+	int     ifdm_current;
+	int     ifdm_min;
+	int     ifdm_max;
+};
+
+#pragma pack(4)
+
+/*
+ *  ifkpi: interface kpi ioctl
+ *  Used with SIOCSIFKPI and SIOCGIFKPI.
+ *
+ *  ifk_module_id - From in the kernel, a value from kev_vendor_code_find. From
+ *       user space, a value from SIOCGKEVVENDOR ioctl on a kernel event socket.
+ *  ifk_type - The type. Types are specific to each module id.
+ *  ifk_data - The data. ifk_ptr may be a 64bit pointer for 64 bit processes.
+ *
+ *  Copying data between user space and kernel space is done using copyin
+ *  and copyout. A process may be running in 64bit mode. In such a case,
+ *  the pointer will be a 64bit pointer, not a 32bit pointer. The following
+ *  sample is a safe way to copy the data in to the kernel from either a
+ *  32bit or 64bit process:
+ *
+ *  user_addr_t tmp_ptr;
+ *  if (IS_64BIT_PROCESS(current_proc())) {
+ *       tmp_ptr = CAST_USER_ADDR_T(ifkpi.ifk_data.ifk_ptr64);
+ *  }
+ *  else {
+ *       tmp_ptr = CAST_USER_ADDR_T(ifkpi.ifk_data.ifk_ptr);
+ *  }
+ *  error = copyin(tmp_ptr, allocated_dst_buffer, size of allocated_dst_buffer);
+ */
+
+struct ifkpi {
+	unsigned int    ifk_module_id;
+	unsigned int    ifk_type;
+	union {
+		void            *ifk_ptr;
+		int             ifk_value;
+	} ifk_data;
+};
+
+/* Wake capabilities of a interface */
+#define IF_WAKE_ON_MAGIC_PACKET         0x01
+
+
+#pragma pack()
+
+
+/*
+ * Interface request structure used for socket
+ * ioctl's.  All interface ioctl's must have parameter
+ * definitions which begin with ifr_name.  The
+ * remainder may be interface specific.
+ */
+#ifdef IFREQ_OPAQUE
+struct  ifreq;
+#else
+struct  ifreq {
+	char    ifr_name[IFNAMSIZ];             /* if name, e.g. "en0" */
+	union {
+		struct  sockaddr ifru_addr;
+		struct  sockaddr ifru_dstaddr;
+		struct  sockaddr ifru_broadaddr;
+		short   ifru_flags;
+		int     ifru_metric;
+		int     ifru_mtu;
+		int     ifru_phys;
+		int     ifru_media;
+		int     ifru_intval;
+		caddr_t ifru_data;
+		struct  ifdevmtu ifru_devmtu;
+		struct  ifkpi   ifru_kpi;
+		u_int32_t ifru_wake_flags;
+		u_int32_t ifru_route_refcnt;
+		int     ifru_cap[2];
+		u_int32_t ifru_functional_type;
+#define IFRTYPE_FUNCTIONAL_UNKNOWN              0
+#define IFRTYPE_FUNCTIONAL_LOOPBACK             1
+#define IFRTYPE_FUNCTIONAL_WIRED                2
+#define IFRTYPE_FUNCTIONAL_WIFI_INFRA           3
+#define IFRTYPE_FUNCTIONAL_WIFI_AWDL            4
+#define IFRTYPE_FUNCTIONAL_CELLULAR             5
+#define IFRTYPE_FUNCTIONAL_INTCOPROC            6
+#define IFRTYPE_FUNCTIONAL_COMPANIONLINK        7
+#define IFRTYPE_FUNCTIONAL_LAST                 7
+	} ifr_ifru;
+#define ifr_addr        ifr_ifru.ifru_addr      /* address */
+#define ifr_dstaddr     ifr_ifru.ifru_dstaddr   /* other end of p-to-p link */
+#define ifr_broadaddr   ifr_ifru.ifru_broadaddr /* broadcast address */
+#ifdef __APPLE__
+#define ifr_flags       ifr_ifru.ifru_flags     /* flags */
+#else
+#define ifr_flags       ifr_ifru.ifru_flags[0]  /* flags */
+#define ifr_prevflags   ifr_ifru.ifru_flags[1]  /* flags */
+#endif /* __APPLE__ */
+#define ifr_metric      ifr_ifru.ifru_metric    /* metric */
+#define ifr_mtu         ifr_ifru.ifru_mtu       /* mtu */
+#define ifr_phys        ifr_ifru.ifru_phys      /* physical wire */
+#define ifr_media       ifr_ifru.ifru_media     /* physical media */
+#define ifr_data        ifr_ifru.ifru_data      /* for use by interface */
+#define ifr_devmtu      ifr_ifru.ifru_devmtu
+#define ifr_intval      ifr_ifru.ifru_intval    /* integer value */
+#define ifr_kpi         ifr_ifru.ifru_kpi
+#define ifr_wake_flags  ifr_ifru.ifru_wake_flags /* wake capabilities */
+#define ifr_route_refcnt ifr_ifru.ifru_route_refcnt /* route references count */
+#define ifr_reqcap      ifr_ifru.ifru_cap[0]    /* requested capabilities */
+#define ifr_curcap      ifr_ifru.ifru_cap[1]    /* current capabilities */
+};
+
+#define _SIZEOF_ADDR_IFREQ(ifr) \
+	((ifr).ifr_addr.sa_len > sizeof (struct sockaddr) ? \
+	(sizeof (struct ifreq) - sizeof (struct sockaddr) + \
+	(ifr).ifr_addr.sa_len) : sizeof (struct ifreq))
+#endif /* IFREQ_OPAQUE */
+
+struct ifaliasreq {
+	char    ifra_name[IFNAMSIZ];            /* if name, e.g. "en0" */
+#if __has_ptrcheck
+	struct  sockaddr_in ifra_addr;
+	struct  sockaddr_in ifra_broadaddr;
+	struct  sockaddr_in ifra_mask;
+#else
+	struct  sockaddr ifra_addr;
+	struct  sockaddr ifra_broadaddr;
+	struct  sockaddr ifra_mask;
+#endif /* __has_ptrcheck */
+};
+
+struct rslvmulti_req {
+	struct sockaddr *sa;
+	struct sockaddr **llsa;
+};
+
+#pragma pack(4)
+
+struct ifmediareq {
+	char    ifm_name[IFNAMSIZ];     /* if name, e.g. "en0" */
+	int     ifm_current;            /* current media options */
+	int     ifm_mask;               /* don't care mask */
+	int     ifm_status;             /* media status */
+	int     ifm_active;             /* active options */
+	int     ifm_count;              /* # entries in ifm_ulist array */
+	int     *ifm_ulist;             /* media words */
+};
+
+#pragma pack()
+
+
+#pragma pack(4)
+struct  ifdrv {
+	char            ifd_name[IFNAMSIZ];     /* if name, e.g. "en0" */
+	unsigned long   ifd_cmd;
+	size_t          ifd_len;                /* length of ifd_data buffer */
+	void            *ifd_data;
+};
+#pragma pack()
+
+
+/*
+ * Structure used to retrieve aux status data from interfaces.
+ * Kernel suppliers to this interface should respect the formatting
+ * needed by ifconfig(8): each line starts with a TAB and ends with
+ * a newline.
+ */
+
+#define IFSTATMAX       800             /* 10 lines of text */
+struct ifstat {
+	char    ifs_name[IFNAMSIZ];     /* if name, e.g. "en0" */
+	char    ascii[IFSTATMAX + 1];
+};
+
+/*
+ * Structure used in SIOCGIFCONF request.
+ * Used to retrieve interface configuration
+ * for machine (useful for programs which
+ * must know all networks accessible).
+ */
+#pragma pack(4)
+struct  ifconf {
+	int     ifc_len;                /* size of associated buffer */
+	union {
+		caddr_t ifcu_buf;
+		struct  ifreq *ifcu_req;
+	} ifc_ifcu;
+};
+#pragma pack()
+#define ifc_buf ifc_ifcu.ifcu_buf       /* buffer address */
+#define ifc_req ifc_ifcu.ifcu_req       /* array of structures returned */
+
+/*
+ * DLIL KEV_DL_PROTO_ATTACHED/DETACHED structure
+ */
+struct kev_dl_proto_data {
+	struct net_event_data           link_data;
+	u_int32_t                       proto_family;
+	u_int32_t                       proto_remaining_count;
+};
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+struct if_nameindex {
+	unsigned int     if_index;      /* 1, 2, ... */
+	char            *if_name;       /* null terminated name: "le0", ... */
+};
+
+__BEGIN_DECLS
+unsigned int     if_nametoindex(const char *);
+char            *if_indextoname(unsigned int, char *);
+struct           if_nameindex *if_nameindex(void);
+void             if_freenameindex(struct if_nameindex *);
+__END_DECLS
+
+
+
+#endif /* !_NET_IF_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/net/if_dl.h b/lib/libc/include/any-macos.13-any/net/if_dl.h
new file mode 100644
index 0000000000000000000000000000000000000000..494aea0c854ac82c92678d0f5db76e1e8e94d251
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/net/if_dl.h
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2000-2011 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@
+ */
+/*
+ * Copyright (c) 1990, 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.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/net/if_dl.h,v 1.10 2000/03/01 02:46:25 archie Exp $
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+#include 
+
+#include 
+
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+#if __has_ptrcheck
+#define DLIL_SDLDATACOUNT   __counted_by(sdl_len - 8)
+#else
+#define DLIL_SDLDATACOUNT   12
+#endif
+
+struct sockaddr_dl {
+	u_char  sdl_len;        /* Total length of sockaddr */
+	u_char  sdl_family;     /* AF_LINK */
+	u_short sdl_index;      /* if != 0, system given index for interface */
+	u_char  sdl_type;       /* interface type */
+	u_char  sdl_nlen;       /* interface name length, no trailing 0 reqd. */
+	u_char  sdl_alen;       /* link level address length */
+	u_char  sdl_slen;       /* link layer selector length */
+	char    sdl_data[DLIL_SDLDATACOUNT];
+	/* minimum work area, can be larger;
+	 *  contains both if name and ll address */
+#ifndef __APPLE__
+	/* For TokenRing */
+	u_short sdl_rcf;        /* source routing control */
+	u_short sdl_route[16];  /* source routing information */
+#endif
+};
+
+#define LLADDR(s) ((caddr_t)((s)->sdl_data + (s)->sdl_nlen))
+
+
+
+#include 
+
+__BEGIN_DECLS
+void    link_addr(const char *, struct sockaddr_dl *);
+char    *link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/net/if_var.h b/lib/libc/include/any-macos.13-any/net/if_var.h
new file mode 100644
index 0000000000000000000000000000000000000000..32b79182827d40eaffe656ce5d4c8c8f0d73603a
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/net/if_var.h
@@ -0,0 +1,247 @@
+/*
+ * Copyright (c) 2000-2021 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@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1989, 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.
+ *
+ *	From: @(#)if.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/net/if_var.h,v 1.18.2.7 2001/07/24 19:10:18 brooks Exp $
+ */
+
+#ifndef _NET_IF_VAR_H_
+#define _NET_IF_VAR_H_
+
+#include 
+#include 
+#include 
+#include 
+#include           /* get TAILQ macros */
+#ifdef BSD_KERN_PRIVATE
+#include 
+#include 
+#endif
+
+
+#ifdef __APPLE__
+#define APPLE_IF_FAM_LOOPBACK  1
+#define APPLE_IF_FAM_ETHERNET  2
+#define APPLE_IF_FAM_SLIP      3
+#define APPLE_IF_FAM_TUN       4
+#define APPLE_IF_FAM_VLAN      5
+#define APPLE_IF_FAM_PPP       6
+#define APPLE_IF_FAM_PVC       7
+#define APPLE_IF_FAM_DISC      8
+#define APPLE_IF_FAM_MDECAP    9
+#define APPLE_IF_FAM_GIF       10
+#define APPLE_IF_FAM_FAITH     11       /* deprecated */
+#define APPLE_IF_FAM_STF       12
+#define APPLE_IF_FAM_FIREWIRE  13
+#define APPLE_IF_FAM_BOND      14
+#define APPLE_IF_FAM_CELLULAR  15
+#define APPLE_IF_FAM_UNUSED_16 16       /* Un-used */
+#define APPLE_IF_FAM_UTUN      17
+#define APPLE_IF_FAM_IPSEC     18
+#endif /* __APPLE__ */
+
+/*
+ * 72 was chosen below because it is the size of a TCP/IP
+ * header (40) + the minimum mss (32).
+ */
+#define IF_MINMTU       72
+#define IF_MAXMTU       65535
+
+/*
+ * Structures defining a network interface, providing a packet
+ * transport mechanism (ala level 0 of the PUP protocols).
+ *
+ * Each interface accepts output datagrams of a specified maximum
+ * length, and provides higher level routines with input datagrams
+ * received from its medium.
+ *
+ * Output occurs when the routine if_output is called, with three parameters:
+ *	(*ifp->if_output)(ifp, m, dst, rt)
+ * Here m is the mbuf chain to be sent and dst is the destination address.
+ * The output routine encapsulates the supplied datagram if necessary,
+ * and then transmits it on its medium.
+ *
+ * On input, each interface unwraps the data received by it, and either
+ * places it on the input queue of a internetwork datagram routine
+ * and posts the associated software interrupt, or passes the datagram to a raw
+ * packet input routine.
+ *
+ * Routines exist for locating interfaces by their addresses
+ * or for locating a interface on a certain network, as well as more general
+ * routing and gateway routines maintaining information used to locate
+ * interfaces.  These routines live in the files if.c and route.c
+ */
+
+#define IFNAMSIZ        16
+
+/* This belongs up in socket.h or socketvar.h, depending on how far the
+ *   event bubbles up.
+ */
+
+struct net_event_data {
+	u_int32_t       if_family;
+	u_int32_t       if_unit;
+	char            if_name[IFNAMSIZ];
+};
+
+#if defined(__LP64__)
+#include 
+#define IF_DATA_TIMEVAL timeval32
+#else
+#define IF_DATA_TIMEVAL timeval
+#endif
+
+#pragma pack(4)
+
+/*
+ * Structure describing information about an interface
+ * which may be of interest to management entities.
+ */
+struct if_data {
+	/* generic interface information */
+	u_char          ifi_type;       /* ethernet, tokenring, etc */
+	u_char          ifi_typelen;    /* Length of frame type id */
+	u_char          ifi_physical;   /* e.g., AUI, Thinnet, 10base-T, etc */
+	u_char          ifi_addrlen;    /* media address length */
+	u_char          ifi_hdrlen;     /* media header length */
+	u_char          ifi_recvquota;  /* polling quota for receive intrs */
+	u_char          ifi_xmitquota;  /* polling quota for xmit intrs */
+	u_char          ifi_unused1;    /* for future use */
+	u_int32_t       ifi_mtu;        /* maximum transmission unit */
+	u_int32_t       ifi_metric;     /* routing metric (external only) */
+	u_int32_t       ifi_baudrate;   /* linespeed */
+	/* volatile statistics */
+	u_int32_t       ifi_ipackets;   /* packets received on interface */
+	u_int32_t       ifi_ierrors;    /* input errors on interface */
+	u_int32_t       ifi_opackets;   /* packets sent on interface */
+	u_int32_t       ifi_oerrors;    /* output errors on interface */
+	u_int32_t       ifi_collisions; /* collisions on csma interfaces */
+	u_int32_t       ifi_ibytes;     /* total number of octets received */
+	u_int32_t       ifi_obytes;     /* total number of octets sent */
+	u_int32_t       ifi_imcasts;    /* packets received via multicast */
+	u_int32_t       ifi_omcasts;    /* packets sent via multicast */
+	u_int32_t       ifi_iqdrops;    /* dropped on input, this interface */
+	u_int32_t       ifi_noproto;    /* destined for unsupported protocol */
+	u_int32_t       ifi_recvtiming; /* usec spent receiving when timing */
+	u_int32_t       ifi_xmittiming; /* usec spent xmitting when timing */
+	struct IF_DATA_TIMEVAL ifi_lastchange;  /* time of last administrative change */
+	u_int32_t       ifi_unused2;    /* used to be the default_proto */
+	u_int32_t       ifi_hwassist;   /* HW offload capabilities */
+	u_int32_t       ifi_reserved1;  /* for future use */
+	u_int32_t       ifi_reserved2;  /* for future use */
+};
+
+/*
+ * Structure describing information about an interface
+ * which may be of interest to management entities.
+ */
+struct if_data64 {
+	/* generic interface information */
+	u_char          ifi_type;               /* ethernet, tokenring, etc */
+	u_char          ifi_typelen;            /* Length of frame type id */
+	u_char          ifi_physical;           /* e.g., AUI, Thinnet, 10base-T, etc */
+	u_char          ifi_addrlen;            /* media address length */
+	u_char          ifi_hdrlen;             /* media header length */
+	u_char          ifi_recvquota;          /* polling quota for receive intrs */
+	u_char          ifi_xmitquota;          /* polling quota for xmit intrs */
+	u_char          ifi_unused1;            /* for future use */
+	u_int32_t       ifi_mtu;                /* maximum transmission unit */
+	u_int32_t       ifi_metric;             /* routing metric (external only) */
+	u_int64_t       ifi_baudrate;           /* linespeed */
+	/* volatile statistics */
+	u_int64_t       ifi_ipackets;           /* packets received on interface */
+	u_int64_t       ifi_ierrors;            /* input errors on interface */
+	u_int64_t       ifi_opackets;           /* packets sent on interface */
+	u_int64_t       ifi_oerrors;            /* output errors on interface */
+	u_int64_t       ifi_collisions;         /* collisions on csma interfaces */
+	u_int64_t       ifi_ibytes;             /* total number of octets received */
+	u_int64_t       ifi_obytes;             /* total number of octets sent */
+	u_int64_t       ifi_imcasts;            /* packets received via multicast */
+	u_int64_t       ifi_omcasts;            /* packets sent via multicast */
+	u_int64_t       ifi_iqdrops;            /* dropped on input, this interface */
+	u_int64_t       ifi_noproto;            /* destined for unsupported protocol */
+	u_int32_t       ifi_recvtiming;         /* usec spent receiving when timing */
+	u_int32_t       ifi_xmittiming;         /* usec spent xmitting when timing */
+	struct IF_DATA_TIMEVAL ifi_lastchange;  /* time of last administrative change */
+};
+
+
+#pragma pack()
+
+#if defined(DRIVERKIT) || defined(PRIVATE) || defined(DRIVERKIT_PRIVATE)
+#include 
+#else
+struct ifnet_interface_advisory;
+#endif /* defined(DRIVERKIT) || defined(PRIVATE) || defined(DRIVERKIT_PRIVATE) */
+
+
+/*
+ * Structure defining a queue for a network interface.
+ */
+struct  ifqueue {
+	void    *ifq_head;
+	void    *ifq_tail;
+	int     ifq_len;
+	int     ifq_maxlen;
+	int     ifq_drops;
+};
+
+
+
+#endif /* !_NET_IF_VAR_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/net/route.h b/lib/libc/include/any-macos.13-any/net/route.h
new file mode 100644
index 0000000000000000000000000000000000000000..968eb0c2aa224bd98682c520ffcc24fab27ecb72
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/net/route.h
@@ -0,0 +1,260 @@
+/*
+ * Copyright (c) 2000-2017 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@
+ */
+/*
+ * Copyright (c) 1980, 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.
+ *
+ *	@(#)route.h	8.3 (Berkeley) 4/19/94
+ * $FreeBSD: src/sys/net/route.h,v 1.36.2.1 2000/08/16 06:14:23 jayanth Exp $
+ */
+
+#ifndef _NET_ROUTE_H_
+#define _NET_ROUTE_H_
+#include 
+#include 
+#include 
+#include 
+
+/*
+ * These numbers are used by reliable protocols for determining
+ * retransmission behavior and are included in the routing structure.
+ */
+struct rt_metrics {
+	u_int32_t       rmx_locks;      /* Kernel leaves these values alone */
+	u_int32_t       rmx_mtu;        /* MTU for this path */
+	u_int32_t       rmx_hopcount;   /* max hops expected */
+	int32_t         rmx_expire;     /* lifetime for route, e.g. redirect */
+	u_int32_t       rmx_recvpipe;   /* inbound delay-bandwidth product */
+	u_int32_t       rmx_sendpipe;   /* outbound delay-bandwidth product */
+	u_int32_t       rmx_ssthresh;   /* outbound gateway buffer limit */
+	u_int32_t       rmx_rtt;        /* estimated round trip time */
+	u_int32_t       rmx_rttvar;     /* estimated rtt variance */
+	u_int32_t       rmx_pksent;     /* packets sent using this route */
+	u_int32_t       rmx_state;      /* route state */
+	u_int32_t       rmx_filler[3];  /* will be used for TCP's peer-MSS cache */
+};
+
+/*
+ * rmx_rtt and rmx_rttvar are stored as microseconds;
+ */
+#define RTM_RTTUNIT     1000000 /* units for rtt, rttvar, as units per sec */
+
+#define RTF_UP          0x1             /* route usable */
+#define RTF_GATEWAY     0x2             /* destination is a gateway */
+#define RTF_HOST        0x4             /* host entry (net otherwise) */
+#define RTF_REJECT      0x8             /* host or net unreachable */
+#define RTF_DYNAMIC     0x10            /* created dynamically (by redirect) */
+#define RTF_MODIFIED    0x20            /* modified dynamically (by redirect) */
+#define RTF_DONE        0x40            /* message confirmed */
+#define RTF_DELCLONE    0x80            /* delete cloned route */
+#define RTF_CLONING     0x100           /* generate new routes on use */
+#define RTF_XRESOLVE    0x200           /* external daemon resolves name */
+#define RTF_LLINFO      0x400           /* DEPRECATED - exists ONLY for backward
+	                                 *  compatibility */
+#define RTF_LLDATA      0x400           /* used by apps to add/del L2 entries */
+#define RTF_STATIC      0x800           /* manually added */
+#define RTF_BLACKHOLE   0x1000          /* just discard pkts (during updates) */
+#define RTF_NOIFREF     0x2000          /* not eligible for RTF_IFREF */
+#define RTF_PROTO2      0x4000          /* protocol specific routing flag */
+#define RTF_PROTO1      0x8000          /* protocol specific routing flag */
+
+#define RTF_PRCLONING   0x10000         /* protocol requires cloning */
+#define RTF_WASCLONED   0x20000         /* route generated through cloning */
+#define RTF_PROTO3      0x40000         /* protocol specific routing flag */
+                                        /* 0x80000 unused */
+#define RTF_PINNED      0x100000        /* future use */
+#define RTF_LOCAL       0x200000        /* route represents a local address */
+#define RTF_BROADCAST   0x400000        /* route represents a bcast address */
+#define RTF_MULTICAST   0x800000        /* route represents a mcast address */
+#define RTF_IFSCOPE     0x1000000       /* has valid interface scope */
+#define RTF_CONDEMNED   0x2000000       /* defunct; no longer modifiable */
+#define RTF_IFREF       0x4000000       /* route holds a ref to interface */
+#define RTF_PROXY       0x8000000       /* proxying, no interface scope */
+#define RTF_ROUTER      0x10000000      /* host is a router */
+#define RTF_DEAD        0x20000000      /* Route entry is being freed */
+#define RTF_GLOBAL      0x40000000      /* route to destination of the global internet */
+                                        /* 0x80000000 unassigned */
+
+#define RTPRF_OURS      RTF_PROTO3      /* set on routes we manage */
+#define RTF_BITS \
+	"\020\1UP\2GATEWAY\3HOST\4REJECT\5DYNAMIC\6MODIFIED\7DONE" \
+	"\10DELCLONE\11CLONING\12XRESOLVE\13LLINFO\14STATIC\15BLACKHOLE" \
+	"\16NOIFREF\17PROTO2\20PROTO1\21PRCLONING\22WASCLONED\23PROTO3" \
+	"\25PINNED\26LOCAL\27BROADCAST\30MULTICAST\31IFSCOPE\32CONDEMNED" \
+	"\33IFREF\34PROXY\35ROUTER\37GLOBAL"
+
+#define IS_DIRECT_HOSTROUTE(rt) \
+	(((rt)->rt_flags & (RTF_HOST | RTF_GATEWAY)) == RTF_HOST)
+
+#define IS_DYNAMIC_DIRECT_HOSTROUTE(rt) \
+	(((rt)->rt_flags & (RTF_CLONING | RTF_PRCLONING | RTF_HOST | RTF_LLINFO |\
+	    RTF_WASCLONED | RTF_GATEWAY)) ==\
+	 (RTF_HOST | RTF_LLINFO | RTF_WASCLONED))
+/*
+ * Routing statistics.
+ */
+struct  rtstat {
+	short   rts_badredirect;        /* bogus redirect calls */
+	short   rts_dynamic;            /* routes created by redirects */
+	short   rts_newgateway;         /* routes modified by redirects */
+	short   rts_unreach;            /* lookups which failed */
+	short   rts_wildcard;           /* lookups satisfied by a wildcard */
+	short   rts_badrtgwroute;       /* route to gateway is not direct */
+};
+
+/*
+ * Structures for routing messages.
+ */
+struct rt_msghdr {
+	u_short rtm_msglen;     /* to skip over non-understood messages */
+	u_char  rtm_version;    /* future binary compatibility */
+	u_char  rtm_type;       /* message type */
+	u_short rtm_index;      /* index for associated ifp */
+	int     rtm_flags;      /* flags, incl. kern & message, e.g. DONE */
+	int     rtm_addrs;      /* bitmask identifying sockaddrs in msg */
+	pid_t   rtm_pid;        /* identify sender */
+	int     rtm_seq;        /* for sender to identify action */
+	int     rtm_errno;      /* why failed */
+	int     rtm_use;        /* from rtentry */
+	u_int32_t rtm_inits;    /* which metrics we are initializing */
+	struct rt_metrics rtm_rmx; /* metrics themselves */
+};
+
+struct rt_msghdr2 {
+	u_short rtm_msglen;     /* to skip over non-understood messages */
+	u_char  rtm_version;    /* future binary compatibility */
+	u_char  rtm_type;       /* message type */
+	u_short rtm_index;      /* index for associated ifp */
+	int     rtm_flags;      /* flags, incl. kern & message, e.g. DONE */
+	int     rtm_addrs;      /* bitmask identifying sockaddrs in msg */
+	int32_t rtm_refcnt;     /* reference count */
+	int     rtm_parentflags; /* flags of the parent route */
+	int     rtm_reserved;   /* reserved field set to 0 */
+	int     rtm_use;        /* from rtentry */
+	u_int32_t rtm_inits;    /* which metrics we are initializing */
+	struct rt_metrics rtm_rmx; /* metrics themselves */
+};
+
+#define RTM_VERSION     5       /* Up the ante and ignore older versions */
+
+/*
+ * Message types.
+ */
+#define RTM_ADD         0x1     /* Add Route */
+#define RTM_DELETE      0x2     /* Delete Route */
+#define RTM_CHANGE      0x3     /* Change Metrics or flags */
+#define RTM_GET         0x4     /* Report Metrics */
+#define RTM_LOSING      0x5     /* RTM_LOSING is no longer generated by xnu
+	                         *  and is deprecated */
+#define RTM_REDIRECT    0x6     /* Told to use different route */
+#define RTM_MISS        0x7     /* Lookup failed on this address */
+#define RTM_LOCK        0x8     /* fix specified metrics */
+#define RTM_OLDADD      0x9     /* caused by SIOCADDRT */
+#define RTM_OLDDEL      0xa     /* caused by SIOCDELRT */
+#define RTM_RESOLVE     0xb     /* req to resolve dst to LL addr */
+#define RTM_NEWADDR     0xc     /* address being added to iface */
+#define RTM_DELADDR     0xd     /* address being removed from iface */
+#define RTM_IFINFO      0xe     /* iface going up/down etc. */
+#define RTM_NEWMADDR    0xf     /* mcast group membership being added to if */
+#define RTM_DELMADDR    0x10    /* mcast group membership being deleted */
+#define RTM_IFINFO2     0x12    /* */
+#define RTM_NEWMADDR2   0x13    /* */
+#define RTM_GET2        0x14    /* */
+
+/*
+ * Bitmask values for rtm_inits and rmx_locks.
+ */
+#define RTV_MTU         0x1     /* init or lock _mtu */
+#define RTV_HOPCOUNT    0x2     /* init or lock _hopcount */
+#define RTV_EXPIRE      0x4     /* init or lock _expire */
+#define RTV_RPIPE       0x8     /* init or lock _recvpipe */
+#define RTV_SPIPE       0x10    /* init or lock _sendpipe */
+#define RTV_SSTHRESH    0x20    /* init or lock _ssthresh */
+#define RTV_RTT         0x40    /* init or lock _rtt */
+#define RTV_RTTVAR      0x80    /* init or lock _rttvar */
+
+/*
+ * Bitmask values for rtm_addrs.
+ */
+#define RTA_DST         0x1     /* destination sockaddr present */
+#define RTA_GATEWAY     0x2     /* gateway sockaddr present */
+#define RTA_NETMASK     0x4     /* netmask sockaddr present */
+#define RTA_GENMASK     0x8     /* cloning mask sockaddr present */
+#define RTA_IFP         0x10    /* interface name sockaddr present */
+#define RTA_IFA         0x20    /* interface addr sockaddr present */
+#define RTA_AUTHOR      0x40    /* sockaddr for author of redirect */
+#define RTA_BRD         0x80    /* for NEWADDR, broadcast or p-p dest addr */
+
+/*
+ * Index offsets for sockaddr array for alternate internal encoding.
+ */
+#define RTAX_DST        0       /* destination sockaddr present */
+#define RTAX_GATEWAY    1       /* gateway sockaddr present */
+#define RTAX_NETMASK    2       /* netmask sockaddr present */
+#define RTAX_GENMASK    3       /* cloning mask sockaddr present */
+#define RTAX_IFP        4       /* interface name sockaddr present */
+#define RTAX_IFA        5       /* interface addr sockaddr present */
+#define RTAX_AUTHOR     6       /* sockaddr for author of redirect */
+#define RTAX_BRD        7       /* for NEWADDR, broadcast or p-p dest addr */
+#define RTAX_MAX        8       /* size of array to allocate */
+
+struct rt_addrinfo {
+	int     rti_addrs;
+	struct  sockaddr *rti_info[RTAX_MAX];
+};
+
+
+#endif /* _NET_ROUTE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/netinet/in.h b/lib/libc/include/any-macos.13-any/netinet/in.h
new file mode 100644
index 0000000000000000000000000000000000000000..f2daff26a494876ee77988c09417e520876f75d4
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/netinet/in.h
@@ -0,0 +1,670 @@
+/*
+ * Copyright (c) 2000-2018 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@
+ */
+/*
+ * Copyright (c) 1982, 1986, 1990, 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.
+ *
+ *	@(#)in.h	8.3 (Berkeley) 1/3/94
+ * $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
+ */
+
+#ifndef _NETINET_IN_H_
+#define _NETINET_IN_H_
+
+#include 
+#include              /* uint(8|16|32)_t */
+
+#include 
+
+
+#include 
+#include 
+
+/*
+ * POSIX 1003.1-2003
+ * "Inclusion of the  header may also make visible all
+ *  symbols from  and ".
+ */
+#include 
+
+/*
+ * The following two #includes insure htonl and family are defined
+ */
+#include 
+#include 
+
+/*
+ * Constants and structures defined by the internet system,
+ * Per RFC 790, September 1981, and numerous additions.
+ */
+
+/*
+ * Protocols (RFC 1700)
+ */
+#define IPPROTO_IP              0               /* dummy for IP */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_HOPOPTS 0               /* IP6 hop-by-hop options */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define IPPROTO_ICMP            1               /* control message protocol */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_IGMP            2               /* group mgmt protocol */
+#define IPPROTO_GGP             3               /* gateway^2 (deprecated) */
+#define IPPROTO_IPV4            4               /* IPv4 encapsulation */
+#define IPPROTO_IPIP            IPPROTO_IPV4    /* for compatibility */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define IPPROTO_TCP             6               /* tcp */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_ST              7               /* Stream protocol II */
+#define IPPROTO_EGP             8               /* exterior gateway protocol */
+#define IPPROTO_PIGP            9               /* private interior gateway */
+#define IPPROTO_RCCMON          10              /* BBN RCC Monitoring */
+#define IPPROTO_NVPII           11              /* network voice protocol*/
+#define IPPROTO_PUP             12              /* pup */
+#define IPPROTO_ARGUS           13              /* Argus */
+#define IPPROTO_EMCON           14              /* EMCON */
+#define IPPROTO_XNET            15              /* Cross Net Debugger */
+#define IPPROTO_CHAOS           16              /* Chaos*/
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define IPPROTO_UDP             17              /* user datagram protocol */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_MUX             18              /* Multiplexing */
+#define IPPROTO_MEAS            19              /* DCN Measurement Subsystems */
+#define IPPROTO_HMP             20              /* Host Monitoring */
+#define IPPROTO_PRM             21              /* Packet Radio Measurement */
+#define IPPROTO_IDP             22              /* xns idp */
+#define IPPROTO_TRUNK1          23              /* Trunk-1 */
+#define IPPROTO_TRUNK2          24              /* Trunk-2 */
+#define IPPROTO_LEAF1           25              /* Leaf-1 */
+#define IPPROTO_LEAF2           26              /* Leaf-2 */
+#define IPPROTO_RDP             27              /* Reliable Data */
+#define IPPROTO_IRTP            28              /* Reliable Transaction */
+#define IPPROTO_TP              29              /* tp-4 w/ class negotiation */
+#define IPPROTO_BLT             30              /* Bulk Data Transfer */
+#define IPPROTO_NSP             31              /* Network Services */
+#define IPPROTO_INP             32              /* Merit Internodal */
+#define IPPROTO_SEP             33              /* Sequential Exchange */
+#define IPPROTO_3PC             34              /* Third Party Connect */
+#define IPPROTO_IDPR            35              /* InterDomain Policy Routing */
+#define IPPROTO_XTP             36              /* XTP */
+#define IPPROTO_DDP             37              /* Datagram Delivery */
+#define IPPROTO_CMTP            38              /* Control Message Transport */
+#define IPPROTO_TPXX            39              /* TP++ Transport */
+#define IPPROTO_IL              40              /* IL transport protocol */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define         IPPROTO_IPV6            41              /* IP6 header */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_SDRP            42              /* Source Demand Routing */
+#define         IPPROTO_ROUTING 43              /* IP6 routing header */
+#define         IPPROTO_FRAGMENT        44              /* IP6 fragmentation header */
+#define IPPROTO_IDRP            45              /* InterDomain Routing*/
+#define         IPPROTO_RSVP            46              /* resource reservation */
+#define IPPROTO_GRE             47              /* General Routing Encap. */
+#define IPPROTO_MHRP            48              /* Mobile Host Routing */
+#define IPPROTO_BHA             49              /* BHA */
+#define IPPROTO_ESP             50              /* IP6 Encap Sec. Payload */
+#define IPPROTO_AH              51              /* IP6 Auth Header */
+#define IPPROTO_INLSP           52              /* Integ. Net Layer Security */
+#define IPPROTO_SWIPE           53              /* IP with encryption */
+#define IPPROTO_NHRP            54              /* Next Hop Resolution */
+/* 55-57: Unassigned */
+#define IPPROTO_ICMPV6          58              /* ICMP6 */
+#define IPPROTO_NONE            59              /* IP6 no next header */
+#define IPPROTO_DSTOPTS         60              /* IP6 destination option */
+#define IPPROTO_AHIP            61              /* any host internal protocol */
+#define IPPROTO_CFTP            62              /* CFTP */
+#define IPPROTO_HELLO           63              /* "hello" routing protocol */
+#define IPPROTO_SATEXPAK        64              /* SATNET/Backroom EXPAK */
+#define IPPROTO_KRYPTOLAN       65              /* Kryptolan */
+#define IPPROTO_RVD             66              /* Remote Virtual Disk */
+#define IPPROTO_IPPC            67              /* Pluribus Packet Core */
+#define IPPROTO_ADFS            68              /* Any distributed FS */
+#define IPPROTO_SATMON          69              /* Satnet Monitoring */
+#define IPPROTO_VISA            70              /* VISA Protocol */
+#define IPPROTO_IPCV            71              /* Packet Core Utility */
+#define IPPROTO_CPNX            72              /* Comp. Prot. Net. Executive */
+#define IPPROTO_CPHB            73              /* Comp. Prot. HeartBeat */
+#define IPPROTO_WSN             74              /* Wang Span Network */
+#define IPPROTO_PVP             75              /* Packet Video Protocol */
+#define IPPROTO_BRSATMON        76              /* BackRoom SATNET Monitoring */
+#define IPPROTO_ND              77              /* Sun net disk proto (temp.) */
+#define IPPROTO_WBMON           78              /* WIDEBAND Monitoring */
+#define IPPROTO_WBEXPAK         79              /* WIDEBAND EXPAK */
+#define IPPROTO_EON             80              /* ISO cnlp */
+#define IPPROTO_VMTP            81              /* VMTP */
+#define IPPROTO_SVMTP           82              /* Secure VMTP */
+#define IPPROTO_VINES           83              /* Banyon VINES */
+#define IPPROTO_TTP             84              /* TTP */
+#define IPPROTO_IGP             85              /* NSFNET-IGP */
+#define IPPROTO_DGP             86              /* dissimilar gateway prot. */
+#define IPPROTO_TCF             87              /* TCF */
+#define IPPROTO_IGRP            88              /* Cisco/GXS IGRP */
+#define IPPROTO_OSPFIGP         89              /* OSPFIGP */
+#define IPPROTO_SRPC            90              /* Strite RPC protocol */
+#define IPPROTO_LARP            91              /* Locus Address Resoloution */
+#define IPPROTO_MTP             92              /* Multicast Transport */
+#define IPPROTO_AX25            93              /* AX.25 Frames */
+#define IPPROTO_IPEIP           94              /* IP encapsulated in IP */
+#define IPPROTO_MICP            95              /* Mobile Int.ing control */
+#define IPPROTO_SCCSP           96              /* Semaphore Comm. security */
+#define IPPROTO_ETHERIP         97              /* Ethernet IP encapsulation */
+#define IPPROTO_ENCAP           98              /* encapsulation header */
+#define IPPROTO_APES            99              /* any private encr. scheme */
+#define IPPROTO_GMTP            100             /* GMTP*/
+/* 101-252: Partly Unassigned */
+#define IPPROTO_PIM             103             /* Protocol Independent Mcast */
+#define IPPROTO_IPCOMP          108             /* payload compression (IPComp) */
+#define IPPROTO_PGM             113             /* PGM */
+#define IPPROTO_SCTP            132             /* SCTP */
+/* 253-254: Experimentation and testing; 255: Reserved (RFC3692) */
+/* BSD Private, local use, namespace incursion */
+#define IPPROTO_DIVERT          254             /* divert pseudo-protocol */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define IPPROTO_RAW             255             /* raw IP packet */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPPROTO_MAX             256
+
+/* last return value of *_input(), meaning "all job for this pkt is done".  */
+#define IPPROTO_DONE            257
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * Local port number conventions:
+ *
+ * When a user does a bind(2) or connect(2) with a port number of zero,
+ * a non-conflicting local port address is chosen.
+ * The default range is IPPORT_RESERVED through
+ * IPPORT_USERRESERVED, although that is settable by sysctl.
+ *
+ * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+ * default assignment range.
+ *
+ * The value IP_PORTRANGE_DEFAULT causes the default behavior.
+ *
+ * The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
+ * into the "high" range.  These are reserved for client outbound connections
+ * which do not want to be filtered by any firewalls.
+ *
+ * The value IP_PORTRANGE_LOW changes the range to the "low" are
+ * that is (by convention) restricted to privileged processes.  This
+ * convention is based on "vouchsafe" principles only.  It is only secure
+ * if you trust the remote host to restrict these ports.
+ *
+ * The default range of ports and the high range can be changed by
+ * sysctl(3).  (net.inet.ip.port{hi,low}{first,last}_auto)
+ *
+ * Changing those values has bad security implications if you are
+ * using a a stateless firewall that is allowing packets outside of that
+ * range in order to allow transparent outgoing connections.
+ *
+ * Such a firewall configuration will generally depend on the use of these
+ * default values.  If you change them, you may find your Security
+ * Administrator looking for you with a heavy object.
+ *
+ * For a slightly more orthodox text view on this:
+ *
+ *            ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
+ *
+ *    port numbers are divided into three ranges:
+ *
+ *                0 -  1023 Well Known Ports
+ *             1024 - 49151 Registered Ports
+ *            49152 - 65535 Dynamic and/or Private Ports
+ *
+ */
+
+#define __DARWIN_IPPORT_RESERVED        1024
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Ports < IPPORT_RESERVED are reserved for
+ * privileged processes (e.g. root).         (IP_PORTRANGE_LOW)
+ * Ports > IPPORT_USERRESERVED are reserved
+ * for servers, not necessarily privileged.  (IP_PORTRANGE_DEFAULT)
+ */
+#ifndef IPPORT_RESERVED
+#define IPPORT_RESERVED         __DARWIN_IPPORT_RESERVED
+#endif
+#define IPPORT_USERRESERVED     5000
+
+/*
+ * Default local port range to use by setting IP_PORTRANGE_HIGH
+ */
+#define IPPORT_HIFIRSTAUTO      49152
+#define IPPORT_HILASTAUTO       65535
+
+/*
+ * Scanning for a free reserved port return a value below IPPORT_RESERVED,
+ * but higher than IPPORT_RESERVEDSTART.  Traditionally the start value was
+ * 512, but that conflicts with some well-known-services that firewalls may
+ * have a fit if we use.
+ */
+#define IPPORT_RESERVEDSTART    600
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Internet address (a structure for historical reasons)
+ */
+struct in_addr {
+	in_addr_t s_addr;
+};
+
+/*
+ * Definitions of bits in internet address integers.
+ * On subnets, the decomposition of addresses to host and net parts
+ * is done according to subnet mask, not the masks here.
+ */
+#define INADDR_ANY              (u_int32_t)0x00000000
+#define INADDR_BROADCAST        (u_int32_t)0xffffffff   /* must be masked */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IN_CLASSA(i)            (((u_int32_t)(i) & 0x80000000) == 0)
+#define IN_CLASSA_NET           0xff000000
+#define IN_CLASSA_NSHIFT        24
+#define IN_CLASSA_HOST          0x00ffffff
+#define IN_CLASSA_MAX           128
+
+#define IN_CLASSB(i)            (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
+#define IN_CLASSB_NET           0xffff0000
+#define IN_CLASSB_NSHIFT        16
+#define IN_CLASSB_HOST          0x0000ffff
+#define IN_CLASSB_MAX           65536
+
+#define IN_CLASSC(i)            (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
+#define IN_CLASSC_NET           0xffffff00
+#define IN_CLASSC_NSHIFT        8
+#define IN_CLASSC_HOST          0x000000ff
+
+#define IN_CLASSD(i)            (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
+#define IN_CLASSD_NET           0xf0000000      /* These ones aren't really */
+#define IN_CLASSD_NSHIFT        28              /* net and host fields, but */
+#define IN_CLASSD_HOST          0x0fffffff      /* routing needn't know.    */
+#define IN_MULTICAST(i)         IN_CLASSD(i)
+
+#define IN_EXPERIMENTAL(i)      (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+#define IN_BADCLASS(i)          (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+#define INADDR_LOOPBACK         (u_int32_t)0x7f000001
+
+#define INADDR_NONE             0xffffffff              /* -1 return */
+
+#define INADDR_UNSPEC_GROUP     (u_int32_t)0xe0000000   /* 224.0.0.0 */
+#define INADDR_ALLHOSTS_GROUP   (u_int32_t)0xe0000001   /* 224.0.0.1 */
+#define INADDR_ALLRTRS_GROUP    (u_int32_t)0xe0000002   /* 224.0.0.2 */
+#define INADDR_ALLRPTS_GROUP    (u_int32_t)0xe0000016   /* 224.0.0.22, IGMPv3 */
+#define INADDR_CARP_GROUP       (u_int32_t)0xe0000012   /* 224.0.0.18 */
+#define INADDR_PFSYNC_GROUP     (u_int32_t)0xe00000f0   /* 224.0.0.240 */
+#define INADDR_ALLMDNS_GROUP    (u_int32_t)0xe00000fb   /* 224.0.0.251 */
+#define INADDR_MAX_LOCAL_GROUP  (u_int32_t)0xe00000ff   /* 224.0.0.255 */
+
+#ifdef __APPLE__
+#define IN_LINKLOCALNETNUM      (u_int32_t)0xA9FE0000 /* 169.254.0.0 */
+#define IN_LINKLOCAL(i)         (((u_int32_t)(i) & IN_CLASSB_NET) == IN_LINKLOCALNETNUM)
+#define IN_LOOPBACK(i)          (((u_int32_t)(i) & 0xff000000) == 0x7f000000)
+#define IN_ZERONET(i)           (((u_int32_t)(i) & 0xff000000) == 0)
+
+#define IN_PRIVATE(i)   ((((u_int32_t)(i) & 0xff000000) == 0x0a000000) || \
+	                 (((u_int32_t)(i) & 0xfff00000) == 0xac100000) || \
+	                 (((u_int32_t)(i) & 0xffff0000) == 0xc0a80000))
+
+#define IN_LOCAL_GROUP(i)       (((u_int32_t)(i) & 0xffffff00) == 0xe0000000)
+
+#define IN_ANY_LOCAL(i)         (IN_LINKLOCAL(i) || IN_LOCAL_GROUP(i))
+#endif /* __APPLE__ */
+
+#define IN_LOOPBACKNET          127                     /* official! */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Socket address, internet style.
+ */
+struct sockaddr_in {
+	__uint8_t       sin_len;
+	sa_family_t     sin_family;
+	in_port_t       sin_port;
+	struct  in_addr sin_addr;
+	char            sin_zero[8];
+};
+
+#define IN_ARE_ADDR_EQUAL(a, b) \
+    (bcmp(&(a)->s_addr, &(b)->s_addr, \
+	sizeof (struct in_addr)) == 0)
+
+#define INET_ADDRSTRLEN                 16
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Structure used to describe IP options.
+ * Used to store options internally, to pass them to a process,
+ * or to restore options retrieved earlier.
+ * The ip_dst is used for the first-hop gateway when using a source route
+ * (this gets put into the header proper).
+ */
+struct ip_opts {
+	struct  in_addr ip_dst;         /* first hop, 0 w/o src rt */
+	char    ip_opts[40];            /* actually variable in size */
+};
+
+/*
+ * Options for use with [gs]etsockopt at the IP level.
+ * First word of comment is data type; bool is stored in int.
+ */
+#define IP_OPTIONS              1    /* buf/ip_opts; set/get IP options */
+#define IP_HDRINCL              2    /* int; header is included with data */
+#define IP_TOS                  3    /* int; IP type of service and preced. */
+#define IP_TTL                  4    /* int; IP time to live */
+#define IP_RECVOPTS             5    /* bool; receive all IP opts w/dgram */
+#define IP_RECVRETOPTS          6    /* bool; receive IP opts for response */
+#define IP_RECVDSTADDR          7    /* bool; receive IP dst addr w/dgram */
+#define IP_RETOPTS              8    /* ip_opts; set/get IP options */
+#define IP_MULTICAST_IF         9    /* u_char; set/get IP multicast i/f  */
+#define IP_MULTICAST_TTL        10   /* u_char; set/get IP multicast ttl */
+#define IP_MULTICAST_LOOP       11   /* u_char; set/get IP multicast loopback */
+#define IP_ADD_MEMBERSHIP       12   /* ip_mreq; add an IP group membership */
+#define IP_DROP_MEMBERSHIP      13   /* ip_mreq; drop an IP group membership */
+#define IP_MULTICAST_VIF        14   /* set/get IP mcast virt. iface */
+#define IP_RSVP_ON              15   /* enable RSVP in kernel */
+#define IP_RSVP_OFF             16   /* disable RSVP in kernel */
+#define IP_RSVP_VIF_ON          17   /* set RSVP per-vif socket */
+#define IP_RSVP_VIF_OFF         18   /* unset RSVP per-vif socket */
+#define IP_PORTRANGE            19   /* int; range to choose for unspec port */
+#define IP_RECVIF               20   /* bool; receive reception if w/dgram */
+/* for IPSEC */
+#define IP_IPSEC_POLICY         21   /* int; set/get security policy */
+#define IP_FAITH                22   /* deprecated */
+#ifdef __APPLE__
+#define IP_STRIPHDR             23   /* bool: drop receive of raw IP header */
+#endif
+#define IP_RECVTTL              24   /* bool; receive reception TTL w/dgram */
+#define IP_BOUND_IF             25   /* int; set/get bound interface */
+#define IP_PKTINFO              26   /* get pktinfo on recv socket, set src on sent dgram  */
+#define IP_RECVPKTINFO          IP_PKTINFO      /* receive pktinfo w/dgram */
+#define IP_RECVTOS              27   /* bool; receive IP TOS w/dgram */
+#define IP_DONTFRAG             28   /* don't fragment packet */
+
+#define IP_FW_ADD               40   /* add a firewall rule to chain */
+#define IP_FW_DEL               41   /* delete a firewall rule from chain */
+#define IP_FW_FLUSH             42   /* flush firewall rule chain */
+#define IP_FW_ZERO              43   /* clear single/all firewall counter(s) */
+#define IP_FW_GET               44   /* get entire firewall rule chain */
+#define IP_FW_RESETLOG          45   /* reset logging counters */
+
+/* These older firewall socket option codes are maintained for backward compatibility. */
+#define IP_OLD_FW_ADD           50   /* add a firewall rule to chain */
+#define IP_OLD_FW_DEL           51   /* delete a firewall rule from chain */
+#define IP_OLD_FW_FLUSH         52   /* flush firewall rule chain */
+#define IP_OLD_FW_ZERO          53   /* clear single/all firewall counter(s) */
+#define IP_OLD_FW_GET           54   /* get entire firewall rule chain */
+#define IP_NAT__XXX                     55   /* set/get NAT opts XXX Deprecated, do not use */
+#define IP_OLD_FW_RESETLOG      56   /* reset logging counters */
+
+#define IP_DUMMYNET_CONFIGURE   60   /* add/configure a dummynet pipe */
+#define IP_DUMMYNET_DEL         61   /* delete a dummynet pipe from chain */
+#define IP_DUMMYNET_FLUSH       62   /* flush dummynet */
+#define IP_DUMMYNET_GET         64   /* get entire dummynet pipes */
+
+#define IP_TRAFFIC_MGT_BACKGROUND       65   /* int*; get background IO flags; set background IO */
+#define IP_MULTICAST_IFINDEX    66   /* int*; set/get IP multicast i/f index */
+
+/* IPv4 Source Filter Multicast API [RFC3678] */
+#define IP_ADD_SOURCE_MEMBERSHIP        70   /* join a source-specific group */
+#define IP_DROP_SOURCE_MEMBERSHIP       71   /* drop a single source */
+#define IP_BLOCK_SOURCE                 72   /* block a source */
+#define IP_UNBLOCK_SOURCE               73   /* unblock a source */
+
+/* The following option is private; do not use it from user applications. */
+#define IP_MSFILTER                     74   /* set/get filter list */
+
+/* Protocol Independent Multicast API [RFC3678] */
+#define MCAST_JOIN_GROUP                80   /* join an any-source group */
+#define MCAST_LEAVE_GROUP               81   /* leave all sources for group */
+#define MCAST_JOIN_SOURCE_GROUP         82   /* join a source-specific group */
+#define MCAST_LEAVE_SOURCE_GROUP        83   /* leave a single source */
+#define MCAST_BLOCK_SOURCE              84   /* block a source */
+#define MCAST_UNBLOCK_SOURCE            85   /* unblock a source */
+
+
+/*
+ * Defaults and limits for options
+ */
+#define IP_DEFAULT_MULTICAST_TTL  1     /* normally limit m'casts to 1 hop  */
+#define IP_DEFAULT_MULTICAST_LOOP 1     /* normally hear sends if a member  */
+
+/*
+ * The imo_membership vector for each socket is now dynamically allocated at
+ * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+ * according to a power-of-two increment.
+ */
+#define IP_MIN_MEMBERSHIPS      31
+#define IP_MAX_MEMBERSHIPS      4095
+
+/*
+ * Default resource limits for IPv4 multicast source filtering.
+ * These may be modified by sysctl.
+ */
+#define IP_MAX_GROUP_SRC_FILTER         512     /* sources per group */
+#define IP_MAX_SOCK_SRC_FILTER          128     /* sources per socket/group */
+#define IP_MAX_SOCK_MUTE_FILTER         128     /* XXX no longer used */
+
+/*
+ * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+ */
+struct ip_mreq {
+	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
+	struct  in_addr imr_interface;  /* local IP address of interface */
+};
+
+/*
+ * Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
+ * This is used to specify an interface index for multicast sends, as
+ * the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
+ */
+struct ip_mreqn {
+	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
+	struct  in_addr imr_address;    /* local IP address of interface */
+	int             imr_ifindex;    /* Interface index; cast to uint32_t */
+};
+
+#pragma pack(4)
+/*
+ * Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
+ */
+struct ip_mreq_source {
+	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
+	struct  in_addr imr_sourceaddr; /* IP address of source */
+	struct  in_addr imr_interface;  /* local IP address of interface */
+};
+
+/*
+ * Argument structures for Protocol-Independent Multicast Source
+ * Filter APIs. [RFC3678]
+ */
+struct group_req {
+	uint32_t                gr_interface;   /* interface index */
+	struct sockaddr_storage gr_group;       /* group address */
+};
+
+struct group_source_req {
+	uint32_t                gsr_interface;  /* interface index */
+	struct sockaddr_storage gsr_group;      /* group address */
+	struct sockaddr_storage gsr_source;     /* source address */
+};
+
+#ifndef __MSFILTERREQ_DEFINED
+#define __MSFILTERREQ_DEFINED
+/*
+ * The following structure is private; do not use it from user applications.
+ * It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
+ * the RFC 3678 libc functions and the kernel.
+ */
+struct __msfilterreq {
+	uint32_t                 msfr_ifindex;  /* interface index */
+	uint32_t                 msfr_fmode;    /* filter mode for group */
+	uint32_t                 msfr_nsrcs;    /* # of sources in msfr_srcs */
+	uint32_t                __msfr_align;
+	struct sockaddr_storage  msfr_group;    /* group address */
+	struct sockaddr_storage *msfr_srcs;
+};
+
+#endif /* __MSFILTERREQ_DEFINED */
+
+#pragma pack()
+struct sockaddr;
+
+/*
+ * Advanced (Full-state) APIs [RFC3678]
+ * The RFC specifies uint_t for the 6th argument to [sg]etsourcefilter().
+ * We use uint32_t here to be consistent.
+ */
+int     setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t,
+    uint32_t, struct in_addr *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+int     getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *,
+    uint32_t *, struct in_addr *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+int     setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t,
+    uint32_t, uint32_t, struct sockaddr_storage *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+int     getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t,
+    uint32_t *, uint32_t *, struct sockaddr_storage *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+
+/*
+ * Filter modes; also used to represent per-socket filter mode internally.
+ */
+#define MCAST_UNDEFINED 0       /* fmode: not yet defined */
+#define MCAST_INCLUDE   1       /* fmode: include these source(s) */
+#define MCAST_EXCLUDE   2       /* fmode: exclude these source(s) */
+
+/*
+ * Argument for IP_PORTRANGE:
+ * - which range to search when port is unspecified at bind() or connect()
+ */
+#define IP_PORTRANGE_DEFAULT    0       /* default range */
+#define IP_PORTRANGE_HIGH       1       /* "high" - request firewall bypass */
+#define IP_PORTRANGE_LOW        2       /* "low" - vouchsafe security */
+
+
+/*
+ * IP_PKTINFO: Packet information (equivalent to  RFC2292 sec 5 for IPv4)
+ * This structure is used for
+ *
+ * 1) Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
+ *    set on the socket. In this case ipi_ifindex will contain the interface
+ *    index the datagram was received on, ipi_addr is the IP address the
+ *    datagram was received to.
+ *
+ * 2) Sending a datagram using a specific interface or IP source address.
+ *    if ipi_ifindex is set to non-zero when in_pktinfo is passed as
+ *    ancilliary data of type IP_PKTINFO, this will be used as the source
+ *    interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
+ *    will be used for the source address.
+ *
+ *    Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
+ *    IP_PKTINFO option silently overrides the bound interface when it is
+ *    specified during send time.
+ */
+struct in_pktinfo {
+	unsigned int    ipi_ifindex;    /* send/recv interface index */
+	struct in_addr  ipi_spec_dst;   /* Local address */
+	struct in_addr  ipi_addr;       /* IP Header dst address */
+};
+
+/*
+ * Definitions for inet sysctl operations.
+ *
+ * Third level is protocol number.
+ * Fourth level is desired variable within that protocol.
+ */
+#define IPPROTO_MAXID   (IPPROTO_AH + 1)        /* don't list to IPPROTO_MAX */
+
+/*
+ * Names for IP sysctl objects
+ */
+#define IPCTL_FORWARDING        1       /* act as router */
+#define IPCTL_SENDREDIRECTS     2       /* may send redirects when forwarding */
+#define IPCTL_DEFTTL            3       /* default TTL */
+#ifdef notyet
+#define IPCTL_DEFMTU            4       /* default MTU */
+#endif
+#define IPCTL_RTEXPIRE          5       /* cloned route expiration time */
+#define IPCTL_RTMINEXPIRE       6       /* min value for expiration time */
+#define IPCTL_RTMAXCACHE        7       /* trigger level for dynamic expire */
+#define IPCTL_SOURCEROUTE       8       /* may perform source routes */
+#define IPCTL_DIRECTEDBROADCAST 9       /* may re-broadcast received packets */
+#define IPCTL_INTRQMAXLEN       10      /* max length of netisr queue */
+#define IPCTL_INTRQDROPS        11      /* number of netisr q drops */
+#define IPCTL_STATS             12      /* ipstat structure */
+#define IPCTL_ACCEPTSOURCEROUTE 13      /* may accept source routed packets */
+#define IPCTL_FASTFORWARDING    14      /* use fast IP forwarding code */
+#define IPCTL_KEEPFAITH         15      /* deprecated */
+#define IPCTL_GIF_TTL           16      /* default TTL for gif encap packet */
+#define IPCTL_MAXID             17
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/* INET6 stuff */
+#define __KAME_NETINET_IN_H_INCLUDED_
+#include 
+#undef __KAME_NETINET_IN_H_INCLUDED_
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+__BEGIN_DECLS
+int        bindresvport(int, struct sockaddr_in *);
+struct sockaddr;
+int        bindresvport_sa(int, struct sockaddr *);
+__END_DECLS
+#endif
+
+
+#endif /* _NETINET_IN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/netinet/tcp.h b/lib/libc/include/any-macos.13-any/netinet/tcp.h
new file mode 100644
index 0000000000000000000000000000000000000000..34d9097140d16bbc34b47b7cee161eb815f8e10c
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/netinet/tcp.h
@@ -0,0 +1,296 @@
+/*
+ * Copyright (c) 2000-2018 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@
+ */
+/*
+ * 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.
+ *
+ *	@(#)tcp.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/tcp.h,v 1.13.2.3 2001/03/01 22:08:42 jlemon Exp $
+ */
+
+#ifndef _NETINET_TCP_H_
+#define _NETINET_TCP_H_
+#include 
+#include 
+#include 
+
+#include 
+#include  /* __uint32_t */
+#include 
+
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+typedef __uint32_t tcp_seq;
+typedef __uint32_t tcp_cc;              /* connection count per rfc1644 */
+
+#define tcp6_seq        tcp_seq /* for KAME src sync over BSD*'s */
+#define tcp6hdr         tcphdr  /* for KAME src sync over BSD*'s */
+
+/*
+ * TCP header.
+ * Per RFC 793, September, 1981.
+ */
+struct tcphdr {
+	unsigned short  th_sport;       /* source port */
+	unsigned short  th_dport;       /* destination port */
+	tcp_seq th_seq;                 /* sequence number */
+	tcp_seq th_ack;                 /* acknowledgement number */
+#if __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN
+	unsigned int    th_x2:4,        /* (unused) */
+	    th_off:4;                   /* data offset */
+#endif
+#if __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN
+	unsigned int    th_off:4,       /* data offset */
+	    th_x2:4;                    /* (unused) */
+#endif
+	unsigned char   th_flags;
+#define TH_FIN  0x01
+#define TH_SYN  0x02
+#define TH_RST  0x04
+#define TH_PUSH 0x08
+#define TH_ACK  0x10
+#define TH_URG  0x20
+#define TH_ECE  0x40
+#define TH_CWR  0x80
+#define TH_AE   0x100                   /* maps into th_x2 */
+#define TH_FLAGS        (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
+#define TH_FLAGS_ALL    (TH_FLAGS|TH_PUSH)
+#define TH_ACCEPT       (TH_FIN|TH_SYN|TH_RST|TH_ACK)
+#define TH_ACE          (TH_AE|TH_CWR|TH_ECE)
+
+	unsigned short  th_win;         /* window */
+	unsigned short  th_sum;         /* checksum */
+	unsigned short  th_urp;         /* urgent pointer */
+};
+
+#define TCPOPT_EOL              0
+#define TCPOPT_NOP              1
+#define TCPOPT_MAXSEG           2
+#define TCPOLEN_MAXSEG          4
+#define TCPOPT_WINDOW           3
+#define TCPOLEN_WINDOW          3
+#define TCPOPT_SACK_PERMITTED   4               /* Experimental */
+#define TCPOLEN_SACK_PERMITTED  2
+#define TCPOPT_SACK             5               /* Experimental */
+#define TCPOLEN_SACK            8               /* len of sack block */
+#define TCPOPT_TIMESTAMP        8
+#define TCPOLEN_TIMESTAMP       10
+#define TCPOLEN_TSTAMP_APPA             (TCPOLEN_TIMESTAMP+2) /* appendix A */
+#define TCPOPT_TSTAMP_HDR               \
+    (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)
+
+#define MAX_TCPOPTLEN           40      /* Absolute maximum TCP options len */
+
+#define TCPOPT_CC               11              /* CC options: RFC-1644 */
+#define TCPOPT_CCNEW            12
+#define TCPOPT_CCECHO           13
+#define    TCPOLEN_CC                   6
+#define    TCPOLEN_CC_APPA              (TCPOLEN_CC+2)
+#define    TCPOPT_CC_HDR(ccopt)         \
+    (TCPOPT_NOP<<24|TCPOPT_NOP<<16|(ccopt)<<8|TCPOLEN_CC)
+#define TCPOPT_SIGNATURE                19      /* Keyed MD5: RFC 2385 */
+#define    TCPOLEN_SIGNATURE            18
+#if MPTCP
+#define TCPOPT_MULTIPATH                30
+#endif
+
+#define TCPOPT_FASTOPEN                 34
+#define TCPOLEN_FASTOPEN_REQ            2
+
+#define TCPOPT_ACCECN0                  0xAC /* AccECN Order 0 */
+#define TCPOPT_ACCECN1                  0XAE /* AccECN Order 1 */
+#define TCPOLEN_ACCECN_EMPTY            2    /* Empty option contains kind and length */
+#define TCPOLEN_ACCECN_COUNTER          3    /* Length of each AccECN counter */
+
+/* Option definitions */
+#define TCPOPT_SACK_PERMIT_HDR  \
+(TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK_PERMITTED<<8|TCPOLEN_SACK_PERMITTED)
+#define TCPOPT_SACK_HDR         (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK<<8)
+/* Miscellaneous constants */
+#define MAX_SACK_BLKS   6       /* Max # SACK blocks stored at sender side */
+
+/*
+ * A SACK option that specifies n blocks will have a length of (8*n + 2)
+ * bytes, so the 40 bytes available for TCP options can specify a
+ * maximum of 4 blocks.
+ */
+
+#define TCP_MAX_SACK    4       /* MAX # SACKs sent in any segment */
+
+
+/*
+ * Default maximum segment size for TCP.
+ * With an IP MTU of 576, this is 536,
+ * but 512 is probably more convenient.
+ * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)).
+ */
+#define TCP_MSS 512
+
+/*
+ * TCP_MINMSS is defined to be 216 which is fine for the smallest
+ * link MTU (256 bytes, SLIP interface) in the Internet.
+ * However it is very unlikely to come across such low MTU interfaces
+ * these days (anno dato 2004).
+ * Probably it can be set to 512 without ill effects. But we play safe.
+ * See tcp_subr.c tcp_minmss SYSCTL declaration for more comments.
+ * Setting this to "0" disables the minmss check.
+ */
+#define TCP_MINMSS 216
+
+/*
+ * Default maximum segment size for TCP6.
+ * With an IP6 MSS of 1280, this is 1220,
+ * but 1024 is probably more convenient. (xxx kazu in doubt)
+ * This should be defined as MIN(1024, IP6_MSS - sizeof (struct tcpip6hdr))
+ */
+#define TCP6_MSS        1024
+
+#define TCP_MAXWIN      65535   /* largest value for (unscaled) window */
+#define TTCP_CLIENT_SND_WND     4096    /* dflt send window for T/TCP client */
+
+#define TCP_MAX_WINSHIFT        14      /* maximum window shift */
+
+#define TCP_MAXHLEN     (0xf<<2)        /* max length of header in bytes */
+#define TCP_MAXOLEN     (TCP_MAXHLEN - sizeof(struct tcphdr))
+/* max space left for options */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * User-settable options (used with setsockopt).
+ */
+#define TCP_NODELAY             0x01    /* don't delay send to coalesce packets */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define TCP_MAXSEG              0x02    /* set maximum segment size */
+#define TCP_NOPUSH              0x04    /* don't push last block of write */
+#define TCP_NOOPT               0x08    /* don't use TCP options */
+#define TCP_KEEPALIVE           0x10    /* idle time used when SO_KEEPALIVE is enabled */
+#define TCP_CONNECTIONTIMEOUT   0x20    /* connection timeout */
+#define PERSIST_TIMEOUT         0x40    /* time after which a connection in
+	                                 *  persist timeout will terminate.
+	                                 *  see draft-ananth-tcpm-persist-02.txt
+	                                 */
+#define TCP_RXT_CONNDROPTIME    0x80    /* time after which tcp retransmissions will be
+	                                 * stopped and the connection will be dropped
+	                                 */
+#define TCP_RXT_FINDROP         0x100   /* when this option is set, drop a connection
+	                                 * after retransmitting the FIN 3 times. It will
+	                                 * prevent holding too many mbufs in socket
+	                                 * buffer queues.
+	                                 */
+#define TCP_KEEPINTVL           0x101   /* interval between keepalives */
+#define TCP_KEEPCNT             0x102   /* number of keepalives before close */
+#define TCP_SENDMOREACKS        0x103   /* always ack every other packet */
+#define TCP_ENABLE_ECN          0x104   /* Enable ECN on a connection */
+#define TCP_FASTOPEN            0x105   /* Enable/Disable TCP Fastopen on this socket */
+#define TCP_CONNECTION_INFO     0x106   /* State of TCP connection */
+
+
+
+#define TCP_NOTSENT_LOWAT       0x201   /* Low water mark for TCP unsent data */
+
+struct tcp_connection_info {
+	u_int8_t        tcpi_state;     /* connection state */
+	u_int8_t        tcpi_snd_wscale; /* Window scale for send window */
+	u_int8_t        tcpi_rcv_wscale; /* Window scale for receive window */
+	u_int8_t        __pad1;
+	u_int32_t       tcpi_options;   /* TCP options supported */
+#define TCPCI_OPT_TIMESTAMPS    0x00000001 /* Timestamps enabled */
+#define TCPCI_OPT_SACK          0x00000002 /* SACK enabled */
+#define TCPCI_OPT_WSCALE        0x00000004 /* Window scaling enabled */
+#define TCPCI_OPT_ECN           0x00000008 /* ECN enabled */
+	u_int32_t       tcpi_flags;     /* flags */
+#define TCPCI_FLAG_LOSSRECOVERY 0x00000001
+#define TCPCI_FLAG_REORDERING_DETECTED  0x00000002
+	u_int32_t       tcpi_rto;       /* retransmit timeout in ms */
+	u_int32_t       tcpi_maxseg;    /* maximum segment size supported */
+	u_int32_t       tcpi_snd_ssthresh; /* slow start threshold in bytes */
+	u_int32_t       tcpi_snd_cwnd;  /* send congestion window in bytes */
+	u_int32_t       tcpi_snd_wnd;   /* send widnow in bytes */
+	u_int32_t       tcpi_snd_sbbytes; /* bytes in send socket buffer, including in-flight data */
+	u_int32_t       tcpi_rcv_wnd;   /* receive window in bytes*/
+	u_int32_t       tcpi_rttcur;    /* most recent RTT in ms */
+	u_int32_t       tcpi_srtt;      /* average RTT in ms */
+	u_int32_t       tcpi_rttvar;    /* RTT variance */
+	u_int32_t
+	    tcpi_tfo_cookie_req:1,             /* Cookie requested? */
+	    tcpi_tfo_cookie_rcv:1,             /* Cookie received? */
+	    tcpi_tfo_syn_loss:1,               /* Fallback to reg. TCP after SYN-loss */
+	    tcpi_tfo_syn_data_sent:1,             /* SYN+data has been sent out */
+	    tcpi_tfo_syn_data_acked:1,             /* SYN+data has been fully acknowledged */
+	    tcpi_tfo_syn_data_rcv:1,             /* Server received SYN+data with a valid cookie */
+	    tcpi_tfo_cookie_req_rcv:1,             /* Server received cookie-request */
+	    tcpi_tfo_cookie_sent:1,             /* Server announced cookie */
+	    tcpi_tfo_cookie_invalid:1,             /* Server received an invalid cookie */
+	    tcpi_tfo_cookie_wrong:1,             /* Our sent cookie was wrong */
+	    tcpi_tfo_no_cookie_rcv:1,             /* We did not receive a cookie upon our request */
+	    tcpi_tfo_heuristics_disable:1,             /* TFO-heuristics disabled it */
+	    tcpi_tfo_send_blackhole:1,             /* A sending-blackhole got detected */
+	    tcpi_tfo_recv_blackhole:1,             /* A receiver-blackhole got detected */
+	    tcpi_tfo_onebyte_proxy:1,             /* A proxy acknowledges all but one byte of the SYN */
+	    __pad2:17;
+	u_int64_t       tcpi_txpackets __attribute__((aligned(8)));
+	u_int64_t       tcpi_txbytes __attribute__((aligned(8)));
+	u_int64_t       tcpi_txretransmitbytes __attribute__((aligned(8)));
+	u_int64_t       tcpi_rxpackets __attribute__((aligned(8)));
+	u_int64_t       tcpi_rxbytes __attribute__((aligned(8)));
+	u_int64_t       tcpi_rxoutoforderbytes __attribute__((aligned(8)));
+	u_int64_t       tcpi_txretransmitpackets __attribute__((aligned(8)));
+};
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/netinet6/in6.h b/lib/libc/include/any-macos.13-any/netinet6/in6.h
new file mode 100644
index 0000000000000000000000000000000000000000..3d4f7035e3858805059e3c86d6348528b0f09453
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/netinet6/in6.h
@@ -0,0 +1,675 @@
+/*
+ * Copyright (c) 2008-2020 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@
+ */
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * 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. Neither the name of the project 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 PROJECT 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 PROJECT 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.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1990, 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.
+ *
+ *	@(#)in.h	8.3 (Berkeley) 1/3/94
+ */
+
+#ifndef __KAME_NETINET_IN_H_INCLUDED_
+#error "do not include netinet6/in6.h directly, include netinet/in.h. " \
+        " see RFC2553"
+#endif
+
+#ifndef _NETINET6_IN6_H_
+#define _NETINET6_IN6_H_
+#include 
+
+#include 
+#include 
+
+/*
+ * Identification of the network protocol stack
+ * for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
+ * has the table of implementation/integration differences.
+ */
+#define __KAME__
+#define __KAME_VERSION          "2009/apple-darwin"
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Local port number conventions:
+ *
+ * Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+ * unless a kernel is compiled with IPNOPRIVPORTS defined.
+ *
+ * When a user does a bind(2) or connect(2) with a port number of zero,
+ * a non-conflicting local port address is chosen.
+ *
+ * The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+ * that is settable by sysctl(3); net.inet.ip.anonportmin and
+ * net.inet.ip.anonportmax respectively.
+ *
+ * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+ * default assignment range.
+ *
+ * The value IP_PORTRANGE_DEFAULT causes the default behavior.
+ *
+ * The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+ * and exists only for FreeBSD compatibility purposes.
+ *
+ * The value IP_PORTRANGE_LOW changes the range to the "low" are
+ * that is (by convention) restricted to privileged processes.
+ * This convention is based on "vouchsafe" principles only.
+ * It is only secure if you trust the remote host to restrict these ports.
+ * The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+ */
+
+#define IPV6PORT_RESERVED       1024
+#define IPV6PORT_ANONMIN        49152
+#define IPV6PORT_ANONMAX        65535
+#define IPV6PORT_RESERVEDMIN    600
+#define IPV6PORT_RESERVEDMAX    (IPV6PORT_RESERVED-1)
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * IPv6 address
+ */
+typedef struct in6_addr {
+	union {
+		__uint8_t   __u6_addr8[16];
+		__uint16_t  __u6_addr16[8];
+		__uint32_t  __u6_addr32[4];
+	} __u6_addr;                    /* 128-bit IP6 address */
+} in6_addr_t;
+
+#define s6_addr   __u6_addr.__u6_addr8
+
+#define INET6_ADDRSTRLEN        46
+
+/*
+ * Socket address for IPv6
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SIN6_LEN
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+struct sockaddr_in6 {
+	__uint8_t       sin6_len;       /* length of this struct(sa_family_t) */
+	sa_family_t     sin6_family;    /* AF_INET6 (sa_family_t) */
+	in_port_t       sin6_port;      /* Transport layer port # (in_port_t) */
+	__uint32_t      sin6_flowinfo;  /* IP6 flow information */
+	struct in6_addr sin6_addr;      /* IP6 address */
+	__uint32_t      sin6_scope_id;  /* scope zone index */
+};
+
+
+
+
+/*
+ * Definition of some useful macros to handle IP6 addresses
+ */
+#define IN6ADDR_ANY_INIT \
+	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}}
+#define IN6ADDR_LOOPBACK_INIT \
+	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IN6ADDR_NODELOCAL_ALLNODES_INIT \
+	{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#define IN6ADDR_INTFACELOCAL_ALLNODES_INIT \
+	{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#define IN6ADDR_LINKLOCAL_ALLNODES_INIT \
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
+#define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}}
+#define IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT \
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16 }}}
+#define IN6ADDR_V4MAPPED_INIT \
+	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }}}
+#define IN6ADDR_MULTICAST_PREFIX        IN6MASK8
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+extern const struct in6_addr in6addr_any;
+extern const struct in6_addr in6addr_loopback;
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+extern const struct in6_addr in6addr_nodelocal_allnodes;
+extern const struct in6_addr in6addr_linklocal_allnodes;
+extern const struct in6_addr in6addr_linklocal_allrouters;
+extern const struct in6_addr in6addr_linklocal_allv2routers;
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * Equality
+ * NOTE: Some of kernel programming environment (for example, openbsd/sparc)
+ * does not supply memcmp().  For userland memcmp() is preferred as it is
+ * in ANSI standard.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IN6_ARE_ADDR_EQUAL(a, b) \
+	(memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof (struct in6_addr)) \
+	== 0)
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+/*
+ * Unspecified
+ */
+#define IN6_IS_ADDR_UNSPECIFIED(a)      \
+	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == 0))
+
+/*
+ * Loopback
+ */
+#define IN6_IS_ADDR_LOOPBACK(a)         \
+	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == ntohl(1)))
+
+/*
+ * IPv4 compatible
+ */
+#define IN6_IS_ADDR_V4COMPAT(a)         \
+	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != ntohl(1)))
+
+/*
+ * Mapped
+ */
+#define IN6_IS_ADDR_V4MAPPED(a)               \
+	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
+	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == \
+	ntohl(0x0000ffff)))
+
+/*
+ * 6to4
+ */
+#define IN6_IS_ADDR_6TO4(x)     (ntohs((x)->s6_addr16[0]) == 0x2002)
+
+/*
+ * KAME Scope Values
+ */
+
+#define __IPV6_ADDR_SCOPE_NODELOCAL     0x01
+#define __IPV6_ADDR_SCOPE_INTFACELOCAL  0x01
+#define __IPV6_ADDR_SCOPE_LINKLOCAL     0x02
+#define __IPV6_ADDR_SCOPE_SITELOCAL     0x05
+#define __IPV6_ADDR_SCOPE_ORGLOCAL      0x08    /* just used in this file */
+#define __IPV6_ADDR_SCOPE_GLOBAL        0x0e
+
+/*
+ * Unicast Scope
+ * Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
+ */
+#define IN6_IS_ADDR_LINKLOCAL(a)        \
+	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80))
+#define IN6_IS_ADDR_SITELOCAL(a)        \
+	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
+
+/*
+ * Multicast
+ */
+#define IN6_IS_ADDR_MULTICAST(a)        ((a)->s6_addr[0] == 0xff)
+
+#define IPV6_ADDR_MC_FLAGS(a)           ((a)->s6_addr[1] & 0xf0)
+
+#define IPV6_ADDR_MC_FLAGS_TRANSIENT            0x10
+#define IPV6_ADDR_MC_FLAGS_PREFIX               0x20
+#define IPV6_ADDR_MC_FLAGS_UNICAST_BASED        (IPV6_ADDR_MC_FLAGS_TRANSIENT | IPV6_ADDR_MC_FLAGS_PREFIX)
+
+#define IN6_IS_ADDR_UNICAST_BASED_MULTICAST(a)  \
+	(IN6_IS_ADDR_MULTICAST(a) &&            \
+	(IPV6_ADDR_MC_FLAGS(a) == IPV6_ADDR_MC_FLAGS_UNICAST_BASED))
+
+/*
+ * Unique Local IPv6 Unicast Addresses (per RFC 4193)
+ */
+#define IN6_IS_ADDR_UNIQUE_LOCAL(a) \
+	(((a)->s6_addr[0] == 0xfc) || ((a)->s6_addr[0] == 0xfd))
+
+#define __IPV6_ADDR_MC_SCOPE(a)         ((a)->s6_addr[1] & 0x0f)
+
+/*
+ * Multicast Scope
+ */
+#define IN6_IS_ADDR_MC_NODELOCAL(a)     \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_NODELOCAL))
+#define IN6_IS_ADDR_MC_LINKLOCAL(a)                                             \
+	(IN6_IS_ADDR_MULTICAST(a) &&                                            \
+	(IPV6_ADDR_MC_FLAGS(a) != IPV6_ADDR_MC_FLAGS_UNICAST_BASED) &&          \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_LINKLOCAL))
+#define IN6_IS_ADDR_MC_SITELOCAL(a)     \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_SITELOCAL))
+#define IN6_IS_ADDR_MC_ORGLOCAL(a)      \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_ORGLOCAL))
+#define IN6_IS_ADDR_MC_GLOBAL(a)        \
+	(IN6_IS_ADDR_MULTICAST(a) &&    \
+	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_GLOBAL))
+
+
+/*
+ * Options for use with [gs]etsockopt at the IPV6 level.
+ * First word of comment is data type; bool is stored in int.
+ */
+/* no hdrincl */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * RFC 3542 define the following socket options in a manner incompatible
+ * with RFC 2292:
+ *   IPV6_PKTINFO
+ *   IPV6_HOPLIMIT
+ *   IPV6_NEXTHOP
+ *   IPV6_HOPOPTS
+ *   IPV6_DSTOPTS
+ *   IPV6_RTHDR
+ *
+ * To use the new IPv6 Sockets options introduced by RFC 3542
+ * the constant __APPLE_USE_RFC_3542 must be defined before
+ * including 
+ *
+ * To use the old IPv6 Sockets options from RFC 2292
+ * the constant __APPLE_USE_RFC_2292 must be defined before
+ * including 
+ *
+ * Note that eventually RFC 3542 is going to be the
+ * default and RFC 2292 will be obsolete.
+ */
+
+#if defined(__APPLE_USE_RFC_3542) && defined(__APPLE_USE_RFC_2292)
+#error "__APPLE_USE_RFC_3542 and __APPLE_USE_RFC_2292 cannot be both defined"
+#endif
+
+#if 0 /* the followings are relic in IPv4 and hence are disabled */
+#define IPV6_OPTIONS            1  /* buf/ip6_opts; set/get IP6 options */
+#define IPV6_RECVOPTS           5  /* bool; receive all IP6 opts w/dgram */
+#define IPV6_RECVRETOPTS        6  /* bool; receive IP6 opts for response */
+#define IPV6_RECVDSTADDR        7  /* bool; receive IP6 dst addr w/dgram */
+#define IPV6_RETOPTS            8  /* ip6_opts; set/get IP6 options */
+#endif /* 0 */
+#define IPV6_SOCKOPT_RESERVED1  3  /* reserved for future use */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define IPV6_UNICAST_HOPS       4  /* int; IP6 hops */
+#define IPV6_MULTICAST_IF       9  /* u_int; set/get IP6 multicast i/f  */
+#define IPV6_MULTICAST_HOPS     10 /* int; set/get IP6 multicast hops */
+#define IPV6_MULTICAST_LOOP     11 /* u_int; set/get IP6 mcast loopback */
+#define IPV6_JOIN_GROUP         12 /* ip6_mreq; join a group membership */
+#define IPV6_LEAVE_GROUP        13 /* ip6_mreq; leave a group membership */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPV6_PORTRANGE          14 /* int; range to choose for unspec port */
+#define ICMP6_FILTER            18 /* icmp6_filter; icmp6 filter */
+#define IPV6_2292PKTINFO        19 /* bool; send/recv if, src/dst addr */
+#define IPV6_2292HOPLIMIT       20 /* bool; hop limit */
+#define IPV6_2292NEXTHOP        21 /* bool; next hop addr */
+#define IPV6_2292HOPOPTS        22 /* bool; hop-by-hop option */
+#define IPV6_2292DSTOPTS        23 /* bool; destinaion option */
+#define IPV6_2292RTHDR          24 /* ip6_rthdr: routing header */
+
+/* buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542] */
+#define IPV6_2292PKTOPTIONS     25
+
+#ifdef __APPLE_USE_RFC_2292
+#define IPV6_PKTINFO    IPV6_2292PKTINFO
+#define IPV6_HOPLIMIT   IPV6_2292HOPLIMIT
+#define IPV6_NEXTHOP    IPV6_2292NEXTHOP
+#define IPV6_HOPOPTS    IPV6_2292HOPOPTS
+#define IPV6_DSTOPTS    IPV6_2292DSTOPTS
+#define IPV6_RTHDR      IPV6_2292RTHDR
+#define IPV6_PKTOPTIONS IPV6_2292PKTOPTIONS
+#endif /* __APPLE_USE_RFC_2292 */
+
+#define IPV6_CHECKSUM           26 /* int; checksum offset for raw socket */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define IPV6_V6ONLY             27 /* bool; only bind INET6 at wildcard bind */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define IPV6_BINDV6ONLY         IPV6_V6ONLY
+
+
+#if 1 /* IPSEC */
+#define IPV6_IPSEC_POLICY       28 /* struct; get/set security policy */
+#endif /* 1 */
+#define IPV6_FAITH              29 /* deprecated */
+
+#if 1 /* IPV6FIREWALL */
+#define IPV6_FW_ADD             30 /* add a firewall rule to chain */
+#define IPV6_FW_DEL             31 /* delete a firewall rule from chain */
+#define IPV6_FW_FLUSH           32 /* flush firewall rule chain */
+#define IPV6_FW_ZERO            33 /* clear single/all firewall counter(s) */
+#define IPV6_FW_GET             34 /* get entire firewall rule chain */
+#endif /* 1 */
+
+/*
+ * APPLE: NOTE the value of those 2 options is kept unchanged from
+ *   previous version of darwin/OS X for binary compatibility reasons
+ *   and differ from FreeBSD (values 57 and 61). See below.
+ */
+#define IPV6_RECVTCLASS         35 /* bool; recv traffic class values */
+#define IPV6_TCLASS             36 /* int; send traffic class value */
+
+#ifdef __APPLE_USE_RFC_3542
+/* new socket options introduced in RFC3542 */
+/*
+ * ip6_dest; send dst option before rthdr
+ * APPLE: Value purposely different than FreeBSD (35) to avoid
+ * collision with definition of IPV6_RECVTCLASS in previous
+ * darwin implementations
+ */
+#define IPV6_RTHDRDSTOPTS       57
+
+/*
+ * bool; recv if, dst addr
+ * APPLE: Value purposely different than FreeBSD(36) to avoid
+ * collision with definition of IPV6_TCLASS in previous
+ * darwin implementations
+ */
+#define IPV6_RECVPKTINFO        61
+
+#define IPV6_RECVHOPLIMIT       37 /* bool; recv hop limit */
+#define IPV6_RECVRTHDR          38 /* bool; recv routing header */
+#define IPV6_RECVHOPOPTS        39 /* bool; recv hop-by-hop option */
+#define IPV6_RECVDSTOPTS        40 /* bool; recv dst option after rthdr */
+
+#define IPV6_USE_MIN_MTU        42 /* bool; send packets at the minimum MTU */
+#define IPV6_RECVPATHMTU        43 /* bool; notify an according MTU */
+
+/*
+ * mtuinfo; get the current path MTU (sopt), 4 bytes int;
+ * MTU notification (cmsg)
+ */
+#define IPV6_PATHMTU            44
+
+#if 0 /* obsoleted during 2292bis -> 3542 */
+/* no data; ND reachability confirm (cmsg only/not in of RFC3542) */
+#define IPV6_REACHCONF          45
+#endif
+/* more new socket options introduced in RFC3542 */
+#define IPV6_3542PKTINFO        46 /* in6_pktinfo; send if, src addr */
+#define IPV6_3542HOPLIMIT       47 /* int; send hop limit */
+#define IPV6_3542NEXTHOP        48 /* sockaddr; next hop addr */
+#define IPV6_3542HOPOPTS        49 /* ip6_hbh; send hop-by-hop option */
+#define IPV6_3542DSTOPTS        50 /* ip6_dest; send dst option befor rthdr */
+#define IPV6_3542RTHDR          51 /* ip6_rthdr; send routing header */
+
+#define IPV6_PKTINFO    IPV6_3542PKTINFO
+#define IPV6_HOPLIMIT   IPV6_3542HOPLIMIT
+#define IPV6_NEXTHOP    IPV6_3542NEXTHOP
+#define IPV6_HOPOPTS    IPV6_3542HOPOPTS
+#define IPV6_DSTOPTS    IPV6_3542DSTOPTS
+#define IPV6_RTHDR      IPV6_3542RTHDR
+
+#define IPV6_AUTOFLOWLABEL      59 /* bool; attach flowlabel automagically */
+
+#define IPV6_DONTFRAG           62 /* bool; disable IPv6 fragmentation */
+
+/* int; prefer temporary addresses as the source address. */
+#define IPV6_PREFER_TEMPADDR    63
+
+/*
+ * The following option is private; do not use it from user applications.
+ * It is deliberately defined to the same value as IP_MSFILTER.
+ */
+#define IPV6_MSFILTER           74 /* struct __msfilterreq; */
+#endif /* __APPLE_USE_RFC_3542 */
+
+#define IPV6_BOUND_IF           125 /* int; set/get bound interface */
+
+/* to define items, should talk with KAME guys first, for *BSD compatibility */
+
+#define IPV6_RTHDR_LOOSE        0 /* this hop need not be a neighbor. */
+#define IPV6_RTHDR_STRICT       1 /* this hop must be a neighbor. */
+#define IPV6_RTHDR_TYPE_0       0 /* IPv6 routing header type 0 */
+
+/*
+ * Defaults and limits for options
+ */
+#define IPV6_DEFAULT_MULTICAST_HOPS 1   /* normally limit m'casts to 1 hop  */
+#define IPV6_DEFAULT_MULTICAST_LOOP 1   /* normally hear sends if a member  */
+
+/*
+ * The im6o_membership vector for each socket is now dynamically allocated at
+ * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+ * according to a power-of-two increment.
+ */
+#define IPV6_MIN_MEMBERSHIPS    31
+#define IPV6_MAX_MEMBERSHIPS    4095
+
+/*
+ * Default resource limits for IPv6 multicast source filtering.
+ * These may be modified by sysctl.
+ */
+#define IPV6_MAX_GROUP_SRC_FILTER       512     /* sources per group */
+#define IPV6_MAX_SOCK_SRC_FILTER        128     /* sources per socket/group */
+
+/*
+ * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+ */
+struct ipv6_mreq {
+	struct in6_addr ipv6mr_multiaddr;
+	unsigned int    ipv6mr_interface;
+};
+
+/*
+ * IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
+ */
+struct in6_pktinfo {
+	struct in6_addr ipi6_addr;      /* src/dst IPv6 address */
+	unsigned int    ipi6_ifindex;   /* send/recv interface index */
+};
+
+/*
+ * Control structure for IPV6_RECVPATHMTU socket option.
+ */
+struct ip6_mtuinfo {
+	struct sockaddr_in6 ip6m_addr;  /* or sockaddr_storage? */
+	uint32_t ip6m_mtu;
+};
+
+/*
+ * Argument for IPV6_PORTRANGE:
+ * - which range to search when port is unspecified at bind() or connect()
+ */
+#define IPV6_PORTRANGE_DEFAULT  0       /* default range */
+#define IPV6_PORTRANGE_HIGH     1       /* "high" - request firewall bypass */
+#define IPV6_PORTRANGE_LOW      2       /* "low" - vouchsafe security */
+
+/*
+ * Definitions for inet6 sysctl operations.
+ *
+ * Third level is protocol number.
+ * Fourth level is desired variable within that protocol.
+ */
+#define IPV6PROTO_MAXID (IPPROTO_PIM + 1)  /* don't list to IPV6PROTO_MAX */
+
+/*
+ * Names for IP sysctl objects
+ */
+#define IPV6CTL_FORWARDING      1       /* act as router */
+#define IPV6CTL_SENDREDIRECTS   2       /* may send redirects when forwarding */
+#define IPV6CTL_DEFHLIM         3       /* default Hop-Limit */
+#ifdef notyet
+#define IPV6CTL_DEFMTU          4       /* default MTU */
+#endif
+#define IPV6CTL_FORWSRCRT       5       /* forward source-routed dgrams */
+#define IPV6CTL_STATS           6       /* stats */
+#define IPV6CTL_MRTSTATS        7       /* multicast forwarding stats */
+#define IPV6CTL_MRTPROTO        8       /* multicast routing protocol */
+#define IPV6CTL_MAXFRAGPACKETS  9       /* max packets reassembly queue */
+#define IPV6CTL_SOURCECHECK     10      /* verify source route and intf */
+#define IPV6CTL_SOURCECHECK_LOGINT 11   /* minimume logging interval */
+#define IPV6CTL_ACCEPT_RTADV    12
+#define IPV6CTL_KEEPFAITH       13      /* deprecated */
+#define IPV6CTL_LOG_INTERVAL    14
+#define IPV6CTL_HDRNESTLIMIT    15
+#define IPV6CTL_DAD_COUNT       16
+#define IPV6CTL_AUTO_FLOWLABEL  17
+#define IPV6CTL_DEFMCASTHLIM    18
+#define IPV6CTL_GIF_HLIM        19      /* default HLIM for gif encap packet */
+#define IPV6CTL_KAME_VERSION    20
+#define IPV6CTL_USE_DEPRECATED  21      /* use deprec addr (RFC2462 5.5.4) */
+#define IPV6CTL_RR_PRUNE        22      /* walk timer for router renumbering */
+#if 0   /* obsolete */
+#define IPV6CTL_MAPPED_ADDR     23
+#endif
+#define IPV6CTL_V6ONLY          24
+#define IPV6CTL_RTEXPIRE        25      /* cloned route expiration time */
+#define IPV6CTL_RTMINEXPIRE     26      /* min value for expiration time */
+#define IPV6CTL_RTMAXCACHE      27      /* trigger level for dynamic expire */
+
+#define IPV6CTL_USETEMPADDR     32      /* use temporary addresses [RFC 4941] */
+#define IPV6CTL_TEMPPLTIME      33      /* preferred lifetime for tmpaddrs */
+#define IPV6CTL_TEMPVLTIME      34      /* valid lifetime for tmpaddrs */
+#define IPV6CTL_AUTO_LINKLOCAL  35      /* automatic link-local addr assign */
+#define IPV6CTL_RIP6STATS       36      /* raw_ip6 stats */
+#define IPV6CTL_PREFER_TEMPADDR 37      /* prefer temporary addr as src */
+#define IPV6CTL_ADDRCTLPOLICY   38      /* get/set address selection policy */
+#define IPV6CTL_USE_DEFAULTZONE 39      /* use default scope zone */
+
+#define IPV6CTL_MAXFRAGS        41      /* max fragments */
+#define IPV6CTL_MCAST_PMTU      44      /* enable pMTU discovery for mcast? */
+
+#define IPV6CTL_NEIGHBORGCTHRESH 46
+#define IPV6CTL_MAXIFPREFIXES   47
+#define IPV6CTL_MAXIFDEFROUTERS 48
+#define IPV6CTL_MAXDYNROUTES    49
+#define ICMPV6CTL_ND6_ONLINKNSRFC4861   50
+#define IPV6CTL_ULA_USETEMPADDR 51
+
+
+/* New entries should be added here from current IPV6CTL_MAXID value. */
+/* to define items, should talk with KAME guys first, for *BSD compatibility */
+#define IPV6CTL_MAXID           51
+
+__BEGIN_DECLS
+struct cmsghdr;
+
+extern int inet6_option_space(int);
+extern int inet6_option_init(void *, struct cmsghdr **, int);
+extern int inet6_option_append(struct cmsghdr *, const __uint8_t *, int, int);
+extern __uint8_t *inet6_option_alloc(struct cmsghdr *, int, int, int);
+extern int inet6_option_next(const struct cmsghdr *, __uint8_t **);
+extern int inet6_option_find(const struct cmsghdr *, __uint8_t **, int);
+
+extern size_t inet6_rthdr_space(int, int);
+extern struct cmsghdr *inet6_rthdr_init(void *, int);
+extern int inet6_rthdr_add(struct cmsghdr *, const struct in6_addr *,
+    unsigned int);
+extern int inet6_rthdr_lasthop(struct cmsghdr *, unsigned int);
+#if 0 /* not implemented yet */
+extern int inet6_rthdr_reverse(const struct cmsghdr *, struct cmsghdr *);
+#endif
+extern int inet6_rthdr_segments(const struct cmsghdr *);
+extern struct in6_addr *inet6_rthdr_getaddr(struct cmsghdr *, int);
+extern int inet6_rthdr_getflags(const struct cmsghdr *, int);
+
+extern int inet6_opt_init(void *, socklen_t);
+extern int inet6_opt_append(void *, socklen_t, int, __uint8_t, socklen_t,
+    __uint8_t, void **);
+extern int inet6_opt_finish(void *, socklen_t, int);
+extern int inet6_opt_set_val(void *, int, void *, socklen_t);
+
+extern int inet6_opt_next(void *, socklen_t, int, __uint8_t *, socklen_t *,
+    void **);
+extern int inet6_opt_find(void *, socklen_t, int, __uint8_t, socklen_t *,
+    void **);
+extern int inet6_opt_get_val(void *, int, void *, socklen_t);
+extern socklen_t inet6_rth_space(int, int);
+extern void *inet6_rth_init(void *, socklen_t, int, int);
+extern int inet6_rth_add(void *, const struct in6_addr *);
+extern int inet6_rth_reverse(const void *, void *);
+extern int inet6_rth_segments(const void *);
+extern struct in6_addr *inet6_rth_getaddr(const void *, int);
+
+__END_DECLS
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#endif /* !_NETINET6_IN6_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/objc/NSObjCRuntime.h b/lib/libc/include/any-macos.13-any/objc/NSObjCRuntime.h
new file mode 100644
index 0000000000000000000000000000000000000000..60ce1d99cab60806ffa5823db8902e5e54c37a9b
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/objc/NSObjCRuntime.h
@@ -0,0 +1,33 @@
+/*	NSObjCRuntime.h
+	Copyright (c) 1994-2012, Apple Inc. All rights reserved.
+*/
+
+#ifndef _OBJC_NSOBJCRUNTIME_H_
+#define _OBJC_NSOBJCRUNTIME_H_
+
+#include 
+#include 
+
+#if __LP64__ || NS_BUILD_32_LIKE_64
+typedef long NSInteger;
+typedef unsigned long NSUInteger;
+#else
+typedef int NSInteger;
+typedef unsigned int NSUInteger;
+#endif
+
+#define NSIntegerMax    LONG_MAX
+#define NSIntegerMin    LONG_MIN
+#define NSUIntegerMax   ULONG_MAX
+
+#define NSINTEGER_DEFINED 1
+
+#ifndef NS_DESIGNATED_INITIALIZER
+#if __has_attribute(objc_designated_initializer)
+#define NS_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+#else
+#define NS_DESIGNATED_INITIALIZER
+#endif
+#endif
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/objc/message.h b/lib/libc/include/any-macos.13-any/objc/message.h
new file mode 100644
index 0000000000000000000000000000000000000000..a4c17e3b9540d4363b77f77fa7461aa18ec393f5
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/objc/message.h
@@ -0,0 +1,315 @@
+/*
+ * Copyright (c) 1999-2007 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@
+ */
+
+#ifndef _OBJC_MESSAGE_H
+#define _OBJC_MESSAGE_H
+
+#include 
+#include 
+
+#ifndef OBJC_SUPER
+#define OBJC_SUPER
+
+/// Specifies the superclass of an instance. 
+struct objc_super {
+    /// Specifies an instance of a class.
+    __unsafe_unretained _Nonnull id receiver;
+
+    /// Specifies the particular superclass of the instance to message. 
+    __unsafe_unretained _Nonnull Class super_class;
+
+    /* super_class is the first class to search */
+};
+#endif
+
+
+/* Basic Messaging Primitives
+ *
+ * On some architectures, use objc_msgSend_stret for some struct return types.
+ * On some architectures, use objc_msgSend_fpret for some float return types.
+ * On some architectures, use objc_msgSend_fp2ret for some float return types.
+ *
+ * These functions must be cast to an appropriate function pointer type 
+ * before being called. 
+ */
+#if !OBJC_OLD_DISPATCH_PROTOTYPES
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
+OBJC_EXPORT void
+objc_msgSend(void /* id self, SEL op, ... */ )
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+OBJC_EXPORT void
+objc_msgSendSuper(void /* struct objc_super *super, SEL op, ... */ )
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+#pragma clang diagnostic pop
+#else
+/** 
+ * Sends a message with a simple return value to an instance of a class.
+ * 
+ * @param self A pointer to the instance of the class that is to receive the message.
+ * @param op The selector of the method that handles the message.
+ * @param ... 
+ *   A variable argument list containing the arguments to the method.
+ * 
+ * @return The return value of the method.
+ * 
+ * @note When it encounters a method call, the compiler generates a call to one of the
+ *  functions \c objc_msgSend, \c objc_msgSend_stret, \c objc_msgSendSuper, or \c objc_msgSendSuper_stret.
+ *  Messages sent to an object’s superclass (using the \c super keyword) are sent using \c objc_msgSendSuper; 
+ *  other messages are sent using \c objc_msgSend. Methods that have data structures as return values
+ *  are sent using \c objc_msgSendSuper_stret and \c objc_msgSend_stret.
+ */
+OBJC_EXPORT id _Nullable
+objc_msgSend(id _Nullable self, SEL _Nonnull op, ...)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+/** 
+ * Sends a message with a simple return value to the superclass of an instance of a class.
+ * 
+ * @param super A pointer to an \c objc_super data structure. Pass values identifying the
+ *  context the message was sent to, including the instance of the class that is to receive the
+ *  message and the superclass at which to start searching for the method implementation.
+ * @param op A pointer of type SEL. Pass the selector of the method that will handle the message.
+ * @param ...
+ *   A variable argument list containing the arguments to the method.
+ * 
+ * @return The return value of the method identified by \e op.
+ * 
+ * @see objc_msgSend
+ */
+OBJC_EXPORT id _Nullable
+objc_msgSendSuper(struct objc_super * _Nonnull super, SEL _Nonnull op, ...)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+#endif
+
+
+/* Struct-returning Messaging Primitives
+ *
+ * Use these functions to call methods that return structs on the stack. 
+ * On some architectures, some structures are returned in registers. 
+ * Consult your local function call ABI documentation for details.
+ * 
+ * These functions must be cast to an appropriate function pointer type 
+ * before being called. 
+ */
+#if !OBJC_OLD_DISPATCH_PROTOTYPES
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
+OBJC_EXPORT void
+objc_msgSend_stret(void /* id self, SEL op, ... */ )
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+
+OBJC_EXPORT void
+objc_msgSendSuper_stret(void /* struct objc_super *super, SEL op, ... */ )
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+#pragma clang diagnostic pop
+#else
+/** 
+ * Sends a message with a data-structure return value to an instance of a class.
+ * 
+ * @see objc_msgSend
+ */
+OBJC_EXPORT void
+objc_msgSend_stret(id _Nullable self, SEL _Nonnull op, ...)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+
+/** 
+ * Sends a message with a data-structure return value to the superclass of an instance of a class.
+ * 
+ * @see objc_msgSendSuper
+ */
+OBJC_EXPORT void
+objc_msgSendSuper_stret(struct objc_super * _Nonnull super,
+                        SEL _Nonnull op, ...)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+#endif
+
+
+/* Floating-point-returning Messaging Primitives
+ * 
+ * Use these functions to call methods that return floating-point values 
+ * on the stack. 
+ * Consult your local function call ABI documentation for details.
+ * 
+ * arm:    objc_msgSend_fpret not used
+ * i386:   objc_msgSend_fpret used for `float`, `double`, `long double`.
+ * x86-64: objc_msgSend_fpret used for `long double`.
+ *
+ * arm:    objc_msgSend_fp2ret not used
+ * i386:   objc_msgSend_fp2ret not used
+ * x86-64: objc_msgSend_fp2ret used for `_Complex long double`.
+ *
+ * These functions must be cast to an appropriate function pointer type 
+ * before being called. 
+ */
+#if !OBJC_OLD_DISPATCH_PROTOTYPES
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
+
+# if defined(__i386__)
+
+OBJC_EXPORT void
+objc_msgSend_fpret(void /* id self, SEL op, ... */ )
+    OBJC_AVAILABLE(10.4, 2.0, 9.0, 1.0, 2.0);
+
+# elif defined(__x86_64__)
+
+OBJC_EXPORT void
+objc_msgSend_fpret(void /* id self, SEL op, ... */ )
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+OBJC_EXPORT void
+objc_msgSend_fp2ret(void /* id self, SEL op, ... */ )
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+#pragma clang diagnostic pop
+# endif
+
+// !OBJC_OLD_DISPATCH_PROTOTYPES
+#else
+// OBJC_OLD_DISPATCH_PROTOTYPES
+# if defined(__i386__)
+
+/** 
+ * Sends a message with a floating-point return value to an instance of a class.
+ * 
+ * @see objc_msgSend
+ * @note On the i386 platform, the ABI for functions returning a floating-point value is
+ *  incompatible with that for functions returning an integral type. On the i386 platform, therefore, 
+ *  you must use \c objc_msgSend_fpret for functions returning non-integral type. For \c float or 
+ *  \c long \c double return types, cast the function to an appropriate function pointer type first.
+ */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
+OBJC_EXPORT double
+objc_msgSend_fpret(id _Nullable self, SEL _Nonnull op, ...)
+    OBJC_AVAILABLE(10.4, 2.0, 9.0, 1.0, 2.0);
+#pragma clang diagnostic pop
+
+/* Use objc_msgSendSuper() for fp-returning messages to super. */
+/* See also objc_msgSendv_fpret() below. */
+
+# elif defined(__x86_64__)
+/** 
+ * Sends a message with a floating-point return value to an instance of a class.
+ * 
+ * @see objc_msgSend
+ */
+OBJC_EXPORT long double
+objc_msgSend_fpret(id _Nullable self, SEL _Nonnull op, ...)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+#  if __STDC_VERSION__ >= 199901L
+OBJC_EXPORT _Complex long double
+objc_msgSend_fp2ret(id _Nullable self, SEL _Nonnull op, ...)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+#  else
+OBJC_EXPORT void objc_msgSend_fp2ret(id _Nullable self, SEL _Nonnull op, ...)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+#  endif
+
+/* Use objc_msgSendSuper() for fp-returning messages to super. */
+/* See also objc_msgSendv_fpret() below. */
+
+# endif
+
+// OBJC_OLD_DISPATCH_PROTOTYPES
+#endif
+
+
+/* Direct Method Invocation Primitives
+ * Use these functions to call the implementation of a given Method.
+ * This is faster than calling method_getImplementation() and method_getName().
+ *
+ * The receiver must not be nil.
+ *
+ * These functions must be cast to an appropriate function pointer type 
+ * before being called. 
+ */
+#if !OBJC_OLD_DISPATCH_PROTOTYPES
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
+OBJC_EXPORT void
+method_invoke(void /* id receiver, Method m, ... */ ) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+OBJC_EXPORT void
+method_invoke_stret(void /* id receiver, Method m, ... */ ) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+#pragma clang diagnostic pop
+#else
+OBJC_EXPORT id _Nullable
+method_invoke(id _Nullable receiver, Method _Nonnull m, ...) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+OBJC_EXPORT void
+method_invoke_stret(id _Nullable receiver, Method _Nonnull m, ...) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+#endif
+
+
+/* Message Forwarding Primitives
+ * Use these functions to forward a message as if the receiver did not 
+ * respond to it. 
+ *
+ * The receiver must not be nil.
+ * 
+ * class_getMethodImplementation() may return (IMP)_objc_msgForward.
+ * class_getMethodImplementation_stret() may return (IMP)_objc_msgForward_stret
+ * 
+ * These functions must be cast to an appropriate function pointer type 
+ * before being called. 
+ *
+ * Before Mac OS X 10.6, _objc_msgForward must not be called directly 
+ * but may be compared to other IMP values.
+ */
+#if !OBJC_OLD_DISPATCH_PROTOTYPES
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
+OBJC_EXPORT void
+_objc_msgForward(void /* id receiver, SEL sel, ... */ ) 
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+OBJC_EXPORT void
+_objc_msgForward_stret(void /* id receiver, SEL sel, ... */ ) 
+    OBJC_AVAILABLE(10.6, 3.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+#pragma clang diagnostic pop
+#else
+OBJC_EXPORT id _Nullable
+_objc_msgForward(id _Nonnull receiver, SEL _Nonnull sel, ...) 
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+OBJC_EXPORT void
+_objc_msgForward_stret(id _Nonnull receiver, SEL _Nonnull sel, ...) 
+    OBJC_AVAILABLE(10.6, 3.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+#endif
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/objc/objc-api.h b/lib/libc/include/any-macos.13-any/objc/objc-api.h
new file mode 100644
index 0000000000000000000000000000000000000000..493cc7f89ae064c4315bcc900c0a9f0930327c08
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/objc/objc-api.h
@@ -0,0 +1,304 @@
+/*
+ * Copyright (c) 1999-2006 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 1988-1996 NeXT Software, Inc.
+
+#ifndef _OBJC_OBJC_API_H_
+#define _OBJC_OBJC_API_H_
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifndef __has_feature
+#   define __has_feature(x) 0
+#endif
+
+#ifndef __has_extension
+#   define __has_extension __has_feature
+#endif
+
+#ifndef __has_attribute
+#   define __has_attribute(x) 0
+#endif
+
+#if !__has_feature(nullability)
+#   ifndef _Nullable
+#       define _Nullable
+#   endif
+#   ifndef _Nonnull
+#       define _Nonnull
+#   endif
+#   ifndef _Null_unspecified
+#       define _Null_unspecified
+#   endif
+#endif
+
+
+
+/*
+ * OBJC_API_VERSION 0 or undef: Tiger and earlier API only
+ * OBJC_API_VERSION 2: Leopard and later API available
+ */
+#if !defined(OBJC_API_VERSION)
+#   if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)  &&  __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_5
+#       define OBJC_API_VERSION 0
+#   else
+#       define OBJC_API_VERSION 2
+#   endif
+#endif
+
+
+/*
+ * OBJC_NO_GC 1: GC is not supported
+ * OBJC_NO_GC undef: GC is supported. This SDK no longer supports this mode.
+ *
+ * OBJC_NO_GC_API undef: Libraries must export any symbols that 
+ *                       dual-mode code may links to.
+ * OBJC_NO_GC_API 1: Libraries need not export GC-related symbols.
+ */
+#if defined(__OBJC_GC__)
+#   error Objective-C garbage collection is not supported.
+#elif TARGET_OS_OSX
+    /* GC is unsupported. GC API symbols are exported. */
+#   define OBJC_NO_GC 1
+#   undef  OBJC_NO_GC_API
+#else
+    /* GC is unsupported. GC API symbols are not exported. */
+#   define OBJC_NO_GC 1
+#   define OBJC_NO_GC_API 1
+#endif
+
+
+/* NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER == 1 
+ * marks -[NSObject init] as a designated initializer. */
+#if !defined(NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER)
+#   define NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER 1
+#endif
+
+/* The arm64 ABI requires proper casting to ensure arguments are passed
+ *  * correctly.  */
+#if defined(__arm64__) && !__swift__
+#   undef OBJC_OLD_DISPATCH_PROTOTYPES
+#   define OBJC_OLD_DISPATCH_PROTOTYPES 0
+#endif
+
+/* OBJC_OLD_DISPATCH_PROTOTYPES == 0 enforces the rule that the dispatch 
+ * functions must be cast to an appropriate function pointer type. */
+#if !defined(OBJC_OLD_DISPATCH_PROTOTYPES)
+#   if __swift__
+        // Existing Swift code expects IMP to be Comparable.
+        // Variadic IMP is comparable via OpaquePointer; non-variadic IMP isn't.
+#       define OBJC_OLD_DISPATCH_PROTOTYPES 1
+#   else
+#       define OBJC_OLD_DISPATCH_PROTOTYPES 0
+#   endif
+#endif
+
+
+/* OBJC_AVAILABLE: shorthand for all-OS availability */
+
+#   if !defined(OBJC_AVAILABLE)
+#       define OBJC_AVAILABLE(x, i, t, w, b)                            \
+            __OSX_AVAILABLE(x)  __IOS_AVAILABLE(i)  __TVOS_AVAILABLE(t) \
+            __WATCHOS_AVAILABLE(w)
+#   endif
+
+
+
+/* OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE: Deprecated on OS X,
+ * unavailable everywhere else. */
+
+#   if !defined(OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE)
+#       define OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(_start, _dep, _msg) \
+            __OSX_DEPRECATED(_start, _dep, _msg)                          \
+            __IOS_UNAVAILABLE __TVOS_UNAVAILABLE                          \
+            __WATCHOS_UNAVAILABLE
+#   endif
+
+
+
+/* OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE: Available on OS X,
+ * unavailable everywhere else. */
+
+#   if !defined(OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE)
+#       define OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE(vers) \
+            __OSX_AVAILABLE(vers)                          \
+            __IOS_UNAVAILABLE __TVOS_UNAVAILABLE           \
+            __WATCHOS_UNAVAILABLE
+#    endif
+
+
+
+/* OBJC_ISA_AVAILABILITY: `isa` will be deprecated or unavailable 
+ * in the future */
+#if !defined(OBJC_ISA_AVAILABILITY)
+#   define OBJC_ISA_AVAILABILITY  __attribute__((deprecated))
+#endif
+
+/* OBJC_UNAVAILABLE: unavailable, with a message where supported */
+#if !defined(OBJC_UNAVAILABLE)
+#   if __has_extension(attribute_unavailable_with_message)
+#       define OBJC_UNAVAILABLE(_msg) __attribute__((unavailable(_msg)))
+#   else
+#       define OBJC_UNAVAILABLE(_msg) __attribute__((unavailable))
+#   endif
+#endif
+
+/* OBJC_DEPRECATED: deprecated, with a message where supported */
+#if !defined(OBJC_DEPRECATED)
+#   if __has_extension(attribute_deprecated_with_message)
+#       define OBJC_DEPRECATED(_msg) __attribute__((deprecated(_msg)))
+#   else
+#       define OBJC_DEPRECATED(_msg) __attribute__((deprecated))
+#   endif
+#endif
+
+/* OBJC_ARC_UNAVAILABLE: unavailable with -fobjc-arc */
+#if !defined(OBJC_ARC_UNAVAILABLE)
+#   if __has_feature(objc_arc)
+#       define OBJC_ARC_UNAVAILABLE OBJC_UNAVAILABLE("not available in automatic reference counting mode")
+#   else
+#       define OBJC_ARC_UNAVAILABLE
+#   endif
+#endif
+
+/* OBJC_SWIFT_UNAVAILABLE: unavailable in Swift */
+#if !defined(OBJC_SWIFT_UNAVAILABLE)
+#   if __has_feature(attribute_availability_swift)
+#       define OBJC_SWIFT_UNAVAILABLE(_msg) __attribute__((availability(swift, unavailable, message=_msg)))
+#   else
+#       define OBJC_SWIFT_UNAVAILABLE(_msg)
+#   endif
+#endif
+
+/* OBJC_ARM64_UNAVAILABLE: unavailable on arm64 (i.e. stret dispatch) */
+#if !defined(OBJC_ARM64_UNAVAILABLE)
+#   if defined(__arm64__)
+#       define OBJC_ARM64_UNAVAILABLE OBJC_UNAVAILABLE("not available in arm64")
+#   else
+#       define OBJC_ARM64_UNAVAILABLE 
+#   endif
+#endif
+
+/* OBJC_GC_UNAVAILABLE: unavailable with -fobjc-gc or -fobjc-gc-only */
+#if !defined(OBJC_GC_UNAVAILABLE)
+#   define OBJC_GC_UNAVAILABLE
+#endif
+
+#if !defined(OBJC_EXTERN)
+#   if defined(__cplusplus)
+#       define OBJC_EXTERN extern "C" 
+#   else
+#       define OBJC_EXTERN extern
+#   endif
+#endif
+
+#if !defined(OBJC_VISIBLE)
+#       define OBJC_VISIBLE  __attribute__((visibility("default")))
+#endif
+
+#if !defined(OBJC_EXPORT)
+#   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
+#endif
+
+#if !defined(OBJC_IMPORT)
+#   define OBJC_IMPORT extern
+#endif
+
+#if !defined(OBJC_ROOT_CLASS)
+#   if __has_attribute(objc_root_class)
+#       define OBJC_ROOT_CLASS __attribute__((objc_root_class))
+#   else
+#       define OBJC_ROOT_CLASS
+#   endif
+#endif
+
+#ifndef __DARWIN_NULL
+#define __DARWIN_NULL NULL
+#endif
+
+#if !defined(OBJC_INLINE)
+#   define OBJC_INLINE __inline
+#endif
+
+// Declares an enum type or option bits type as appropriate for each language.
+#if (__cplusplus && __cplusplus >= 201103L && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && __has_feature(objc_fixed_enum))
+#define OBJC_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
+#if (__cplusplus)
+#define OBJC_OPTIONS(_type, _name) _type _name; enum : _type
+#else
+#define OBJC_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
+#endif
+#else
+#define OBJC_ENUM(_type, _name) _type _name; enum
+#define OBJC_OPTIONS(_type, _name) _type _name; enum
+#endif
+
+#if !defined(OBJC_RETURNS_RETAINED)
+#   if __OBJC__ && __has_attribute(ns_returns_retained)
+#       define OBJC_RETURNS_RETAINED __attribute__((ns_returns_retained))
+#   else
+#       define OBJC_RETURNS_RETAINED
+#   endif
+#endif
+
+/* OBJC_COLD: very rarely called, e.g. on error path */
+#if !defined(OBJC_COLD)
+#   if __OBJC__ && __has_attribute(cold)
+#       define OBJC_COLD __attribute__((cold))
+#   else
+#       define OBJC_COLD
+#   endif
+#endif
+
+/* OBJC_NORETURN: does not return normally, but may throw */
+#if !defined(OBJC_NORETURN)
+#   if __OBJC__ && __has_attribute(noreturn)
+#       define OBJC_NORETURN __attribute__((noreturn))
+#   else
+#       define OBJC_NORETURN
+#   endif
+#endif
+
+/* OBJC_NOESCAPE: marks a block as nonescaping */
+#if !defined(OBJC_NOESCAPE)
+#   if __has_attribute(noescape)
+#       define OBJC_NOESCAPE __attribute__((noescape))
+#   else
+#       define OBJC_NOESCAPE
+#   endif
+#endif
+
+/* OBJC_REFINED_FOR_SWIFT: hide the definition from Swift as we have a
+   better one in the overlay */
+#if !defined(OBJC_REFINED_FOR_SWIFT)
+#   if __has_attribute(swift_private)
+#       define OBJC_REFINED_FOR_SWIFT __attribute__((swift_private))
+#   else
+#       define OBJC_REFINED_FOR_SWIFT
+#   endif
+#endif
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/objc/objc.h b/lib/libc/include/any-macos.13-any/objc/objc.h
new file mode 100644
index 0000000000000000000000000000000000000000..fa90236f639dacf9f3c8ac3e331c4ce7a3d9b159
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/objc/objc.h
@@ -0,0 +1,236 @@
+/*
+ * Copyright (c) 1999-2007 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@
+ */
+/*
+ *	objc.h
+ *	Copyright 1988-1996, NeXT Software, Inc.
+ */
+
+#ifndef _OBJC_OBJC_H_
+#define _OBJC_OBJC_H_
+
+#include 
+#include 
+#include 
+#include 
+
+#if !OBJC_TYPES_DEFINED
+/// An opaque type that represents an Objective-C class.
+typedef struct objc_class *Class;
+
+/// Represents an instance of a class.
+struct objc_object {
+    Class _Nonnull isa  OBJC_ISA_AVAILABILITY;
+};
+
+/// A pointer to an instance of a class.
+typedef struct objc_object *id;
+#endif
+
+/// An opaque type that represents a method selector.
+typedef struct objc_selector *SEL;
+
+/// A pointer to the function of a method implementation. 
+#if !OBJC_OLD_DISPATCH_PROTOTYPES
+typedef void (*IMP)(void /* id, SEL, ... */ ); 
+#else
+typedef id _Nullable (*IMP)(id _Nonnull, SEL _Nonnull, ...); 
+#endif
+
+/// Type to represent a boolean value.
+
+#if defined(__OBJC_BOOL_IS_BOOL)
+    // Honor __OBJC_BOOL_IS_BOOL when available.
+#   if __OBJC_BOOL_IS_BOOL
+#       define OBJC_BOOL_IS_BOOL 1
+#   else
+#       define OBJC_BOOL_IS_BOOL 0
+#   endif
+#else
+    // __OBJC_BOOL_IS_BOOL not set.
+#   if TARGET_OS_OSX || TARGET_OS_MACCATALYST || ((TARGET_OS_IOS || 0) && !__LP64__ && !__ARM_ARCH_7K)
+#      define OBJC_BOOL_IS_BOOL 0
+#   else
+#      define OBJC_BOOL_IS_BOOL 1
+#   endif
+#endif
+
+#if OBJC_BOOL_IS_BOOL
+    typedef bool BOOL;
+#else
+#   define OBJC_BOOL_IS_CHAR 1
+    typedef signed char BOOL; 
+    // BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C" 
+    // even if -funsigned-char is used.
+#endif
+
+#define OBJC_BOOL_DEFINED
+
+#if __has_feature(objc_bool)
+#define YES __objc_yes
+#define NO  __objc_no
+#else
+#define YES ((BOOL)1)
+#define NO  ((BOOL)0)
+#endif
+
+#ifndef Nil
+# if __has_feature(cxx_nullptr)
+#   define Nil nullptr
+# else
+#   define Nil __DARWIN_NULL
+# endif
+#endif
+
+#ifndef nil
+# if __has_feature(cxx_nullptr)
+#   define nil nullptr
+# else
+#   define nil __DARWIN_NULL
+# endif
+#endif
+
+#ifndef __strong
+# if !__has_feature(objc_arc)
+#   define __strong /* empty */
+# endif
+#endif
+
+#ifndef __unsafe_unretained
+# if !__has_feature(objc_arc)
+#   define __unsafe_unretained /* empty */
+# endif
+#endif
+
+#ifndef __autoreleasing
+# if !__has_feature(objc_arc)
+#   define __autoreleasing /* empty */
+# endif
+#endif
+
+/// Forward declaration for zone support
+typedef struct _malloc_zone_t *objc_zone_t;
+
+/** 
+ * Returns the name of the method specified by a given selector.
+ * 
+ * @param sel A pointer of type \c SEL. Pass the selector whose name you wish to determine.
+ * 
+ * @return A C string indicating the name of the selector.
+ */
+OBJC_EXPORT const char * _Nonnull sel_getName(SEL _Nonnull sel)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Registers a method with the Objective-C runtime system, maps the method 
+ * name to a selector, and returns the selector value.
+ * 
+ * @param str A pointer to a C string. Pass the name of the method you wish to register.
+ * 
+ * @return A pointer of type SEL specifying the selector for the named method.
+ * 
+ * @note You must register a method name with the Objective-C runtime system to obtain the
+ *  method’s selector before you can add the method to a class definition. If the method name
+ *  has already been registered, this function simply returns the selector.
+ */
+OBJC_EXPORT SEL _Nonnull sel_registerName(const char * _Nonnull str)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the class name of a given object.
+ * 
+ * @param obj An Objective-C object.
+ * 
+ * @return The name of the class of which \e obj is an instance.
+ */
+OBJC_EXPORT const char * _Nonnull object_getClassName(id _Nullable obj)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a pointer to any extra bytes allocated with an instance given object.
+ * 
+ * @param obj An Objective-C object.
+ * 
+ * @return A pointer to any extra bytes allocated with \e obj. If \e obj was
+ *   not allocated with any extra bytes, then dereferencing the returned pointer is undefined.
+ * 
+ * @note This function returns a pointer to any extra bytes allocated with the instance
+ *  (as specified by \c class_createInstance with extraBytes>0). This memory follows the
+ *  object's ordinary ivars, but may not be adjacent to the last ivar.
+ * @note The returned pointer is guaranteed to be pointer-size aligned, even if the area following
+ *  the object's last ivar is less aligned than that. Alignment greater than pointer-size is never
+ *  guaranteed, even if the area following the object's last ivar is more aligned than that.
+ * @note In a garbage-collected environment, the memory is scanned conservatively.
+ */
+OBJC_EXPORT void * _Nullable object_getIndexedIvars(id _Nullable obj)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Identifies a selector as being valid or invalid.
+ * 
+ * @param sel The selector you want to identify.
+ * 
+ * @return YES if selector is valid and has a function implementation, NO otherwise. 
+ * 
+ * @warning On some platforms, an invalid reference (to invalid memory addresses) can cause
+ *  a crash. 
+ */
+OBJC_EXPORT BOOL sel_isMapped(SEL _Nonnull sel)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Registers a method name with the Objective-C runtime system.
+ * 
+ * @param str A pointer to a C string. Pass the name of the method you wish to register.
+ * 
+ * @return A pointer of type SEL specifying the selector for the named method.
+ * 
+ * @note The implementation of this method is identical to the implementation of \c sel_registerName.
+ * @note Prior to OS X version 10.0, this method tried to find the selector mapped to the given name
+ *  and returned \c NULL if the selector was not found. This was changed for safety, because it was
+ *  observed that many of the callers of this function did not check the return value for \c NULL.
+ */
+OBJC_EXPORT SEL _Nonnull sel_getUid(const char * _Nonnull str)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+typedef const void* objc_objectptr_t;
+
+
+// Obsolete ARC conversions.
+
+OBJC_EXPORT id _Nullable objc_retainedObject(objc_objectptr_t _Nullable obj)
+#if !OBJC_DECLARE_SYMBOLS
+    OBJC_UNAVAILABLE("use CFBridgingRelease() or a (__bridge_transfer id) cast instead")
+#endif
+    ;
+OBJC_EXPORT id _Nullable objc_unretainedObject(objc_objectptr_t _Nullable obj)
+#if !OBJC_DECLARE_SYMBOLS
+    OBJC_UNAVAILABLE("use a (__bridge id) cast instead")
+#endif
+    ;
+OBJC_EXPORT objc_objectptr_t _Nullable objc_unretainedPointer(id _Nullable obj)
+#if !OBJC_DECLARE_SYMBOLS
+    OBJC_UNAVAILABLE("use a __bridge cast instead")
+#endif
+    ;
+
+#endif  /* _OBJC_OBJC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/objc/runtime.h b/lib/libc/include/any-macos.13-any/objc/runtime.h
new file mode 100644
index 0000000000000000000000000000000000000000..5d8cf96e06318211fe1ed7c4f4c84a2e5456625d
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/objc/runtime.h
@@ -0,0 +1,1942 @@
+/*
+ * Copyright (c) 1999-2007 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@
+ */
+
+#ifndef _OBJC_RUNTIME_H
+#define _OBJC_RUNTIME_H
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#if TARGET_OS_MAC
+#include 
+#endif
+
+
+/* Types */
+
+#if !OBJC_TYPES_DEFINED
+
+/// An opaque type that represents a method in a class definition.
+typedef struct objc_method *Method;
+
+/// An opaque type that represents an instance variable.
+typedef struct objc_ivar *Ivar;
+
+/// An opaque type that represents a category.
+typedef struct objc_category *Category;
+
+/// An opaque type that represents an Objective-C declared property.
+typedef struct objc_property *objc_property_t;
+
+#endif
+
+#ifdef __OBJC__
+@class Protocol;
+#else
+typedef struct objc_object Protocol;
+#endif
+
+/// Defines a method
+struct objc_method_description {
+    SEL _Nullable name;               /**< The name of the method */
+    char * _Nullable types;           /**< The types of the method arguments */
+};
+
+/// Defines a property attribute
+typedef struct {
+    const char * _Nonnull name;           /**< The name of the attribute */
+    const char * _Nonnull value;          /**< The value of the attribute (usually empty) */
+} objc_property_attribute_t;
+
+
+/* Functions */
+
+/* Working with Instances */
+
+/** 
+ * Returns a copy of a given object.
+ * 
+ * @param obj An Objective-C object.
+ * @param size The size of the object \e obj.
+ * 
+ * @return A copy of \e obj.
+ */
+OBJC_EXPORT id _Nullable object_copy(id _Nullable obj, size_t size)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARC_UNAVAILABLE;
+
+/** 
+ * Frees the memory occupied by a given object.
+ * 
+ * @param obj An Objective-C object.
+ * 
+ * @return nil
+ */
+OBJC_EXPORT id _Nullable
+object_dispose(id _Nullable obj)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARC_UNAVAILABLE;
+
+/** 
+ * Returns the class of an object.
+ * 
+ * @param obj The object you want to inspect.
+ * 
+ * @return The class object of which \e object is an instance, 
+ *  or \c Nil if \e object is \c nil.
+ */
+OBJC_EXPORT Class _Nullable
+object_getClass(id _Nullable obj) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Sets the class of an object.
+ * 
+ * @param obj The object to modify.
+ * @param cls A class object.
+ * 
+ * @return The previous value of \e object's class, or \c Nil if \e object is \c nil.
+ */
+OBJC_EXPORT Class _Nullable
+object_setClass(id _Nullable obj, Class _Nonnull cls) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+
+/** 
+ * Returns whether an object is a class object.
+ * 
+ * @param obj An Objective-C object.
+ * 
+ * @return true if the object is a class or metaclass, false otherwise.
+ */
+OBJC_EXPORT BOOL
+object_isClass(id _Nullable obj)
+    OBJC_AVAILABLE(10.10, 8.0, 9.0, 1.0, 2.0);
+
+
+/** 
+ * Reads the value of an instance variable in an object.
+ * 
+ * @param obj The object containing the instance variable whose value you want to read.
+ * @param ivar The Ivar describing the instance variable whose value you want to read.
+ * 
+ * @return The value of the instance variable specified by \e ivar, or \c nil if \e object is \c nil.
+ * 
+ * @note \c object_getIvar is faster than \c object_getInstanceVariable if the Ivar
+ *  for the instance variable is already known.
+ */
+OBJC_EXPORT id _Nullable
+object_getIvar(id _Nullable obj, Ivar _Nonnull ivar) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Sets the value of an instance variable in an object.
+ * 
+ * @param obj The object containing the instance variable whose value you want to set.
+ * @param ivar The Ivar describing the instance variable whose value you want to set.
+ * @param value The new value for the instance variable.
+ * 
+ * @note Instance variables with known memory management (such as ARC strong and weak)
+ *  use that memory management. Instance variables with unknown memory management 
+ *  are assigned as if they were unsafe_unretained.
+ * @note \c object_setIvar is faster than \c object_setInstanceVariable if the Ivar
+ *  for the instance variable is already known.
+ */
+OBJC_EXPORT void
+object_setIvar(id _Nullable obj, Ivar _Nonnull ivar, id _Nullable value) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Sets the value of an instance variable in an object.
+ * 
+ * @param obj The object containing the instance variable whose value you want to set.
+ * @param ivar The Ivar describing the instance variable whose value you want to set.
+ * @param value The new value for the instance variable.
+ * 
+ * @note Instance variables with known memory management (such as ARC strong and weak)
+ *  use that memory management. Instance variables with unknown memory management 
+ *  are assigned as if they were strong.
+ * @note \c object_setIvar is faster than \c object_setInstanceVariable if the Ivar
+ *  for the instance variable is already known.
+ */
+OBJC_EXPORT void
+object_setIvarWithStrongDefault(id _Nullable obj, Ivar _Nonnull ivar,
+                                id _Nullable value) 
+    OBJC_AVAILABLE(10.12, 10.0, 10.0, 3.0, 2.0);
+
+/** 
+ * Changes the value of an instance variable of a class instance.
+ * 
+ * @param obj A pointer to an instance of a class. Pass the object containing
+ *  the instance variable whose value you wish to modify.
+ * @param name A C string. Pass the name of the instance variable whose value you wish to modify.
+ * @param value The new value for the instance variable.
+ * 
+ * @return A pointer to the \c Ivar data structure that defines the type and 
+ *  name of the instance variable specified by \e name.
+ *
+ * @note Instance variables with known memory management (such as ARC strong and weak)
+ *  use that memory management. Instance variables with unknown memory management 
+ *  are assigned as if they were unsafe_unretained.
+ */
+OBJC_EXPORT Ivar _Nullable
+object_setInstanceVariable(id _Nullable obj, const char * _Nonnull name,
+                           void * _Nullable value)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARC_UNAVAILABLE;
+
+/** 
+ * Changes the value of an instance variable of a class instance.
+ * 
+ * @param obj A pointer to an instance of a class. Pass the object containing
+ *  the instance variable whose value you wish to modify.
+ * @param name A C string. Pass the name of the instance variable whose value you wish to modify.
+ * @param value The new value for the instance variable.
+ * 
+ * @return A pointer to the \c Ivar data structure that defines the type and 
+ *  name of the instance variable specified by \e name.
+ *
+ * @note Instance variables with known memory management (such as ARC strong and weak)
+ *  use that memory management. Instance variables with unknown memory management 
+ *  are assigned as if they were strong.
+ */
+OBJC_EXPORT Ivar _Nullable
+object_setInstanceVariableWithStrongDefault(id _Nullable obj,
+                                            const char * _Nonnull name,
+                                            void * _Nullable value)
+    OBJC_AVAILABLE(10.12, 10.0, 10.0, 3.0, 2.0)
+    OBJC_ARC_UNAVAILABLE;
+
+/** 
+ * Obtains the value of an instance variable of a class instance.
+ * 
+ * @param obj A pointer to an instance of a class. Pass the object containing
+ *  the instance variable whose value you wish to obtain.
+ * @param name A C string. Pass the name of the instance variable whose value you wish to obtain.
+ * @param outValue On return, contains a pointer to the value of the instance variable.
+ * 
+ * @return A pointer to the \c Ivar data structure that defines the type and name of
+ *  the instance variable specified by \e name.
+ */
+OBJC_EXPORT Ivar _Nullable
+object_getInstanceVariable(id _Nullable obj, const char * _Nonnull name,
+                           void * _Nullable * _Nullable outValue)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARC_UNAVAILABLE;
+
+
+/* Obtaining Class Definitions */
+
+/** 
+ * Returns the class definition of a specified class.
+ * 
+ * @param name The name of the class to look up.
+ * 
+ * @return The Class object for the named class, or \c nil
+ *  if the class is not registered with the Objective-C runtime.
+ * 
+ * @note The implementation of \c objc_getClass is identical to the implementation
+ *  of \c objc_lookUpClass.
+ */
+OBJC_EXPORT Class _Nullable
+objc_getClass(const char * _Nonnull name)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the metaclass definition of a specified class.
+ * 
+ * @param name The name of the class to look up.
+ * 
+ * @return The \c Class object for the metaclass of the named class, or \c nil if the class
+ *  is not registered with the Objective-C runtime.
+ * 
+ * @note If the definition for the named class is not registered, this function calls the class handler
+ *  callback and then checks a second time to see if the class is registered. However, every class
+ *  definition must have a valid metaclass definition, and so the metaclass definition is always returned,
+ *  whether it’s valid or not.
+ */
+OBJC_EXPORT Class _Nullable
+objc_getMetaClass(const char * _Nonnull name)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the class definition of a specified class.
+ * 
+ * @param name The name of the class to look up.
+ * 
+ * @return The Class object for the named class, or \c nil if the class
+ *  is not registered with the Objective-C runtime.
+ * 
+ * @note The implementation of \c objc_lookUpClass is identical to the implementation
+ *  of \c objc_getClass.
+ */
+OBJC_EXPORT Class _Nullable
+objc_lookUpClass(const char * _Nonnull name)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the class definition of a specified class.
+ * 
+ * @param name The name of the class to look up.
+ * 
+ * @return The Class object for the named class.
+ * 
+ * @note This function is the same as \c objc_getClass, but kills the process if the class is not found.
+ */
+OBJC_EXPORT Class _Nonnull
+objc_getRequiredClass(const char * _Nonnull name)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Obtains the list of registered class definitions.
+ * 
+ * @param buffer An array of \c Class values. On output, each \c Class value points to
+ *  one class definition, up to either \e bufferCount or the total number of registered classes,
+ *  whichever is less. You can pass \c NULL to obtain the total number of registered class
+ *  definitions without actually retrieving any class definitions.
+ * @param bufferCount An integer value. Pass the number of pointers for which you have allocated space
+ *  in \e buffer. On return, this function fills in only this number of elements. If this number is less
+ *  than the number of registered classes, this function returns an arbitrary subset of the registered classes.
+ * 
+ * @return An integer value indicating the total number of registered classes.
+ * 
+ * @note The Objective-C runtime library automatically registers all the classes defined in your source code.
+ *  You can create class definitions at runtime and register them with the \c objc_addClass function.
+ * 
+ * @warning You cannot assume that class objects you get from this function are classes that inherit from \c NSObject,
+ *  so you cannot safely call any methods on such classes without detecting that the method is implemented first.
+ */
+OBJC_EXPORT int
+objc_getClassList(Class _Nonnull * _Nullable buffer, int bufferCount)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Creates and returns a list of pointers to all registered class definitions.
+ * 
+ * @param outCount An integer pointer used to store the number of classes returned by
+ *  this function in the list. It can be \c nil.
+ * 
+ * @return A nil terminated array of classes. It must be freed with \c free().
+ * 
+ * @see objc_getClassList
+ */
+OBJC_EXPORT Class _Nonnull * _Nullable
+objc_copyClassList(unsigned int * _Nullable outCount)
+    OBJC_AVAILABLE(10.7, 3.1, 9.0, 1.0, 2.0);
+
+/**
+ * Enumerates classes, filtering by image, name, protocol conformance and superclass.
+ *
+ * @param image The image to search.  Can be NULL (search the caller's image),
+ *              OBJC_DYNAMIC_CLASSES (search dynamically registered classes),
+ *              a handle returned by dlopen(3), or the Mach header of an image
+ *              loaded into the current process.
+ * @param namePrefix If non-NULL, a required prefix for the class name.
+ * @param conformingTo If non-NULL, a protocol to which the enumerated classes
+ *                     must conform.
+ * @param subclassing If non-NULL, a class which the enumerated classes must
+ *                    subclass.
+ * @param block A block that is called for each matching class.  Can abort
+ *              enumeration by setting *stop to YES.
+ *
+ */
+#define OBJC_DYNAMIC_CLASSES ((const void *)-1)
+OBJC_EXPORT void
+objc_enumerateClasses(const void * _Nullable image,
+                      const char * _Nullable namePrefix,
+                      Protocol * _Nullable conformingTo,
+                      Class _Nullable subclassing,
+                      void (^ _Nonnull block)(Class _Nonnull aClass, BOOL * _Nonnull stop)
+                      OBJC_NOESCAPE)
+    OBJC_AVAILABLE(13.0, 16.0, 16.0, 9.0, 7.0)
+    OBJC_REFINED_FOR_SWIFT;
+
+/* Working with Classes */
+
+/** 
+ * Returns the name of a class.
+ * 
+ * @param cls A class object.
+ * 
+ * @return The name of the class, or the empty string if \e cls is \c Nil.
+ */
+OBJC_EXPORT const char * _Nonnull
+class_getName(Class _Nullable cls) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a Boolean value that indicates whether a class object is a metaclass.
+ * 
+ * @param cls A class object.
+ * 
+ * @return \c YES if \e cls is a metaclass, \c NO if \e cls is a non-meta class, 
+ *  \c NO if \e cls is \c Nil.
+ */
+OBJC_EXPORT BOOL
+class_isMetaClass(Class _Nullable cls) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the superclass of a class.
+ * 
+ * @param cls A class object.
+ * 
+ * @return The superclass of the class, or \c Nil if
+ *  \e cls is a root class, or \c Nil if \e cls is \c Nil.
+ *
+ * @note You should usually use \c NSObject's \c superclass method instead of this function.
+ */
+OBJC_EXPORT Class _Nullable
+class_getSuperclass(Class _Nullable cls) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Sets the superclass of a given class.
+ * 
+ * @param cls The class whose superclass you want to set.
+ * @param newSuper The new superclass for cls.
+ * 
+ * @return The old superclass for cls.
+ * 
+ * @warning You should not use this function.
+ */
+OBJC_EXPORT Class _Nonnull
+class_setSuperclass(Class _Nonnull cls, Class _Nonnull newSuper) 
+    __OSX_DEPRECATED(10.5, 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")
+
+;
+
+/** 
+ * Returns the version number of a class definition.
+ * 
+ * @param cls A pointer to a \c Class data structure. Pass
+ *  the class definition for which you wish to obtain the version.
+ * 
+ * @return An integer indicating the version number of the class definition.
+ *
+ * @see class_setVersion
+ */
+OBJC_EXPORT int
+class_getVersion(Class _Nullable cls)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Sets the version number of a class definition.
+ * 
+ * @param cls A pointer to an Class data structure. 
+ *  Pass the class definition for which you wish to set the version.
+ * @param version An integer. Pass the new version number of the class definition.
+ *
+ * @note You can use the version number of the class definition to provide versioning of the
+ *  interface that your class represents to other classes. This is especially useful for object
+ *  serialization (that is, archiving of the object in a flattened form), where it is important to
+ *  recognize changes to the layout of the instance variables in different class-definition versions.
+ * @note Classes derived from the Foundation framework \c NSObject class can set the class-definition
+ *  version number using the \c setVersion: class method, which is implemented using the \c class_setVersion function.
+ */
+OBJC_EXPORT void
+class_setVersion(Class _Nullable cls, int version)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the size of instances of a class.
+ * 
+ * @param cls A class object.
+ * 
+ * @return The size in bytes of instances of the class \e cls, or \c 0 if \e cls is \c Nil.
+ */
+OBJC_EXPORT size_t
+class_getInstanceSize(Class _Nullable cls) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the \c Ivar for a specified instance variable of a given class.
+ * 
+ * @param cls The class whose instance variable you wish to obtain.
+ * @param name The name of the instance variable definition to obtain.
+ * 
+ * @return A pointer to an \c Ivar data structure containing information about 
+ *  the instance variable specified by \e name.
+ */
+OBJC_EXPORT Ivar _Nullable
+class_getInstanceVariable(Class _Nullable cls, const char * _Nonnull name)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the Ivar for a specified class variable of a given class.
+ * 
+ * @param cls The class definition whose class variable you wish to obtain.
+ * @param name The name of the class variable definition to obtain.
+ * 
+ * @return A pointer to an \c Ivar data structure containing information about the class variable specified by \e name.
+ */
+OBJC_EXPORT Ivar _Nullable
+class_getClassVariable(Class _Nullable cls, const char * _Nonnull name) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Describes the instance variables declared by a class.
+ * 
+ * @param cls The class to inspect.
+ * @param outCount On return, contains the length of the returned array. 
+ *  If outCount is NULL, the length is not returned.
+ * 
+ * @return An array of pointers of type Ivar describing the instance variables declared by the class. 
+ *  Any instance variables declared by superclasses are not included. The array contains *outCount 
+ *  pointers followed by a NULL terminator. You must free the array with free().
+ * 
+ *  If the class declares no instance variables, or cls is Nil, NULL is returned and *outCount is 0.
+ */
+OBJC_EXPORT Ivar _Nonnull * _Nullable
+class_copyIvarList(Class _Nullable cls, unsigned int * _Nullable outCount) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a specified instance method for a given class.
+ * 
+ * @param cls The class you want to inspect.
+ * @param name The selector of the method you want to retrieve.
+ * 
+ * @return The method that corresponds to the implementation of the selector specified by 
+ *  \e name for the class specified by \e cls, or \c NULL if the specified class or its 
+ *  superclasses do not contain an instance method with the specified selector.
+ *
+ * @note This function searches superclasses for implementations, whereas \c class_copyMethodList does not.
+ */
+OBJC_EXPORT Method _Nullable
+class_getInstanceMethod(Class _Nullable cls, SEL _Nonnull name)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a pointer to the data structure describing a given class method for a given class.
+ * 
+ * @param cls A pointer to a class definition. Pass the class that contains the method you want to retrieve.
+ * @param name A pointer of type \c SEL. Pass the selector of the method you want to retrieve.
+ * 
+ * @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.
+ *
+ * @note Note that this function searches superclasses for implementations, 
+ *  whereas \c class_copyMethodList does not.
+ */
+OBJC_EXPORT Method _Nullable
+class_getClassMethod(Class _Nullable cls, SEL _Nonnull name)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the function pointer that would be called if a 
+ * particular message were sent to an instance of a class.
+ * 
+ * @param cls The class you want to inspect.
+ * @param name A selector.
+ * 
+ * @return The function pointer that would be called if \c [object name] were called
+ *  with an instance of the class, or \c NULL if \e cls is \c Nil.
+ *
+ * @note \c class_getMethodImplementation may be faster than \c method_getImplementation(class_getInstanceMethod(cls, name)).
+ * @note The function pointer returned may be a function internal to the runtime instead of
+ *  an actual method implementation. For example, if instances of the class do not respond to
+ *  the selector, the function pointer returned will be part of the runtime's message forwarding machinery.
+ */
+OBJC_EXPORT IMP _Nullable
+class_getMethodImplementation(Class _Nullable cls, SEL _Nonnull name) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the function pointer that would be called if a particular 
+ * message were sent to an instance of a class.
+ * 
+ * @param cls The class you want to inspect.
+ * @param name A selector.
+ * 
+ * @return The function pointer that would be called if \c [object name] were called
+ *  with an instance of the class, or \c NULL if \e cls is \c Nil.
+ */
+OBJC_EXPORT IMP _Nullable
+class_getMethodImplementation_stret(Class _Nullable cls, SEL _Nonnull name) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0)
+    OBJC_ARM64_UNAVAILABLE;
+
+/** 
+ * Returns a Boolean value that indicates whether instances of a class respond to a particular selector.
+ * 
+ * @param cls The class you want to inspect.
+ * @param sel A selector.
+ * 
+ * @return \c YES if instances of the class respond to the selector, otherwise \c NO.
+ * 
+ * @note You should usually use \c NSObject's \c respondsToSelector: or \c instancesRespondToSelector: 
+ *  methods instead of this function.
+ */
+OBJC_EXPORT BOOL
+class_respondsToSelector(Class _Nullable cls, SEL _Nonnull sel) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Describes the instance methods implemented by a class.
+ * 
+ * @param cls The class you want to inspect.
+ * @param outCount On return, contains the length of the returned array. 
+ *  If outCount is NULL, the length is not returned.
+ * 
+ * @return An array of pointers of type Method describing the instance methods 
+ *  implemented by the class—any instance methods implemented by superclasses are not included. 
+ *  The array contains *outCount pointers followed by a NULL terminator. You must free the array with free().
+ * 
+ *  If cls implements no instance methods, or cls is Nil, returns NULL and *outCount is 0.
+ * 
+ * @note To get the class methods of a class, use \c class_copyMethodList(object_getClass(cls), &count).
+ * @note To get the implementations of methods that may be implemented by superclasses, 
+ *  use \c class_getInstanceMethod or \c class_getClassMethod.
+ */
+OBJC_EXPORT Method _Nonnull * _Nullable
+class_copyMethodList(Class _Nullable cls, unsigned int * _Nullable outCount) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a Boolean value that indicates whether a class conforms to a given protocol.
+ * 
+ * @param cls The class you want to inspect.
+ * @param protocol A protocol.
+ *
+ * @return YES if cls conforms to protocol, otherwise NO.
+ *
+ * @note You should usually use NSObject's conformsToProtocol: method instead of this function.
+ */
+OBJC_EXPORT BOOL
+class_conformsToProtocol(Class _Nullable cls, Protocol * _Nullable protocol) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Describes the protocols adopted by a class.
+ * 
+ * @param cls The class you want to inspect.
+ * @param outCount On return, contains the length of the returned array. 
+ *  If outCount is NULL, the length is not returned.
+ * 
+ * @return An array of pointers of type Protocol* describing the protocols adopted 
+ *  by the class. Any protocols adopted by superclasses or other protocols are not included. 
+ *  The array contains *outCount pointers followed by a NULL terminator. You must free the array with free().
+ * 
+ *  If cls adopts no protocols, or cls is Nil, returns NULL and *outCount is 0.
+ */
+OBJC_EXPORT Protocol * __unsafe_unretained _Nonnull * _Nullable 
+class_copyProtocolList(Class _Nullable cls, unsigned int * _Nullable outCount)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a property with a given name of a given class.
+ * 
+ * @param cls The class you want to inspect.
+ * @param name The name of the property you want to inspect.
+ * 
+ * @return A pointer of type \c objc_property_t describing the property, or
+ *  \c NULL if the class does not declare a property with that name, 
+ *  or \c NULL if \e cls is \c Nil.
+ */
+OBJC_EXPORT objc_property_t _Nullable
+class_getProperty(Class _Nullable cls, const char * _Nonnull name)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Describes the properties declared by a class.
+ * 
+ * @param cls The class you want to inspect.
+ * @param outCount On return, contains the length of the returned array. 
+ *  If \e outCount is \c NULL, the length is not returned.        
+ * 
+ * @return An array of pointers of type \c objc_property_t describing the properties 
+ *  declared by the class. Any properties declared by superclasses are not included. 
+ *  The array contains \c *outCount pointers followed by a \c NULL terminator. You must free the array with \c free().
+ * 
+ *  If \e cls declares no properties, or \e cls is \c Nil, returns \c NULL and \c *outCount is \c 0.
+ */
+OBJC_EXPORT objc_property_t _Nonnull * _Nullable
+class_copyPropertyList(Class _Nullable cls, unsigned int * _Nullable outCount)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a description of the \c Ivar layout for a given class.
+ * 
+ * @param cls The class to inspect.
+ * 
+ * @return A description of the \c Ivar layout for \e cls.
+ */
+OBJC_EXPORT const uint8_t * _Nullable
+class_getIvarLayout(Class _Nullable cls)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a description of the layout of weak Ivars for a given class.
+ * 
+ * @param cls The class to inspect.
+ * 
+ * @return A description of the layout of the weak \c Ivars for \e cls.
+ */
+OBJC_EXPORT const uint8_t * _Nullable
+class_getWeakIvarLayout(Class _Nullable cls)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Adds a new method to a class with a given name and implementation.
+ * 
+ * @param cls The class to which to add a method.
+ * @param name A selector that specifies the name of the method being added.
+ * @param imp A function which is the implementation of the new method. The function must take at least two arguments—self and _cmd.
+ * @param types An array of characters that describe the types of the arguments to the method. 
+ * 
+ * @return YES if the method was added successfully, otherwise NO 
+ *  (for example, the class already contains a method implementation with that name).
+ *
+ * @note class_addMethod will add an override of a superclass's implementation, 
+ *  but will not replace an existing implementation in this class. 
+ *  To change an existing implementation, use method_setImplementation.
+ */
+OBJC_EXPORT BOOL
+class_addMethod(Class _Nullable cls, SEL _Nonnull name, IMP _Nonnull imp, 
+                const char * _Nullable types) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Replaces the implementation of a method for a given class.
+ * 
+ * @param cls The class you want to modify.
+ * @param name A selector that identifies the method whose implementation you want to replace.
+ * @param imp The new implementation for the method identified by name for the class identified by cls.
+ * @param types An array of characters that describe the types of the arguments to the method. 
+ *  Since the function must take at least two arguments—self and _cmd, the second and third characters
+ *  must be “@:” (the first character is the return type).
+ * 
+ * @return The previous implementation of the method identified by \e name for the class identified by \e cls.
+ * 
+ * @note This function behaves in two different ways:
+ *  - If the method identified by \e name does not yet exist, it is added as if \c class_addMethod were called. 
+ *    The type encoding specified by \e types is used as given.
+ *  - If the method identified by \e name does exist, its \c IMP is replaced as if \c method_setImplementation were called.
+ *    The type encoding specified by \e types is ignored.
+ */
+OBJC_EXPORT IMP _Nullable
+class_replaceMethod(Class _Nullable cls, SEL _Nonnull name, IMP _Nonnull imp, 
+                    const char * _Nullable types) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Adds a new instance variable to a class.
+ * 
+ * @return YES if the instance variable was added successfully, otherwise NO 
+ *         (for example, the class already contains an instance variable with that name).
+ *
+ * @note This function may only be called after objc_allocateClassPair and before objc_registerClassPair. 
+ *       Adding an instance variable to an existing class is not supported.
+ * @note The class must not be a metaclass. Adding an instance variable to a metaclass is not supported.
+ * @note The instance variable's minimum alignment in bytes is 1< Type Encodings.
+ */
+OBJC_EXPORT const char * _Nullable
+ivar_getTypeEncoding(Ivar _Nonnull v) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the offset of an instance variable.
+ * 
+ * @param v The instance variable you want to enquire about.
+ * 
+ * @return The offset of \e v.
+ * 
+ * @note For instance variables of type \c id or other object types, call \c object_getIvar
+ *  and \c object_setIvar instead of using this offset to access the instance variable data directly.
+ */
+OBJC_EXPORT ptrdiff_t
+ivar_getOffset(Ivar _Nonnull v) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+
+/* Working with Properties */
+
+/** 
+ * Returns the name of a property.
+ * 
+ * @param property The property you want to inquire about.
+ * 
+ * @return A C string containing the property's name.
+ */
+OBJC_EXPORT const char * _Nonnull
+property_getName(objc_property_t _Nonnull property) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the attribute string of a property.
+ * 
+ * @param property A property.
+ *
+ * @return A C string containing the property's attributes.
+ * 
+ * @note The format of the attribute string is described in Declared Properties in Objective-C Runtime Programming Guide.
+ */
+OBJC_EXPORT const char * _Nullable
+property_getAttributes(objc_property_t _Nonnull property) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns an array of property attributes for a property. 
+ * 
+ * @param property The property whose attributes you want copied.
+ * @param outCount The number of attributes returned in the array.
+ * 
+ * @return An array of property attributes; must be free'd() by the caller. 
+ */
+OBJC_EXPORT objc_property_attribute_t * _Nullable
+property_copyAttributeList(objc_property_t _Nonnull property,
+                           unsigned int * _Nullable outCount)
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the value of a property attribute given the attribute name.
+ * 
+ * @param property The property whose attribute value you are interested in.
+ * @param attributeName C string representing the attribute name.
+ *
+ * @return The value string of the attribute \e attributeName if it exists in
+ *  \e property, \c nil otherwise. 
+ */
+OBJC_EXPORT char * _Nullable
+property_copyAttributeValue(objc_property_t _Nonnull property,
+                            const char * _Nonnull attributeName)
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+
+/* Working with Protocols */
+
+/** 
+ * Returns a specified protocol.
+ * 
+ * @param name The name of a protocol.
+ * 
+ * @return The protocol named \e name, or \c NULL if no protocol named \e name could be found.
+ * 
+ * @note This function acquires the runtime lock.
+ */
+OBJC_EXPORT Protocol * _Nullable
+objc_getProtocol(const char * _Nonnull name)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns an array of all the protocols known to the runtime.
+ * 
+ * @param outCount Upon return, contains the number of protocols in the returned array.
+ * 
+ * @return A C array of all the protocols known to the runtime. The array contains \c *outCount
+ *  pointers followed by a \c NULL terminator. You must free the list with \c free().
+ * 
+ * @note This function acquires the runtime lock.
+ */
+OBJC_EXPORT Protocol * __unsafe_unretained _Nonnull * _Nullable
+objc_copyProtocolList(unsigned int * _Nullable outCount)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a Boolean value that indicates whether one protocol conforms to another protocol.
+ * 
+ * @param proto A protocol.
+ * @param other A protocol.
+ * 
+ * @return \c YES if \e proto conforms to \e other, otherwise \c NO.
+ * 
+ * @note One protocol can incorporate other protocols using the same syntax 
+ *  that classes use to adopt a protocol:
+ *  \code
+ *  @protocol ProtocolName < protocol list >
+ *  \endcode
+ *  All the protocols listed between angle brackets are considered part of the ProtocolName protocol.
+ */
+OBJC_EXPORT BOOL
+protocol_conformsToProtocol(Protocol * _Nullable proto,
+                            Protocol * _Nullable other)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a Boolean value that indicates whether two protocols are equal.
+ * 
+ * @param proto A protocol.
+ * @param other A protocol.
+ * 
+ * @return \c YES if \e proto is the same as \e other, otherwise \c NO.
+ */
+OBJC_EXPORT BOOL
+protocol_isEqual(Protocol * _Nullable proto, Protocol * _Nullable other)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the name of a protocol.
+ * 
+ * @param proto A protocol.
+ * 
+ * @return The name of the protocol \e p as a C string.
+ */
+OBJC_EXPORT const char * _Nonnull
+protocol_getName(Protocol * _Nonnull proto)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a method description structure for a specified method of a given protocol.
+ * 
+ * @param proto A protocol.
+ * @param aSel A selector.
+ * @param isRequiredMethod A Boolean value that indicates whether aSel is a required method.
+ * @param isInstanceMethod A Boolean value that indicates whether aSel is an instance method.
+ * 
+ * @return An \c objc_method_description structure that describes the method specified by \e aSel,
+ *  \e isRequiredMethod, and \e isInstanceMethod for the protocol \e p.
+ *  If the protocol does not contain the specified method, returns an \c objc_method_description structure
+ *  with the value \c {NULL, \c NULL}.
+ * 
+ * @note This function recursively searches any protocols that this protocol conforms to.
+ */
+OBJC_EXPORT struct objc_method_description
+protocol_getMethodDescription(Protocol * _Nonnull proto, SEL _Nonnull aSel,
+                              BOOL isRequiredMethod, BOOL isInstanceMethod)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns an array of method descriptions of methods meeting a given specification for a given protocol.
+ * 
+ * @param proto A protocol.
+ * @param isRequiredMethod A Boolean value that indicates whether returned methods should
+ *  be required methods (pass YES to specify required methods).
+ * @param isInstanceMethod A Boolean value that indicates whether returned methods should
+ *  be instance methods (pass YES to specify instance methods).
+ * @param outCount Upon return, contains the number of method description structures in the returned array.
+ * 
+ * @return A C array of \c objc_method_description structures containing the names and types of \e p's methods 
+ *  specified by \e isRequiredMethod and \e isInstanceMethod. The array contains \c *outCount pointers followed
+ *  by a \c NULL terminator. You must free the list with \c free().
+ *  If the protocol declares no methods that meet the specification, \c NULL is returned and \c *outCount is 0.
+ * 
+ * @note Methods in other protocols adopted by this protocol are not included.
+ */
+OBJC_EXPORT struct objc_method_description * _Nullable
+protocol_copyMethodDescriptionList(Protocol * _Nonnull proto,
+                                   BOOL isRequiredMethod,
+                                   BOOL isInstanceMethod,
+                                   unsigned int * _Nullable outCount)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the specified property of a given protocol.
+ * 
+ * @param proto A protocol.
+ * @param name The name of a property.
+ * @param isRequiredProperty \c YES searches for a required property, \c NO searches for an optional property.
+ * @param isInstanceProperty \c YES searches for an instance property, \c NO searches for a class property.
+ * 
+ * @return The property specified by \e name, \e isRequiredProperty, and \e isInstanceProperty for \e proto,
+ *  or \c NULL if none of \e proto's properties meets the specification.
+ */
+OBJC_EXPORT objc_property_t _Nullable
+protocol_getProperty(Protocol * _Nonnull proto,
+                     const char * _Nonnull name,
+                     BOOL isRequiredProperty, BOOL isInstanceProperty)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns an array of the required instance properties declared by a protocol.
+ * 
+ * @note Identical to 
+ * \code
+ * protocol_copyPropertyList2(proto, outCount, YES, YES);
+ * \endcode
+ */
+OBJC_EXPORT objc_property_t _Nonnull * _Nullable
+protocol_copyPropertyList(Protocol * _Nonnull proto,
+                          unsigned int * _Nullable outCount)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns an array of properties declared by a protocol.
+ * 
+ * @param proto A protocol.
+ * @param outCount Upon return, contains the number of elements in the returned array.
+ * @param isRequiredProperty \c YES returns required properties, \c NO returns optional properties.
+ * @param isInstanceProperty \c YES returns instance properties, \c NO returns class properties.
+ * 
+ * @return A C array of pointers of type \c objc_property_t describing the properties declared by \e proto.
+ *  Any properties declared by other protocols adopted by this protocol are not included. The array contains
+ *  \c *outCount pointers followed by a \c NULL terminator. You must free the array with \c free().
+ *  If the protocol declares no matching properties, \c NULL is returned and \c *outCount is \c 0.
+ */
+OBJC_EXPORT objc_property_t _Nonnull * _Nullable
+protocol_copyPropertyList2(Protocol * _Nonnull proto,
+                           unsigned int * _Nullable outCount,
+                           BOOL isRequiredProperty, BOOL isInstanceProperty)
+    OBJC_AVAILABLE(10.12, 10.0, 10.0, 3.0, 2.0);
+
+/** 
+ * Returns an array of the protocols adopted by a protocol.
+ * 
+ * @param proto A protocol.
+ * @param outCount Upon return, contains the number of elements in the returned array.
+ * 
+ * @return A C array of protocols adopted by \e proto. The array contains \e *outCount pointers
+ *  followed by a \c NULL terminator. You must free the array with \c free().
+ *  If the protocol adopts no other protocols, \c NULL is returned and \c *outCount is \c 0.
+ */
+OBJC_EXPORT Protocol * __unsafe_unretained _Nonnull * _Nullable
+protocol_copyProtocolList(Protocol * _Nonnull proto,
+                          unsigned int * _Nullable outCount)
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Creates a new protocol instance that cannot be used until registered with
+ * \c objc_registerProtocol()
+ * 
+ * @param name The name of the protocol to create.
+ *
+ * @return The Protocol instance on success, \c nil if a protocol
+ *  with the same name already exists. 
+ * @note There is no dispose method for this. 
+ */
+OBJC_EXPORT Protocol * _Nullable
+objc_allocateProtocol(const char * _Nonnull name) 
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+/** 
+ * Registers a newly constructed protocol with the runtime. The protocol
+ * will be ready for use and is immutable after this.
+ * 
+ * @param proto The protocol you want to register.
+ */
+OBJC_EXPORT void
+objc_registerProtocol(Protocol * _Nonnull proto) 
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+/** 
+ * Adds a method to a protocol. The protocol must be under construction.
+ * 
+ * @param proto The protocol to add a method to.
+ * @param name The name of the method to add.
+ * @param types A C string that represents the method signature.
+ * @param isRequiredMethod YES if the method is not an optional method.
+ * @param isInstanceMethod YES if the method is an instance method. 
+ */
+OBJC_EXPORT void
+protocol_addMethodDescription(Protocol * _Nonnull proto, SEL _Nonnull name,
+                              const char * _Nullable types,
+                              BOOL isRequiredMethod, BOOL isInstanceMethod) 
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+/** 
+ * Adds an incorporated protocol to another protocol. The protocol being
+ * added to must still be under construction, while the additional protocol
+ * must be already constructed.
+ * 
+ * @param proto The protocol you want to add to, it must be under construction.
+ * @param addition The protocol you want to incorporate into \e proto, it must be registered.
+ */
+OBJC_EXPORT void
+protocol_addProtocol(Protocol * _Nonnull proto, Protocol * _Nonnull addition) 
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+/** 
+ * Adds a property to a protocol. The protocol must be under construction. 
+ * 
+ * @param proto The protocol to add a property to.
+ * @param name The name of the property.
+ * @param attributes An array of property attributes.
+ * @param attributeCount The number of attributes in \e attributes.
+ * @param isRequiredProperty YES if the property (accessor methods) is not optional. 
+ * @param isInstanceProperty YES if the property (accessor methods) are instance methods. 
+ *  This is the only case allowed fo a property, as a result, setting this to NO will 
+ *  not add the property to the protocol at all. 
+ */
+OBJC_EXPORT void
+protocol_addProperty(Protocol * _Nonnull proto, const char * _Nonnull name,
+                     const objc_property_attribute_t * _Nullable attributes,
+                     unsigned int attributeCount,
+                     BOOL isRequiredProperty, BOOL isInstanceProperty)
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+
+/* Working with Libraries */
+
+/** 
+ * Returns the names of all the loaded Objective-C frameworks and dynamic
+ * libraries.
+ * 
+ * @param outCount The number of names returned.
+ * 
+ * @return An array of C strings of names. Must be free()'d by caller.
+ */
+OBJC_EXPORT const char * _Nonnull * _Nonnull
+objc_copyImageNames(unsigned int * _Nullable outCount) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the dynamic library name a class originated from.
+ * 
+ * @param cls The class you are inquiring about.
+ * 
+ * @return The name of the library containing this class.
+ */
+OBJC_EXPORT const char * _Nullable
+class_getImageName(Class _Nullable cls) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the names of all the classes within a library.
+ * 
+ * @param image The library or framework you are inquiring about.
+ * @param outCount The number of class names returned.
+ * 
+ * @return An array of C strings representing the class names.
+ */
+OBJC_EXPORT const char * _Nonnull * _Nullable
+objc_copyClassNamesForImage(const char * _Nonnull image,
+                            unsigned int * _Nullable outCount) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+
+/* Working with Selectors */
+
+/** 
+ * Returns the name of the method specified by a given selector.
+ * 
+ * @param sel A pointer of type \c SEL. Pass the selector whose name you wish to determine.
+ * 
+ * @return A C string indicating the name of the selector.
+ */
+OBJC_EXPORT const char * _Nonnull
+sel_getName(SEL _Nonnull sel)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+
+/** 
+ * Registers a method with the Objective-C runtime system, maps the method 
+ * name to a selector, and returns the selector value.
+ * 
+ * @param str A pointer to a C string. Pass the name of the method you wish to register.
+ * 
+ * @return A pointer of type SEL specifying the selector for the named method.
+ * 
+ * @note You must register a method name with the Objective-C runtime system to obtain the
+ *  method’s selector before you can add the method to a class definition. If the method name
+ *  has already been registered, this function simply returns the selector.
+ */
+OBJC_EXPORT SEL _Nonnull
+sel_registerName(const char * _Nonnull str)
+    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns a Boolean value that indicates whether two selectors are equal.
+ * 
+ * @param lhs The selector to compare with rhs.
+ * @param rhs The selector to compare with lhs.
+ * 
+ * @return \c YES if \e lhs and \e rhs are equal, otherwise \c NO.
+ * 
+ * @note sel_isEqual is equivalent to ==.
+ */
+OBJC_EXPORT BOOL
+sel_isEqual(SEL _Nonnull lhs, SEL _Nonnull rhs) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+
+/* Objective-C Language Features */
+
+/** 
+ * This function is inserted by the compiler when a mutation
+ * is detected during a foreach iteration. It gets called 
+ * when a mutation occurs, and the enumerationMutationHandler
+ * is enacted if it is set up. A fatal error occurs if a handler is not set up.
+ *
+ * @param obj The object being mutated.
+ * 
+ */
+OBJC_EXPORT void
+objc_enumerationMutation(id _Nonnull obj) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Sets the current mutation handler. 
+ * 
+ * @param handler Function pointer to the new mutation handler.
+ */
+OBJC_EXPORT void
+objc_setEnumerationMutationHandler(void (*_Nullable handler)(id _Nonnull )) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+/** 
+ * Set the function to be called by objc_msgForward.
+ * 
+ * @param fwd Function to be jumped to by objc_msgForward.
+ * @param fwd_stret Function to be jumped to by objc_msgForward_stret.
+ * 
+ * @see message.h::_objc_msgForward
+ */
+OBJC_EXPORT void
+objc_setForwardHandler(void * _Nonnull fwd, void * _Nonnull fwd_stret) 
+    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
+#if !0
+
+/** 
+ * Creates a pointer to a function that will call the block
+ * when the method is called.
+ * 
+ * @param block The block that implements this method. Its signature should
+ *  be: method_return_type ^(id self, method_args...). 
+ *  The selector is not available as a parameter to this block.
+ *  The block is copied with \c Block_copy().
+ * 
+ * @return The IMP that calls this block. Must be disposed of with
+ *  \c imp_removeBlock.
+ */
+OBJC_EXPORT IMP _Nonnull
+imp_implementationWithBlock(id _Nonnull block)
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+/** 
+ * Return the block associated with an IMP that was created using
+ * \c imp_implementationWithBlock.
+ * 
+ * @param anImp The IMP that calls this block.
+ * 
+ * @return The block called by \e anImp.
+ */
+OBJC_EXPORT id _Nullable
+imp_getBlock(IMP _Nonnull anImp)
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+/** 
+ * Disassociates a block from an IMP that was created using
+ * \c imp_implementationWithBlock and releases the copy of the 
+ * block that was created.
+ * 
+ * @param anImp An IMP that was created using \c imp_implementationWithBlock.
+ * 
+ * @return YES if the block was released successfully, NO otherwise. 
+ *  (For example, the block might not have been used to create an IMP previously).
+ */
+OBJC_EXPORT BOOL
+imp_removeBlock(IMP _Nonnull anImp)
+    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
+
+#endif 
+
+/** 
+ * This loads the object referenced by a weak pointer and returns it, after
+ * retaining and autoreleasing the object to ensure that it stays alive
+ * long enough for the caller to use it. This function would be used
+ * anywhere a __weak variable is used in an expression.
+ * 
+ * @param location The weak pointer address
+ * 
+ * @return The object pointed to by \e location, or \c nil if \e *location is \c nil.
+ */
+OBJC_EXPORT id _Nullable
+objc_loadWeak(id _Nullable * _Nonnull location)
+    OBJC_AVAILABLE(10.7, 5.0, 9.0, 1.0, 2.0);
+
+/** 
+ * This function stores a new value into a __weak variable. It would
+ * be used anywhere a __weak variable is the target of an assignment.
+ * 
+ * @param location The address of the weak pointer itself
+ * @param obj The new object this weak ptr should now point to
+ * 
+ * @return The value stored into \e location, i.e. \e obj
+ */
+OBJC_EXPORT id _Nullable
+objc_storeWeak(id _Nullable * _Nonnull location, id _Nullable obj) 
+    OBJC_AVAILABLE(10.7, 5.0, 9.0, 1.0, 2.0);
+
+
+/* Associative References */
+
+/**
+ * Policies related to associative references.
+ * These are options to objc_setAssociatedObject()
+ */
+typedef OBJC_ENUM(uintptr_t, objc_AssociationPolicy) {
+    OBJC_ASSOCIATION_ASSIGN = 0,           /**< Specifies a weak reference to the associated object. */
+    OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, /**< Specifies a strong reference to the associated object. 
+                                            *   The association is not made atomically. */
+    OBJC_ASSOCIATION_COPY_NONATOMIC = 3,   /**< Specifies that the associated object is copied. 
+                                            *   The association is not made atomically. */
+    OBJC_ASSOCIATION_RETAIN = 01401,       /**< Specifies a strong reference to the associated object.
+                                            *   The association is made atomically. */
+    OBJC_ASSOCIATION_COPY = 01403          /**< Specifies that the associated object is copied.
+                                            *   The association is made atomically. */
+};
+
+/** 
+ * Sets an associated value for a given object using a given key and association policy.
+ * 
+ * @param object The source object for the association.
+ * @param key The key for the association.
+ * @param value The value to associate with the key key for object. Pass nil to clear an existing association.
+ * @param policy The policy for the association. For possible values, see “Associative Object Behaviors.”
+ * 
+ * @see objc_setAssociatedObject
+ * @see objc_removeAssociatedObjects
+ */
+OBJC_EXPORT void
+objc_setAssociatedObject(id _Nonnull object, const void * _Nonnull key,
+                         id _Nullable value, objc_AssociationPolicy policy)
+    OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0, 2.0);
+
+/** 
+ * Returns the value associated with a given object for a given key.
+ * 
+ * @param object The source object for the association.
+ * @param key The key for the association.
+ * 
+ * @return The value associated with the key \e key for \e object.
+ * 
+ * @see objc_setAssociatedObject
+ */
+OBJC_EXPORT id _Nullable
+objc_getAssociatedObject(id _Nonnull object, const void * _Nonnull key)
+    OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0, 2.0);
+
+/** 
+ * Removes all associations for a given object.
+ * 
+ * @param object An object that maintains associated objects.
+ * 
+ * @note The main purpose of this function is to make it easy to return an object 
+ *  to a "pristine state”. You should not use this function for general removal of
+ *  associations from objects, since it also removes associations that other clients
+ *  may have added to the object. Typically you should use \c objc_setAssociatedObject 
+ *  with a nil value to clear an association.
+ * 
+ * @see objc_setAssociatedObject
+ * @see objc_getAssociatedObject
+ */
+OBJC_EXPORT void
+objc_removeAssociatedObjects(id _Nonnull object)
+    OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0, 2.0);
+
+
+/* Hooks for Swift */
+
+/**
+ * Function type for a hook that intercepts class_getImageName().
+ *
+ * @param cls The class whose image name is being looked up.
+ * @param outImageName On return, the result of the image name lookup.
+ * @return YES if an image name for this class was found, NO otherwise.
+ *
+ * @see class_getImageName
+ * @see objc_setHook_getImageName
+ */
+typedef BOOL (*objc_hook_getImageName)(Class _Nonnull cls, const char * _Nullable * _Nonnull outImageName);
+
+/**
+ * Install a hook for class_getImageName().
+ *
+ * @param newValue The hook function to install.
+ * @param outOldValue The address of a function pointer variable. On return,
+ *  the old hook function is stored in the variable.
+ *
+ * @note The store to *outOldValue is thread-safe: the variable will be
+ *  updated before class_getImageName() calls your new hook to read it,
+ *  even if your new hook is called from another thread before this
+ *  setter completes.
+ * @note The first hook in the chain is the native implementation of
+ *  class_getImageName(). Your hook should call the previous hook for
+ *  classes that you do not recognize.
+ *
+ * @see class_getImageName
+ * @see objc_hook_getImageName
+ */
+OBJC_EXPORT void objc_setHook_getImageName(objc_hook_getImageName _Nonnull newValue,
+                                           objc_hook_getImageName _Nullable * _Nonnull outOldValue)
+    OBJC_AVAILABLE(10.14, 12.0, 12.0, 5.0, 3.0);
+
+/**
+ * Function type for a hook that assists objc_getClass() and related functions.
+ *
+ * @param name The class name to look up.
+ * @param outClass On return, the result of the class lookup.
+ * @return YES if a class with this name was found, NO otherwise.
+ *
+ * @see objc_getClass
+ * @see objc_setHook_getClass
+ */
+typedef BOOL (*objc_hook_getClass)(const char * _Nonnull name, Class _Nullable * _Nonnull outClass);
+
+/**
+ * Install a hook for objc_getClass() and related functions.
+ *
+ * @param newValue The hook function to install.
+ * @param outOldValue The address of a function pointer variable. On return,
+ *  the old hook function is stored in the variable.
+ *
+ * @note The store to *outOldValue is thread-safe: the variable will be
+ *  updated before objc_getClass() calls your new hook to read it,
+ *  even if your new hook is called from another thread before this
+ *  setter completes.
+ * @note Your hook should call the previous hook for class names
+ *  that you do not recognize.
+ *
+ * @see objc_getClass
+ * @see objc_hook_getClass
+ */
+#if !(TARGET_OS_OSX && __i386__)
+#define OBJC_GETCLASSHOOK_DEFINED 1
+OBJC_EXPORT void objc_setHook_getClass(objc_hook_getClass _Nonnull newValue,
+                                       objc_hook_getClass _Nullable * _Nonnull outOldValue)
+    OBJC_AVAILABLE(10.14.4, 12.2, 12.2, 5.2, 3.2);
+#endif
+
+/**
+ * Function type for a function that is called when an image is loaded.
+ *
+ * @param header The newly loaded header.
+ */
+struct mach_header;
+typedef void (*objc_func_loadImage)(const struct mach_header * _Nonnull header);
+
+/**
+ * Add a function to be called when a new image is loaded. The function is
+ * called after ObjC has scanned and fixed up the image. It is called
+ * BEFORE +load methods are invoked.
+ *
+ * When adding a new function, that function is immediately called with all
+ * images that are currently loaded. It is then called as needed for images
+ * that are loaded afterwards.
+ *
+ * Note: the function is called with ObjC's internal runtime lock held.
+ * Be VERY careful with what the function does to avoid deadlocks or
+ * poor performance.
+ *
+ * @param func The function to add.
+ */
+#define OBJC_ADDLOADIMAGEFUNC_DEFINED 1
+OBJC_EXPORT void objc_addLoadImageFunc(objc_func_loadImage _Nonnull func)
+    OBJC_AVAILABLE(10.15, 13.0, 13.0, 6.0, 4.0);
+
+/**
+ * Function type for a hook that provides a name for lazily named classes.
+ *
+ * @param cls The class to generate a name for.
+ * @return The name of the class, or NULL if the name isn't known or can't me generated.
+ *
+ * @see objc_setHook_lazyClassNamer
+ */
+typedef const char * _Nullable (*objc_hook_lazyClassNamer)(_Nonnull Class cls);
+
+/**
+ * Install a hook to provide a name for lazily-named classes.
+ *
+ * @param newValue The hook function to install.
+ * @param outOldValue The address of a function pointer variable. On return,
+ *  the old hook function is stored in the variable.
+ *
+ * @note The store to *outOldValue is thread-safe: the variable will be
+ *  updated before objc_getClass() calls your new hook to read it,
+ *  even if your new hook is called from another thread before this
+ *  setter completes.
+ * @note Your hook must call the previous hook for class names
+ *  that you do not recognize.
+ */
+#if !(TARGET_OS_OSX && __i386__)
+#define OBJC_SETHOOK_LAZYCLASSNAMER_DEFINED 1
+OBJC_EXPORT
+void objc_setHook_lazyClassNamer(_Nonnull objc_hook_lazyClassNamer newValue,
+                                  _Nonnull objc_hook_lazyClassNamer * _Nonnull oldOutValue)
+    OBJC_AVAILABLE(11.0, 14.0, 14.0, 7.0, 5.0);
+#endif
+
+/**
+ * Callback from Objective-C to Swift to perform Swift class initialization.
+ */
+#if !(TARGET_OS_OSX && __i386__)
+typedef Class _Nullable
+(*_objc_swiftMetadataInitializer)(Class _Nonnull cls, void * _Nullable arg);
+#endif
+
+
+/** 
+ * Perform Objective-C initialization of a Swift class.
+ * Do not call this function. It is provided for the Swift runtime's use only 
+ * and will change without notice or mercy.
+ */
+#if !(TARGET_OS_OSX && __i386__)
+#define OBJC_REALIZECLASSFROMSWIFT_DEFINED 1
+OBJC_EXPORT Class _Nullable
+_objc_realizeClassFromSwift(Class _Nullable cls, void * _Nullable previously)
+    OBJC_AVAILABLE(10.14.4, 12.2, 12.2, 5.2, 3.2);
+#endif
+
+// Type encoding characters
+#define _C_ID          '@'
+#define _C_CLASS       '#'
+#define _C_SEL         ':'
+#define _C_CHR         'c'
+#define _C_UCHR        'C'
+#define _C_SHT         's'
+#define _C_USHT        'S'
+#define _C_INT         'i'
+#define _C_UINT        'I'
+#define _C_LNG         'l'
+#define _C_ULNG        'L'
+#define _C_LNG_LNG     'q'
+#define _C_ULNG_LNG    'Q'
+#define _C_INT128      't'
+#define _C_UINT128     'T'
+#define _C_FLT         'f'
+#define _C_DBL         'd'
+#define _C_LNG_DBL     'D'
+#define _C_BFLD        'b'
+#define _C_BOOL        'B'
+#define _C_VOID        'v'
+#define _C_UNDEF       '?'
+#define _C_PTR         '^'
+#define _C_CHARPTR     '*'
+#define _C_ATOM        '%'
+#define _C_ARY_B       '['
+#define _C_ARY_E       ']'
+#define _C_UNION_B     '('
+#define _C_UNION_E     ')'
+#define _C_STRUCT_B    '{'
+#define _C_STRUCT_E    '}'
+#define _C_VECTOR      '!'
+
+// Modifiers
+#define _C_COMPLEX     'j'
+#define _C_ATOMIC      'A'
+#define _C_CONST       'r'
+#define _C_IN          'n'
+#define _C_INOUT       'N'
+#define _C_OUT         'o'
+#define _C_BYCOPY      'O'
+#define _C_BYREF       'R'
+#define _C_ONEWAY      'V'
+#define _C_GNUREGISTER '+'
+
+struct objc_method_list;
+
+/* Obsolete functions */
+
+#if !0
+
+OBJC_EXPORT IMP _Nullable
+class_lookupMethod(Class _Nullable cls, SEL _Nonnull sel) 
+    __OSX_DEPRECATED(10.0, 10.5, "use class_getMethodImplementation instead")
+    __IOS_DEPRECATED(2.0, 2.0, "use class_getMethodImplementation instead")
+    __TVOS_DEPRECATED(9.0, 9.0, "use class_getMethodImplementation instead")
+    __WATCHOS_DEPRECATED(1.0, 1.0, "use class_getMethodImplementation instead")
+
+;
+OBJC_EXPORT BOOL
+class_respondsToMethod(Class _Nullable cls, SEL _Nonnull sel)
+    __OSX_DEPRECATED(10.0, 10.5, "use class_respondsToSelector instead")
+    __IOS_DEPRECATED(2.0, 2.0, "use class_respondsToSelector instead")
+    __TVOS_DEPRECATED(9.0, 9.0, "use class_respondsToSelector instead")
+    __WATCHOS_DEPRECATED(1.0, 1.0, "use class_respondsToSelector instead")
+
+;
+
+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");
+
+OBJC_EXPORT id _Nullable
+class_createInstanceFromZone(Class _Nullable, size_t idxIvars,
+                             void * _Nullable z)
+    OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(10.0, 10.5, "use class_createInstance instead");
+
+#endif 
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/os/availability.h b/lib/libc/include/any-macos.13-any/os/availability.h
new file mode 100644
index 0000000000000000000000000000000000000000..ea0a9a8d143d944752f33a4be116c644e888c782
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/os/availability.h
@@ -0,0 +1,195 @@
+/*
+ * Copyright (c) 2008-2017 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+ 
+#ifndef __OS_AVAILABILITY__
+#define __OS_AVAILABILITY__
+
+/* 
+ * API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated 
+ * in an upcoming release. This soft deprecation is an intermediate step before formal 
+ * deprecation to notify developers about the API before compiler warnings are generated.
+ * You can find all places in your code that use soft deprecated API by redefining the 
+ * value of this macro to your current minimum deployment target, for example:
+ * (macOS)
+ *   clang -DAPI_TO_BE_DEPRECATED=10.12 
+ * (iOS)
+ *   clang -DAPI_TO_BE_DEPRECATED=11.0 
+ */
+ 
+#ifndef API_TO_BE_DEPRECATED
+#define API_TO_BE_DEPRECATED 100000
+#endif
+
+#ifndef API_TO_BE_DEPRECATED_MACOS
+#define API_TO_BE_DEPRECATED_MACOS 100000
+#endif
+
+#ifndef API_TO_BE_DEPRECATED_IOS
+#define API_TO_BE_DEPRECATED_IOS 100000
+#endif
+
+#ifndef API_TO_BE_DEPRECATED_TVOS
+#define API_TO_BE_DEPRECATED_TVOS 100000
+#endif
+
+#ifndef API_TO_BE_DEPRECATED_WATCHOS
+#define API_TO_BE_DEPRECATED_WATCHOS 100000
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_BRIDGEOS
+
+#endif
+
+#ifndef __API_TO_BE_DEPRECATED_MACCATALYST
+#define __API_TO_BE_DEPRECATED_MACCATALYST 100000
+#endif
+
+#ifndef API_TO_BE_DEPRECATED_DRIVERKIT
+#define API_TO_BE_DEPRECATED_DRIVERKIT 100000
+#endif
+
+
+
+#include 
+
+
+
+#if defined(__has_feature) && defined(__has_attribute)
+ #if __has_attribute(availability)
+
+    /*
+     * API Introductions
+     *
+     * Use to specify the release that a particular API became available.
+     *
+     * Platform names:
+     *   macos, ios, tvos, watchos
+     *
+     * Examples:
+     *    API_AVAILABLE(macos(10.10))
+     *    API_AVAILABLE(macos(10.9), ios(10.0))
+     *    API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0))
+     */
+
+    #define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE8, __API_AVAILABLE7, __API_AVAILABLE6, __API_AVAILABLE5, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1, 0)(__VA_ARGS__)
+
+    #define API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE8,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6, __API_AVAILABLE_BEGIN5, __API_AVAILABLE_BEGIN4, __API_AVAILABLE_BEGIN3, __API_AVAILABLE_BEGIN2, __API_AVAILABLE_BEGIN1, 0)(__VA_ARGS__)
+    #define API_AVAILABLE_END _Pragma("clang attribute pop")
+
+    /*
+     * API Deprecations
+     *
+     * Use to specify the release that a particular API became unavailable.
+     *
+     * Platform names:
+     *   macos, ios, tvos, watchos
+     *
+     * Examples:
+     *
+     *    API_DEPRECATED("No longer supported", macos(10.4, 10.8))
+     *    API_DEPRECATED("No longer supported", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0))
+     *
+     *    API_DEPRECATED_WITH_REPLACEMENT("-setName:", tvos(10.0, 10.4), ios(9.0, 10.0))
+     *    API_DEPRECATED_WITH_REPLACEMENT("SomeClassName", macos(10.4, 10.6), watchos(2.0, 3.0))
+     */
+
+    #define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG9,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7, __API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1, 0)(__VA_ARGS__)
+    #define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP9,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7, __API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1, 0)(__VA_ARGS__)
+
+    #define API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_MSG9,__API_DEPRECATED_BEGIN_MSG8,__API_DEPRECATED_BEGIN_MSG7, __API_DEPRECATED_BEGIN_MSG6, __API_DEPRECATED_BEGIN_MSG5, __API_DEPRECATED_BEGIN_MSG4, __API_DEPRECATED_BEGIN_MSG3, __API_DEPRECATED_BEGIN_MSG2, __API_DEPRECATED_BEGIN_MSG1, 0)(__VA_ARGS__)
+    #define API_DEPRECATED_END _Pragma("clang attribute pop")
+
+    #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_REP9,__API_DEPRECATED_BEGIN_REP8,__API_DEPRECATED_BEGIN_REP7, __API_DEPRECATED_BEGIN_REP6, __API_DEPRECATED_BEGIN_REP5, __API_DEPRECATED_BEGIN_REP4, __API_DEPRECATED_BEGIN_REP3, __API_DEPRECATED_BEGIN_REP2, __API_DEPRECATED_BEGIN_REP1, 0)(__VA_ARGS__)
+    #define API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop")
+
+
+    /*
+     * API Unavailability
+     * Use to specify that an API is unavailable for a particular platform.
+     *
+     * Example:
+     *    API_UNAVAILABLE(macos)
+     *    API_UNAVAILABLE(watchos, tvos)
+     */
+
+    #define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE8,__API_UNAVAILABLE7,__API_UNAVAILABLE6, __API_UNAVAILABLE5, __API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__)
+
+    #define API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN8,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6, __API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_ARGS__)
+    #define API_UNAVAILABLE_END _Pragma("clang attribute pop")
+ #else
+
+    /* 
+     * Evaluate to nothing for compilers that don't support availability.
+     */
+   
+     #define API_AVAILABLE(...)
+     #define API_AVAILABLE_BEGIN(...)
+     #define API_AVAILABLE_END
+     #define API_DEPRECATED(...)
+     #define API_DEPRECATED_WITH_REPLACEMENT(...)
+     #define API_DEPRECATED_BEGIN(...)
+     #define API_DEPRECATED_END
+     #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
+     #define API_DEPRECATED_WITH_REPLACEMENT_END
+     #define API_UNAVAILABLE(...)
+     #define API_UNAVAILABLE_BEGIN(...)
+     #define API_UNAVAILABLE_END
+ #endif /* __has_attribute(availability) */
+#else
+
+    /* 
+     * Evaluate to nothing for compilers that don't support clang language extensions.
+     */
+
+    #define API_AVAILABLE(...)
+    #define API_AVAILABLE_BEGIN(...)
+    #define API_AVAILABLE_END
+    #define API_DEPRECATED(...)
+    #define API_DEPRECATED_WITH_REPLACEMENT(...)
+    #define API_DEPRECATED_BEGIN(...)
+    #define API_DEPRECATED_END
+    #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
+    #define API_DEPRECATED_WITH_REPLACEMENT_END
+    #define API_UNAVAILABLE(...)
+    #define API_UNAVAILABLE_BEGIN(...)
+    #define API_UNAVAILABLE_END
+#endif /* #if defined(__has_feature) && defined(__has_attribute) */
+
+#if __has_include()
+  #include 
+#endif
+
+/*
+ * If SPI decorations have not been defined elsewhere, disable them.
+ */
+
+#ifndef SPI_AVAILABLE
+  #define SPI_AVAILABLE(...)
+#endif
+
+#ifndef SPI_DEPRECATED
+  #define SPI_DEPRECATED(...)
+#endif
+
+#ifndef SPI_DEPRECATED_WITH_REPLACEMENT
+  #define SPI_DEPRECATED_WITH_REPLACEMENT(...)
+#endif
+
+#endif /* __OS_AVAILABILITY__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/os/base.h b/lib/libc/include/any-macos.13-any/os/base.h
new file mode 100644
index 0000000000000000000000000000000000000000..ab587fa02bc0105ae64811935e3b538e71f76d96
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/os/base.h
@@ -0,0 +1,342 @@
+/*
+ * Copyright (c) 2008-2020 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __OS_BASE__
+#define __OS_BASE__
+
+#include 
+
+
+#ifndef __has_builtin
+#define __has_builtin(x) 0
+#endif
+#ifndef __has_include
+#define __has_include(x) 0
+#endif
+#ifndef __has_feature
+#define __has_feature(x) 0
+#endif
+#ifndef __has_attribute
+#define __has_attribute(x) 0
+#endif
+#ifndef __has_extension
+#define __has_extension(x) 0
+#endif
+
+#undef OS_INLINE // 
+#if __GNUC__
+#define OS_NORETURN __attribute__((__noreturn__))
+#define OS_NOTHROW __attribute__((__nothrow__))
+#define OS_NONNULL1 __attribute__((__nonnull__(1)))
+#define OS_NONNULL2 __attribute__((__nonnull__(2)))
+#define OS_NONNULL3 __attribute__((__nonnull__(3)))
+#define OS_NONNULL4 __attribute__((__nonnull__(4)))
+#define OS_NONNULL5 __attribute__((__nonnull__(5)))
+#define OS_NONNULL6 __attribute__((__nonnull__(6)))
+#define OS_NONNULL7 __attribute__((__nonnull__(7)))
+#define OS_NONNULL8 __attribute__((__nonnull__(8)))
+#define OS_NONNULL9 __attribute__((__nonnull__(9)))
+#define OS_NONNULL10 __attribute__((__nonnull__(10)))
+#define OS_NONNULL11 __attribute__((__nonnull__(11)))
+#define OS_NONNULL12 __attribute__((__nonnull__(12)))
+#define OS_NONNULL13 __attribute__((__nonnull__(13)))
+#define OS_NONNULL14 __attribute__((__nonnull__(14)))
+#define OS_NONNULL15 __attribute__((__nonnull__(15)))
+#define OS_NONNULL_ALL __attribute__((__nonnull__))
+#define OS_SENTINEL __attribute__((__sentinel__))
+#define OS_PURE __attribute__((__pure__))
+#define OS_CONST __attribute__((__const__))
+#define OS_WARN_RESULT __attribute__((__warn_unused_result__))
+#define OS_MALLOC __attribute__((__malloc__))
+#define OS_USED __attribute__((__used__))
+#define OS_UNUSED __attribute__((__unused__))
+#define OS_COLD __attribute__((__cold__))
+#define OS_WEAK __attribute__((__weak__))
+#define OS_WEAK_IMPORT __attribute__((__weak_import__))
+#define OS_NOINLINE __attribute__((__noinline__))
+#define OS_ALWAYS_INLINE __attribute__((__always_inline__))
+#define OS_TRANSPARENT_UNION __attribute__((__transparent_union__))
+#define OS_ALIGNED(n) __attribute__((__aligned__((n))))
+#define OS_FORMAT_PRINTF(x, y) __attribute__((__format__(printf,x,y)))
+#define OS_EXPORT extern __attribute__((__visibility__("default")))
+#define OS_INLINE static __inline__
+#define OS_EXPECT(x, v) __builtin_expect((x), (v))
+#else
+#define OS_NORETURN
+#define OS_NOTHROW
+#define OS_NONNULL1
+#define OS_NONNULL2
+#define OS_NONNULL3
+#define OS_NONNULL4
+#define OS_NONNULL5
+#define OS_NONNULL6
+#define OS_NONNULL7
+#define OS_NONNULL8
+#define OS_NONNULL9
+#define OS_NONNULL10
+#define OS_NONNULL11
+#define OS_NONNULL12
+#define OS_NONNULL13
+#define OS_NONNULL14
+#define OS_NONNULL15
+#define OS_NONNULL_ALL
+#define OS_SENTINEL
+#define OS_PURE
+#define OS_CONST
+#define OS_WARN_RESULT
+#define OS_MALLOC
+#define OS_USED
+#define OS_UNUSED
+#define OS_COLD
+#define OS_WEAK
+#define OS_WEAK_IMPORT
+#define OS_NOINLINE
+#define OS_ALWAYS_INLINE
+#define OS_TRANSPARENT_UNION
+#define OS_ALIGNED(n)
+#define OS_FORMAT_PRINTF(x, y)
+#define OS_EXPORT extern
+#define OS_INLINE static inline
+#define OS_EXPECT(x, v) (x)
+#endif
+
+#if __has_attribute(noescape)
+#define OS_NOESCAPE __attribute__((__noescape__))
+#else
+#define OS_NOESCAPE
+#endif
+
+#if defined(__cplusplus) && defined(__clang__)
+#define OS_FALLTHROUGH [[clang::fallthrough]]
+#elif __has_attribute(fallthrough)
+#define OS_FALLTHROUGH __attribute__((__fallthrough__))
+#else
+#define OS_FALLTHROUGH
+#endif
+
+#if __has_feature(assume_nonnull)
+#define OS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
+#define OS_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
+#else
+#define OS_ASSUME_NONNULL_BEGIN
+#define OS_ASSUME_NONNULL_END
+#endif
+
+#if __has_builtin(__builtin_assume)
+#define OS_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr)
+#else
+#define OS_COMPILER_CAN_ASSUME(expr) ((void)(expr))
+#endif
+
+#if __has_extension(attribute_overloadable)
+#define OS_OVERLOADABLE __attribute__((__overloadable__))
+#else
+#define OS_OVERLOADABLE
+#endif
+
+#if __has_attribute(analyzer_suppress)
+#define OS_ANALYZER_SUPPRESS(RADAR) __attribute__((analyzer_suppress))
+#else
+#define OS_ANALYZER_SUPPRESS(RADAR)
+#endif
+
+#if __has_attribute(enum_extensibility)
+#define __OS_ENUM_ATTR __attribute__((enum_extensibility(open)))
+#define __OS_ENUM_ATTR_CLOSED __attribute__((enum_extensibility(closed)))
+#else
+#define __OS_ENUM_ATTR
+#define __OS_ENUM_ATTR_CLOSED
+#endif // __has_attribute(enum_extensibility)
+
+#if __has_attribute(flag_enum)
+/*!
+ * Compile with -Wflag-enum and -Wassign-enum to enforce at definition and
+ * assignment, respectively, i.e. -Wflag-enum prevents you from creating new
+ * enumeration values from illegal values within the enum definition, and
+ * -Wassign-enum prevents you from assigning illegal values to a variable of the
+ * enum type.
+ */
+#define __OS_OPTIONS_ATTR __attribute__((flag_enum))
+#else
+#define __OS_OPTIONS_ATTR
+#endif // __has_attribute(flag_enum)
+
+#if __has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum) || \
+        __has_extension(cxx_strong_enums)
+#define OS_ENUM(_name, _type, ...) \
+	typedef enum : _type { __VA_ARGS__ } _name##_t
+#define OS_CLOSED_ENUM(_name, _type, ...) \
+	typedef enum : _type { __VA_ARGS__ } __OS_ENUM_ATTR_CLOSED _name##_t
+#define OS_OPTIONS(_name, _type, ...) \
+	typedef enum : _type { __VA_ARGS__ } __OS_ENUM_ATTR __OS_OPTIONS_ATTR _name##_t
+#define OS_CLOSED_OPTIONS(_name, _type, ...) \
+	typedef enum : _type { __VA_ARGS__ } __OS_ENUM_ATTR_CLOSED __OS_OPTIONS_ATTR _name##_t
+#else
+/*!
+ * There is unfortunately no good way in plain C to have both fixed-type enums
+ * and enforcement for clang's enum_extensibility extensions. The primary goal
+ * of these macros is to allow you to define an enum and specify its width in a
+ * single statement, and for plain C that is accomplished by defining an
+ * anonymous enum and then separately typedef'ing the requested type name to the
+ * requested underlying integer type. So the type emitted actually has no
+ * relationship at all to the enum, and therefore while the compiler could
+ * enforce enum extensibility if you used the enum type, it cannot do so if you
+ * use the "_t" type resulting from this expression.
+ *
+ * But we still define a named enum type and decorate it appropriately for you,
+ * so if you really want the enum extensibility enforcement, you can use the
+ * enum type yourself, i.e. when compiling with a C compiler:
+ *
+ *     OS_CLOSED_ENUM(my_type, uint64_t,
+ *         FOO,
+ *         BAR,
+ *         BAZ,
+ *     );
+ *
+ *     my_type_t mt = 98; // legal
+ *     enum my_type emt = 98; // illegal
+ *
+ * But be aware that the underlying enum type's width is subject only to the C
+ * language's guarantees -- namely that it will be compatible with int, char,
+ * and unsigned char. It is not safe to rely on the size of this type.
+ *
+ * When compiling in ObjC or C++, both of the above assignments are illegal.
+ */
+#define __OS_ENUM_C_FALLBACK(_name, _type, ...) \
+	typedef _type _name##_t; enum _name { __VA_ARGS__ }
+
+#define OS_ENUM(_name, _type, ...) \
+	typedef _type _name##_t; enum { __VA_ARGS__ }
+#define OS_CLOSED_ENUM(_name, _type, ...) \
+	__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
+	__OS_ENUM_ATTR_CLOSED
+#define OS_OPTIONS(_name, _type, ...) \
+	__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
+	__OS_ENUM_ATTR __OS_OPTIONS_ATTR
+#define OS_CLOSED_OPTIONS(_name, _type, ...) \
+	__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
+	__OS_ENUM_ATTR_CLOSED __OS_OPTIONS_ATTR
+#endif // __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums)
+
+#if __has_feature(attribute_availability_swift)
+// equivalent to __SWIFT_UNAVAILABLE from Availability.h
+#define OS_SWIFT_UNAVAILABLE(_msg) \
+	__attribute__((__availability__(swift, unavailable, message=_msg)))
+#else
+#define OS_SWIFT_UNAVAILABLE(_msg)
+#endif
+
+#if __has_attribute(__swift_attr__)
+#define OS_SWIFT_UNAVAILABLE_FROM_ASYNC(msg) \
+	__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" msg "\")")))
+#else
+#define OS_SWIFT_UNAVAILABLE_FROM_ASYNC(msg)
+#endif
+
+#if __has_attribute(swift_private)
+# define OS_REFINED_FOR_SWIFT __attribute__((__swift_private__))
+#else
+# define OS_REFINED_FOR_SWIFT
+#endif
+
+#if __has_attribute(swift_name)
+# define OS_SWIFT_NAME(_name) __attribute__((__swift_name__(#_name)))
+#else
+# define OS_SWIFT_NAME(_name)
+#endif
+
+#define __OS_STRINGIFY(s) #s
+#define OS_STRINGIFY(s) __OS_STRINGIFY(s)
+#define __OS_CONCAT(x, y) x ## y
+#define OS_CONCAT(x, y) __OS_CONCAT(x, y)
+
+#ifdef __GNUC__
+#define os_prevent_tail_call_optimization()  __asm__("")
+#define os_is_compile_time_constant(expr)    __builtin_constant_p(expr)
+#define os_compiler_barrier()                __asm__ __volatile__("" ::: "memory")
+#else
+#define os_prevent_tail_call_optimization()  do { } while (0)
+#define os_is_compile_time_constant(expr)    0
+#define os_compiler_barrier()                do { } while (0)
+#endif
+
+#if __has_attribute(not_tail_called)
+#define OS_NOT_TAIL_CALLED __attribute__((__not_tail_called__))
+#else
+#define OS_NOT_TAIL_CALLED
+#endif
+
+
+typedef void (*os_function_t)(void *_Nullable);
+
+#ifdef __BLOCKS__
+/*!
+ * @typedef os_block_t
+ *
+ * @abstract
+ * Generic type for a block taking no arguments and returning no value.
+ *
+ * @discussion
+ * When not building with Objective-C ARC, a block object allocated on or
+ * copied to the heap must be released with a -[release] message or the
+ * Block_release() function.
+ *
+ * The declaration of a block literal allocates storage on the stack.
+ * Therefore, this is an invalid construct:
+ * 
+ * os_block_t block;
+ * if (x) {
+ *     block = ^{ printf("true\n"); };
+ * } else {
+ *     block = ^{ printf("false\n"); };
+ * }
+ * block(); // unsafe!!!
+ * 
+ *
+ * What is happening behind the scenes:
+ * 
+ * if (x) {
+ *     struct Block __tmp_1 = ...; // setup details
+ *     block = &__tmp_1;
+ * } else {
+ *     struct Block __tmp_2 = ...; // setup details
+ *     block = &__tmp_2;
+ * }
+ * 
+ *
+ * As the example demonstrates, the address of a stack variable is escaping the
+ * scope in which it is allocated. That is a classic C bug.
+ *
+ * Instead, the block literal must be copied to the heap with the Block_copy()
+ * function or by sending it a -[copy] message.
+ */
+typedef void (^os_block_t)(void);
+#endif
+
+
+
+#define OS_ASSUME_PTR_ABI_SINGLE_BEGIN __ASSUME_PTR_ABI_SINGLE_BEGIN
+#define OS_ASSUME_PTR_ABI_SINGLE_END __ASSUME_PTR_ABI_SINGLE_END
+#define OS_UNSAFE_INDEXABLE __unsafe_indexable
+#define OS_HEADER_INDEXABLE __header_indexable
+#define OS_COUNTED_BY(N) __counted_by(N)
+#define OS_SIZED_BY(N) __sized_by(N)
+
+#endif // __OS_BASE__
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/os/lock.h b/lib/libc/include/any-macos.13-any/os/lock.h
new file mode 100644
index 0000000000000000000000000000000000000000..e141d029f5e11cbc9f64fb1bb3c35d0c6ed48d49
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/os/lock.h
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2016 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __OS_LOCK__
+#define __OS_LOCK__
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+OS_ASSUME_NONNULL_BEGIN
+
+/*! @header
+ * Low-level lock API.
+ */
+
+#define OS_LOCK_API_VERSION 20160309
+
+__BEGIN_DECLS
+
+#define OS_UNFAIR_LOCK_AVAILABILITY \
+		__API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
+
+/*!
+ * @typedef os_unfair_lock
+ *
+ * @abstract
+ * Low-level lock that allows waiters to block efficiently on contention.
+ *
+ * os_unfair_lock is an appropriate lock for cases where simple and lightweight
+ * mutual exclusion is needed.
+ * It can be intrusively stored inline in a datastructure without needing a
+ * separate allocation, reducing memory consumption and cost of indirection.
+ * For situations where something more sophisticated like condition waits or
+ * FIFO ordering is needed, use appropriate higher level APIs such as those from
+ * the pthread or dispatch subsystems.
+ *
+ * The values stored in the lock should be considered opaque and implementation
+ * defined, they contain thread ownership information that the system may use
+ * to attempt to resolve priority inversions.
+ *
+ * This lock must be unlocked from the same thread that locked it, attempts to
+ * unlock from a different thread will cause an assertion aborting the process.
+ *
+ * This lock must not be accessed from multiple processes or threads via shared
+ * or multiply-mapped memory, because the lock implementation relies on the
+ * address of the lock value and identity of the owning process.
+ *
+ * Must be initialized with OS_UNFAIR_LOCK_INIT.
+ *
+ * @discussion
+ * The name 'unfair' indicates that there is no attempt at enforcing acquisition
+ * fairness, e.g. an unlocker can potentially immediately reacquire the lock
+ * before a woken up waiter gets an opportunity to attempt to acquire the lock.
+ * This is often advantageous for performance reasons, but also makes starvation
+ * of waiters a possibility.
+ *
+ * This lock is suitable as a drop-in replacement for the deprecated OSSpinLock,
+ * providing much better behavior under contention.
+ *
+ * In Swift, note that use of the `&` operator on an unfair lock can copy or move
+ * the lock memory, leading to misbehavior. Use an OSAllocatedUnfairLock to safely wrap
+ * access to the lock memory instead. If you use os_unfair_lock APIs directly,
+ * always make sure to store and use the lock in memory with a stable address.
+ */
+OS_UNFAIR_LOCK_AVAILABILITY
+typedef struct os_unfair_lock_s {
+	uint32_t _os_unfair_lock_opaque;
+} os_unfair_lock, *os_unfair_lock_t;
+
+#ifndef OS_UNFAIR_LOCK_INIT
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define OS_UNFAIR_LOCK_INIT ((os_unfair_lock){0})
+#elif defined(__cplusplus) && __cplusplus >= 201103L
+#define OS_UNFAIR_LOCK_INIT (os_unfair_lock{})
+#elif defined(__cplusplus)
+#define OS_UNFAIR_LOCK_INIT (os_unfair_lock())
+#else
+#define OS_UNFAIR_LOCK_INIT {0}
+#endif
+#endif // OS_UNFAIR_LOCK_INIT
+
+/*!
+ * @function os_unfair_lock_lock
+ *
+ * @abstract
+ * Locks an os_unfair_lock.
+ *
+ * @param lock
+ * Pointer to an os_unfair_lock.
+ */
+OS_UNFAIR_LOCK_AVAILABILITY
+OS_EXPORT OS_NOTHROW OS_NONNULL_ALL
+OS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use OSAllocatedUnfairLock.performWhileLocked() for async-safe scoped locking")
+void os_unfair_lock_lock(os_unfair_lock_t lock);
+
+/*!
+ * @function os_unfair_lock_trylock
+ *
+ * @abstract
+ * Locks an os_unfair_lock if it is not already locked.
+ *
+ * @discussion
+ * It is invalid to surround this function with a retry loop, if this function
+ * returns false, the program must be able to proceed without having acquired
+ * the lock, or it must call os_unfair_lock_lock() directly (a retry loop around
+ * os_unfair_lock_trylock() amounts to an inefficient implementation of
+ * os_unfair_lock_lock() that hides the lock waiter from the system and prevents
+ * resolution of priority inversions).
+ *
+ * @param lock
+ * Pointer to an os_unfair_lock.
+ *
+ * @result
+ * Returns true if the lock was succesfully locked and false if the lock was
+ * already locked.
+ */
+OS_UNFAIR_LOCK_AVAILABILITY
+OS_EXPORT OS_NOTHROW OS_WARN_RESULT OS_NONNULL_ALL
+OS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use OSAllocatedUnfairLock.tryPerformWhileLocked() for async-safe scoped locking")
+bool os_unfair_lock_trylock(os_unfair_lock_t lock);
+
+/*!
+ * @function os_unfair_lock_unlock
+ *
+ * @abstract
+ * Unlocks an os_unfair_lock.
+ *
+ * @param lock
+ * Pointer to an os_unfair_lock.
+ */
+OS_UNFAIR_LOCK_AVAILABILITY
+OS_EXPORT OS_NOTHROW OS_NONNULL_ALL
+OS_SWIFT_UNAVAILABLE_FROM_ASYNC("Use OSAllocatedUnfairLock.performWhileLocked() for async-safe scoped locking")
+void os_unfair_lock_unlock(os_unfair_lock_t lock);
+
+/*!
+ * @function os_unfair_lock_assert_owner
+ *
+ * @abstract
+ * Asserts that the calling thread is the current owner of the specified
+ * unfair lock.
+ *
+ * @discussion
+ * If the lock is currently owned by the calling thread, this function returns.
+ *
+ * If the lock is unlocked or owned by a different thread, this function
+ * asserts and terminates the process.
+ *
+ * @param lock
+ * Pointer to an os_unfair_lock.
+ */
+OS_UNFAIR_LOCK_AVAILABILITY
+OS_EXPORT OS_NOTHROW OS_NONNULL_ALL
+void os_unfair_lock_assert_owner(const os_unfair_lock *lock);
+
+/*!
+ * @function os_unfair_lock_assert_not_owner
+ *
+ * @abstract
+ * Asserts that the calling thread is not the current owner of the specified
+ * unfair lock.
+ *
+ * @discussion
+ * If the lock is unlocked or owned by a different thread, this function
+ * returns.
+ *
+ * If the lock is currently owned by the current thread, this function asserts
+ * and terminates the process.
+ *
+ * @param lock
+ * Pointer to an os_unfair_lock.
+ */
+OS_UNFAIR_LOCK_AVAILABILITY
+OS_EXPORT OS_NOTHROW OS_NONNULL_ALL
+void os_unfair_lock_assert_not_owner(const os_unfair_lock *lock);
+
+__END_DECLS
+
+OS_ASSUME_NONNULL_END
+
+#endif // __OS_LOCK__
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/os/object.h b/lib/libc/include/any-macos.13-any/os/object.h
new file mode 100644
index 0000000000000000000000000000000000000000..4b5a77974abb94fffa04b898058ad3c4ef4b30b8
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/os/object.h
@@ -0,0 +1,308 @@
+/*
+ * Copyright (c) 2011-2014 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __OS_OBJECT__
+#define __OS_OBJECT__
+
+#ifdef __APPLE__
+#include 
+#include 
+#include 
+#include 
+#elif defined(_WIN32)
+#include 
+#elif defined(__unix__)
+#include 
+#endif
+
+/*!
+ * @header
+ *
+ * @preprocinfo
+ * By default, libSystem objects such as GCD and XPC objects are declared as
+ * Objective-C types when building with an Objective-C compiler. This allows
+ * them to participate in ARC, in RR management by the Blocks runtime and in
+ * leaks checking by the static analyzer, and enables them to be added to Cocoa
+ * collections.
+ *
+ * NOTE: this requires explicit cancellation of dispatch sources and xpc
+ *       connections whose handler blocks capture the source/connection object,
+ *       resp. ensuring that such captures do not form retain cycles (e.g. by
+ *       declaring the source as __weak).
+ *
+ * To opt-out of this default behavior, add -DOS_OBJECT_USE_OBJC=0 to your
+ * compiler flags.
+ *
+ * This mode requires a platform with the modern Objective-C runtime, the
+ * Objective-C GC compiler option to be disabled, and at least a Mac OS X 10.8
+ * or iOS 6.0 deployment target.
+ */
+
+#define OS_OBJECT_ASSUME_ABI_SINGLE_BEGIN	OS_ASSUME_PTR_ABI_SINGLE_BEGIN
+#define OS_OBJECT_ASSUME_ABI_SINGLE_END		OS_ASSUME_PTR_ABI_SINGLE_END
+
+#ifndef OS_OBJECT_HAVE_OBJC_SUPPORT
+#if !defined(__OBJC__) || defined(__OBJC_GC__)
+#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
+#elif !defined(TARGET_OS_MAC) || !TARGET_OS_MAC
+#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
+#elif TARGET_OS_IOS && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_6_0
+#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
+#elif TARGET_OS_MAC && !TARGET_OS_IPHONE
+#  if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_8
+#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
+#  elif defined(__i386__) && __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_12
+#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
+#  else
+#  define OS_OBJECT_HAVE_OBJC_SUPPORT 1
+#  endif
+#else
+#  define OS_OBJECT_HAVE_OBJC_SUPPORT 1
+#endif
+#endif // OS_OBJECT_HAVE_OBJC_SUPPORT
+
+#if OS_OBJECT_HAVE_OBJC_SUPPORT
+#if defined(__swift__) && __swift__ && !OS_OBJECT_USE_OBJC
+#define OS_OBJECT_USE_OBJC 1
+#endif
+#ifndef OS_OBJECT_USE_OBJC
+#define OS_OBJECT_USE_OBJC 1
+#endif
+#elif defined(OS_OBJECT_USE_OBJC) && OS_OBJECT_USE_OBJC
+/* Unsupported platform for OS_OBJECT_USE_OBJC=1 */
+#undef OS_OBJECT_USE_OBJC
+#define OS_OBJECT_USE_OBJC 0
+#else
+#define OS_OBJECT_USE_OBJC 0
+#endif
+
+#ifndef OS_OBJECT_SWIFT3
+#ifdef __swift__
+#define OS_OBJECT_SWIFT3 1
+#else // __swift__
+#define OS_OBJECT_SWIFT3 0
+#endif // __swift__
+#endif // OS_OBJECT_SWIFT3
+
+#if __has_feature(assume_nonnull)
+#define OS_OBJECT_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
+#define OS_OBJECT_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
+#else
+#define OS_OBJECT_ASSUME_NONNULL_BEGIN
+#define OS_OBJECT_ASSUME_NONNULL_END
+#endif
+#define OS_OBJECT_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
+
+#if OS_OBJECT_USE_OBJC
+#import 
+#if __has_attribute(objc_independent_class)
+#define OS_OBJC_INDEPENDENT_CLASS __attribute__((objc_independent_class))
+#endif // __has_attribute(objc_independent_class)
+#ifndef OS_OBJC_INDEPENDENT_CLASS
+#define OS_OBJC_INDEPENDENT_CLASS
+#endif
+#define OS_OBJECT_CLASS(name) OS_##name
+#define OS_OBJECT_DECL_PROTOCOL(name, ...) \
+		@protocol OS_OBJECT_CLASS(name) __VA_ARGS__ \
+		@end
+#define OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL_IMPL(name, proto) \
+		@interface name ()  \
+		@end
+#define OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL(name, proto) \
+		OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL_IMPL( \
+				OS_OBJECT_CLASS(name), OS_OBJECT_CLASS(proto))
+#define OS_OBJECT_DECL_IMPL(name, adhere, ...) \
+		OS_OBJECT_DECL_PROTOCOL(name, __VA_ARGS__) \
+		typedef adhere \
+				* OS_OBJC_INDEPENDENT_CLASS name##_t
+#define OS_OBJECT_DECL_BASE(name, ...) \
+		@interface OS_OBJECT_CLASS(name) : __VA_ARGS__ \
+		- (instancetype)init OS_SWIFT_UNAVAILABLE("Unavailable in Swift"); \
+		@end
+#define OS_OBJECT_DECL_IMPL_CLASS(name, ...) \
+		OS_OBJECT_DECL_BASE(name, ## __VA_ARGS__) \
+		typedef OS_OBJECT_CLASS(name) \
+				* OS_OBJC_INDEPENDENT_CLASS name##_t
+#define OS_OBJECT_DECL(name, ...) \
+		OS_OBJECT_DECL_IMPL(name, NSObject, )
+#define OS_OBJECT_DECL_SUBCLASS(name, super) \
+		OS_OBJECT_DECL_IMPL(name, NSObject, )
+#if __has_attribute(ns_returns_retained)
+#define OS_OBJECT_RETURNS_RETAINED __attribute__((__ns_returns_retained__))
+#else
+#define OS_OBJECT_RETURNS_RETAINED
+#endif
+#if __has_attribute(ns_consumed)
+#define OS_OBJECT_CONSUMED __attribute__((__ns_consumed__))
+#else
+#define OS_OBJECT_CONSUMED
+#endif
+#if __has_feature(objc_arc)
+#define OS_OBJECT_BRIDGE __bridge
+#define OS_WARN_RESULT_NEEDS_RELEASE
+#else
+#define OS_OBJECT_BRIDGE
+#define OS_WARN_RESULT_NEEDS_RELEASE OS_WARN_RESULT
+#endif
+
+
+#if __has_attribute(objc_runtime_visible) && \
+		((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
+		__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_12) || \
+		(defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && \
+		!defined(__TV_OS_VERSION_MIN_REQUIRED) && \
+		!defined(__WATCH_OS_VERSION_MIN_REQUIRED) && \
+		__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0) || \
+		(defined(__TV_OS_VERSION_MIN_REQUIRED) && \
+		__TV_OS_VERSION_MIN_REQUIRED < __TVOS_10_0) || \
+		(defined(__WATCH_OS_VERSION_MIN_REQUIRED) && \
+		__WATCH_OS_VERSION_MIN_REQUIRED < __WATCHOS_3_0))
+/*
+ * To provide backward deployment of ObjC objects in Swift on pre-10.12
+ * SDKs, OS_object classes can be marked as OS_OBJECT_OBJC_RUNTIME_VISIBLE.
+ * When compiling with a deployment target earlier than OS X 10.12 (iOS 10.0,
+ * tvOS 10.0, watchOS 3.0) the Swift compiler will only refer to this type at
+ * runtime (using the ObjC runtime).
+ */
+#define OS_OBJECT_OBJC_RUNTIME_VISIBLE __attribute__((objc_runtime_visible))
+#else
+#define OS_OBJECT_OBJC_RUNTIME_VISIBLE
+#endif
+#ifndef OS_OBJECT_USE_OBJC_RETAIN_RELEASE
+#if defined(__clang_analyzer__)
+#define OS_OBJECT_USE_OBJC_RETAIN_RELEASE 1
+#elif __has_feature(objc_arc) && !OS_OBJECT_SWIFT3
+#define OS_OBJECT_USE_OBJC_RETAIN_RELEASE 1
+#else
+#define OS_OBJECT_USE_OBJC_RETAIN_RELEASE 0
+#endif
+#endif
+#if OS_OBJECT_SWIFT3
+#define OS_OBJECT_DECL_SWIFT(name) \
+		OS_EXPORT OS_OBJECT_OBJC_RUNTIME_VISIBLE \
+		OS_OBJECT_DECL_IMPL_CLASS(name, NSObject)
+#define OS_OBJECT_DECL_SUBCLASS_SWIFT(name, super) \
+		OS_EXPORT OS_OBJECT_OBJC_RUNTIME_VISIBLE \
+		OS_OBJECT_DECL_IMPL_CLASS(name, OS_OBJECT_CLASS(super))
+#endif // OS_OBJECT_SWIFT3
+OS_EXPORT OS_OBJECT_OBJC_RUNTIME_VISIBLE
+OS_OBJECT_DECL_BASE(object, NSObject);
+#else
+/*! @parseOnly */
+#define OS_OBJECT_RETURNS_RETAINED
+/*! @parseOnly */
+#define OS_OBJECT_CONSUMED
+/*! @parseOnly */
+#define OS_OBJECT_BRIDGE
+/*! @parseOnly */
+#define OS_WARN_RESULT_NEEDS_RELEASE OS_WARN_RESULT
+/*! @parseOnly */
+#define OS_OBJECT_OBJC_RUNTIME_VISIBLE
+#define OS_OBJECT_USE_OBJC_RETAIN_RELEASE 0
+#endif
+
+#if OS_OBJECT_SWIFT3
+#define OS_OBJECT_DECL_CLASS(name) \
+		OS_OBJECT_DECL_SUBCLASS_SWIFT(name, object)
+#elif OS_OBJECT_USE_OBJC
+#define OS_OBJECT_DECL_CLASS(name) \
+		OS_OBJECT_DECL(name)
+#else
+#define OS_OBJECT_DECL_CLASS(name) \
+		typedef struct name##_s *name##_t
+#endif
+
+#if OS_OBJECT_USE_OBJC
+/* Declares a class of the specific name and exposes the interface and typedefs
+ * name##_t to the pointer to the class */
+#define OS_OBJECT_SHOW_CLASS(name, ...) \
+		OS_EXPORT OS_OBJECT_OBJC_RUNTIME_VISIBLE \
+		OS_OBJECT_DECL_IMPL_CLASS(name, ## __VA_ARGS__ )
+/* Declares a subclass of the same name, and
+ * subclass adheres to protocol specified. Typedefs baseclass * to subclass##_t */
+#define OS_OBJECT_SHOW_SUBCLASS(subclass_name, super, proto_name) \
+		OS_EXPORT OS_OBJECT_OBJC_RUNTIME_VISIBLE \
+		OS_OBJECT_DECL_BASE(subclass_name, OS_OBJECT_CLASS(super)); \
+		typedef OS_OBJECT_CLASS(super) \
+				* OS_OBJC_INDEPENDENT_CLASS subclass_name##_t
+#else /* Plain C */
+#define OS_OBJECT_DECL_PROTOCOL(name, ...)
+#define OS_OBJECT_SHOW_CLASS(name, ...) \
+		typedef struct name##_s *name##_t
+#define OS_OBJECT_SHOW_SUBCLASS(name, super, ...) \
+		typedef super##_t name##_t
+#endif
+
+#define OS_OBJECT_GLOBAL_OBJECT(type, object) ((OS_OBJECT_BRIDGE type)&(object))
+
+__BEGIN_DECLS
+OS_OBJECT_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @function os_retain
+ *
+ * @abstract
+ * Increment the reference count of an os_object.
+ *
+ * @discussion
+ * On a platform with the modern Objective-C runtime this is exactly equivalent
+ * to sending the object the -[retain] message.
+ *
+ * @param object
+ * The object to retain.
+ *
+ * @result
+ * The retained object.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+OS_EXPORT OS_SWIFT_UNAVAILABLE("Can't be used with ARC")
+void*
+os_retain(void *object);
+#if OS_OBJECT_USE_OBJC
+#undef os_retain
+#define os_retain(object) [object retain]
+#endif
+
+/*!
+ * @function os_release
+ *
+ * @abstract
+ * Decrement the reference count of a os_object.
+ *
+ * @discussion
+ * On a platform with the modern Objective-C runtime this is exactly equivalent
+ * to sending the object the -[release] message.
+ *
+ * @param object
+ * The object to release.
+ */
+API_AVAILABLE(macos(10.10), ios(8.0))
+OS_EXPORT
+void OS_SWIFT_UNAVAILABLE("Can't be used with ARC")
+os_release(void *object);
+#if OS_OBJECT_USE_OBJC
+#undef os_release
+#define os_release(object) [object release]
+#endif
+
+OS_OBJECT_ASSUME_ABI_SINGLE_END
+__END_DECLS
+
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/os/workgroup_base.h b/lib/libc/include/any-macos.13-any/os/workgroup_base.h
new file mode 100644
index 0000000000000000000000000000000000000000..e705496f2a5e8fe3ae4b66f16c2a8b52aed4a008
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/os/workgroup_base.h
@@ -0,0 +1,85 @@
+#ifndef __OS_WORKGROUP_BASE__
+#define __OS_WORKGROUP_BASE__
+
+#ifndef __OS_WORKGROUP_INDIRECT__
+#error "Please #include  instead of this file directly."
+#endif
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+#if __has_feature(assume_nonnull)
+#define OS_WORKGROUP_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
+#define OS_WORKGROUP_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
+#else
+#define OS_WORKGROUP_ASSUME_NONNULL_BEGIN
+#define OS_WORKGROUP_ASSUME_NONNULL_END
+#endif
+#define OS_WORKGROUP_WARN_RESULT __attribute__((__warn_unused_result__))
+#define OS_WORKGROUP_EXPORT OS_EXPORT
+#define OS_WORKGROUP_RETURNS_RETAINED OS_OBJECT_RETURNS_RETAINED
+#define OS_WORKGROUP_ASSUME_ABI_SINGLE_BEGIN OS_ASSUME_PTR_ABI_SINGLE_BEGIN
+#define OS_WORKGROUP_ASSUME_ABI_SINGLE_END OS_ASSUME_PTR_ABI_SINGLE_END
+#define OS_WORKGROUP_UNSAFE_INDEXABLE OS_UNSAFE_INDEXABLE
+
+#define OS_WORKGROUP_DECL(name, swift_name) \
+	OS_SWIFT_NAME(swift_name) \
+	OS_OBJECT_SHOW_CLASS(name, OS_OBJECT_CLASS(object))
+
+#if OS_OBJECT_USE_OBJC
+#define OS_WORKGROUP_SUBCLASS_DECL_PROTO(name, swift_name, ...) \
+	OS_SWIFT_NAME(swift_name) \
+	OS_OBJECT_DECL_PROTOCOL(name ## __VA_ARGS__ )
+#else
+#define OS_WORKGROUP_SUBCLASS_DECL_PROTO(name, swift_name, ...)
+#endif
+
+#define OS_WORKGROUP_SUBCLASS_DECL(name, super, swift_name, ...) \
+	OS_SWIFT_NAME(swift_name) \
+	OS_OBJECT_SHOW_SUBCLASS(name, super, name, ## __VA_ARGS__)
+
+#if defined(__LP64__)
+#define __OS_WORKGROUP_ATTR_SIZE__ 60
+#define __OS_WORKGROUP_INTERVAL_DATA_SIZE__ 56
+#define __OS_WORKGROUP_JOIN_TOKEN_SIZE__ 36
+#else
+#define __OS_WORKGROUP_ATTR_SIZE__ 60
+#define __OS_WORKGROUP_INTERVAL_DATA_SIZE__ 56
+#define __OS_WORKGROUP_JOIN_TOKEN_SIZE__ 28
+#endif
+
+#define _OS_WORKGROUP_ATTR_SIG_DEFAULT_INIT 0x2FA863B4
+#define _OS_WORKGROUP_ATTR_SIG_EMPTY_INIT 0x2FA863C4
+
+OS_WORKGROUP_ASSUME_ABI_SINGLE_BEGIN
+
+struct OS_REFINED_FOR_SWIFT os_workgroup_attr_opaque_s {
+	uint32_t sig;
+	char opaque[__OS_WORKGROUP_ATTR_SIZE__];
+};
+
+#define _OS_WORKGROUP_INTERVAL_DATA_SIG_INIT 0x52A74C4D
+struct OS_REFINED_FOR_SWIFT os_workgroup_interval_data_opaque_s {
+	uint32_t sig;
+	char opaque[__OS_WORKGROUP_INTERVAL_DATA_SIZE__];
+};
+
+struct OS_REFINED_FOR_SWIFT os_workgroup_join_token_opaque_s {
+	uint32_t sig;
+	char opaque[__OS_WORKGROUP_JOIN_TOKEN_SIZE__];
+};
+
+OS_WORKGROUP_ASSUME_ABI_SINGLE_END
+
+#endif /* __OS_WORKGROUP_BASE__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/os/workgroup_interval.h b/lib/libc/include/any-macos.13-any/os/workgroup_interval.h
new file mode 100644
index 0000000000000000000000000000000000000000..84aa5076344315c61c193c99f101a02404da7705
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/os/workgroup_interval.h
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 2020 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __OS_WORKGROUP_INTERVAL__
+#define __OS_WORKGROUP_INTERVAL__
+
+#ifndef __OS_WORKGROUP_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // For header doc
+#endif
+
+__BEGIN_DECLS
+
+OS_WORKGROUP_ASSUME_NONNULL_BEGIN
+OS_WORKGROUP_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @typedef os_workgroup_interval_t
+ *
+ * @abstract
+ * A subclass of an os_workgroup_t for tracking work performed as part of
+ * a repeating interval-driven workload.
+ */
+OS_WORKGROUP_SUBCLASS_DECL_PROTO(os_workgroup_interval, Repeatable);
+OS_WORKGROUP_SUBCLASS_DECL(os_workgroup_interval, os_workgroup, WorkGroupInterval);
+
+/* During the first instance of this API, the only supported interval
+ * workgroups are for audio workloads. Please refer to the AudioToolbox
+ * framework for more information.
+ */
+
+/*
+ * @typedef os_workgroup_interval_data, os_workgroup_interval_data_t
+ *
+ * @abstract
+ * An opaque structure containing additional configuration for the workgroup
+ * interval.
+ */
+typedef struct os_workgroup_interval_data_opaque_s os_workgroup_interval_data_s;
+typedef struct os_workgroup_interval_data_opaque_s *os_workgroup_interval_data_t;
+#define OS_WORKGROUP_INTERVAL_DATA_INITIALIZER \
+	{ .sig = _OS_WORKGROUP_INTERVAL_DATA_SIG_INIT }
+
+/*!
+ * @function os_workgroup_interval_start
+ *
+ * @abstract
+ * Indicates to the system that the member threads of this
+ * os_workgroup_interval_t have begun working on an instance of the repeatable
+ * interval workload with the specified timestamps. This function is real time
+ * safe.
+ *
+ * This function will set and return an errno in the following cases:
+ *
+ * - The current thread is not a member of the os_workgroup_interval_t
+ * - The os_workgroup_interval_t has been cancelled
+ * - The timestamps passed in are malformed
+ * - os_workgroup_interval_start() was previously called on the
+ * os_workgroup_interval_t without an intervening os_workgroup_interval_finish()
+ * - A concurrent workgroup interval configuration operation is taking place.
+ *
+ * @param start
+ * Start timestamp specified in the os_clockid_t with which the
+ * os_workgroup_interval_t was created. This is generally a time in the past and
+ * indicates when the workgroup started working on an interval period
+ *
+ * @param deadline
+ * Deadline timestamp specified in the os_clockid_t with which the
+ * os_workgroup_interval_t was created. This specifies the deadline which the
+ * interval period would like to meet.
+ *
+ * @param data
+ * This field is currently unused and should be NULL
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT OS_WORKGROUP_WARN_RESULT
+int
+os_workgroup_interval_start(os_workgroup_interval_t wg, uint64_t start, uint64_t
+		deadline, os_workgroup_interval_data_t _Nullable data);
+
+/*!
+ * @function os_workgroup_interval_update
+ *
+ * @abstract
+ * Updates an already started interval workgroup to have the new
+ * deadline specified. This function is real time safe.
+ *
+ * This function will return an error in the following cases:
+ * - The current thread is not a member of the os_workgroup_interval_t
+ * - The os_workgroup_interval_t has been cancelled
+ * - The timestamp passed in is malformed
+ * - os_workgroup_interval_start() was not previously called on the
+ * os_workgroup_interval_t or was already matched with an
+ * os_workgroup_interval_finish()
+ * - A concurrent workgroup interval configuration operation is taking place
+ *
+ * @param deadline
+ * Timestamp specified in the os_clockid_t with
+ * which the os_workgroup_interval_t was created.
+ *
+ * @param data
+ * This field is currently unused and should be NULL
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT OS_WORKGROUP_WARN_RESULT
+int
+os_workgroup_interval_update(os_workgroup_interval_t wg, uint64_t deadline,
+		os_workgroup_interval_data_t _Nullable data);
+
+/*!
+ * @function os_workgroup_interval_finish
+ *
+ * @abstract
+ * Indicates to the system that the member threads of
+ * this os_workgroup_interval_t have finished working on the current instance
+ * of the interval workload. This function is real time safe.
+ *
+ * This function will return an error in the following cases:
+ *  - The current thread is not a member of the os_workgroup_interval_t
+ *  - os_workgroup_interval_start() was not previously called on the
+ * os_workgroup_interval_t or was already matched with an
+ * os_workgroup_interval_finish()
+ * - A concurrent workgroup interval configuration operation is taking place.
+ *
+ * @param data
+ * This field is currently unused and should be NULL
+ *
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT OS_WORKGROUP_WARN_RESULT
+int
+os_workgroup_interval_finish(os_workgroup_interval_t wg,
+		os_workgroup_interval_data_t _Nullable data);
+
+OS_WORKGROUP_ASSUME_ABI_SINGLE_END
+OS_WORKGROUP_ASSUME_NONNULL_END
+
+__END_DECLS
+
+#endif /* __OS_WORKGROUP_INTERVAL__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/os/workgroup_object.h b/lib/libc/include/any-macos.13-any/os/workgroup_object.h
new file mode 100644
index 0000000000000000000000000000000000000000..fdf5ae7211d94e16702b7d2d2201c300734472e8
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/os/workgroup_object.h
@@ -0,0 +1,359 @@
+/*
+ * Copyright (c) 2020 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __OS_WORKGROUP_OBJECT__
+#define __OS_WORKGROUP_OBJECT__
+
+#ifndef __OS_WORKGROUP_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // For header doc
+#endif
+
+__BEGIN_DECLS
+
+OS_WORKGROUP_ASSUME_NONNULL_BEGIN
+OS_WORKGROUP_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @typedef os_workgroup_t
+ *
+ * @abstract
+ * A reference counted os object representing a workload that needs to
+ * be distinctly recognized and tracked by the system.  The workgroup
+ * tracks a collection of threads all working cooperatively. An os_workgroup
+ * object - when not an instance of a specific os_workgroup_t subclass -
+ * represents a generic workload and makes no assumptions about the kind of
+ * work done.
+ *
+ * @discussion
+ * Threads can explicitly join an os_workgroup_t to mark themselves as
+ * participants in the workload.
+ */
+OS_WORKGROUP_DECL(os_workgroup, WorkGroup);
+
+
+/* Attribute creation and specification */
+
+/*!
+ * @typedef os_workgroup_attr_t
+ *
+ * @abstract
+ * Pointer to an opaque structure for describing attributes that can be
+ * configured on a workgroup at creation.
+ */
+typedef struct os_workgroup_attr_opaque_s os_workgroup_attr_s;
+typedef struct os_workgroup_attr_opaque_s *os_workgroup_attr_t;
+
+/* os_workgroup_t attributes need to be initialized before use. This initializer
+ * allows you to create a workgroup with the system default attributes. */
+#define OS_WORKGROUP_ATTR_INITIALIZER_DEFAULT \
+	{ .sig = _OS_WORKGROUP_ATTR_SIG_DEFAULT_INIT }
+
+
+
+/* The main use of the workgroup API is through instantiations of the concrete
+ * subclasses - please refer to os/workgroup_interval.h and
+ * os/workgroup_parallel.h for more information on creating workgroups.
+ *
+ * The functions below operate on all subclasses of os_workgroup_t.
+ */
+
+/*!
+ * @function os_workgroup_copy_port
+ *
+ * @abstract
+ * Returns a reference to a send right representing this workgroup that is to be
+ * sent to other processes. This port is to be passed to
+ * os_workgroup_create_with_port() to create a workgroup object.
+ *
+ * It is the client's responsibility to release the send right reference.
+ *
+ * If an error is encountered, errno is set and returned.
+ */
+API_AVAILABLE(macos(11.0))
+API_UNAVAILABLE(ios, tvos, watchos)
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT OS_WORKGROUP_WARN_RESULT
+int
+os_workgroup_copy_port(os_workgroup_t wg, mach_port_t *mach_port_out);
+
+/*!
+ * @function os_workgroup_create_with_port
+ *
+ * @abstract
+ * Create an os_workgroup_t object from a send right returned by a previous
+ * call to os_workgroup_copy_port, potentially in a different process.
+ *
+ * A newly created os_workgroup_t has no initial member threads - in particular
+ * the creating thread does not join the os_workgroup_t implicitly.
+ *
+ * @param name
+ * A client specified string for labelling the workgroup. This parameter is
+ * optional and can be NULL.
+ *
+ * @param mach_port
+ * The send right to create the workgroup from. No reference is consumed
+ * on the specified send right.
+ */
+API_AVAILABLE(macos(11.0))
+API_UNAVAILABLE(ios, tvos, watchos)
+OS_SWIFT_NAME(WorkGroup.init(__name:port:)) OS_WORKGROUP_EXPORT OS_WORKGROUP_RETURNS_RETAINED
+os_workgroup_t _Nullable
+os_workgroup_create_with_port(const char *OS_WORKGROUP_UNSAFE_INDEXABLE _Nullable name, mach_port_t mach_port);
+
+/*!
+ * @function os_workgroup_create_with_workgroup
+ *
+ * @abstract
+ * Create a new os_workgroup object from an existing os_workgroup.
+ *
+ * The newly created os_workgroup has no initial member threads - in particular
+ * the creating threaad does not join the os_workgroup_t implicitly.
+ *
+ * @param name
+ * A client specified string for labelling the workgroup. This parameter is
+ * optional and can be NULL.
+ *
+ * @param wg
+ * The existing workgroup to create a new workgroup object from.
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT OS_WORKGROUP_RETURNS_RETAINED
+os_workgroup_t _Nullable
+os_workgroup_create_with_workgroup(const char * OS_WORKGROUP_UNSAFE_INDEXABLE _Nullable name, os_workgroup_t wg);
+
+/*!
+ * @typedef os_workgroup_join_token, os_workgroup_join_token_t
+ *
+ * @abstract
+ * An opaque join token which the client needs to pass to os_workgroup_join
+ * and os_workgroup_leave
+ */
+OS_REFINED_FOR_SWIFT
+typedef struct os_workgroup_join_token_opaque_s os_workgroup_join_token_s;
+OS_REFINED_FOR_SWIFT
+typedef struct os_workgroup_join_token_opaque_s *os_workgroup_join_token_t;
+
+
+/*!
+ * @function os_workgroup_join
+ *
+ * @abstract
+ * Joins the current thread to the specified workgroup and populates the join
+ * token that has been passed in. This API is real-time safe.
+ *
+ * @param wg
+ * The workgroup that the current thread would like to join
+ *
+ * @param token_out
+ * Pointer to a client allocated struct which the function will populate
+ * with the join token. This token must be passed in by the thread when it calls
+ * os_workgroup_leave().
+ *
+ * Errors will be returned in the following cases:
+ *
+ * EALREADY		The thread is already part of a workgroup that the specified
+ *				workgroup does not nest with
+ * EINVAL		The workgroup has been cancelled
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT OS_WORKGROUP_WARN_RESULT
+int
+os_workgroup_join(os_workgroup_t wg, os_workgroup_join_token_t token_out);
+
+/*!
+ * @function os_workgroup_leave
+ *
+ * @abstract
+ * This removes the current thread from a workgroup it has previously
+ * joined. Threads must leave all workgroups in the reverse order that they
+ * have joined them. Failing to do so before exiting will result in undefined
+ * behavior.
+ *
+ * If the join token is malformed, the process will be aborted.
+ *
+ * This API is real time safe.
+ *
+ * @param wg
+ * The workgroup that the current thread would like to leave.
+ *
+ * @param token
+ * This is the join token populated by the most recent call to
+ * os_workgroup_join().
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT
+void
+os_workgroup_leave(os_workgroup_t wg, os_workgroup_join_token_t token);
+
+/* Working Arena index of a thread in a workgroup */
+typedef uint32_t os_workgroup_index;
+/* Destructor for Working Arena */
+typedef void (*os_workgroup_working_arena_destructor_t)(void * _Nullable);
+
+/*!
+ * @function os_workgroup_set_working_arena
+ *
+ * @abstract
+ * Associates a client defined working arena with the workgroup. The arena
+ * is local to the workgroup object in the process. This is intended for
+ * distributing a manually managed memory allocation between member threads
+ * of the workgroup.
+ *
+ * This function can be called multiple times and the client specified
+ * destructor will be called on the previously assigned arena, if any. This
+ * function can only be called when no threads have currently joined the
+ * workgroup and all workloops associated with the workgroup are idle.
+ *
+ * @param wg
+ * The workgroup to associate the working arena with
+ *
+ * @param arena
+ * The client managed arena to associate with the workgroup. This value can
+ * be NULL.
+ *
+ * @param max_workers
+ * The maximum number of threads that will ever query the workgroup for the
+ * arena and request an index into it.  If the arena is not used to partition
+ * work amongst member threads, then this field can be 0.
+ *
+ * @param destructor
+ * A destructor to call on the previously assigned working arena, if any
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT OS_WORKGROUP_WARN_RESULT
+int
+os_workgroup_set_working_arena(os_workgroup_t wg, void * _Nullable arena,
+	uint32_t max_workers, os_workgroup_working_arena_destructor_t destructor);
+
+/*!
+ * @function os_workgroup_get_working_arena
+ *
+ * @abstract
+ * Returns the working arena associated with the workgroup and the current
+ * thread's index in the workgroup. This function can only be called by a member
+ * of the workgroup. Multiple calls to this API by a member thread will return
+ * the same arena and index until the thread leaves the workgroup.
+ *
+ * For workloops with an associated workgroup, every work item on the workloop
+ * will receive the same index in the arena.
+ *
+ * This method returns NULL if no arena is set on the workgroup. The index
+ * returned by this function is zero-based and is namespaced per workgroup
+ * object in the process. The indices provided are strictly monotonic and never
+ * reused until a future call to os_workgroup_set_working_arena.
+ *
+ * @param wg
+ * The workgroup to get the working arena from.
+ *
+ * @param index_out
+ * A pointer to a os_workgroup_index which will be populated by the caller's
+ * index in the workgroup.
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT
+void * _Nullable
+os_workgroup_get_working_arena(os_workgroup_t wg,
+		os_workgroup_index * _Nullable index_out);
+
+/*!
+ * @function os_workgroup_cancel
+ *
+ * @abstract
+ * This API invalidates a workgroup and indicates to the system that the
+ * workload is no longer relevant to the caller.
+ *
+ * No new work should be initiated for a cancelled workgroup and
+ * work that is already underway should periodically check for
+ * cancellation with os_workgroup_testcancel and initiate cleanup if needed.
+ *
+ * Threads currently in the workgroup continue to be tracked together but no
+ * new threads may join this workgroup - the only possible operation allowed is
+ * to leave the workgroup. Other actions may have undefined behavior or
+ * otherwise fail.
+ *
+ * This API is idempotent. Cancellation is local to the workgroup object
+ * it is called on and does not affect other workgroups.
+ *
+ * @param wg
+ * The workgroup that that the thread would like to cancel
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT
+void
+os_workgroup_cancel(os_workgroup_t wg);
+
+/*!
+ * @function os_workgroup_testcancel
+ *
+ * @abstract
+ * Returns true if the workgroup object has been cancelled. See also
+ * os_workgroup_cancel
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT
+bool
+os_workgroup_testcancel(os_workgroup_t wg);
+
+/*!
+ * @typedef os_workgroup_max_parallel_threads_attr_t
+ *
+ * @abstract
+ * A pointer to a structure describing the set of properties of a workgroup to
+ * override with the explicitly specified values in the structure.
+ *
+ * See also os_workgroup_max_parallel_threads.
+ */
+OS_REFINED_FOR_SWIFT
+typedef struct os_workgroup_max_parallel_threads_attr_s os_workgroup_mpt_attr_s;
+OS_REFINED_FOR_SWIFT
+typedef struct os_workgroup_max_parallel_threads_attr_s *os_workgroup_mpt_attr_t;
+
+/*!
+ * @function os_workgroup_max_parallel_threads
+ *
+ * @abstract
+ * Returns the system's recommendation for maximum number of threads the client
+ * should make for a multi-threaded workload in a given workgroup.
+ *
+ * This API takes into consideration the current hardware the code is running on
+ * and the attributes of the workgroup. It does not take into consideration the
+ * current load of the system and therefore always provides the most optimal
+ * recommendation for the workload.
+ *
+ * @param wg
+ * The workgroup in which the multi-threaded workload will be performed in. The
+ * threads performing the multi-threaded workload are expected to join this
+ * workgroup.
+ *
+ * @param attr
+ * This value is currently unused and should be NULL.
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_REFINED_FOR_SWIFT OS_WORKGROUP_EXPORT
+int
+os_workgroup_max_parallel_threads(os_workgroup_t wg, os_workgroup_mpt_attr_t
+		_Nullable attr);
+
+OS_WORKGROUP_ASSUME_ABI_SINGLE_END
+OS_WORKGROUP_ASSUME_NONNULL_END
+
+__END_DECLS
+
+#endif /* __OS_WORKGROUP_OBJECT__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/os/workgroup_parallel.h b/lib/libc/include/any-macos.13-any/os/workgroup_parallel.h
new file mode 100644
index 0000000000000000000000000000000000000000..740e67b66c7b3539930a3c008095d7036fa38d5a
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/os/workgroup_parallel.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2020 Apple Inc. All rights reserved.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_START@
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @APPLE_APACHE_LICENSE_HEADER_END@
+ */
+
+#ifndef __OS_WORKGROUP_PARALLEL__
+#define __OS_WORKGROUP_PARALLEL__
+
+#ifndef __OS_WORKGROUP_INDIRECT__
+#error "Please #include  instead of this file directly."
+#include  // For header doc
+#endif
+
+#include 
+
+__BEGIN_DECLS
+
+OS_WORKGROUP_ASSUME_NONNULL_BEGIN
+OS_WORKGROUP_ASSUME_ABI_SINGLE_BEGIN
+
+/*!
+ * @typedef os_workgroup_parallel_t
+ *
+ * @abstract
+ * A subclass of an os_workgroup_t for tracking parallel work.
+ */
+OS_WORKGROUP_SUBCLASS_DECL_PROTO(os_workgroup_parallel, Parallelizable);
+OS_WORKGROUP_SUBCLASS_DECL(os_workgroup_parallel, os_workgroup, WorkGroupParallel);
+
+/*!
+ * @function os_workgroup_parallel_create
+ *
+ * @abstract
+ * Creates an os_workgroup_t which tracks a parallel workload.
+ * A newly created os_workgroup_interval_t has no initial member threads -
+ * in particular the creating thread does not join the os_workgroup_parallel_t
+ * implicitly.
+ *
+ * See also os_workgroup_max_parallel_threads().
+ *
+ * @param name
+ * A client specified string for labelling the workgroup. This parameter is
+ * optional and can be NULL.
+ *
+ * @param attr
+ * The requested set of workgroup attributes. NULL is to be specified for the
+ * default set of attributes.
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+OS_WORKGROUP_EXPORT OS_WORKGROUP_RETURNS_RETAINED
+OS_SWIFT_NAME(WorkGroupParallel.init(__name:attr:))
+os_workgroup_parallel_t _Nullable
+os_workgroup_parallel_create(const char *OS_WORKGROUP_UNSAFE_INDEXABLE _Nullable name,
+	os_workgroup_attr_t _Nullable attr);
+
+OS_WORKGROUP_ASSUME_ABI_SINGLE_END
+OS_WORKGROUP_ASSUME_NONNULL_END
+
+__END_DECLS
+
+#endif /* __OS_WORKGROUP_PARALLEL__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/pthread.h b/lib/libc/include/any-macos.13-any/pthread.h
new file mode 100644
index 0000000000000000000000000000000000000000..7bc20229a3acd703491e989a2fbe0392b2999786
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/pthread.h
@@ -0,0 +1,754 @@
+/*
+ * Copyright (c) 2000-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 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
+ *              All Rights Reserved
+ *
+ * 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.
+ *
+ * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+ * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+/*
+ * MkLinux
+ */
+
+/*
+ * POSIX Threads - IEEE 1003.1c
+ */
+
+#ifndef _PTHREAD_H
+#define _PTHREAD_H
+
+#include <_types.h>
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
+
+#include 
+#include 
+
+#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */
+
+/*
+ * These symbols indicate which [optional] features are available
+ * They can be tested at compile time via '#ifdef XXX'
+ * The way to check for pthreads is like so:
+
+ * #include 
+ * #ifdef _POSIX_THREADS
+ * #include 
+ * #endif
+
+ */
+
+/* These will be moved to unistd.h */
+
+/*
+ * Note: These data structures are meant to be opaque.  Only enough
+ * structure is exposed to support initializers.
+ * All of the typedefs will be moved to 
+ */
+
+#include 
+#include 
+
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull begin")
+#endif
+__BEGIN_DECLS
+/*
+ * Threads
+ */
+
+
+/*
+ * Cancel cleanup handler management.  Note, since these are implemented as macros,
+ * they *MUST* occur in matched pairs!
+ */
+
+#define pthread_cleanup_push(func, val) \
+   { \
+	     struct __darwin_pthread_handler_rec __handler; \
+	     pthread_t __self = pthread_self(); \
+	     __handler.__routine = func; \
+	     __handler.__arg = val; \
+	     __handler.__next = __self->__cleanup_stack; \
+	     __self->__cleanup_stack = &__handler;
+
+#define pthread_cleanup_pop(execute) \
+	     /* Note: 'handler' must be in this same lexical context! */ \
+	     __self->__cleanup_stack = __handler.__next; \
+	     if (execute) (__handler.__routine)(__handler.__arg); \
+   }
+
+/*
+ * Thread attributes
+ */
+
+#define PTHREAD_CREATE_JOINABLE      1
+#define PTHREAD_CREATE_DETACHED      2
+
+#define PTHREAD_INHERIT_SCHED        1
+#define PTHREAD_EXPLICIT_SCHED       2
+
+#define PTHREAD_CANCEL_ENABLE        0x01  /* Cancel takes place at next cancellation point */
+#define PTHREAD_CANCEL_DISABLE       0x00  /* Cancel postponed */
+#define PTHREAD_CANCEL_DEFERRED      0x02  /* Cancel waits until cancellation point */
+#define PTHREAD_CANCEL_ASYNCHRONOUS  0x00  /* Cancel occurs immediately */
+
+/* Value returned from pthread_join() when a thread is canceled */
+#define PTHREAD_CANCELED	     ((void *) 1)
+
+/* We only support PTHREAD_SCOPE_SYSTEM */
+#define PTHREAD_SCOPE_SYSTEM         1
+#define PTHREAD_SCOPE_PROCESS        2
+
+#define PTHREAD_PROCESS_SHARED         1
+#define PTHREAD_PROCESS_PRIVATE        2
+
+/*
+ * Mutex protocol attributes
+ */
+#define PTHREAD_PRIO_NONE            0
+#define PTHREAD_PRIO_INHERIT         1
+#define PTHREAD_PRIO_PROTECT         2
+
+/*
+ * Mutex type attributes
+ */
+#define PTHREAD_MUTEX_NORMAL		0
+#define PTHREAD_MUTEX_ERRORCHECK	1
+#define PTHREAD_MUTEX_RECURSIVE		2
+#define PTHREAD_MUTEX_DEFAULT		PTHREAD_MUTEX_NORMAL
+
+/*
+ * Mutex policy attributes
+ */
+#define PTHREAD_MUTEX_POLICY_FAIRSHARE_NP   1
+#define PTHREAD_MUTEX_POLICY_FIRSTFIT_NP    3
+
+/*
+ * RWLock variables
+ */
+#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWLOCK_SIG_init, {0}}
+
+/*
+ * Mutex variables
+ */
+#define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MUTEX_SIG_init, {0}}
+
+/*  */
+#if ((__MAC_OS_X_VERSION_MIN_REQUIRED && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070) || (__IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED >= 50000)) || defined(__DRIVERKIT_VERSION_MIN_REQUIRED)
+#	if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
+#		define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {_PTHREAD_ERRORCHECK_MUTEX_SIG_init, {0}}
+#		define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {_PTHREAD_RECURSIVE_MUTEX_SIG_init, {0}}
+#	endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
+#endif
+
+/*  */
+#define _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT \
+	defined(SWIFT_CLASS_EXTRA) && (!defined(SWIFT_SDK_OVERLAY_PTHREAD_EPOCH) || (SWIFT_SDK_OVERLAY_PTHREAD_EPOCH < 1))
+
+#if __has_attribute(__swift_attr__)
+#define __PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC(msg) \
+	__attribute__((__swift_attr__("@_unavailableFromAsync(message: \"" msg "\")")))
+#else
+#define __PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC(msg)
+#endif
+
+/*
+ * Condition variable attributes
+ */
+
+/*
+ * Condition variables
+ */
+
+#define PTHREAD_COND_INITIALIZER {_PTHREAD_COND_SIG_init, {0}}
+
+/*
+ * Initialization control (once) variables
+ */
+
+#define PTHREAD_ONCE_INIT {_PTHREAD_ONCE_SIG_init, {0}}
+
+/*
+ * Prototypes for all PTHREAD interfaces
+ */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_atfork(void (* _Nullable)(void), void (* _Nullable)(void),
+		void (* _Nullable)(void));
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_destroy(pthread_attr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getdetachstate(const pthread_attr_t *, int *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getguardsize(const pthread_attr_t * __restrict, size_t * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getinheritsched(const pthread_attr_t * __restrict, int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getschedparam(const pthread_attr_t * __restrict,
+		struct sched_param * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getschedpolicy(const pthread_attr_t * __restrict, int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getscope(const pthread_attr_t * __restrict, int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getstack(const pthread_attr_t * __restrict,
+		void * _Nullable * _Nonnull __restrict, size_t * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getstackaddr(const pthread_attr_t * __restrict,
+		void * _Nullable * _Nonnull __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_getstacksize(const pthread_attr_t * __restrict, size_t * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_init(pthread_attr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setdetachstate(pthread_attr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setguardsize(pthread_attr_t *, size_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setinheritsched(pthread_attr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setschedparam(pthread_attr_t * __restrict,
+		const struct sched_param * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setschedpolicy(pthread_attr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setscope(pthread_attr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setstack(pthread_attr_t *, void *, size_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setstackaddr(pthread_attr_t *, void *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_attr_setstacksize(pthread_attr_t *, size_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cancel(pthread_t) __DARWIN_ALIAS(pthread_cancel);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_broadcast(pthread_cond_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_destroy(pthread_cond_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_init(
+		pthread_cond_t * __restrict,
+		const pthread_condattr_t * _Nullable __restrict)
+		__DARWIN_ALIAS(pthread_cond_init);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_signal(pthread_cond_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use an asynchronous wait instead of a synchronous wait")
+int pthread_cond_timedwait(
+		pthread_cond_t * __restrict, pthread_mutex_t * __restrict,
+		const struct timespec * _Nullable __restrict)
+		__DARWIN_ALIAS_C(pthread_cond_timedwait);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use an asynchronous wait instead of a synchronous wait")
+int pthread_cond_wait(pthread_cond_t * __restrict,
+		pthread_mutex_t * __restrict) __DARWIN_ALIAS_C(pthread_cond_wait);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_condattr_destroy(pthread_condattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_condattr_init(pthread_condattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_condattr_getpshared(const pthread_condattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_condattr_setpshared(pthread_condattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
+int pthread_create(pthread_t _Nullable * _Nonnull __restrict,
+		const pthread_attr_t * _Nullable __restrict,
+		void * _Nullable (* _Nonnull)(void * _Nullable),
+		void * _Nullable __restrict);
+#else
+int pthread_create(pthread_t * __restrict,
+		const pthread_attr_t * _Nullable __restrict,
+		void *(* _Nonnull)(void *), void * _Nullable __restrict);
+#endif // _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_detach(pthread_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_equal(pthread_t _Nullable, pthread_t _Nullable);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Thread lifecycle is owned by Swift Concurrency runtime")
+void pthread_exit(void * _Nullable) __dead2;
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_getconcurrency(void);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_getschedparam(pthread_t , int * _Nullable __restrict,
+		struct sched_param * _Nullable __restrict);
+
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use Task Local Values instead")
+__API_AVAILABLE(macos(10.4), ios(2.0))
+void* _Nullable pthread_getspecific(pthread_key_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use an asynchronous wait instead of a synchronous wait")
+int pthread_join(pthread_t , void * _Nullable * _Nullable)
+		__DARWIN_ALIAS_C(pthread_join);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_key_create(pthread_key_t *, void (* _Nullable)(void *));
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_key_delete(pthread_key_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_destroy(pthread_mutex_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_getprioceiling(const pthread_mutex_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_init(pthread_mutex_t * __restrict,
+		const pthread_mutexattr_t * _Nullable __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use OSAllocatedUnfairLock's withLock or NSLock for async-safe scoped locking")
+int pthread_mutex_lock(pthread_mutex_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutex_setprioceiling(pthread_mutex_t * __restrict, int,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use OSAllocatedUnfairLock's withLockIfAvailable or NSLock for async-safe scoped locking")
+int pthread_mutex_trylock(pthread_mutex_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use OSAllocatedUnfairLock's withLock or NSLock for async-safe scoped locking")
+int pthread_mutex_unlock(pthread_mutex_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_destroy(pthread_mutexattr_t *) __DARWIN_ALIAS(pthread_mutexattr_destroy);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_getprotocol(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_getpshared(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_gettype(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.13.4), ios(11.3), watchos(4.3), tvos(11.3))
+int pthread_mutexattr_getpolicy_np(const pthread_mutexattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_init(pthread_mutexattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_mutexattr_settype(pthread_mutexattr_t *, int);
+
+__API_AVAILABLE(macos(10.7), ios(5.0))
+int pthread_mutexattr_setpolicy_np(pthread_mutexattr_t *, int);
+
+__SWIFT_UNAVAILABLE_MSG("Use lazily initialized globals instead")
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_once(pthread_once_t *, void (* _Nonnull)(void));
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_destroy(pthread_rwlock_t * ) __DARWIN_ALIAS(pthread_rwlock_destroy);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlock_init(pthread_rwlock_t * __restrict,
+		const pthread_rwlockattr_t * _Nullable __restrict)
+		__DARWIN_ALIAS(pthread_rwlock_init);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead")
+int pthread_rwlock_rdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_rdlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead")
+int pthread_rwlock_tryrdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_tryrdlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead")
+int pthread_rwlock_trywrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_trywrlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead")
+int pthread_rwlock_wrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_wrlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use async-safe scoped locking instead")
+int pthread_rwlock_unlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_unlock);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t * __restrict,
+		int * __restrict);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlockattr_init(pthread_rwlockattr_t *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+pthread_t pthread_self(void);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use Task cancellation instead")
+int pthread_setcancelstate(int , int * _Nullable)
+		__DARWIN_ALIAS(pthread_setcancelstate);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use Task cancellation instead")
+int pthread_setcanceltype(int , int * _Nullable)
+		__DARWIN_ALIAS(pthread_setcanceltype);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_setconcurrency(int);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_setschedparam(pthread_t, int, const struct sched_param *);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use Task Local Values instead")
+int pthread_setspecific(pthread_key_t , const void * _Nullable);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use Task cancellation instead")
+void pthread_testcancel(void) __DARWIN_ALIAS(pthread_testcancel);
+
+#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
+
+/* returns non-zero if pthread_create or cthread_fork have been called */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_is_threaded_np(void);
+
+__API_AVAILABLE(macos(10.6), ios(3.2))
+int pthread_threadid_np(pthread_t _Nullable,__uint64_t* _Nullable);
+
+/*SPI to set and get pthread name*/
+__API_AVAILABLE(macos(10.6), ios(3.2))
+int	pthread_getname_np(pthread_t,char*,size_t);
+
+__API_AVAILABLE(macos(10.6), ios(3.2))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Thread lifecycle is owned by Swift Concurrency runtime")
+int	pthread_setname_np(const char*);
+
+/* returns non-zero if the current thread is the main thread */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int	pthread_main_np(void);
+
+/* return the mach thread bound to the pthread */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+mach_port_t pthread_mach_thread_np(pthread_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+size_t pthread_get_stacksize_np(pthread_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+void* pthread_get_stackaddr_np(pthread_t);
+
+/* Like pthread_cond_signal(), but only wake up the specified pthread */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_cond_signal_thread_np(pthread_cond_t *, pthread_t _Nullable);
+
+/* Like pthread_cond_timedwait, but use a relative timeout */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use an asynchronous wait instead of a synchronous wait")
+int pthread_cond_timedwait_relative_np(pthread_cond_t *, pthread_mutex_t *,
+		const struct timespec * _Nullable);
+
+/* Like pthread_create(), but leaves the thread suspended */
+__API_AVAILABLE(macos(10.4), ios(2.0))
+#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
+int pthread_create_suspended_np(
+		pthread_t _Nullable * _Nonnull, const pthread_attr_t * _Nullable,
+		void * _Nullable (* _Nonnull)(void * _Nullable), void * _Nullable);
+#else
+int pthread_create_suspended_np(pthread_t *, const pthread_attr_t * _Nullable,
+		void *(* _Nonnull)(void *), void * _Nullable);
+#endif
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_kill(pthread_t, int);
+
+__API_AVAILABLE(macos(10.5), ios(2.0))
+_Nullable pthread_t pthread_from_mach_thread_np(mach_port_t);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+int pthread_sigmask(int, const sigset_t * _Nullable, sigset_t * _Nullable)
+		__DARWIN_ALIAS(pthread_sigmask);
+
+__API_AVAILABLE(macos(10.4), ios(2.0))
+__PTHREAD_SWIFT_UNAVAILABLE_FROM_ASYNC("Use Task.yield(), or await a condition instead of spinning")
+void pthread_yield_np(void);
+
+__API_AVAILABLE(macos(11.0))
+__API_UNAVAILABLE(ios, tvos, watchos, driverkit)
+void pthread_jit_write_protect_np(int enabled);
+
+__API_AVAILABLE(macos(11.0))
+__API_UNAVAILABLE(ios, tvos, watchos, driverkit)
+int pthread_jit_write_protect_supported_np(void);
+
+/*!
+ * @typedef pthread_jit_write_callback_t
+ * The type of a function that can be supplied to {@link
+ * pthread_jit_write_with_callback_np} to write to the MAP_JIT region while it
+ * is writeable.
+ *
+ * @param ctx
+ * A pointer to context that will be passed through to the callback function.
+ *
+ * @result
+ * A result code to be returned to the caller of @{link
+ * pthread_jit_write_with_callback_np}.  The system does not interpret/act on
+ * the value of this result.
+ */
+typedef int (*pthread_jit_write_callback_t)(void * _Nullable ctx);
+
+/*!
+ * @define PTHREAD_JIT_WRITE_ALLOW_CALLBACKS_NP
+ * A macro to be used at file scope to list the functions allowed to be passed
+ * to {@link pthread_jit_write_with_callback_np} to write to the MAP_JIT region
+ * while it is writeable.  It may be invoked only once per executable/library.
+ *
+ * @param callbacks
+ * The pthread_jit_write_callback_t functions to allow.  They should be supplied
+ * as a comma-delimited list.
+ */
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__OBJC__) || defined(__cplusplus)
+#define PTHREAD_JIT_WRITE_ALLOW_CALLBACKS_NP(...) \
+		__attribute__((__used__, __section__("__DATA_CONST,__pth_jit_func"))) \
+		static const pthread_jit_write_callback_t __pthread_jit_write_callback_allowlist[] = { \
+			__VA_ARGS__, NULL \
+		}
+#endif /* (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__OBJC__) || defined(__cplusplus) */
+
+/*!
+ * @function pthread_jit_write_with_callback_np
+ *
+ * @abstract
+ * Toggles per-thread write-protection of the MAP_JIT region to writeable,
+ * invokes an allowed callback function to write to it, and toggles protection
+ * back to executable.
+ *
+ * @param callback
+ * The callback function to invoke to write to the MAP_JIT region.  It must be
+ * statically allowed using {@link PTHREAD_JIT_WRITE_ALLOW_CALLBACKS_NP}.
+ *
+ * @param ctx
+ * Context to pass through to the invocation of the callback function.
+ *
+ * @result
+ * The result code returned by the callback function.
+ *
+ * @discussion
+ * This function assumes that the MAP_JIT region has executable protection when
+ * called.  It is therefore invalid to call it recursively from within a write
+ * callback.  The implementation does not detect such invalid recursive calls,
+ * so the client is responsible for preventing them.
+ *
+ * Callbacks _must not_ perform any non-local transfer of control flow (e.g.
+ * throw an exception, longjmp(3)), as doing so would leave the MAP_JIT region
+ * writeable.
+ *
+ * On systems where pthread_jit_write_protect_supported_np(3) is false, this
+ * function calls @callback directly and does nothing else.
+ *
+ * This function only enforces that @callback is allowed if the caller has the
+ * com.apple.security.cs.jit-write-allowlist entitlement.  That entitlement also
+ * disallows use of pthread_jit_write_protect_np(3).  Adopting the entitlement
+ * is therefore crucial in realizing the security benefits of this interface.
+ *
+ * If the entitlement is not present then this function toggles protection of
+ * the MAP_JIT to writeable, calls @callback and then toggles protection back to
+ * executable, without validating that @callback is an allowed function.  This
+ * behavior is intended to permit independent adoption of this interface by
+ * libraries - once all libraries in an application have adopted, the
+ * application should add the entitlement.
+ *
+ * By default, only callbacks in libraries/images present at process start-up
+ * are allowed - callbacks in images loaded dynamically via dlopen(3)/etc. are
+ * not permitted.  However, if the additional entitlement
+ * com.apple.security.cs.jit-write-allowlist-freeze-late is _also_ present, any
+ * callbacks in dlopen'd libraries are also added to the set of allowed
+ * callbacks until the {@link pthread_jit_write_freeze_callbacks_np} function is
+ * called.
+ *
+ * The goal of this interface is to allow applications that execute JIT-compiled
+ * code to mitigate against attempts from attackers to escalate to code
+ * execution by getting their own instructions written to the MAP_JIT region.
+ *
+ * Callbacks should assume an attacker can control the input to this function.
+ * They must therefore carefully validate the data that they are passed and do
+ * so using as little attackable state as possible. This means simplifying
+ * control flow and avoiding spills of sensitive registers (e.g. those used for
+ * validation or control flow).
+ *
+ * In the event a callback detects that its input is invalid, it should either
+ * abort in the simplest fashion possible (preferring e.g. __builtin_trap() over
+ * abort(3), the latter being encumbered by various conformance requirements) or
+ * return a result indicating failure.
+ */
+__API_AVAILABLE(macos(11.4))
+__API_UNAVAILABLE(ios, tvos, watchos, driverkit)
+__SWIFT_UNAVAILABLE_MSG("This interface cannot be safely used from Swift")
+int pthread_jit_write_with_callback_np(
+		pthread_jit_write_callback_t _Nonnull callback, void * _Nullable ctx);
+
+/*!
+ * @function pthread_jit_write_freeze_callbacks_np
+ *
+ * @abstract
+ * Freezes the set of allowed pthread JIT write callbacks, preventing any
+ * callbacks in subsequently dlopen'd libraries from being allowed as arguments
+ * to {@link pthread_jit_write_with_callback_np}
+ *
+ * @discussion
+ * If the com.apple.security.cs.jit-write-allowlist-freeze-late entitlement is
+ * present, this function must be called exactly once after all libraries
+ * containing JIT write callbacks have been loaded to prevent any further
+ * runtime modifications to the set of allowed callbacks.  Failing to call this
+ * function before calling pthread_jit_write_with_callback_np(3) for the first
+ * time is an error, as is calling it multiple times.
+ *
+ * If the jit-write-allowlist-freeze-late entitlement is not present, calling
+ * this function is an error.
+ *
+ * If an application does not need to dlopen(3) any libraries or frameworks
+ * containing needed JIT write callbacks, it is best to avoid the
+ * jit-write-allowlist-freeze-late entitlement and accompanying need to call
+ * this function, as this allows the runtime to automatically freeze the set of
+ * allowed callbacks early in process initialization.
+ */
+__API_AVAILABLE(macos(12.1))
+__API_UNAVAILABLE(ios, tvos, watchos, driverkit)
+void pthread_jit_write_freeze_callbacks_np(void);
+
+/*!
+ * @function pthread_cpu_number_np
+ *
+ * @param cpu_number_out
+ * The CPU number that the thread was running on at the time of query.
+ * This cpu number is in the interval [0, ncpus) (from sysctlbyname("hw.ncpu"))
+ *
+ * @result
+ * This function returns 0 or the value of errno if an error occurred.
+ *
+ * @note
+ * Optimizations of per-CPU datastructures based on the result of this function
+ * still require synchronization since it is not guaranteed that the thread will
+ * still be on the same CPU by the time the function returns.
+ */
+__API_AVAILABLE(macos(11.0), ios(14.2), tvos(14.2), watchos(7.1))
+int
+pthread_cpu_number_np(size_t *cpu_number_out);
+
+#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */
+__END_DECLS
+#if __has_feature(assume_nonnull)
+_Pragma("clang assume_nonnull end")
+#endif
+
+#endif /* _PTHREAD_H */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/simd/base.h b/lib/libc/include/any-macos.13-any/simd/base.h
new file mode 100644
index 0000000000000000000000000000000000000000..fe3b05e3562aa557155e57d8564da77a8f5c74cc
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/simd/base.h
@@ -0,0 +1,136 @@
+/*! @header
+ *  This header defines macros used in the implementation of 
+ *  types and functions. Even though they are exposed in a public header,
+ *  the macros defined in this header are implementation details, and you
+ *  should not use or rely on them. They may be changed or removed entirely
+ *  in a future release.
+ *
+ *  @copyright 2016-2017 Apple, Inc. All rights reserved.
+ *  @unsorted                                                                 */
+
+#ifndef SIMD_BASE
+#define SIMD_BASE
+
+/*  Define __has_attribute and __has_include if they aren't available         */
+# ifndef __has_attribute
+#  define __has_attribute(__x) 0
+# endif
+# ifndef __has_include
+#  define __has_include(__x) 0
+# endif
+# ifndef __has_feature
+#  define __has_feature(__x) 0
+# endif
+
+# if __has_attribute(__ext_vector_type__) && __has_attribute(__overloadable__)
+#  define SIMD_COMPILER_HAS_REQUIRED_FEATURES 1
+# else
+/*  Your compiler is missing one or more features that are hard requirements
+ *  for any  support. None of the types or functions defined by
+ *  the simd headers will be available.                                       */
+#  define SIMD_COMPILER_HAS_REQUIRED_FEATURES 0
+# endif
+
+# if SIMD_COMPILER_HAS_REQUIRED_FEATURES
+#  if __has_include()
+#   include 
+/*  A number of new features are added in newer releases; most of these are
+ *  inline in the header, which makes them available even when targeting older
+ *  OS versions. Those that make external calls, however, are only available
+ *  when targeting the release in which they became available. Because of the
+ *  way in which simd functions are overloaded, the usual weak-linking tricks
+ *  do not work; these functions are simply unavailable when targeting older
+ *  versions of the library.                                                  */
+#   if   __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_13_0   || \
+        __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_16_0 || \
+        __WATCH_OS_VERSION_MIN_REQUIRED  >= __WATCHOS_9_0 || \
+        __TV_OS_VERSION_MIN_REQUIRED     >= __TVOS_16_0   || \
+        __BRIDGE_OS_VERSION_MIN_REQUIRED >= 70000   || \
+        __DRIVERKIT_VERSION_MIN_REQUIRED >= __DRIVERKIT_22_0
+#    define SIMD_LIBRARY_VERSION 5
+#   elif   __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_12_0   || \
+        __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_15_0 || \
+         __WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_8_0 || \
+            __TV_OS_VERSION_MIN_REQUIRED >= __TVOS_15_0   || \
+        __BRIDGE_OS_VERSION_MIN_REQUIRED >= 60000   || \
+        __DRIVERKIT_VERSION_MIN_REQUIRED >= __DRIVERKIT_21_0
+#    define SIMD_LIBRARY_VERSION 4
+#   elif __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_13   || \
+        __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_11_0 || \
+         __WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_4_0 || \
+            __TV_OS_VERSION_MIN_REQUIRED >= __TVOS_11_0   || \
+        __DRIVERKIT_VERSION_MIN_REQUIRED >= __DRIVERKIT_19_0
+#    define SIMD_LIBRARY_VERSION 3
+#   elif __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_12   || \
+        __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_10_0 || \
+         __WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_3_0 || \
+            __TV_OS_VERSION_MIN_REQUIRED >= __TVOS_10_0
+#    define SIMD_LIBRARY_VERSION 2
+#   elif __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10   || \
+        __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
+#    define SIMD_LIBRARY_VERSION 1
+#   else
+#    define SIMD_LIBRARY_VERSION 0
+#   endif
+#  else /* !__has_include() */
+#   define SIMD_LIBRARY_VERSION 3
+#   define __API_AVAILABLE(...) /* Nothing */
+#  endif
+
+/*  The simd types interoperate with the native simd intrinsic types for each
+ *  architecture; the headers that define those types and operations are
+ *  automatically included with simd.h                                        */
+#  if defined __ARM_NEON__
+#   include 
+#  elif defined __i386__ || defined __x86_64__
+#   include 
+#  endif
+
+/*  Define a number of function attributes used by the simd functions.        */
+#  if __has_attribute(__always_inline__)
+#   define SIMD_INLINE  __attribute__((__always_inline__))
+#  else
+#   define SIMD_INLINE  inline
+#  endif
+
+#  if __has_attribute(__const__)
+#   define SIMD_CONST   __attribute__((__const__))
+#  else
+#   define SIMD_CONST   /* nothing */
+#  endif
+
+#  if __has_attribute(__nodebug__)
+#   define SIMD_NODEBUG __attribute__((__nodebug__))
+#  else
+#   define SIMD_NODEBUG /* nothing */
+#  endif
+
+#  if __has_attribute(__deprecated__)
+#   define SIMD_DEPRECATED(message) __attribute__((__deprecated__(message)))
+#  else
+#   define SIMD_DEPRECATED(message) /* nothing */
+#  endif
+
+#define SIMD_OVERLOAD __attribute__((__overloadable__))
+#define SIMD_CPPFUNC  SIMD_INLINE SIMD_CONST SIMD_NODEBUG
+#define SIMD_CFUNC    SIMD_CPPFUNC SIMD_OVERLOAD
+#define SIMD_NOINLINE SIMD_CONST SIMD_NODEBUG SIMD_OVERLOAD
+#define SIMD_NONCONST SIMD_INLINE SIMD_NODEBUG SIMD_OVERLOAD
+#define __SIMD_INLINE__     SIMD_CPPFUNC
+#define __SIMD_ATTRIBUTES__ SIMD_CFUNC
+#define __SIMD_OVERLOAD__   SIMD_OVERLOAD
+
+#if defined __cplusplus
+/*! @abstract A boolean scalar.                                               */
+typedef  bool simd_bool;
+#else
+/*! @abstract A boolean scalar.                                               */
+typedef _Bool simd_bool;
+#endif
+/*! @abstract A boolean scalar.
+ *  @discussion This type is deprecated; In C or Objective-C sources, use
+ *  `_Bool` instead. In C++ sources, use `bool`.                              */
+typedef simd_bool __SIMD_BOOLEAN_TYPE__;
+
+# endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
+#endif /* defined SIMD_BASE */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/simd/math.h b/lib/libc/include/any-macos.13-any/simd/math.h
new file mode 100644
index 0000000000000000000000000000000000000000..9b8ce556f06cf0dc85cd90907acab437c3fe9731
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/simd/math.h
@@ -0,0 +1,5996 @@
+/*! @header
+ *  The interfaces declared in this header provide elementwise math operations
+ *  on vectors; each lane of the result vector depends only on the data in the
+ *  corresponding lane of the argument(s) to the function.
+ *
+ *  You should not use the C functions declared in this header directly (these
+ *  are functions with names like `__tg_cos(x)`). These are merely
+ *  implementation details of  overloading; instead of calling
+ *  `__tg_cos(x)`, call `cos(x)`. If you are writing C++, use `simd::cos(x)`.
+ *
+ *  Note that while these vector functions are relatively recent additions,
+ *  scalar fallback is provided for all of them, so they are available even
+ *  when targeting older OS versions.
+ *
+ *  The following functions are available:
+ *
+ *    C name        C++ name          Notes
+ *    ----------------------------------------------------------------------
+ *    acos(x)       simd::acos(x)     
+ *    asin(x)       simd::asin(x)
+ *    atan(x)       simd::atan(x)
+ *    atan2(y,x)    simd::atan2(y,x)  The argument order matches the scalar
+ *                                    atan2 function, which gives the angle
+ *                                    of a line with slope y/x.
+ *    cos(x)        simd::cos(x)
+ *    sin(x)        simd::sin(x)
+ *    tan(x)        simd::tan(x)
+ *    sincos(x)     simd::sincos(x)   Computes sin(x) and cos(x) more efficiently
+ *
+ *    cospi(x)      simd::cospi(x)    Returns cos(pi*x), sin(pi*x), tan(pi*x)
+ *    sinpi(x)      simd::sinpi(x)    more efficiently and accurately than
+ *    tanpi(x)      simd::tanpi(x)    would otherwise be possible
+ *    sincospi(x)   simd::sincospi(x) Computes sin(pi*x) and cos(pi*x) more efficiently
+ *
+ *    acosh(x)      simd::acosh(x)
+ *    asinh(x)      simd::asinh(x)
+ *    atanh(x)      simd::atanh(x)
+ *
+ *    cosh(x)       simd::cosh(x)
+ *    sinh(x)       simd::sinh(x)
+ *    tanh(x)       simd::tanh(x)
+ *
+ *    exp(x)        simd::exp(x)
+ *    exp2(x)       simd::exp2(x)
+ *    exp10(x)      simd::exp10(x)    More efficient that pow(10,x).
+ *    expm1(x)      simd::expm1(x)    exp(x)-1, accurate even for tiny x.
+ *
+ *    log(x)        simd::log(x)
+ *    log2(x)       simd::log2(x)
+ *    log10(x)      simd::log10(x)
+ *    log1p(x)      simd::log1p(x)    log(1+x), accurate even for tiny x.
+ *
+ *    fabs(x)       simd::fabs(x)
+ *    cbrt(x)       simd::cbrt(x)
+ *    sqrt(x)       simd::sqrt(x)
+ *    pow(x,y)      simd::pow(x,y)
+ *    copysign(x,y) simd::copysign(x,y)
+ *    hypot(x,y)    simd::hypot(x,y)  sqrt(x*x + y*y), computed without
+ *                                    overflow.1
+ *    erf(x)        simd::erf(x)
+ *    erfc(x)       simd::erfc(x)
+ *    tgamma(x)     simd::tgamma(x)
+ *    lgamma(x)     simd::lgamma(x)
+ *
+ *    fmod(x,y)      simd::fmod(x,y)
+ *    remainder(x,y) simd::remainder(x,y)
+ *
+ *    ceil(x)       simd::ceil(x)
+ *    floor(x)      simd::floor(x)
+ *    rint(x)       simd::rint(x)
+ *    round(x)      simd::round(x)
+ *    trunc(x)      simd::trunc(x)
+ *
+ *    fdim(x,y)     simd::fdim(x,y)
+ *    fmax(x,y)     simd::fmax(x,y)   When one argument to fmin or fmax is
+ *    fmin(x,y)     simd::fmin(x,y)   constant, use it as the *second* (y)
+ *                                    argument to get better codegen on some
+ *                                    architectures. E.g., write fmin(x,2)
+ *                                    instead of fmin(2,x).
+ *    fma(x,y,z)    simd::fma(x,y,z)  Fast on arm64 and when targeting AVX2
+ *                                    and later; may be quite expensive on
+ *                                    older hardware.
+ *    simd_muladd(x,y,z) simd::muladd(x,y,z)
+ *  @copyright 2014-2017 Apple, Inc. All rights reserved.
+ *  @unsorted                                                                 */
+
+#ifndef SIMD_MATH_HEADER
+#define SIMD_MATH_HEADER
+
+#include 
+#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
+#include 
+#include 
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_acos(simd_float2 x);
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_acos(simd_float3 x);
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_acos(simd_float4 x);
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_acos(simd_float8 x);
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_acos(simd_float16 x);
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_acos(simd_double2 x);
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_acos(simd_double3 x);
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_acos(simd_double4 x);
+/*! @abstract Do not call this function; instead use `acos` in C and
+ *  Objective-C, and `simd::acos` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_acos(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_asin(simd_float2 x);
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_asin(simd_float3 x);
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_asin(simd_float4 x);
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_asin(simd_float8 x);
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_asin(simd_float16 x);
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_asin(simd_double2 x);
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_asin(simd_double3 x);
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_asin(simd_double4 x);
+/*! @abstract Do not call this function; instead use `asin` in C and
+ *  Objective-C, and `simd::asin` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_asin(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_atan(simd_float2 x);
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_atan(simd_float3 x);
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_atan(simd_float4 x);
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_atan(simd_float8 x);
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_atan(simd_float16 x);
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_atan(simd_double2 x);
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_atan(simd_double3 x);
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_atan(simd_double4 x);
+/*! @abstract Do not call this function; instead use `atan` in C and
+ *  Objective-C, and `simd::atan` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_atan(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_float2 __tg_cos(simd_float2 x);
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_float3 __tg_cos(simd_float3 x);
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_float4 __tg_cos(simd_float4 x);
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_float8 __tg_cos(simd_float8 x);
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_float16 __tg_cos(simd_float16 x);
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_double2 __tg_cos(simd_double2 x);
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_double3 __tg_cos(simd_double3 x);
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_double4 __tg_cos(simd_double4 x);
+/*! @abstract Do not call this function; instead use `cos` in C and
+ *  Objective-C, and `simd::cos` in C++.                                      */
+static inline SIMD_CFUNC simd_double8 __tg_cos(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_float2 __tg_sin(simd_float2 x);
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_float3 __tg_sin(simd_float3 x);
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_float4 __tg_sin(simd_float4 x);
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_float8 __tg_sin(simd_float8 x);
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_float16 __tg_sin(simd_float16 x);
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_double2 __tg_sin(simd_double2 x);
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_double3 __tg_sin(simd_double3 x);
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_double4 __tg_sin(simd_double4 x);
+/*! @abstract Do not call this function; instead use `sin` in C and
+ *  Objective-C, and `simd::sin` in C++.                                      */
+static inline SIMD_CFUNC simd_double8 __tg_sin(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_float2 __tg_tan(simd_float2 x);
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_float3 __tg_tan(simd_float3 x);
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_float4 __tg_tan(simd_float4 x);
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_float8 __tg_tan(simd_float8 x);
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_float16 __tg_tan(simd_float16 x);
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_double2 __tg_tan(simd_double2 x);
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_double3 __tg_tan(simd_double3 x);
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_double4 __tg_tan(simd_double4 x);
+/*! @abstract Do not call this function; instead use `tan` in C and
+ *  Objective-C, and `simd::tan` in C++.                                      */
+static inline SIMD_CFUNC simd_double8 __tg_tan(simd_double8 x);
+
+#if SIMD_LIBRARY_VERSION >= 1
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_cospi(simd_float2 x);
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_cospi(simd_float3 x);
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_cospi(simd_float4 x);
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_cospi(simd_float8 x);
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_cospi(simd_float16 x);
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_cospi(simd_double2 x);
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_cospi(simd_double3 x);
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_cospi(simd_double4 x);
+/*! @abstract Do not call this function; instead use `cospi` in C and
+ *  Objective-C, and `simd::cospi` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_cospi(simd_double8 x);
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 1
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_sinpi(simd_float2 x);
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_sinpi(simd_float3 x);
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_sinpi(simd_float4 x);
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_sinpi(simd_float8 x);
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_sinpi(simd_float16 x);
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_sinpi(simd_double2 x);
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_sinpi(simd_double3 x);
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_sinpi(simd_double4 x);
+/*! @abstract Do not call this function; instead use `sinpi` in C and
+ *  Objective-C, and `simd::sinpi` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_sinpi(simd_double8 x);
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 1
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_tanpi(simd_float2 x);
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_tanpi(simd_float3 x);
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_tanpi(simd_float4 x);
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_tanpi(simd_float8 x);
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_tanpi(simd_float16 x);
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_tanpi(simd_double2 x);
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_tanpi(simd_double3 x);
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_tanpi(simd_double4 x);
+/*! @abstract Do not call this function; instead use `tanpi` in C and
+ *  Objective-C, and `simd::tanpi` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_tanpi(simd_double8 x);
+#endif
+
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_acosh(simd_float2 x);
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_acosh(simd_float3 x);
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_acosh(simd_float4 x);
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_acosh(simd_float8 x);
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_acosh(simd_float16 x);
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_acosh(simd_double2 x);
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_acosh(simd_double3 x);
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_acosh(simd_double4 x);
+/*! @abstract Do not call this function; instead use `acosh` in C and
+ *  Objective-C, and `simd::acosh` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_acosh(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_asinh(simd_float2 x);
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_asinh(simd_float3 x);
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_asinh(simd_float4 x);
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_asinh(simd_float8 x);
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_asinh(simd_float16 x);
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_asinh(simd_double2 x);
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_asinh(simd_double3 x);
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_asinh(simd_double4 x);
+/*! @abstract Do not call this function; instead use `asinh` in C and
+ *  Objective-C, and `simd::asinh` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_asinh(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_atanh(simd_float2 x);
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_atanh(simd_float3 x);
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_atanh(simd_float4 x);
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_atanh(simd_float8 x);
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_atanh(simd_float16 x);
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_atanh(simd_double2 x);
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_atanh(simd_double3 x);
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_atanh(simd_double4 x);
+/*! @abstract Do not call this function; instead use `atanh` in C and
+ *  Objective-C, and `simd::atanh` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_atanh(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_cosh(simd_float2 x);
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_cosh(simd_float3 x);
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_cosh(simd_float4 x);
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_cosh(simd_float8 x);
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_cosh(simd_float16 x);
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_cosh(simd_double2 x);
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_cosh(simd_double3 x);
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_cosh(simd_double4 x);
+/*! @abstract Do not call this function; instead use `cosh` in C and
+ *  Objective-C, and `simd::cosh` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_cosh(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_sinh(simd_float2 x);
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_sinh(simd_float3 x);
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_sinh(simd_float4 x);
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_sinh(simd_float8 x);
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_sinh(simd_float16 x);
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_sinh(simd_double2 x);
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_sinh(simd_double3 x);
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_sinh(simd_double4 x);
+/*! @abstract Do not call this function; instead use `sinh` in C and
+ *  Objective-C, and `simd::sinh` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_sinh(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_tanh(simd_float2 x);
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_tanh(simd_float3 x);
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_tanh(simd_float4 x);
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_tanh(simd_float8 x);
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_tanh(simd_float16 x);
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_tanh(simd_double2 x);
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_tanh(simd_double3 x);
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_tanh(simd_double4 x);
+/*! @abstract Do not call this function; instead use `tanh` in C and
+ *  Objective-C, and `simd::tanh` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_tanh(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_float2 __tg_exp(simd_float2 x);
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_float3 __tg_exp(simd_float3 x);
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_float4 __tg_exp(simd_float4 x);
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_float8 __tg_exp(simd_float8 x);
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_float16 __tg_exp(simd_float16 x);
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_double2 __tg_exp(simd_double2 x);
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_double3 __tg_exp(simd_double3 x);
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_double4 __tg_exp(simd_double4 x);
+/*! @abstract Do not call this function; instead use `exp` in C and
+ *  Objective-C, and `simd::exp` in C++.                                      */
+static inline SIMD_CFUNC simd_double8 __tg_exp(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_exp2(simd_float2 x);
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_exp2(simd_float3 x);
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_exp2(simd_float4 x);
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_exp2(simd_float8 x);
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_exp2(simd_float16 x);
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_exp2(simd_double2 x);
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_exp2(simd_double3 x);
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_exp2(simd_double4 x);
+/*! @abstract Do not call this function; instead use `exp2` in C and
+ *  Objective-C, and `simd::exp2` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_exp2(simd_double8 x);
+
+#if SIMD_LIBRARY_VERSION >= 1
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_exp10(simd_float2 x);
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_exp10(simd_float3 x);
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_exp10(simd_float4 x);
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_exp10(simd_float8 x);
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_exp10(simd_float16 x);
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_exp10(simd_double2 x);
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_exp10(simd_double3 x);
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_exp10(simd_double4 x);
+/*! @abstract Do not call this function; instead use `exp10` in C and
+ *  Objective-C, and `simd::exp10` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_exp10(simd_double8 x);
+#endif
+
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_expm1(simd_float2 x);
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_expm1(simd_float3 x);
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_expm1(simd_float4 x);
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_expm1(simd_float8 x);
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_expm1(simd_float16 x);
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_expm1(simd_double2 x);
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_expm1(simd_double3 x);
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_expm1(simd_double4 x);
+/*! @abstract Do not call this function; instead use `expm1` in C and
+ *  Objective-C, and `simd::expm1` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_expm1(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_float2 __tg_log(simd_float2 x);
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_float3 __tg_log(simd_float3 x);
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_float4 __tg_log(simd_float4 x);
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_float8 __tg_log(simd_float8 x);
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_float16 __tg_log(simd_float16 x);
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_double2 __tg_log(simd_double2 x);
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_double3 __tg_log(simd_double3 x);
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_double4 __tg_log(simd_double4 x);
+/*! @abstract Do not call this function; instead use `log` in C and
+ *  Objective-C, and `simd::log` in C++.                                      */
+static inline SIMD_CFUNC simd_double8 __tg_log(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_log2(simd_float2 x);
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_log2(simd_float3 x);
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_log2(simd_float4 x);
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_log2(simd_float8 x);
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_log2(simd_float16 x);
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_log2(simd_double2 x);
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_log2(simd_double3 x);
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_log2(simd_double4 x);
+/*! @abstract Do not call this function; instead use `log2` in C and
+ *  Objective-C, and `simd::log2` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_log2(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_log10(simd_float2 x);
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_log10(simd_float3 x);
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_log10(simd_float4 x);
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_log10(simd_float8 x);
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_log10(simd_float16 x);
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_log10(simd_double2 x);
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_log10(simd_double3 x);
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_log10(simd_double4 x);
+/*! @abstract Do not call this function; instead use `log10` in C and
+ *  Objective-C, and `simd::log10` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_log10(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_log1p(simd_float2 x);
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_log1p(simd_float3 x);
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_log1p(simd_float4 x);
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_log1p(simd_float8 x);
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_log1p(simd_float16 x);
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_log1p(simd_double2 x);
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_log1p(simd_double3 x);
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_log1p(simd_double4 x);
+/*! @abstract Do not call this function; instead use `log1p` in C and
+ *  Objective-C, and `simd::log1p` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_log1p(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_fabs(simd_float2 x);
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_fabs(simd_float3 x);
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_fabs(simd_float4 x);
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_fabs(simd_float8 x);
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_fabs(simd_float16 x);
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_fabs(simd_double2 x);
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_fabs(simd_double3 x);
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_fabs(simd_double4 x);
+/*! @abstract Do not call this function; instead use `fabs` in C and
+ *  Objective-C, and `simd::fabs` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_fabs(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_cbrt(simd_float2 x);
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_cbrt(simd_float3 x);
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_cbrt(simd_float4 x);
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_cbrt(simd_float8 x);
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_cbrt(simd_float16 x);
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_cbrt(simd_double2 x);
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_cbrt(simd_double3 x);
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_cbrt(simd_double4 x);
+/*! @abstract Do not call this function; instead use `cbrt` in C and
+ *  Objective-C, and `simd::cbrt` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_cbrt(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_sqrt(simd_float2 x);
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_sqrt(simd_float3 x);
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_sqrt(simd_float4 x);
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_sqrt(simd_float8 x);
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_sqrt(simd_float16 x);
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_sqrt(simd_double2 x);
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_sqrt(simd_double3 x);
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_sqrt(simd_double4 x);
+/*! @abstract Do not call this function; instead use `sqrt` in C and
+ *  Objective-C, and `simd::sqrt` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_sqrt(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_float2 __tg_erf(simd_float2 x);
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_float3 __tg_erf(simd_float3 x);
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_float4 __tg_erf(simd_float4 x);
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_float8 __tg_erf(simd_float8 x);
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_float16 __tg_erf(simd_float16 x);
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_double2 __tg_erf(simd_double2 x);
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_double3 __tg_erf(simd_double3 x);
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_double4 __tg_erf(simd_double4 x);
+/*! @abstract Do not call this function; instead use `erf` in C and
+ *  Objective-C, and `simd::erf` in C++.                                      */
+static inline SIMD_CFUNC simd_double8 __tg_erf(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_erfc(simd_float2 x);
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_erfc(simd_float3 x);
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_erfc(simd_float4 x);
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_erfc(simd_float8 x);
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_erfc(simd_float16 x);
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_erfc(simd_double2 x);
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_erfc(simd_double3 x);
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_erfc(simd_double4 x);
+/*! @abstract Do not call this function; instead use `erfc` in C and
+ *  Objective-C, and `simd::erfc` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_erfc(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float2 __tg_tgamma(simd_float2 x);
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float3 __tg_tgamma(simd_float3 x);
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float4 __tg_tgamma(simd_float4 x);
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float8 __tg_tgamma(simd_float8 x);
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float16 __tg_tgamma(simd_float16 x);
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_double2 __tg_tgamma(simd_double2 x);
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_double3 __tg_tgamma(simd_double3 x);
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_double4 __tg_tgamma(simd_double4 x);
+/*! @abstract Do not call this function; instead use `tgamma` in C and
+ *  Objective-C, and `simd::tgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_double8 __tg_tgamma(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float2 __tg_lgamma(simd_float2 x);
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float3 __tg_lgamma(simd_float3 x);
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float4 __tg_lgamma(simd_float4 x);
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float8 __tg_lgamma(simd_float8 x);
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_float16 __tg_lgamma(simd_float16 x);
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_double2 __tg_lgamma(simd_double2 x);
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_double3 __tg_lgamma(simd_double3 x);
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_double4 __tg_lgamma(simd_double4 x);
+/*! @abstract Do not call this function; instead use `lgamma` in C and
+ *  Objective-C, and `simd::lgamma` in C++.                                   */
+static inline SIMD_CFUNC simd_double8 __tg_lgamma(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_ceil(simd_float2 x);
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_ceil(simd_float3 x);
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_ceil(simd_float4 x);
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_ceil(simd_float8 x);
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_ceil(simd_float16 x);
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_ceil(simd_double2 x);
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_ceil(simd_double3 x);
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_ceil(simd_double4 x);
+/*! @abstract Do not call this function; instead use `ceil` in C and
+ *  Objective-C, and `simd::ceil` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_ceil(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_floor(simd_float2 x);
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_floor(simd_float3 x);
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_floor(simd_float4 x);
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_floor(simd_float8 x);
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_floor(simd_float16 x);
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_floor(simd_double2 x);
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_floor(simd_double3 x);
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_floor(simd_double4 x);
+/*! @abstract Do not call this function; instead use `floor` in C and
+ *  Objective-C, and `simd::floor` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_floor(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_rint(simd_float2 x);
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_rint(simd_float3 x);
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_rint(simd_float4 x);
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_rint(simd_float8 x);
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_rint(simd_float16 x);
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_rint(simd_double2 x);
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_rint(simd_double3 x);
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_rint(simd_double4 x);
+/*! @abstract Do not call this function; instead use `rint` in C and
+ *  Objective-C, and `simd::rint` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_rint(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_round(simd_float2 x);
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_round(simd_float3 x);
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_round(simd_float4 x);
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_round(simd_float8 x);
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_round(simd_float16 x);
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_round(simd_double2 x);
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_round(simd_double3 x);
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_round(simd_double4 x);
+/*! @abstract Do not call this function; instead use `round` in C and
+ *  Objective-C, and `simd::round` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_round(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_trunc(simd_float2 x);
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_trunc(simd_float3 x);
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_trunc(simd_float4 x);
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_trunc(simd_float8 x);
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_trunc(simd_float16 x);
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_trunc(simd_double2 x);
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_trunc(simd_double3 x);
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_trunc(simd_double4 x);
+/*! @abstract Do not call this function; instead use `trunc` in C and
+ *  Objective-C, and `simd::trunc` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_trunc(simd_double8 x);
+
+#if SIMD_LIBRARY_VERSION >= 5
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_float2 x, simd_float2 *sinp, simd_float2 *cosp);
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_float3 x, simd_float3 *sinp, simd_float3 *cosp);
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_float4 x, simd_float4 *sinp, simd_float4 *cosp);
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_float8 x, simd_float8 *sinp, simd_float8 *cosp);
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_float16 x, simd_float16 *sinp, simd_float16 *cosp);
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_double2 x, simd_double2 *sinp, simd_double2 *cosp);
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_double3 x, simd_double3 *sinp, simd_double3 *cosp);
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_double4 x, simd_double4 *sinp, simd_double4 *cosp);
+/*! @abstract Do not call this function; instead use `sincos` in C and
+ *  Objective-C, and `simd::sincos` in C++.                                   */
+static inline SIMD_NONCONST void __tg_sincos(simd_double8 x, simd_double8 *sinp, simd_double8 *cosp);
+
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_float2 x, simd_float2 *sinp, simd_float2 *cosp);
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_float3 x, simd_float3 *sinp, simd_float3 *cosp);
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_float4 x, simd_float4 *sinp, simd_float4 *cosp);
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_float8 x, simd_float8 *sinp, simd_float8 *cosp);
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_float16 x, simd_float16 *sinp, simd_float16 *cosp);
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_double2 x, simd_double2 *sinp, simd_double2 *cosp);
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_double3 x, simd_double3 *sinp, simd_double3 *cosp);
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_double4 x, simd_double4 *sinp, simd_double4 *cosp);
+/*! @abstract Do not call this function; instead use `sincospi` in C and
+ *  Objective-C, and `simd::sincospi` in C++.                                 */
+static inline SIMD_NONCONST void __tg_sincospi(simd_double8 x, simd_double8 *sinp, simd_double8 *cosp);
+
+#endif
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_int2 __tg_isfinite(simd_float2 x);
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_int3 __tg_isfinite(simd_float3 x);
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_int4 __tg_isfinite(simd_float4 x);
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_int8 __tg_isfinite(simd_float8 x);
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_int16 __tg_isfinite(simd_float16 x);
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_long2 __tg_isfinite(simd_double2 x);
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_long3 __tg_isfinite(simd_double3 x);
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_long4 __tg_isfinite(simd_double4 x);
+/*! @abstract Do not call this function; instead use `isfinite` in C and
+ *  Objective-C, and `simd::isfinite` in C++.                                 */
+static inline SIMD_CFUNC simd_long8 __tg_isfinite(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_int2 __tg_isinf(simd_float2 x);
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_int3 __tg_isinf(simd_float3 x);
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_int4 __tg_isinf(simd_float4 x);
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_int8 __tg_isinf(simd_float8 x);
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_int16 __tg_isinf(simd_float16 x);
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_long2 __tg_isinf(simd_double2 x);
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_long3 __tg_isinf(simd_double3 x);
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_long4 __tg_isinf(simd_double4 x);
+/*! @abstract Do not call this function; instead use `isinf` in C and
+ *  Objective-C, and `simd::isinf` in C++.                                    */
+static inline SIMD_CFUNC simd_long8 __tg_isinf(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_int2 __tg_isnan(simd_float2 x);
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_int3 __tg_isnan(simd_float3 x);
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_int4 __tg_isnan(simd_float4 x);
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_int8 __tg_isnan(simd_float8 x);
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_int16 __tg_isnan(simd_float16 x);
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_long2 __tg_isnan(simd_double2 x);
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_long3 __tg_isnan(simd_double3 x);
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_long4 __tg_isnan(simd_double4 x);
+/*! @abstract Do not call this function; instead use `isnan` in C and
+ *  Objective-C, and `simd::isnan` in C++.                                    */
+static inline SIMD_CFUNC simd_long8 __tg_isnan(simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_int2 __tg_isnormal(simd_float2 x);
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_int3 __tg_isnormal(simd_float3 x);
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_int4 __tg_isnormal(simd_float4 x);
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_int8 __tg_isnormal(simd_float8 x);
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_int16 __tg_isnormal(simd_float16 x);
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_long2 __tg_isnormal(simd_double2 x);
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_long3 __tg_isnormal(simd_double3 x);
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_long4 __tg_isnormal(simd_double4 x);
+/*! @abstract Do not call this function; instead use `isnormal` in C and
+ *  Objective-C, and `simd::isnormal` in C++.                                 */
+static inline SIMD_CFUNC simd_long8 __tg_isnormal(simd_double8 x);
+
+
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_atan2(simd_float2 y, simd_float2 x);
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_atan2(simd_float3 y, simd_float3 x);
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_atan2(simd_float4 y, simd_float4 x);
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_atan2(simd_float8 y, simd_float8 x);
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_atan2(simd_float16 y, simd_float16 x);
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_atan2(simd_double2 y, simd_double2 x);
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_atan2(simd_double3 y, simd_double3 x);
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_atan2(simd_double4 y, simd_double4 x);
+/*! @abstract Do not call this function; instead use `atan2` in C and
+ *  Objective-C, and `simd::atan2` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_atan2(simd_double8 y, simd_double8 x);
+
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_float2 __tg_hypot(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_float3 __tg_hypot(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_float4 __tg_hypot(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_float8 __tg_hypot(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_float16 __tg_hypot(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_double2 __tg_hypot(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_double3 __tg_hypot(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_double4 __tg_hypot(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `hypot` in C and
+ *  Objective-C, and `simd::hypot` in C++.                                    */
+static inline SIMD_CFUNC simd_double8 __tg_hypot(simd_double8 x, simd_double8 y);
+
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_float2 __tg_pow(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_float3 __tg_pow(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_float4 __tg_pow(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_float8 __tg_pow(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_float16 __tg_pow(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_double2 __tg_pow(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_double3 __tg_pow(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_double4 __tg_pow(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `pow` in C and
+ *  Objective-C, and `simd::pow` in C++.                                      */
+static inline SIMD_CFUNC simd_double8 __tg_pow(simd_double8 x, simd_double8 y);
+
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_fmod(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_fmod(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_fmod(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_fmod(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_fmod(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_fmod(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_fmod(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_fmod(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `fmod` in C and
+ *  Objective-C, and `simd::fmod` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_fmod(simd_double8 x, simd_double8 y);
+
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_float2 __tg_remainder(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_float3 __tg_remainder(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_float4 __tg_remainder(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_float8 __tg_remainder(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_float16 __tg_remainder(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_double2 __tg_remainder(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_double3 __tg_remainder(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_double4 __tg_remainder(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `remainder` in C and
+ *  Objective-C, and `simd::remainder` in C++.                                */
+static inline SIMD_CFUNC simd_double8 __tg_remainder(simd_double8 x, simd_double8 y);
+
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_float2 __tg_copysign(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_float3 __tg_copysign(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_float4 __tg_copysign(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_float8 __tg_copysign(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_float16 __tg_copysign(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_double2 __tg_copysign(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_double3 __tg_copysign(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_double4 __tg_copysign(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `copysign` in C and
+ *  Objective-C, and `simd::copysign` in C++.                                 */
+static inline SIMD_CFUNC simd_double8 __tg_copysign(simd_double8 x, simd_double8 y);
+
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_float2 __tg_nextafter(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_float3 __tg_nextafter(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_float4 __tg_nextafter(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_float8 __tg_nextafter(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_float16 __tg_nextafter(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_double2 __tg_nextafter(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_double3 __tg_nextafter(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_double4 __tg_nextafter(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `nextafter` in C and
+ *  Objective-C, and `simd::nextafter` in C++.                                */
+static inline SIMD_CFUNC simd_double8 __tg_nextafter(simd_double8 x, simd_double8 y);
+
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_fdim(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_fdim(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_fdim(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_fdim(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_fdim(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_fdim(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_fdim(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_fdim(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `fdim` in C and
+ *  Objective-C, and `simd::fdim` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_fdim(simd_double8 x, simd_double8 y);
+
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_fmax(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_fmax(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_fmax(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_fmax(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_fmax(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_fmax(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_fmax(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_fmax(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `fmax` in C and
+ *  Objective-C, and `simd::fmax` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_fmax(simd_double8 x, simd_double8 y);
+
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_float2 __tg_fmin(simd_float2 x, simd_float2 y);
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_float3 __tg_fmin(simd_float3 x, simd_float3 y);
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_float4 __tg_fmin(simd_float4 x, simd_float4 y);
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_float8 __tg_fmin(simd_float8 x, simd_float8 y);
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_float16 __tg_fmin(simd_float16 x, simd_float16 y);
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_double2 __tg_fmin(simd_double2 x, simd_double2 y);
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_double3 __tg_fmin(simd_double3 x, simd_double3 y);
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_double4 __tg_fmin(simd_double4 x, simd_double4 y);
+/*! @abstract Do not call this function; instead use `fmin` in C and
+ *  Objective-C, and `simd::fmin` in C++.                                     */
+static inline SIMD_CFUNC simd_double8 __tg_fmin(simd_double8 x, simd_double8 y);
+
+
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_float2 __tg_fma(simd_float2 x, simd_float2 y, simd_float2 z);
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_float3 __tg_fma(simd_float3 x, simd_float3 y, simd_float3 z);
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_float4 __tg_fma(simd_float4 x, simd_float4 y, simd_float4 z);
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_float8 __tg_fma(simd_float8 x, simd_float8 y, simd_float8 z);
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_float16 __tg_fma(simd_float16 x, simd_float16 y, simd_float16 z);
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_double2 __tg_fma(simd_double2 x, simd_double2 y, simd_double2 z);
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_double3 __tg_fma(simd_double3 x, simd_double3 y, simd_double3 z);
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_double4 __tg_fma(simd_double4 x, simd_double4 y, simd_double4 z);
+/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
+ *  and `simd::fma` in C++.                                                   */
+static inline SIMD_CFUNC simd_double8 __tg_fma(simd_double8 x, simd_double8 y, simd_double8 z);
+    
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC float simd_muladd(float x, float y, float z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_float2 simd_muladd(simd_float2 x, simd_float2 y, simd_float2 z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_float3 simd_muladd(simd_float3 x, simd_float3 y, simd_float3 z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_float4 simd_muladd(simd_float4 x, simd_float4 y, simd_float4 z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_float8 simd_muladd(simd_float8 x, simd_float8 y, simd_float8 z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_float16 simd_muladd(simd_float16 x, simd_float16 y, simd_float16 z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC double simd_muladd(double x, double y, double z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_double2 simd_muladd(simd_double2 x, simd_double2 y, simd_double2 z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_double3 simd_muladd(simd_double3 x, simd_double3 y, simd_double3 z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_double4 simd_muladd(simd_double4 x, simd_double4 y, simd_double4 z);
+/*! @abstract Computes accum + x*y by the most efficient means available;
+ *  either a fused multiply add or separate multiply and add instructions.    */
+static inline SIMD_CFUNC simd_double8 simd_muladd(simd_double8 x, simd_double8 y, simd_double8 z);
+    
+#ifdef __cplusplus
+} /* extern "C" */
+
+#include 
+/*! @abstract Do not call this function directly; use simd::acos instead.     */
+static SIMD_CPPFUNC float __tg_acos(float x) { return ::acosf(x); }
+/*! @abstract Do not call this function directly; use simd::acos instead.     */
+static SIMD_CPPFUNC double __tg_acos(double x) { return ::acos(x); }
+/*! @abstract Do not call this function directly; use simd::asin instead.     */
+static SIMD_CPPFUNC float __tg_asin(float x) { return ::asinf(x); }
+/*! @abstract Do not call this function directly; use simd::asin instead.     */
+static SIMD_CPPFUNC double __tg_asin(double x) { return ::asin(x); }
+/*! @abstract Do not call this function directly; use simd::atan instead.     */
+static SIMD_CPPFUNC float __tg_atan(float x) { return ::atanf(x); }
+/*! @abstract Do not call this function directly; use simd::atan instead.     */
+static SIMD_CPPFUNC double __tg_atan(double x) { return ::atan(x); }
+/*! @abstract Do not call this function directly; use simd::cos instead.      */
+static SIMD_CPPFUNC float __tg_cos(float x) { return ::cosf(x); }
+/*! @abstract Do not call this function directly; use simd::cos instead.      */
+static SIMD_CPPFUNC double __tg_cos(double x) { return ::cos(x); }
+/*! @abstract Do not call this function directly; use simd::sin instead.      */
+static SIMD_CPPFUNC float __tg_sin(float x) { return ::sinf(x); }
+/*! @abstract Do not call this function directly; use simd::sin instead.      */
+static SIMD_CPPFUNC double __tg_sin(double x) { return ::sin(x); }
+/*! @abstract Do not call this function directly; use simd::tan instead.      */
+static SIMD_CPPFUNC float __tg_tan(float x) { return ::tanf(x); }
+/*! @abstract Do not call this function directly; use simd::tan instead.      */
+static SIMD_CPPFUNC double __tg_tan(double x) { return ::tan(x); }
+/*! @abstract Do not call this function directly; use simd::cospi instead.    */
+static SIMD_CPPFUNC float __tg_cospi(float x) { return ::__cospif(x); }
+/*! @abstract Do not call this function directly; use simd::cospi instead.    */
+static SIMD_CPPFUNC double __tg_cospi(double x) { return ::__cospi(x); }
+/*! @abstract Do not call this function directly; use simd::sinpi instead.    */
+static SIMD_CPPFUNC float __tg_sinpi(float x) { return ::__sinpif(x); }
+/*! @abstract Do not call this function directly; use simd::sinpi instead.    */
+static SIMD_CPPFUNC double __tg_sinpi(double x) { return ::__sinpi(x); }
+/*! @abstract Do not call this function directly; use simd::tanpi instead.    */
+static SIMD_CPPFUNC float __tg_tanpi(float x) { return ::__tanpif(x); }
+/*! @abstract Do not call this function directly; use simd::tanpi instead.    */
+static SIMD_CPPFUNC double __tg_tanpi(double x) { return ::__tanpi(x); }
+/*! @abstract Do not call this function directly; use simd::acosh instead.    */
+static SIMD_CPPFUNC float __tg_acosh(float x) { return ::acoshf(x); }
+/*! @abstract Do not call this function directly; use simd::acosh instead.    */
+static SIMD_CPPFUNC double __tg_acosh(double x) { return ::acosh(x); }
+/*! @abstract Do not call this function directly; use simd::asinh instead.    */
+static SIMD_CPPFUNC float __tg_asinh(float x) { return ::asinhf(x); }
+/*! @abstract Do not call this function directly; use simd::asinh instead.    */
+static SIMD_CPPFUNC double __tg_asinh(double x) { return ::asinh(x); }
+/*! @abstract Do not call this function directly; use simd::atanh instead.    */
+static SIMD_CPPFUNC float __tg_atanh(float x) { return ::atanhf(x); }
+/*! @abstract Do not call this function directly; use simd::atanh instead.    */
+static SIMD_CPPFUNC double __tg_atanh(double x) { return ::atanh(x); }
+/*! @abstract Do not call this function directly; use simd::cosh instead.     */
+static SIMD_CPPFUNC float __tg_cosh(float x) { return ::coshf(x); }
+/*! @abstract Do not call this function directly; use simd::cosh instead.     */
+static SIMD_CPPFUNC double __tg_cosh(double x) { return ::cosh(x); }
+/*! @abstract Do not call this function directly; use simd::sinh instead.     */
+static SIMD_CPPFUNC float __tg_sinh(float x) { return ::sinhf(x); }
+/*! @abstract Do not call this function directly; use simd::sinh instead.     */
+static SIMD_CPPFUNC double __tg_sinh(double x) { return ::sinh(x); }
+/*! @abstract Do not call this function directly; use simd::tanh instead.     */
+static SIMD_CPPFUNC float __tg_tanh(float x) { return ::tanhf(x); }
+/*! @abstract Do not call this function directly; use simd::tanh instead.     */
+static SIMD_CPPFUNC double __tg_tanh(double x) { return ::tanh(x); }
+/*! @abstract Do not call this function directly; use simd::exp instead.      */
+static SIMD_CPPFUNC float __tg_exp(float x) { return ::expf(x); }
+/*! @abstract Do not call this function directly; use simd::exp instead.      */
+static SIMD_CPPFUNC double __tg_exp(double x) { return ::exp(x); }
+/*! @abstract Do not call this function directly; use simd::exp2 instead.     */
+static SIMD_CPPFUNC float __tg_exp2(float x) { return ::exp2f(x); }
+/*! @abstract Do not call this function directly; use simd::exp2 instead.     */
+static SIMD_CPPFUNC double __tg_exp2(double x) { return ::exp2(x); }
+/*! @abstract Do not call this function directly; use simd::exp10 instead.    */
+static SIMD_CPPFUNC float __tg_exp10(float x) { return ::__exp10f(x); }
+/*! @abstract Do not call this function directly; use simd::exp10 instead.    */
+static SIMD_CPPFUNC double __tg_exp10(double x) { return ::__exp10(x); }
+/*! @abstract Do not call this function directly; use simd::expm1 instead.    */
+static SIMD_CPPFUNC float __tg_expm1(float x) { return ::expm1f(x); }
+/*! @abstract Do not call this function directly; use simd::expm1 instead.    */
+static SIMD_CPPFUNC double __tg_expm1(double x) { return ::expm1(x); }
+/*! @abstract Do not call this function directly; use simd::log instead.      */
+static SIMD_CPPFUNC float __tg_log(float x) { return ::logf(x); }
+/*! @abstract Do not call this function directly; use simd::log instead.      */
+static SIMD_CPPFUNC double __tg_log(double x) { return ::log(x); }
+/*! @abstract Do not call this function directly; use simd::log2 instead.     */
+static SIMD_CPPFUNC float __tg_log2(float x) { return ::log2f(x); }
+/*! @abstract Do not call this function directly; use simd::log2 instead.     */
+static SIMD_CPPFUNC double __tg_log2(double x) { return ::log2(x); }
+/*! @abstract Do not call this function directly; use simd::log10 instead.    */
+static SIMD_CPPFUNC float __tg_log10(float x) { return ::log10f(x); }
+/*! @abstract Do not call this function directly; use simd::log10 instead.    */
+static SIMD_CPPFUNC double __tg_log10(double x) { return ::log10(x); }
+/*! @abstract Do not call this function directly; use simd::log1p instead.    */
+static SIMD_CPPFUNC float __tg_log1p(float x) { return ::log1pf(x); }
+/*! @abstract Do not call this function directly; use simd::log1p instead.    */
+static SIMD_CPPFUNC double __tg_log1p(double x) { return ::log1p(x); }
+/*! @abstract Do not call this function directly; use simd::fabs instead.     */
+static SIMD_CPPFUNC float __tg_fabs(float x) { return ::fabsf(x); }
+/*! @abstract Do not call this function directly; use simd::fabs instead.     */
+static SIMD_CPPFUNC double __tg_fabs(double x) { return ::fabs(x); }
+/*! @abstract Do not call this function directly; use simd::cbrt instead.     */
+static SIMD_CPPFUNC float __tg_cbrt(float x) { return ::cbrtf(x); }
+/*! @abstract Do not call this function directly; use simd::cbrt instead.     */
+static SIMD_CPPFUNC double __tg_cbrt(double x) { return ::cbrt(x); }
+/*! @abstract Do not call this function directly; use simd::sqrt instead.     */
+static SIMD_CPPFUNC float __tg_sqrt(float x) { return ::sqrtf(x); }
+/*! @abstract Do not call this function directly; use simd::sqrt instead.     */
+static SIMD_CPPFUNC double __tg_sqrt(double x) { return ::sqrt(x); }
+/*! @abstract Do not call this function directly; use simd::erf instead.      */
+static SIMD_CPPFUNC float __tg_erf(float x) { return ::erff(x); }
+/*! @abstract Do not call this function directly; use simd::erf instead.      */
+static SIMD_CPPFUNC double __tg_erf(double x) { return ::erf(x); }
+/*! @abstract Do not call this function directly; use simd::erfc instead.     */
+static SIMD_CPPFUNC float __tg_erfc(float x) { return ::erfcf(x); }
+/*! @abstract Do not call this function directly; use simd::erfc instead.     */
+static SIMD_CPPFUNC double __tg_erfc(double x) { return ::erfc(x); }
+/*! @abstract Do not call this function directly; use simd::tgamma instead.   */
+static SIMD_CPPFUNC float __tg_tgamma(float x) { return ::tgammaf(x); }
+/*! @abstract Do not call this function directly; use simd::tgamma instead.   */
+static SIMD_CPPFUNC double __tg_tgamma(double x) { return ::tgamma(x); }
+/*! @abstract Do not call this function directly; use simd::lgamma instead.   */
+static SIMD_CPPFUNC float __tg_lgamma(float x) { return ::lgammaf(x); }
+/*! @abstract Do not call this function directly; use simd::lgamma instead.   */
+static SIMD_CPPFUNC double __tg_lgamma(double x) { return ::lgamma(x); }
+/*! @abstract Do not call this function directly; use simd::ceil instead.     */
+static SIMD_CPPFUNC float __tg_ceil(float x) { return ::ceilf(x); }
+/*! @abstract Do not call this function directly; use simd::ceil instead.     */
+static SIMD_CPPFUNC double __tg_ceil(double x) { return ::ceil(x); }
+/*! @abstract Do not call this function directly; use simd::floor instead.    */
+static SIMD_CPPFUNC float __tg_floor(float x) { return ::floorf(x); }
+/*! @abstract Do not call this function directly; use simd::floor instead.    */
+static SIMD_CPPFUNC double __tg_floor(double x) { return ::floor(x); }
+/*! @abstract Do not call this function directly; use simd::rint instead.     */
+static SIMD_CPPFUNC float __tg_rint(float x) { return ::rintf(x); }
+/*! @abstract Do not call this function directly; use simd::rint instead.     */
+static SIMD_CPPFUNC double __tg_rint(double x) { return ::rint(x); }
+/*! @abstract Do not call this function directly; use simd::round instead.    */
+static SIMD_CPPFUNC float __tg_round(float x) { return ::roundf(x); }
+/*! @abstract Do not call this function directly; use simd::round instead.    */
+static SIMD_CPPFUNC double __tg_round(double x) { return ::round(x); }
+/*! @abstract Do not call this function directly; use simd::trunc instead.    */
+static SIMD_CPPFUNC float __tg_trunc(float x) { return ::truncf(x); }
+/*! @abstract Do not call this function directly; use simd::trunc instead.    */
+static SIMD_CPPFUNC double __tg_trunc(double x) { return ::trunc(x); }
+#if SIMD_LIBRARY_VERSION >= 5
+/*! @abstract Do not call this function directly; use simd::sincos instead.   */
+static SIMD_INLINE SIMD_NODEBUG void __tg_sincos(float x, float *sinp, float *cosp) { ::__sincosf(x, sinp, cosp); }
+/*! @abstract Do not call this function directly; use simd::sincos instead.   */
+static SIMD_INLINE SIMD_NODEBUG void __tg_sincos(double x, double *sinp, double *cosp) { ::__sincos(x, sinp, cosp); }
+/*! @abstract Do not call this function directly; use simd::sincospi
+ *  instead.                                                                  */
+static SIMD_INLINE SIMD_NODEBUG void __tg_sincospi(float x, float *sinp, float *cosp) { ::__sincospif(x, sinp, cosp); }
+/*! @abstract Do not call this function directly; use simd::sincospi
+ *  instead.                                                                  */
+static SIMD_INLINE SIMD_NODEBUG void __tg_sincospi(double x, double *sinp, double *cosp) { ::__sincospi(x, sinp, cosp); }
+#endif
+/*! @abstract Do not call this function directly; use simd::isfinite
+ *  instead.                                                                  */
+static SIMD_CPPFUNC float __tg_isfinite(float x) { return ::isfinite(x); }
+/*! @abstract Do not call this function directly; use simd::isfinite
+ *  instead.                                                                  */
+static SIMD_CPPFUNC double __tg_isfinite(double x) { return ::isfinite(x); }
+/*! @abstract Do not call this function directly; use simd::isinf instead.    */
+static SIMD_CPPFUNC float __tg_isinf(float x) { return ::isinf(x); }
+/*! @abstract Do not call this function directly; use simd::isinf instead.    */
+static SIMD_CPPFUNC double __tg_isinf(double x) { return ::isinf(x); }
+/*! @abstract Do not call this function directly; use simd::isnan instead.    */
+static SIMD_CPPFUNC float __tg_isnan(float x) { return ::isnan(x); }
+/*! @abstract Do not call this function directly; use simd::isnan instead.    */
+static SIMD_CPPFUNC double __tg_isnan(double x) { return ::isnan(x); }
+/*! @abstract Do not call this function directly; use simd::isnormal
+ *  instead.                                                                  */
+static SIMD_CPPFUNC float __tg_isnormal(float x) { return ::isnormal(x); }
+/*! @abstract Do not call this function directly; use simd::isnormal
+ *  instead.                                                                  */
+static SIMD_CPPFUNC double __tg_isnormal(double x) { return ::isnormal(x); }
+/*! @abstract Do not call this function directly; use simd::atan2 instead.    */
+static SIMD_CPPFUNC float __tg_atan2(float x, float y) { return ::atan2f(x, y); }
+/*! @abstract Do not call this function directly; use simd::atan2 instead.    */
+static SIMD_CPPFUNC double __tg_atan2(double x, double y) { return ::atan2(x, y); }
+/*! @abstract Do not call this function directly; use simd::hypot instead.    */
+static SIMD_CPPFUNC float __tg_hypot(float x, float y) { return ::hypotf(x, y); }
+/*! @abstract Do not call this function directly; use simd::hypot instead.    */
+static SIMD_CPPFUNC double __tg_hypot(double x, double y) { return ::hypot(x, y); }
+/*! @abstract Do not call this function directly; use simd::pow instead.      */
+static SIMD_CPPFUNC float __tg_pow(float x, float y) { return ::powf(x, y); }
+/*! @abstract Do not call this function directly; use simd::pow instead.      */
+static SIMD_CPPFUNC double __tg_pow(double x, double y) { return ::pow(x, y); }
+/*! @abstract Do not call this function directly; use simd::fmod instead.     */
+static SIMD_CPPFUNC float __tg_fmod(float x, float y) { return ::fmodf(x, y); }
+/*! @abstract Do not call this function directly; use simd::fmod instead.     */
+static SIMD_CPPFUNC double __tg_fmod(double x, double y) { return ::fmod(x, y); }
+/*! @abstract Do not call this function directly; use simd::remainder
+ *  instead.                                                                  */
+static SIMD_CPPFUNC float __tg_remainder(float x, float y) { return ::remainderf(x, y); }
+/*! @abstract Do not call this function directly; use simd::remainder
+ *  instead.                                                                  */
+static SIMD_CPPFUNC double __tg_remainder(double x, double y) { return ::remainder(x, y); }
+/*! @abstract Do not call this function directly; use simd::copysign
+ *  instead.                                                                  */
+static SIMD_CPPFUNC float __tg_copysign(float x, float y) { return ::copysignf(x, y); }
+/*! @abstract Do not call this function directly; use simd::copysign
+ *  instead.                                                                  */
+static SIMD_CPPFUNC double __tg_copysign(double x, double y) { return ::copysign(x, y); }
+/*! @abstract Do not call this function directly; use simd::nextafter
+ *  instead.                                                                  */
+static SIMD_CPPFUNC float __tg_nextafter(float x, float y) { return ::nextafterf(x, y); }
+/*! @abstract Do not call this function directly; use simd::nextafter
+ *  instead.                                                                  */
+static SIMD_CPPFUNC double __tg_nextafter(double x, double y) { return ::nextafter(x, y); }
+/*! @abstract Do not call this function directly; use simd::fdim instead.     */
+static SIMD_CPPFUNC float __tg_fdim(float x, float y) { return ::fdimf(x, y); }
+/*! @abstract Do not call this function directly; use simd::fdim instead.     */
+static SIMD_CPPFUNC double __tg_fdim(double x, double y) { return ::fdim(x, y); }
+/*! @abstract Do not call this function directly; use simd::fmax instead.     */
+static SIMD_CPPFUNC float __tg_fmax(float x, float y) { return ::fmaxf(x, y); }
+/*! @abstract Do not call this function directly; use simd::fmax instead.     */
+static SIMD_CPPFUNC double __tg_fmax(double x, double y) { return ::fmax(x, y); }
+/*! @abstract Do not call this function directly; use simd::fmin instead.     */
+static SIMD_CPPFUNC float __tg_fmin(float x, float y) { return ::fminf(x, y); }
+/*! @abstract Do not call this function directly; use simd::fmin instead.     */
+static SIMD_CPPFUNC double __tg_fmin(double x, double y) { return ::fmin(x, y); }
+/*! @abstract Do not call this function directly; use simd::fma instead.      */
+static SIMD_CPPFUNC float __tg_fma(float x, float y, float z) { return ::fmaf(x, y, z); }
+/*! @abstract Do not call this function directly; use simd::fma instead.      */
+static SIMD_CPPFUNC double __tg_fma(double x, double y, double z) { return ::fma(x, y, z); }
+  
+namespace simd {
+/*! @abstract Generalizes the  function acos to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN acos(fptypeN x) { return ::__tg_acos(x); }
+  
+/*! @abstract Generalizes the  function asin to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN asin(fptypeN x) { return ::__tg_asin(x); }
+  
+/*! @abstract Generalizes the  function atan to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN atan(fptypeN x) { return ::__tg_atan(x); }
+  
+/*! @abstract Generalizes the  function cos to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN cos(fptypeN x) { return ::__tg_cos(x); }
+  
+/*! @abstract Generalizes the  function sin to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN sin(fptypeN x) { return ::__tg_sin(x); }
+  
+/*! @abstract Generalizes the  function tan to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN tan(fptypeN x) { return ::__tg_tan(x); }
+  
+#if SIMD_LIBRARY_VERSION >= 1
+/*! @abstract Generalizes the  function cospi to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN cospi(fptypeN x) { return ::__tg_cospi(x); }
+#endif
+  
+#if SIMD_LIBRARY_VERSION >= 1
+/*! @abstract Generalizes the  function sinpi to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN sinpi(fptypeN x) { return ::__tg_sinpi(x); }
+#endif
+  
+#if SIMD_LIBRARY_VERSION >= 1
+/*! @abstract Generalizes the  function tanpi to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN tanpi(fptypeN x) { return ::__tg_tanpi(x); }
+#endif
+  
+/*! @abstract Generalizes the  function acosh to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN acosh(fptypeN x) { return ::__tg_acosh(x); }
+  
+/*! @abstract Generalizes the  function asinh to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN asinh(fptypeN x) { return ::__tg_asinh(x); }
+  
+/*! @abstract Generalizes the  function atanh to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN atanh(fptypeN x) { return ::__tg_atanh(x); }
+  
+/*! @abstract Generalizes the  function cosh to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN cosh(fptypeN x) { return ::__tg_cosh(x); }
+  
+/*! @abstract Generalizes the  function sinh to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN sinh(fptypeN x) { return ::__tg_sinh(x); }
+  
+/*! @abstract Generalizes the  function tanh to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN tanh(fptypeN x) { return ::__tg_tanh(x); }
+  
+/*! @abstract Generalizes the  function exp to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN exp(fptypeN x) { return ::__tg_exp(x); }
+  
+/*! @abstract Generalizes the  function exp2 to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN exp2(fptypeN x) { return ::__tg_exp2(x); }
+  
+#if SIMD_LIBRARY_VERSION >= 1
+/*! @abstract Generalizes the  function exp10 to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN exp10(fptypeN x) { return ::__tg_exp10(x); }
+#endif
+  
+/*! @abstract Generalizes the  function expm1 to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN expm1(fptypeN x) { return ::__tg_expm1(x); }
+  
+/*! @abstract Generalizes the  function log to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN log(fptypeN x) { return ::__tg_log(x); }
+  
+/*! @abstract Generalizes the  function log2 to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN log2(fptypeN x) { return ::__tg_log2(x); }
+  
+/*! @abstract Generalizes the  function log10 to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN log10(fptypeN x) { return ::__tg_log10(x); }
+  
+/*! @abstract Generalizes the  function log1p to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN log1p(fptypeN x) { return ::__tg_log1p(x); }
+  
+/*! @abstract Generalizes the  function fabs to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN fabs(fptypeN x) { return ::__tg_fabs(x); }
+  
+/*! @abstract Generalizes the  function cbrt to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN cbrt(fptypeN x) { return ::__tg_cbrt(x); }
+  
+/*! @abstract Generalizes the  function sqrt to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN sqrt(fptypeN x) { return ::__tg_sqrt(x); }
+  
+/*! @abstract Generalizes the  function erf to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN erf(fptypeN x) { return ::__tg_erf(x); }
+  
+/*! @abstract Generalizes the  function erfc to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN erfc(fptypeN x) { return ::__tg_erfc(x); }
+  
+/*! @abstract Generalizes the  function tgamma to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN tgamma(fptypeN x) { return ::__tg_tgamma(x); }
+  
+/*! @abstract Generalizes the  function lgamma to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN lgamma(fptypeN x) { return ::__tg_lgamma(x); }
+  
+/*! @abstract Generalizes the  function ceil to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN ceil(fptypeN x) { return ::__tg_ceil(x); }
+  
+/*! @abstract Generalizes the  function floor to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN floor(fptypeN x) { return ::__tg_floor(x); }
+  
+/*! @abstract Generalizes the  function rint to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN rint(fptypeN x) { return ::__tg_rint(x); }
+  
+/*! @abstract Generalizes the  function round to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN round(fptypeN x) { return ::__tg_round(x); }
+  
+/*! @abstract Generalizes the  function trunc to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN trunc(fptypeN x) { return ::__tg_trunc(x); }
+  
+#if SIMD_LIBRARY_VERSION >= 5
+/*! @abstract Computes sincos more efficiently than separate computations.    */
+  template 
+  static SIMD_INLINE SIMD_NODEBUG void sincos(fptypeN x, fptypeN *sinp, fptypeN *cosp) { ::__tg_sincos(x, sinp, cosp); }
+
+/*! @abstract Computes sincospi more efficiently than separate computations.  */
+  template 
+  static SIMD_INLINE SIMD_NODEBUG void sincospi(fptypeN x, fptypeN *sinp, fptypeN *cosp) { ::__tg_sincospi(x, sinp, cosp); }
+
+#endif
+/*! @abstract Generalizes the  function isfinite to operate on
+ *  vectors of floats and doubles.                                            */
+  template 
+  static SIMD_CPPFUNC
+  typename std::enable_if::scalar_t>::value, typename traits::mask_t>::type
+  isfinite(fptypeN x) { return ::__tg_isfinite(x); }
+
+/*! @abstract Generalizes the  function isinf to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC
+  typename std::enable_if::scalar_t>::value, typename traits::mask_t>::type
+  isinf(fptypeN x) { return ::__tg_isinf(x); }
+
+/*! @abstract Generalizes the  function isnan to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC
+  typename std::enable_if::scalar_t>::value, typename traits::mask_t>::type
+  isnan(fptypeN x) { return ::__tg_isnan(x); }
+
+/*! @abstract Generalizes the  function isnormal to operate on
+ *  vectors of floats and doubles.                                            */
+  template 
+  static SIMD_CPPFUNC
+  typename std::enable_if::scalar_t>::value, typename traits::mask_t>::type
+  isnormal(fptypeN x) { return ::__tg_isnormal(x); }
+
+/*! @abstract Generalizes the  function atan2 to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN atan2(fptypeN y, fptypeN x) { return ::__tg_atan2(y, x); }
+    
+/*! @abstract Generalizes the  function hypot to operate on vectors
+ *  of floats and doubles.                                                    */
+  template 
+  static SIMD_CPPFUNC fptypeN hypot(fptypeN x, fptypeN y) { return ::__tg_hypot(x, y); }
+    
+/*! @abstract Generalizes the  function pow to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN pow(fptypeN x, fptypeN y) { return ::__tg_pow(x, y); }
+    
+/*! @abstract Generalizes the  function fmod to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN fmod(fptypeN x, fptypeN y) { return ::__tg_fmod(x, y); }
+    
+/*! @abstract Generalizes the  function remainder to operate on
+ *  vectors of floats and doubles.                                            */
+  template 
+  static SIMD_CPPFUNC fptypeN remainder(fptypeN x, fptypeN y) { return ::__tg_remainder(x, y); }
+    
+/*! @abstract Generalizes the  function copysign to operate on
+ *  vectors of floats and doubles.                                            */
+  template 
+  static SIMD_CPPFUNC fptypeN copysign(fptypeN x, fptypeN y) { return ::__tg_copysign(x, y); }
+    
+/*! @abstract Generalizes the  function nextafter to operate on
+ *  vectors of floats and doubles.                                            */
+  template 
+  static SIMD_CPPFUNC fptypeN nextafter(fptypeN x, fptypeN y) { return ::__tg_nextafter(x, y); }
+    
+/*! @abstract Generalizes the  function fdim to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN fdim(fptypeN x, fptypeN y) { return ::__tg_fdim(x, y); }
+    
+/*! @abstract Generalizes the  function fmax to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN fmax(fptypeN x, fptypeN y) { return ::__tg_fmax(x, y); }
+    
+/*! @abstract Generalizes the  function fmin to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN fmin(fptypeN x, fptypeN y) { return ::__tg_fmin(x, y); }
+    
+/*! @abstract Generalizes the  function fma to operate on vectors of
+ *  floats and doubles.                                                       */
+  template 
+  static SIMD_CPPFUNC fptypeN fma(fptypeN x, fptypeN y, fptypeN z) { return ::__tg_fma(x, y, z); }
+        
+/*! @abstract Computes x*y + z by the most efficient means available; either
+ *  a fused multiply add or separate multiply and add.                        */
+  template 
+  static SIMD_CPPFUNC fptypeN muladd(fptypeN x, fptypeN y, fptypeN z) { return ::simd_muladd(x, y, z); }
+};
+
+extern "C" {
+#else
+#include 
+/* C and Objective-C, we need some infrastructure to piggyback on tgmath.h    */
+static SIMD_OVERLOAD simd_float2 __tg_promote(simd_float2);
+static SIMD_OVERLOAD simd_float3 __tg_promote(simd_float3);
+static SIMD_OVERLOAD simd_float4 __tg_promote(simd_float4);
+static SIMD_OVERLOAD simd_float8 __tg_promote(simd_float8);
+static SIMD_OVERLOAD simd_float16 __tg_promote(simd_float16);
+static SIMD_OVERLOAD simd_double2 __tg_promote(simd_double2);
+static SIMD_OVERLOAD simd_double3 __tg_promote(simd_double3);
+static SIMD_OVERLOAD simd_double4 __tg_promote(simd_double4);
+static SIMD_OVERLOAD simd_double8 __tg_promote(simd_double8);
+
+/*  Apple extensions to , added in macOS 10.9 and iOS 7.0             */
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_9   || \
+    __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_0 || \
+    __DRIVERKIT_VERSION_MIN_REQUIRED >= __DRIVERKIT_19_0
+static inline SIMD_CFUNC float __tg_cospi(float x) { return __cospif(x); }
+static inline SIMD_CFUNC double __tg_cospi(double x) { return __cospi(x); }
+#undef cospi
+/*! @abstract `cospi(x)` computes `cos(pi * x)` without intermediate rounding.
+ *
+ *  @discussion Both faster and more accurate than multiplying by `pi` and then
+ *  calling `cos`. Defined for `float` and `double` as well as vectors of
+ *  floats and doubles as provided by ``.                        */
+#define cospi(__x) __tg_cospi(__tg_promote1((__x))(__x))
+
+static inline SIMD_CFUNC float __tg_sinpi(float x) { return __sinpif(x); }
+static inline SIMD_CFUNC double __tg_sinpi(double x) { return __sinpi(x); }
+#undef sinpi
+/*! @abstract `sinpi(x)` computes `sin(pi * x)` without intermediate rounding.
+ *
+ *  @discussion Both faster and more accurate than multiplying by `pi` and then
+ *  calling `sin`. Defined for `float` and `double` as well as vectors
+ *  of floats and doubles as provided by ``.                     */
+#define sinpi(__x) __tg_sinpi(__tg_promote1((__x))(__x))
+
+static inline SIMD_CFUNC float __tg_tanpi(float x) { return __tanpif(x); }
+static inline SIMD_CFUNC double __tg_tanpi(double x) { return __tanpi(x); }
+#undef tanpi
+/*! @abstract `tanpi(x)` computes `tan(pi * x)` without intermediate rounding.
+ *
+ *  @discussion Both faster and more accurate than multiplying by `pi` and then
+ *  calling `tan`. Defined for `float` and `double` as well as vectors of
+ *  floats and doubles as provided by ``.                        */
+#define tanpi(__x) __tg_tanpi(__tg_promote1((__x))(__x))
+
+#if SIMD_LIBRARY_VERSION >= 5
+static inline SIMD_NONCONST void __tg_sincos(float x, float *sinp, float *cosp) { __sincosf(x, sinp, cosp); }
+static inline SIMD_NONCONST void __tg_sincos(double x, double *sinp, double *cosp) { __sincos(x, sinp, cosp); }
+#undef sincos
+/*! @abstract `sincos(x)` computes `sin(x)` and `cos(x)` more efficiently.
+ *
+ *  @discussion Defined for `float` and `double` as well as vectors of
+ *  floats and doubles as provided by ``.                        */
+#define sincos(__x, __sinp, __cosp) __tg_sincos(__tg_promote1((__x))(__x), __sinp, __cosp)
+
+static inline SIMD_NONCONST void __tg_sincospi(float x, float *sinp, float *cosp) { __sincospif(x, sinp, cosp); }
+static inline SIMD_NONCONST void __tg_sincospi(double x, double *sinp, double *cosp) { __sincospi(x, sinp, cosp); }
+#undef sincospi
+/*! @abstract `sincospi(x)` computes `sin(pi * x)` and `cos(pi * x)` more efficiently.
+ *
+ *  @discussion Defined for `float` and `double` as well as vectors of
+ *  floats and doubles as provided by ``.                        */
+#define sincospi(__x, __sinp, __cosp) __tg_sincospi(__tg_promote1((__x))(__x), __sinp, __cosp)
+#endif // SIMD_LIBRARY_VERSION >= 5
+
+static inline SIMD_CFUNC float __tg_exp10(float x) { return __exp10f(x); }
+static inline SIMD_CFUNC double __tg_exp10(double x) { return __exp10(x); }
+#undef exp10
+/*! @abstract `exp10(x)` computes `10**x` more efficiently and accurately
+ *  than `pow(10, x)`.
+ *
+ *  @discussion Defined for `float` and `double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define exp10(__x) __tg_exp10(__tg_promote1((__x))(__x))
+#endif
+
+#if (defined(__GNUC__) && 0 == __FINITE_MATH_ONLY__)
+static inline SIMD_CFUNC int __tg_isfinite(float x) { return __inline_isfinitef(x); }
+static inline SIMD_CFUNC int __tg_isfinite(double x) { return __inline_isfinited(x); }
+static inline SIMD_CFUNC int __tg_isfinite(long double x) { return __inline_isfinitel(x); }
+#undef isfinite
+/*! @abstract `__tg_isfinite(x)` determines if x is a finite value.
+ *
+ *  @discussion Defined for `float`, `double` and `long double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define isfinite(__x) __tg_isfinite(__tg_promote1((__x))(__x))
+
+static inline SIMD_CFUNC int __tg_isinf(float x) { return __inline_isinff(x); }
+static inline SIMD_CFUNC int __tg_isinf(double x) { return __inline_isinfd(x); }
+static inline SIMD_CFUNC int __tg_isinf(long double x) { return __inline_isinfl(x); }
+#undef isinf
+/*! @abstract `__tg_isinf(x)` determines if x is positive or negative infinity.
+ *
+ *  @discussion Defined for `float`, `double` and `long double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define isinf(__x) __tg_isinf(__tg_promote1((__x))(__x))
+
+static inline SIMD_CFUNC int __tg_isnan(float x) { return __inline_isnanf(x); }
+static inline SIMD_CFUNC int __tg_isnan(double x) { return __inline_isnand(x); }
+static inline SIMD_CFUNC int __tg_isnan(long double x) { return __inline_isnanl(x); }
+#undef isnan
+/*! @abstract `__tg_isnan(x)` determines if x is a not-a-number (NaN) value.
+ *
+ *  @discussion Defined for `float`, `double` and `long double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define isnan(__x) __tg_isnan(__tg_promote1((__x))(__x))
+
+static inline SIMD_CFUNC int __tg_isnormal(float x) { return __inline_isnormalf(x); }
+static inline SIMD_CFUNC int __tg_isnormal(double x) { return __inline_isnormald(x); }
+static inline SIMD_CFUNC int __tg_isnormal(long double x) { return __inline_isnormall(x); }
+#undef isnormal
+/*! @abstract `__tg_isnormal(x)` determines if x is a normal value.
+ *
+ *  @discussion Defined for `float`, `double` and `long double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define isnormal(__x) __tg_isnormal(__tg_promote1((__x))(__x))
+
+#else /* defined(__GNUC__) && 0 == __FINITE_MATH_ONLY__ */
+
+static inline SIMD_CFUNC int __tg_isfinite(float x) { return __isfinitef(x); }
+static inline SIMD_CFUNC int __tg_isfinite(double x) { return __isfinited(x); }
+static inline SIMD_CFUNC int __tg_isfinite(long double x) { return __isfinitel(x); }
+#undef isfinite
+/*! @abstract `__tg_isfinite(x)` determines if x is a finite value.
+ *
+ *  @discussion Defined for `float`, `double` and `long double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define isfinite(__x) __tg_isfinite(__tg_promote1((__x))(__x))
+
+static inline SIMD_CFUNC int __tg_isinf(float x) { return __isinff(x); }
+static inline SIMD_CFUNC int __tg_isinf(double x) { return __isinfd(x); }
+static inline SIMD_CFUNC int __tg_isinf(long double x) { return __isinfl(x); }
+#undef isinf
+/*! @abstract `__tg_isinf(x)` determines if x is positive or negative infinity.
+ *
+ *  @discussion Defined for `float`, `double` and `long double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define isinf(__x) __tg_isinf(__tg_promote1((__x))(__x))
+
+static inline SIMD_CFUNC int __tg_isnan(float x) { return __isnanf(x); }
+static inline SIMD_CFUNC int __tg_isnan(double x) { return __isnand(x); }
+static inline SIMD_CFUNC int __tg_isnan(long double x) { return __isnanl(x); }
+#undef isnan
+/*! @abstract `__tg_isnan(x)` determines if x is a not-a-number (NaN) value.
+ *
+ *  @discussion Defined for `float`, `double` and `long double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define isnan(__x) __tg_isnan(__tg_promote1((__x))(__x))
+
+static inline SIMD_CFUNC int __tg_isnormal(float x) { return __isnormalf(x); }
+static inline SIMD_CFUNC int __tg_isnormal(double x) { return __isnormald(x); }
+static inline SIMD_CFUNC int __tg_isnormal(long double x) { return __isnormall(x); }
+#undef isnormal
+/*! @abstract `__tg_isnormal(x)` determines if x is a normal value.
+ *
+ *  @discussion Defined for `float`, `double` and `long double` as well as vectors of floats
+ *  and doubles as provided by ``.                               */
+#define isnormal(__x) __tg_isnormal(__tg_promote1((__x))(__x))
+#endif /* defined(__GNUC__) && 0 == __FINITE_MATH_ONLY__ */
+#endif /* !__cplusplus */
+  
+#pragma mark - fabs implementation
+static inline SIMD_CFUNC simd_float2 __tg_fabs(simd_float2 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_float3 __tg_fabs(simd_float3 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_float4 __tg_fabs(simd_float4 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_float8 __tg_fabs(simd_float8 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_float16 __tg_fabs(simd_float16 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_double2 __tg_fabs(simd_double2 x) { return simd_bitselect(0.0, x, 0x7fffffffffffffff); }
+static inline SIMD_CFUNC simd_double3 __tg_fabs(simd_double3 x) { return simd_bitselect(0.0, x, 0x7fffffffffffffff); }
+static inline SIMD_CFUNC simd_double4 __tg_fabs(simd_double4 x) { return simd_bitselect(0.0, x, 0x7fffffffffffffff); }
+static inline SIMD_CFUNC simd_double8 __tg_fabs(simd_double8 x) { return simd_bitselect(0.0, x, 0x7fffffffffffffff); }
+  
+#pragma mark - isfinite implementation
+static inline SIMD_CFUNC simd_int2 __tg_isfinite(simd_float2 x) { return x == x && __tg_fabs(x) != (simd_float2)INFINITY; }
+static inline SIMD_CFUNC simd_int3 __tg_isfinite(simd_float3 x) { return x == x && __tg_fabs(x) != (simd_float3)INFINITY; }
+static inline SIMD_CFUNC simd_int4 __tg_isfinite(simd_float4 x) { return x == x && __tg_fabs(x) != (simd_float4)INFINITY; }
+static inline SIMD_CFUNC simd_int8 __tg_isfinite(simd_float8 x) { return x == x && __tg_fabs(x) != (simd_float8)INFINITY; }
+static inline SIMD_CFUNC simd_int16 __tg_isfinite(simd_float16 x) { return x == x && __tg_fabs(x) != (simd_float16)INFINITY; }
+static inline SIMD_CFUNC simd_long2 __tg_isfinite(simd_double2 x) { return x == x && __tg_fabs(x) != (simd_double2)INFINITY; }
+static inline SIMD_CFUNC simd_long3 __tg_isfinite(simd_double3 x) { return x == x && __tg_fabs(x) != (simd_double3)INFINITY; }
+static inline SIMD_CFUNC simd_long4 __tg_isfinite(simd_double4 x) { return x == x && __tg_fabs(x) != (simd_double4)INFINITY; }
+static inline SIMD_CFUNC simd_long8 __tg_isfinite(simd_double8 x) { return x == x && __tg_fabs(x) != (simd_double8)INFINITY; }
+
+#pragma mark - isinf implementation
+static inline SIMD_CFUNC simd_int2 __tg_isinf(simd_float2 x) { return __tg_fabs(x) == (simd_float2)INFINITY; }
+static inline SIMD_CFUNC simd_int3 __tg_isinf(simd_float3 x) { return __tg_fabs(x) == (simd_float3)INFINITY; }
+static inline SIMD_CFUNC simd_int4 __tg_isinf(simd_float4 x) { return __tg_fabs(x) == (simd_float4)INFINITY; }
+static inline SIMD_CFUNC simd_int8 __tg_isinf(simd_float8 x) { return __tg_fabs(x) == (simd_float8)INFINITY; }
+static inline SIMD_CFUNC simd_int16 __tg_isinf(simd_float16 x) { return __tg_fabs(x) == (simd_float16)INFINITY; }
+static inline SIMD_CFUNC simd_long2 __tg_isinf(simd_double2 x) { return __tg_fabs(x) == (simd_double2)INFINITY; }
+static inline SIMD_CFUNC simd_long3 __tg_isinf(simd_double3 x) { return __tg_fabs(x) == (simd_double3)INFINITY; }
+static inline SIMD_CFUNC simd_long4 __tg_isinf(simd_double4 x) { return __tg_fabs(x) == (simd_double4)INFINITY; }
+static inline SIMD_CFUNC simd_long8 __tg_isinf(simd_double8 x) { return __tg_fabs(x) == (simd_double8)INFINITY; }
+
+#pragma mark - isnan implementation
+static inline SIMD_CFUNC simd_int2 __tg_isnan(simd_float2 x) { return x != x; }
+static inline SIMD_CFUNC simd_int3 __tg_isnan(simd_float3 x) { return x != x; }
+static inline SIMD_CFUNC simd_int4 __tg_isnan(simd_float4 x) { return x != x; }
+static inline SIMD_CFUNC simd_int8 __tg_isnan(simd_float8 x) { return x != x; }
+static inline SIMD_CFUNC simd_int16 __tg_isnan(simd_float16 x) { return x != x; }
+static inline SIMD_CFUNC simd_long2 __tg_isnan(simd_double2 x) { return x != x; }
+static inline SIMD_CFUNC simd_long3 __tg_isnan(simd_double3 x) { return x != x; }
+static inline SIMD_CFUNC simd_long4 __tg_isnan(simd_double4 x) { return x != x; }
+static inline SIMD_CFUNC simd_long8 __tg_isnan(simd_double8 x) { return x != x; }
+
+#pragma mark - isnormal implementation
+static inline SIMD_CFUNC simd_int2 __tg_isnormal(simd_float2 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_float2)__FLT_MIN__; }
+static inline SIMD_CFUNC simd_int3 __tg_isnormal(simd_float3 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_float3)__FLT_MIN__; }
+static inline SIMD_CFUNC simd_int4 __tg_isnormal(simd_float4 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_float4)__FLT_MIN__; }
+static inline SIMD_CFUNC simd_int8 __tg_isnormal(simd_float8 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_float8)__FLT_MIN__; }
+static inline SIMD_CFUNC simd_int16 __tg_isnormal(simd_float16 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_float16)__FLT_MIN__; }
+static inline SIMD_CFUNC simd_long2 __tg_isnormal(simd_double2 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_double2)__DBL_MIN__; }
+static inline SIMD_CFUNC simd_long3 __tg_isnormal(simd_double3 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_double3)__DBL_MIN__; }
+static inline SIMD_CFUNC simd_long4 __tg_isnormal(simd_double4 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_double4)__DBL_MIN__; }
+static inline SIMD_CFUNC simd_long8 __tg_isnormal(simd_double8 x) { return __tg_isfinite(x) && __tg_fabs(x) >= (simd_double8)__DBL_MIN__; }
+
+#pragma mark - fmin, fmax implementation
+static SIMD_CFUNC simd_float2 __tg_fmin(simd_float2 x, simd_float2 y) {
+#if defined __SSE2__
+  return simd_make_float2(__tg_fmin(simd_make_float4_undef(x), simd_make_float4_undef(y)));
+#elif defined __arm64__
+  return vminnm_f32(x, y);
+#elif defined __arm__ && __FINITE_MATH_ONLY__
+  return vmin_f32(x, y);
+#else
+  return simd_bitselect(y, x, (x <= y) | (y != y));
+#endif
+}
+  
+static SIMD_CFUNC simd_float3 __tg_fmin(simd_float3 x, simd_float3 y) {
+  return simd_make_float3(__tg_fmin(simd_make_float4_undef(x), simd_make_float4_undef(y)));
+}
+  
+static SIMD_CFUNC simd_float4 __tg_fmin(simd_float4 x, simd_float4 y) {
+#if defined __AVX512DQ__ && defined __AVX512VL__ && !__FINITE_MATH_ONLY__
+  return _mm_range_ps(x, y, 4);
+#elif defined __SSE2__ && __FINITE_MATH_ONLY__
+  return _mm_min_ps(x, y);
+#elif defined __SSE2__
+  return simd_bitselect(_mm_min_ps(x, y), x, y != y);
+#elif defined __arm64__
+  return vminnmq_f32(x, y);
+#elif defined __arm__ && __FINITE_MATH_ONLY__
+  return vminq_f32(x, y);
+#else
+  return simd_bitselect(y, x, (x <= y) | (y != y));
+#endif
+}
+  
+static SIMD_CFUNC simd_float8 __tg_fmin(simd_float8 x, simd_float8 y) {
+#if defined __AVX512DQ__ && defined __AVX512VL__ && !__FINITE_MATH_ONLY__
+  return _mm256_range_ps(x, y, 4);
+#elif defined __AVX__ && __FINITE_MATH_ONLY__
+  return _mm256_min_ps(x, y);
+#elif defined __AVX__
+  return simd_bitselect(_mm256_min_ps(x, y), x, y != y);
+#else
+  return simd_make_float8(__tg_fmin(x.lo, y.lo), __tg_fmin(x.hi, y.hi));
+#endif
+}
+  
+static SIMD_CFUNC simd_float16 __tg_fmin(simd_float16 x, simd_float16 y) {
+#if defined __x86_64__ && defined __AVX512DQ__ && !__FINITE_MATH_ONLY__
+  return _mm512_range_ps(x, y, 4);
+#elif defined __x86_64__ && defined __AVX512F__ && __FINITE_MATH_ONLY__
+  return _mm512_min_ps(x, y);
+#elif defined __x86_64__ && defined __AVX512F__
+  return simd_bitselect(_mm512_min_ps(x, y), x, y != y);
+#else
+  return simd_make_float16(__tg_fmin(x.lo, y.lo), __tg_fmin(x.hi, y.hi));
+#endif
+}
+  
+static SIMD_CFUNC simd_double2 __tg_fmin(simd_double2 x, simd_double2 y) {
+#if defined __AVX512DQ__ && defined __AVX512VL__
+  return _mm_range_pd(x, y, 4);
+#elif defined __SSE2__ && __FINITE_MATH_ONLY__
+  return _mm_min_pd(x, y);
+#elif defined __SSE2__
+  return simd_bitselect(_mm_min_pd(x, y), x, y != y);
+#elif defined __arm64__
+  return vminnmq_f64(x, y);
+#else
+  return simd_bitselect(y, x, (x <= y) | (y != y));
+#endif
+}
+  
+static SIMD_CFUNC simd_double3 __tg_fmin(simd_double3 x, simd_double3 y) {
+  return simd_make_double3(__tg_fmin(simd_make_double4_undef(x), simd_make_double4_undef(y)));
+}
+  
+static SIMD_CFUNC simd_double4 __tg_fmin(simd_double4 x, simd_double4 y) {
+#if defined __AVX512DQ__ && defined __AVX512VL__
+  return _mm256_range_pd(x, y, 4);
+#elif defined __AVX__ && __FINITE_MATH_ONLY__
+  return _mm256_min_pd(x, y);
+#elif defined __AVX__
+  return simd_bitselect(_mm256_min_pd(x, y), x, y != y);
+#else
+  return simd_make_double4(__tg_fmin(x.lo, y.lo), __tg_fmin(x.hi, y.hi));
+#endif
+}
+
+static SIMD_CFUNC simd_double8 __tg_fmin(simd_double8 x, simd_double8 y) {
+#if defined __x86_64__ && defined __AVX512DQ__
+  return _mm512_range_pd(x, y, 4);
+#elif defined __x86_64__ && defined __AVX512F__ && __FINITE_MATH_ONLY__
+  return _mm512_min_pd(x, y);
+#elif defined __x86_64__ && defined __AVX512F__
+  return simd_bitselect(_mm512_min_pd(x, y), x, y != y);
+#else
+  return simd_make_double8(__tg_fmin(x.lo, y.lo), __tg_fmin(x.hi, y.hi));
+#endif
+}
+
+static SIMD_CFUNC simd_float2 __tg_fmax(simd_float2 x, simd_float2 y) {
+#if defined __SSE2__
+  return simd_make_float2(__tg_fmax(simd_make_float4_undef(x), simd_make_float4_undef(y)));
+#elif defined __arm64__
+  return vmaxnm_f32(x, y);
+#elif defined __arm__ && __FINITE_MATH_ONLY__
+  return vmax_f32(x, y);
+#else
+  return simd_bitselect(y, x, (x >= y) | (y != y));
+#endif
+}
+  
+static SIMD_CFUNC simd_float3 __tg_fmax(simd_float3 x, simd_float3 y) {
+  return simd_make_float3(__tg_fmax(simd_make_float4_undef(x), simd_make_float4_undef(y)));
+}
+  
+static SIMD_CFUNC simd_float4 __tg_fmax(simd_float4 x, simd_float4 y) {
+#if defined __AVX512DQ__ && defined __AVX512VL__ && !__FINITE_MATH_ONLY__
+  return _mm_range_ps(x, y, 5);
+#elif defined __SSE2__ && __FINITE_MATH_ONLY__
+  return _mm_max_ps(x, y);
+#elif defined __SSE2__
+  return simd_bitselect(_mm_max_ps(x, y), x, y != y);
+#elif defined __arm64__
+  return vmaxnmq_f32(x, y);
+#elif defined __arm__ && __FINITE_MATH_ONLY__
+  return vmaxq_f32(x, y);
+#else
+  return simd_bitselect(y, x, (x >= y) | (y != y));
+#endif
+}
+  
+static SIMD_CFUNC simd_float8 __tg_fmax(simd_float8 x, simd_float8 y) {
+#if defined __AVX512DQ__ && defined __AVX512VL__ && !__FINITE_MATH_ONLY__
+  return _mm256_range_ps(x, y, 5);
+#elif defined __AVX__ && __FINITE_MATH_ONLY__
+  return _mm256_max_ps(x, y);
+#elif defined __AVX__
+  return simd_bitselect(_mm256_max_ps(x, y), x, y != y);
+#else
+  return simd_make_float8(__tg_fmax(x.lo, y.lo), __tg_fmax(x.hi, y.hi));
+#endif
+}
+  
+static SIMD_CFUNC simd_float16 __tg_fmax(simd_float16 x, simd_float16 y) {
+#if defined __x86_64__ && defined __AVX512DQ__ && !__FINITE_MATH_ONLY__
+  return _mm512_range_ps(x, y, 5);
+#elif defined __x86_64__ && defined __AVX512F__ && __FINITE_MATH_ONLY__
+  return _mm512_max_ps(x, y);
+#elif defined __x86_64__ && defined __AVX512F__
+  return simd_bitselect(_mm512_max_ps(x, y), x, y != y);
+#else
+  return simd_make_float16(__tg_fmax(x.lo, y.lo), __tg_fmax(x.hi, y.hi));
+#endif
+}
+  
+static SIMD_CFUNC simd_double2 __tg_fmax(simd_double2 x, simd_double2 y) {
+#if defined __AVX512DQ__ && defined __AVX512VL__
+  return _mm_range_pd(x, y, 5);
+#elif defined __SSE2__ && __FINITE_MATH_ONLY__
+  return _mm_max_pd(x, y);
+#elif defined __SSE2__
+  return simd_bitselect(_mm_max_pd(x, y), x, y != y);
+#elif defined __arm64__
+  return vmaxnmq_f64(x, y);
+#else
+  return simd_bitselect(y, x, (x >= y) | (y != y));
+#endif
+}
+  
+static SIMD_CFUNC simd_double3 __tg_fmax(simd_double3 x, simd_double3 y) {
+  return simd_make_double3(__tg_fmax(simd_make_double4_undef(x), simd_make_double4_undef(y)));
+}
+  
+static SIMD_CFUNC simd_double4 __tg_fmax(simd_double4 x, simd_double4 y) {
+#if defined __AVX512DQ__ && defined __AVX512VL__
+  return _mm256_range_pd(x, y, 5);
+#elif defined __AVX__ && __FINITE_MATH_ONLY__
+  return _mm256_max_pd(x, y);
+#elif defined __AVX__
+  return simd_bitselect(_mm256_max_pd(x, y), x, y != y);
+#else
+  return simd_make_double4(__tg_fmax(x.lo, y.lo), __tg_fmax(x.hi, y.hi));
+#endif
+}
+
+static SIMD_CFUNC simd_double8 __tg_fmax(simd_double8 x, simd_double8 y) {
+#if defined __x86_64__ && defined __AVX512DQ__
+  return _mm512_range_pd(x, y, 5);
+#elif defined __x86_64__ && defined __AVX512F__ && __FINITE_MATH_ONLY__
+  return _mm512_max_pd(x, y);
+#elif defined __x86_64__ && defined __AVX512F__
+  return simd_bitselect(_mm512_max_pd(x, y), x, y != y);
+#else
+  return simd_make_double8(__tg_fmax(x.lo, y.lo), __tg_fmax(x.hi, y.hi));
+#endif
+}
+
+#pragma mark - copysign implementation
+static inline SIMD_CFUNC simd_float2 __tg_copysign(simd_float2 x, simd_float2 y) { return simd_bitselect(y, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_float3 __tg_copysign(simd_float3 x, simd_float3 y) { return simd_bitselect(y, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_float4 __tg_copysign(simd_float4 x, simd_float4 y) { return simd_bitselect(y, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_float8 __tg_copysign(simd_float8 x, simd_float8 y) { return simd_bitselect(y, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_float16 __tg_copysign(simd_float16 x, simd_float16 y) { return simd_bitselect(y, x, 0x7fffffff); }
+static inline SIMD_CFUNC simd_double2 __tg_copysign(simd_double2 x, simd_double2 y) { return simd_bitselect(y, x, 0x7fffffffffffffff); }
+static inline SIMD_CFUNC simd_double3 __tg_copysign(simd_double3 x, simd_double3 y) { return simd_bitselect(y, x, 0x7fffffffffffffff); }
+static inline SIMD_CFUNC simd_double4 __tg_copysign(simd_double4 x, simd_double4 y) { return simd_bitselect(y, x, 0x7fffffffffffffff); }
+static inline SIMD_CFUNC simd_double8 __tg_copysign(simd_double8 x, simd_double8 y) { return simd_bitselect(y, x, 0x7fffffffffffffff); }
+  
+#pragma mark - sqrt implementation
+static SIMD_CFUNC simd_float2 __tg_sqrt(simd_float2 x) {
+#if defined __SSE2__
+  return simd_make_float2(__tg_sqrt(simd_make_float4_undef(x)));
+#elif defined __arm64__
+  return vsqrt_f32(x);
+#else
+  return simd_make_float2(sqrt(x.x), sqrt(x.y));
+#endif
+}
+
+static SIMD_CFUNC simd_float3 __tg_sqrt(simd_float3 x) {
+  return simd_make_float3(__tg_sqrt(simd_make_float4_undef(x)));
+}
+
+static SIMD_CFUNC simd_float4 __tg_sqrt(simd_float4 x) {
+#if defined __SSE2__
+  return _mm_sqrt_ps(x);
+#elif defined __arm64__
+  return vsqrtq_f32(x);
+#else
+  return simd_make_float4(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
+#endif
+}
+
+static SIMD_CFUNC simd_float8 __tg_sqrt(simd_float8 x) {
+#if defined __AVX__
+  return _mm256_sqrt_ps(x);
+#else
+  return simd_make_float8(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
+#endif
+}
+  
+static SIMD_CFUNC simd_float16 __tg_sqrt(simd_float16 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_sqrt_ps(x);
+#else
+  return simd_make_float16(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
+#endif
+}
+
+static SIMD_CFUNC simd_double2 __tg_sqrt(simd_double2 x) {
+#if defined __SSE2__
+  return _mm_sqrt_pd(x);
+#elif defined __arm64__
+  return vsqrtq_f64(x);
+#else
+  return simd_make_double2(sqrt(x.x), sqrt(x.y));
+#endif
+}
+  
+static SIMD_CFUNC simd_double3 __tg_sqrt(simd_double3 x) {
+  return simd_make_double3(__tg_sqrt(simd_make_double4_undef(x)));
+}
+
+static SIMD_CFUNC simd_double4 __tg_sqrt(simd_double4 x) {
+#if defined __AVX__
+  return _mm256_sqrt_pd(x);
+#else
+  return simd_make_double4(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
+#endif
+}
+  
+static SIMD_CFUNC simd_double8 __tg_sqrt(simd_double8 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_sqrt_pd(x);
+#else
+  return simd_make_double8(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
+#endif
+}
+  
+#pragma mark - ceil, floor, rint, trunc implementation
+static SIMD_CFUNC simd_float2 __tg_ceil(simd_float2 x) {
+#if defined __arm64__
+  return vrndp_f32(x);
+#else
+  return simd_make_float2(__tg_ceil(simd_make_float4_undef(x)));
+#endif
+}
+  
+static SIMD_CFUNC simd_float3 __tg_ceil(simd_float3 x) {
+  return simd_make_float3(__tg_ceil(simd_make_float4_undef(x)));
+}
+  
+#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_ceil_f4(simd_float4 x);
+#endif
+
+static SIMD_CFUNC simd_float4 __tg_ceil(simd_float4 x) {
+#if defined __SSE4_1__
+  return _mm_round_ps(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+#elif defined __arm64__
+  return vrndpq_f32(x);
+#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+  return _simd_ceil_f4(x);
+#else
+  simd_float4 truncated = __tg_trunc(x);
+  simd_float4 adjust = simd_bitselect((simd_float4)0, 1, truncated < x);
+  return __tg_copysign(truncated + adjust, x);
+#endif
+}
+ 
+static SIMD_CFUNC simd_float8 __tg_ceil(simd_float8 x) {
+#if defined __AVX__
+  return _mm256_round_ps(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_float8(__tg_ceil(x.lo), __tg_ceil(x.hi));
+#endif
+}
+ 
+static SIMD_CFUNC simd_float16 __tg_ceil(simd_float16 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_roundscale_ps(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_float16(__tg_ceil(x.lo), __tg_ceil(x.hi));
+#endif
+}
+  
+#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_ceil_d2(simd_double2 x);
+#endif
+  
+static SIMD_CFUNC simd_double2 __tg_ceil(simd_double2 x) {
+#if defined __SSE4_1__
+  return _mm_round_pd(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+#elif defined __arm64__
+  return vrndpq_f64(x);
+#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+  return _simd_ceil_d2(x);
+#else
+  simd_double2 truncated = __tg_trunc(x);
+  simd_double2 adjust = simd_bitselect((simd_double2)0, 1, truncated < x);
+  return __tg_copysign(truncated + adjust, x);
+#endif
+}
+  
+static SIMD_CFUNC simd_double3 __tg_ceil(simd_double3 x) {
+  return simd_make_double3(__tg_ceil(simd_make_double4_undef(x)));
+}
+ 
+static SIMD_CFUNC simd_double4 __tg_ceil(simd_double4 x) {
+#if defined __AVX__
+  return _mm256_round_pd(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_double4(__tg_ceil(x.lo), __tg_ceil(x.hi));
+#endif
+}
+ 
+static SIMD_CFUNC simd_double8 __tg_ceil(simd_double8 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_roundscale_pd(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_double8(__tg_ceil(x.lo), __tg_ceil(x.hi));
+#endif
+}
+
+static SIMD_CFUNC simd_float2 __tg_floor(simd_float2 x) {
+#if defined __arm64__
+  return vrndm_f32(x);
+#else
+  return simd_make_float2(__tg_floor(simd_make_float4_undef(x)));
+#endif
+}
+  
+static SIMD_CFUNC simd_float3 __tg_floor(simd_float3 x) {
+  return simd_make_float3(__tg_floor(simd_make_float4_undef(x)));
+}
+  
+#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_floor_f4(simd_float4 x);
+#endif
+
+static SIMD_CFUNC simd_float4 __tg_floor(simd_float4 x) {
+#if defined __SSE4_1__
+  return _mm_round_ps(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
+#elif defined __arm64__
+  return vrndmq_f32(x);
+#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+  return _simd_floor_f4(x);
+#else
+  simd_float4 truncated = __tg_trunc(x);
+  simd_float4 adjust = simd_bitselect((simd_float4)0, 1, truncated > x);
+  return truncated - adjust;
+#endif
+}
+ 
+static SIMD_CFUNC simd_float8 __tg_floor(simd_float8 x) {
+#if defined __AVX__
+  return _mm256_round_ps(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_float8(__tg_floor(x.lo), __tg_floor(x.hi));
+#endif
+}
+ 
+static SIMD_CFUNC simd_float16 __tg_floor(simd_float16 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_roundscale_ps(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_float16(__tg_floor(x.lo), __tg_floor(x.hi));
+#endif
+}
+  
+#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_floor_d2(simd_double2 x);
+#endif
+  
+static SIMD_CFUNC simd_double2 __tg_floor(simd_double2 x) {
+#if defined __SSE4_1__
+  return _mm_round_pd(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
+#elif defined __arm64__
+  return vrndmq_f64(x);
+#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+  return _simd_floor_d2(x);
+#else
+  simd_double2 truncated = __tg_trunc(x);
+  simd_double2 adjust = simd_bitselect((simd_double2)0, 1, truncated > x);
+  return truncated - adjust;
+#endif
+}
+  
+static SIMD_CFUNC simd_double3 __tg_floor(simd_double3 x) {
+  return simd_make_double3(__tg_floor(simd_make_double4_undef(x)));
+}
+ 
+static SIMD_CFUNC simd_double4 __tg_floor(simd_double4 x) {
+#if defined __AVX__
+  return _mm256_round_pd(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_double4(__tg_floor(x.lo), __tg_floor(x.hi));
+#endif
+}
+ 
+static SIMD_CFUNC simd_double8 __tg_floor(simd_double8 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_roundscale_pd(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_double8(__tg_floor(x.lo), __tg_floor(x.hi));
+#endif
+}
+
+static SIMD_CFUNC simd_float2 __tg_rint(simd_float2 x) {
+#if defined __arm64__
+  return vrndx_f32(x);
+#else
+  return simd_make_float2(__tg_rint(simd_make_float4_undef(x)));
+#endif
+}
+  
+static SIMD_CFUNC simd_float3 __tg_rint(simd_float3 x) {
+  return simd_make_float3(__tg_rint(simd_make_float4_undef(x)));
+}
+  
+#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_rint_f4(simd_float4 x);
+#endif
+
+static SIMD_CFUNC simd_float4 __tg_rint(simd_float4 x) {
+#if defined __SSE4_1__
+  return _mm_round_ps(x, _MM_FROUND_RINT);
+#elif defined __arm64__
+  return vrndxq_f32(x);
+#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+  return _simd_rint_f4(x);
+#else
+  simd_float4 magic = __tg_copysign(0x1.0p23, x);
+  simd_int4 x_is_small = __tg_fabs(x) < 0x1.0p23;
+  return simd_bitselect(x, (x + magic) - magic, x_is_small & 0x7fffffff);
+#endif
+}
+ 
+static SIMD_CFUNC simd_float8 __tg_rint(simd_float8 x) {
+#if defined __AVX__
+  return _mm256_round_ps(x, _MM_FROUND_RINT);
+#else
+  return simd_make_float8(__tg_rint(x.lo), __tg_rint(x.hi));
+#endif
+}
+ 
+static SIMD_CFUNC simd_float16 __tg_rint(simd_float16 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_roundscale_ps(x, _MM_FROUND_RINT);
+#else
+  return simd_make_float16(__tg_rint(x.lo), __tg_rint(x.hi));
+#endif
+}
+  
+#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_rint_d2(simd_double2 x);
+#endif
+  
+static SIMD_CFUNC simd_double2 __tg_rint(simd_double2 x) {
+#if defined __SSE4_1__
+  return _mm_round_pd(x, _MM_FROUND_RINT);
+#elif defined __arm64__
+  return vrndxq_f64(x);
+#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+  return _simd_rint_d2(x);
+#else
+  simd_double2 magic = __tg_copysign(0x1.0p52, x);
+  simd_long2 x_is_small = __tg_fabs(x) < 0x1.0p52;
+  return simd_bitselect(x, (x + magic) - magic, x_is_small & 0x7fffffffffffffff);
+#endif
+}
+  
+static SIMD_CFUNC simd_double3 __tg_rint(simd_double3 x) {
+  return simd_make_double3(__tg_rint(simd_make_double4_undef(x)));
+}
+ 
+static SIMD_CFUNC simd_double4 __tg_rint(simd_double4 x) {
+#if defined __AVX__
+  return _mm256_round_pd(x, _MM_FROUND_RINT);
+#else
+  return simd_make_double4(__tg_rint(x.lo), __tg_rint(x.hi));
+#endif
+}
+ 
+static SIMD_CFUNC simd_double8 __tg_rint(simd_double8 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_roundscale_pd(x, _MM_FROUND_RINT);
+#else
+  return simd_make_double8(__tg_rint(x.lo), __tg_rint(x.hi));
+#endif
+}
+
+static SIMD_CFUNC simd_float2 __tg_trunc(simd_float2 x) {
+#if defined __arm64__
+  return vrnd_f32(x);
+#else
+  return simd_make_float2(__tg_trunc(simd_make_float4_undef(x)));
+#endif
+}
+  
+static SIMD_CFUNC simd_float3 __tg_trunc(simd_float3 x) {
+  return simd_make_float3(__tg_trunc(simd_make_float4_undef(x)));
+}
+  
+#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_trunc_f4(simd_float4 x);
+#endif
+
+static SIMD_CFUNC simd_float4 __tg_trunc(simd_float4 x) {
+#if defined __SSE4_1__
+  return _mm_round_ps(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
+#elif defined __arm64__
+  return vrndq_f32(x);
+#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+  return _simd_trunc_f4(x);
+#else
+  simd_float4 binade = simd_bitselect(0, x, 0x7f800000);
+  simd_int4 mask = (simd_int4)__tg_fmin(-2*binade + 1, -0);
+  simd_float4 result = simd_bitselect(0, x, mask);
+  return simd_bitselect(x, result, binade < 0x1.0p23);
+#endif
+}
+ 
+static SIMD_CFUNC simd_float8 __tg_trunc(simd_float8 x) {
+#if defined __AVX__
+  return _mm256_round_ps(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_float8(__tg_trunc(x.lo), __tg_trunc(x.hi));
+#endif
+}
+ 
+static SIMD_CFUNC simd_float16 __tg_trunc(simd_float16 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_roundscale_ps(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_float16(__tg_trunc(x.lo), __tg_trunc(x.hi));
+#endif
+}
+  
+#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_trunc_d2(simd_double2 x);
+#endif
+  
+static SIMD_CFUNC simd_double2 __tg_trunc(simd_double2 x) {
+#if defined __SSE4_1__
+  return _mm_round_pd(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
+#elif defined __arm64__
+  return vrndq_f64(x);
+#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
+  return _simd_trunc_d2(x);
+#else
+  simd_double2 binade = simd_bitselect(0, x, 0x7ff0000000000000);
+  simd_long2 mask = (simd_long2)__tg_fmin(-2*binade + 1, -0);
+  simd_double2 result = simd_bitselect(0, x, mask);
+  return simd_bitselect(x, result, binade < 0x1.0p52);
+#endif
+}
+  
+static SIMD_CFUNC simd_double3 __tg_trunc(simd_double3 x) {
+  return simd_make_double3(__tg_trunc(simd_make_double4_undef(x)));
+}
+ 
+static SIMD_CFUNC simd_double4 __tg_trunc(simd_double4 x) {
+#if defined __AVX__
+  return _mm256_round_pd(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_double4(__tg_trunc(x.lo), __tg_trunc(x.hi));
+#endif
+}
+ 
+static SIMD_CFUNC simd_double8 __tg_trunc(simd_double8 x) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_roundscale_pd(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
+#else
+  return simd_make_double8(__tg_trunc(x.lo), __tg_trunc(x.hi));
+#endif
+}
+
+#pragma mark - sine, cosine implementation
+static inline SIMD_CFUNC simd_float2 __tg_sin(simd_float2 x) {
+  return simd_make_float2(__tg_sin(simd_make_float4(x)));
+}
+  
+static inline SIMD_CFUNC simd_float3 __tg_sin(simd_float3 x) {
+  return simd_make_float3(__tg_sin(simd_make_float4(x)));
+}
+  
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_sin_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_sin(simd_float4 x) {
+  return _simd_sin_f4(x);
+}
+#elif SIMD_LIBRARY_VERSION == 1
+extern simd_float4 __sin_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_sin(simd_float4 x) {
+  return __sin_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_sin(simd_float4 x) {
+  return simd_make_float4(sin(x.x), sin(x.y), sin(x.z), sin(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_sin_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_sin(simd_float8 x) {
+  return _simd_sin_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_sin(simd_float8 x) {
+  return simd_make_float8(__tg_sin(x.lo), __tg_sin(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_sin_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_sin(simd_float16 x) {
+  return _simd_sin_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_sin(simd_float16 x) {
+  return simd_make_float16(__tg_sin(x.lo), __tg_sin(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_sin_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_sin(simd_double2 x) {
+  return _simd_sin_d2(x);
+}
+#elif SIMD_LIBRARY_VERSION == 1
+extern simd_double2 __sin_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_sin(simd_double2 x) {
+  return __sin_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_sin(simd_double2 x) {
+  return simd_make_double2(sin(x.x), sin(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_sin(simd_double3 x) {
+  return simd_make_double3(__tg_sin(simd_make_double4(x)));
+}
+  
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_sin_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_sin(simd_double4 x) {
+  return _simd_sin_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_sin(simd_double4 x) {
+  return simd_make_double4(__tg_sin(x.lo), __tg_sin(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_sin_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_sin(simd_double8 x) {
+  return _simd_sin_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_sin(simd_double8 x) {
+  return simd_make_double8(__tg_sin(x.lo), __tg_sin(x.hi));
+}
+#endif
+
+static inline SIMD_CFUNC simd_float2 __tg_cos(simd_float2 x) {
+  return simd_make_float2(__tg_cos(simd_make_float4(x)));
+}
+  
+static inline SIMD_CFUNC simd_float3 __tg_cos(simd_float3 x) {
+  return simd_make_float3(__tg_cos(simd_make_float4(x)));
+}
+  
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_cos_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_cos(simd_float4 x) {
+  return _simd_cos_f4(x);
+}
+#elif SIMD_LIBRARY_VERSION == 1
+extern simd_float4 __cos_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_cos(simd_float4 x) {
+  return __cos_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_cos(simd_float4 x) {
+  return simd_make_float4(cos(x.x), cos(x.y), cos(x.z), cos(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_cos_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_cos(simd_float8 x) {
+  return _simd_cos_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_cos(simd_float8 x) {
+  return simd_make_float8(__tg_cos(x.lo), __tg_cos(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_cos_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_cos(simd_float16 x) {
+  return _simd_cos_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_cos(simd_float16 x) {
+  return simd_make_float16(__tg_cos(x.lo), __tg_cos(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_cos_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_cos(simd_double2 x) {
+  return _simd_cos_d2(x);
+}
+#elif SIMD_LIBRARY_VERSION == 1
+extern simd_double2 __cos_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_cos(simd_double2 x) {
+  return __cos_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_cos(simd_double2 x) {
+  return simd_make_double2(cos(x.x), cos(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_cos(simd_double3 x) {
+  return simd_make_double3(__tg_cos(simd_make_double4(x)));
+}
+  
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_cos_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_cos(simd_double4 x) {
+  return _simd_cos_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_cos(simd_double4 x) {
+  return simd_make_double4(__tg_cos(x.lo), __tg_cos(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_cos_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_cos(simd_double8 x) {
+  return _simd_cos_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_cos(simd_double8 x) {
+  return simd_make_double8(__tg_cos(x.lo), __tg_cos(x.hi));
+}
+#endif
+
+  
+#pragma mark - acos implementation
+static inline SIMD_CFUNC simd_float2 __tg_acos(simd_float2 x) {
+  return simd_make_float2(__tg_acos(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_acos(simd_float3 x) {
+  return simd_make_float3(__tg_acos(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_acos_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_acos(simd_float4 x) {
+  return _simd_acos_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_acos(simd_float4 x) {
+  return simd_make_float4(acos(x.x), acos(x.y), acos(x.z), acos(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_acos_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_acos(simd_float8 x) {
+  return _simd_acos_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_acos(simd_float8 x) {
+  return simd_make_float8(__tg_acos(x.lo), __tg_acos(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_acos_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_acos(simd_float16 x) {
+  return _simd_acos_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_acos(simd_float16 x) {
+  return simd_make_float16(__tg_acos(x.lo), __tg_acos(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_acos_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_acos(simd_double2 x) {
+  return _simd_acos_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_acos(simd_double2 x) {
+  return simd_make_double2(acos(x.x), acos(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_acos(simd_double3 x) {
+  return simd_make_double3(__tg_acos(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_acos_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_acos(simd_double4 x) {
+  return _simd_acos_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_acos(simd_double4 x) {
+  return simd_make_double4(__tg_acos(x.lo), __tg_acos(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_acos_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_acos(simd_double8 x) {
+  return _simd_acos_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_acos(simd_double8 x) {
+  return simd_make_double8(__tg_acos(x.lo), __tg_acos(x.hi));
+}
+#endif
+
+#pragma mark - asin implementation
+static inline SIMD_CFUNC simd_float2 __tg_asin(simd_float2 x) {
+  return simd_make_float2(__tg_asin(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_asin(simd_float3 x) {
+  return simd_make_float3(__tg_asin(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_asin_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_asin(simd_float4 x) {
+  return _simd_asin_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_asin(simd_float4 x) {
+  return simd_make_float4(asin(x.x), asin(x.y), asin(x.z), asin(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_asin_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_asin(simd_float8 x) {
+  return _simd_asin_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_asin(simd_float8 x) {
+  return simd_make_float8(__tg_asin(x.lo), __tg_asin(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_asin_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_asin(simd_float16 x) {
+  return _simd_asin_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_asin(simd_float16 x) {
+  return simd_make_float16(__tg_asin(x.lo), __tg_asin(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_asin_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_asin(simd_double2 x) {
+  return _simd_asin_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_asin(simd_double2 x) {
+  return simd_make_double2(asin(x.x), asin(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_asin(simd_double3 x) {
+  return simd_make_double3(__tg_asin(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_asin_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_asin(simd_double4 x) {
+  return _simd_asin_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_asin(simd_double4 x) {
+  return simd_make_double4(__tg_asin(x.lo), __tg_asin(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_asin_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_asin(simd_double8 x) {
+  return _simd_asin_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_asin(simd_double8 x) {
+  return simd_make_double8(__tg_asin(x.lo), __tg_asin(x.hi));
+}
+#endif
+
+#pragma mark - atan implementation
+static inline SIMD_CFUNC simd_float2 __tg_atan(simd_float2 x) {
+  return simd_make_float2(__tg_atan(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_atan(simd_float3 x) {
+  return simd_make_float3(__tg_atan(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_atan_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_atan(simd_float4 x) {
+  return _simd_atan_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_atan(simd_float4 x) {
+  return simd_make_float4(atan(x.x), atan(x.y), atan(x.z), atan(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_atan_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_atan(simd_float8 x) {
+  return _simd_atan_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_atan(simd_float8 x) {
+  return simd_make_float8(__tg_atan(x.lo), __tg_atan(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_atan_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_atan(simd_float16 x) {
+  return _simd_atan_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_atan(simd_float16 x) {
+  return simd_make_float16(__tg_atan(x.lo), __tg_atan(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_atan_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_atan(simd_double2 x) {
+  return _simd_atan_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_atan(simd_double2 x) {
+  return simd_make_double2(atan(x.x), atan(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_atan(simd_double3 x) {
+  return simd_make_double3(__tg_atan(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_atan_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_atan(simd_double4 x) {
+  return _simd_atan_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_atan(simd_double4 x) {
+  return simd_make_double4(__tg_atan(x.lo), __tg_atan(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_atan_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_atan(simd_double8 x) {
+  return _simd_atan_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_atan(simd_double8 x) {
+  return simd_make_double8(__tg_atan(x.lo), __tg_atan(x.hi));
+}
+#endif
+
+#pragma mark - tan implementation
+static inline SIMD_CFUNC simd_float2 __tg_tan(simd_float2 x) {
+  return simd_make_float2(__tg_tan(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_tan(simd_float3 x) {
+  return simd_make_float3(__tg_tan(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_tan_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_tan(simd_float4 x) {
+  return _simd_tan_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_tan(simd_float4 x) {
+  return simd_make_float4(tan(x.x), tan(x.y), tan(x.z), tan(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_tan_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_tan(simd_float8 x) {
+  return _simd_tan_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_tan(simd_float8 x) {
+  return simd_make_float8(__tg_tan(x.lo), __tg_tan(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_tan_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_tan(simd_float16 x) {
+  return _simd_tan_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_tan(simd_float16 x) {
+  return simd_make_float16(__tg_tan(x.lo), __tg_tan(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_tan_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_tan(simd_double2 x) {
+  return _simd_tan_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_tan(simd_double2 x) {
+  return simd_make_double2(tan(x.x), tan(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_tan(simd_double3 x) {
+  return simd_make_double3(__tg_tan(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_tan_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_tan(simd_double4 x) {
+  return _simd_tan_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_tan(simd_double4 x) {
+  return simd_make_double4(__tg_tan(x.lo), __tg_tan(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_tan_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_tan(simd_double8 x) {
+  return _simd_tan_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_tan(simd_double8 x) {
+  return simd_make_double8(__tg_tan(x.lo), __tg_tan(x.hi));
+}
+#endif
+
+#pragma mark - cospi implementation
+#if SIMD_LIBRARY_VERSION >= 1
+static inline SIMD_CFUNC simd_float2 __tg_cospi(simd_float2 x) {
+  return simd_make_float2(__tg_cospi(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_cospi(simd_float3 x) {
+  return simd_make_float3(__tg_cospi(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_cospi_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_cospi(simd_float4 x) {
+  return _simd_cospi_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_cospi(simd_float4 x) {
+  return simd_make_float4(__cospi(x.x), __cospi(x.y), __cospi(x.z), __cospi(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_cospi_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_cospi(simd_float8 x) {
+  return _simd_cospi_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_cospi(simd_float8 x) {
+  return simd_make_float8(__tg_cospi(x.lo), __tg_cospi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_cospi_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_cospi(simd_float16 x) {
+  return _simd_cospi_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_cospi(simd_float16 x) {
+  return simd_make_float16(__tg_cospi(x.lo), __tg_cospi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_cospi_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_cospi(simd_double2 x) {
+  return _simd_cospi_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_cospi(simd_double2 x) {
+  return simd_make_double2(__cospi(x.x), __cospi(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_cospi(simd_double3 x) {
+  return simd_make_double3(__tg_cospi(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_cospi_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_cospi(simd_double4 x) {
+  return _simd_cospi_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_cospi(simd_double4 x) {
+  return simd_make_double4(__tg_cospi(x.lo), __tg_cospi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_cospi_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_cospi(simd_double8 x) {
+  return _simd_cospi_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_cospi(simd_double8 x) {
+  return simd_make_double8(__tg_cospi(x.lo), __tg_cospi(x.hi));
+}
+#endif
+
+#endif /* SIMD_LIBRARY_VERSION */
+#pragma mark - sinpi implementation
+#if SIMD_LIBRARY_VERSION >= 1
+static inline SIMD_CFUNC simd_float2 __tg_sinpi(simd_float2 x) {
+  return simd_make_float2(__tg_sinpi(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_sinpi(simd_float3 x) {
+  return simd_make_float3(__tg_sinpi(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_sinpi_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_sinpi(simd_float4 x) {
+  return _simd_sinpi_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_sinpi(simd_float4 x) {
+  return simd_make_float4(__sinpi(x.x), __sinpi(x.y), __sinpi(x.z), __sinpi(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_sinpi_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_sinpi(simd_float8 x) {
+  return _simd_sinpi_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_sinpi(simd_float8 x) {
+  return simd_make_float8(__tg_sinpi(x.lo), __tg_sinpi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_sinpi_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_sinpi(simd_float16 x) {
+  return _simd_sinpi_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_sinpi(simd_float16 x) {
+  return simd_make_float16(__tg_sinpi(x.lo), __tg_sinpi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_sinpi_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_sinpi(simd_double2 x) {
+  return _simd_sinpi_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_sinpi(simd_double2 x) {
+  return simd_make_double2(__sinpi(x.x), __sinpi(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_sinpi(simd_double3 x) {
+  return simd_make_double3(__tg_sinpi(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_sinpi_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_sinpi(simd_double4 x) {
+  return _simd_sinpi_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_sinpi(simd_double4 x) {
+  return simd_make_double4(__tg_sinpi(x.lo), __tg_sinpi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_sinpi_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_sinpi(simd_double8 x) {
+  return _simd_sinpi_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_sinpi(simd_double8 x) {
+  return simd_make_double8(__tg_sinpi(x.lo), __tg_sinpi(x.hi));
+}
+#endif
+
+#endif /* SIMD_LIBRARY_VERSION */
+#pragma mark - tanpi implementation
+#if SIMD_LIBRARY_VERSION >= 1
+static inline SIMD_CFUNC simd_float2 __tg_tanpi(simd_float2 x) {
+  return simd_make_float2(__tg_tanpi(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_tanpi(simd_float3 x) {
+  return simd_make_float3(__tg_tanpi(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_tanpi_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_tanpi(simd_float4 x) {
+  return _simd_tanpi_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_tanpi(simd_float4 x) {
+  return simd_make_float4(__tanpi(x.x), __tanpi(x.y), __tanpi(x.z), __tanpi(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_tanpi_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_tanpi(simd_float8 x) {
+  return _simd_tanpi_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_tanpi(simd_float8 x) {
+  return simd_make_float8(__tg_tanpi(x.lo), __tg_tanpi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_tanpi_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_tanpi(simd_float16 x) {
+  return _simd_tanpi_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_tanpi(simd_float16 x) {
+  return simd_make_float16(__tg_tanpi(x.lo), __tg_tanpi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_tanpi_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_tanpi(simd_double2 x) {
+  return _simd_tanpi_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_tanpi(simd_double2 x) {
+  return simd_make_double2(__tanpi(x.x), __tanpi(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_tanpi(simd_double3 x) {
+  return simd_make_double3(__tg_tanpi(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_tanpi_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_tanpi(simd_double4 x) {
+  return _simd_tanpi_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_tanpi(simd_double4 x) {
+  return simd_make_double4(__tg_tanpi(x.lo), __tg_tanpi(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_tanpi_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_tanpi(simd_double8 x) {
+  return _simd_tanpi_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_tanpi(simd_double8 x) {
+  return simd_make_double8(__tg_tanpi(x.lo), __tg_tanpi(x.hi));
+}
+#endif
+
+#endif /* SIMD_LIBRARY_VERSION */
+#pragma mark - acosh implementation
+static inline SIMD_CFUNC simd_float2 __tg_acosh(simd_float2 x) {
+  return simd_make_float2(__tg_acosh(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_acosh(simd_float3 x) {
+  return simd_make_float3(__tg_acosh(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_acosh_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_acosh(simd_float4 x) {
+  return _simd_acosh_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_acosh(simd_float4 x) {
+  return simd_make_float4(acosh(x.x), acosh(x.y), acosh(x.z), acosh(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_acosh_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_acosh(simd_float8 x) {
+  return _simd_acosh_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_acosh(simd_float8 x) {
+  return simd_make_float8(__tg_acosh(x.lo), __tg_acosh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_acosh_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_acosh(simd_float16 x) {
+  return _simd_acosh_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_acosh(simd_float16 x) {
+  return simd_make_float16(__tg_acosh(x.lo), __tg_acosh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_acosh_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_acosh(simd_double2 x) {
+  return _simd_acosh_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_acosh(simd_double2 x) {
+  return simd_make_double2(acosh(x.x), acosh(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_acosh(simd_double3 x) {
+  return simd_make_double3(__tg_acosh(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_acosh_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_acosh(simd_double4 x) {
+  return _simd_acosh_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_acosh(simd_double4 x) {
+  return simd_make_double4(__tg_acosh(x.lo), __tg_acosh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_acosh_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_acosh(simd_double8 x) {
+  return _simd_acosh_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_acosh(simd_double8 x) {
+  return simd_make_double8(__tg_acosh(x.lo), __tg_acosh(x.hi));
+}
+#endif
+
+#pragma mark - asinh implementation
+static inline SIMD_CFUNC simd_float2 __tg_asinh(simd_float2 x) {
+  return simd_make_float2(__tg_asinh(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_asinh(simd_float3 x) {
+  return simd_make_float3(__tg_asinh(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_asinh_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_asinh(simd_float4 x) {
+  return _simd_asinh_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_asinh(simd_float4 x) {
+  return simd_make_float4(asinh(x.x), asinh(x.y), asinh(x.z), asinh(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_asinh_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_asinh(simd_float8 x) {
+  return _simd_asinh_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_asinh(simd_float8 x) {
+  return simd_make_float8(__tg_asinh(x.lo), __tg_asinh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_asinh_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_asinh(simd_float16 x) {
+  return _simd_asinh_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_asinh(simd_float16 x) {
+  return simd_make_float16(__tg_asinh(x.lo), __tg_asinh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_asinh_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_asinh(simd_double2 x) {
+  return _simd_asinh_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_asinh(simd_double2 x) {
+  return simd_make_double2(asinh(x.x), asinh(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_asinh(simd_double3 x) {
+  return simd_make_double3(__tg_asinh(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_asinh_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_asinh(simd_double4 x) {
+  return _simd_asinh_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_asinh(simd_double4 x) {
+  return simd_make_double4(__tg_asinh(x.lo), __tg_asinh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_asinh_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_asinh(simd_double8 x) {
+  return _simd_asinh_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_asinh(simd_double8 x) {
+  return simd_make_double8(__tg_asinh(x.lo), __tg_asinh(x.hi));
+}
+#endif
+
+#pragma mark - atanh implementation
+static inline SIMD_CFUNC simd_float2 __tg_atanh(simd_float2 x) {
+  return simd_make_float2(__tg_atanh(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_atanh(simd_float3 x) {
+  return simd_make_float3(__tg_atanh(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_atanh_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_atanh(simd_float4 x) {
+  return _simd_atanh_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_atanh(simd_float4 x) {
+  return simd_make_float4(atanh(x.x), atanh(x.y), atanh(x.z), atanh(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_atanh_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_atanh(simd_float8 x) {
+  return _simd_atanh_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_atanh(simd_float8 x) {
+  return simd_make_float8(__tg_atanh(x.lo), __tg_atanh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_atanh_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_atanh(simd_float16 x) {
+  return _simd_atanh_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_atanh(simd_float16 x) {
+  return simd_make_float16(__tg_atanh(x.lo), __tg_atanh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_atanh_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_atanh(simd_double2 x) {
+  return _simd_atanh_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_atanh(simd_double2 x) {
+  return simd_make_double2(atanh(x.x), atanh(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_atanh(simd_double3 x) {
+  return simd_make_double3(__tg_atanh(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_atanh_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_atanh(simd_double4 x) {
+  return _simd_atanh_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_atanh(simd_double4 x) {
+  return simd_make_double4(__tg_atanh(x.lo), __tg_atanh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_atanh_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_atanh(simd_double8 x) {
+  return _simd_atanh_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_atanh(simd_double8 x) {
+  return simd_make_double8(__tg_atanh(x.lo), __tg_atanh(x.hi));
+}
+#endif
+
+#pragma mark - cosh implementation
+static inline SIMD_CFUNC simd_float2 __tg_cosh(simd_float2 x) {
+  return simd_make_float2(__tg_cosh(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_cosh(simd_float3 x) {
+  return simd_make_float3(__tg_cosh(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_cosh_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_cosh(simd_float4 x) {
+  return _simd_cosh_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_cosh(simd_float4 x) {
+  return simd_make_float4(cosh(x.x), cosh(x.y), cosh(x.z), cosh(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_cosh_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_cosh(simd_float8 x) {
+  return _simd_cosh_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_cosh(simd_float8 x) {
+  return simd_make_float8(__tg_cosh(x.lo), __tg_cosh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_cosh_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_cosh(simd_float16 x) {
+  return _simd_cosh_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_cosh(simd_float16 x) {
+  return simd_make_float16(__tg_cosh(x.lo), __tg_cosh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_cosh_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_cosh(simd_double2 x) {
+  return _simd_cosh_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_cosh(simd_double2 x) {
+  return simd_make_double2(cosh(x.x), cosh(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_cosh(simd_double3 x) {
+  return simd_make_double3(__tg_cosh(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_cosh_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_cosh(simd_double4 x) {
+  return _simd_cosh_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_cosh(simd_double4 x) {
+  return simd_make_double4(__tg_cosh(x.lo), __tg_cosh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_cosh_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_cosh(simd_double8 x) {
+  return _simd_cosh_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_cosh(simd_double8 x) {
+  return simd_make_double8(__tg_cosh(x.lo), __tg_cosh(x.hi));
+}
+#endif
+
+#pragma mark - sinh implementation
+static inline SIMD_CFUNC simd_float2 __tg_sinh(simd_float2 x) {
+  return simd_make_float2(__tg_sinh(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_sinh(simd_float3 x) {
+  return simd_make_float3(__tg_sinh(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_sinh_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_sinh(simd_float4 x) {
+  return _simd_sinh_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_sinh(simd_float4 x) {
+  return simd_make_float4(sinh(x.x), sinh(x.y), sinh(x.z), sinh(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_sinh_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_sinh(simd_float8 x) {
+  return _simd_sinh_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_sinh(simd_float8 x) {
+  return simd_make_float8(__tg_sinh(x.lo), __tg_sinh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_sinh_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_sinh(simd_float16 x) {
+  return _simd_sinh_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_sinh(simd_float16 x) {
+  return simd_make_float16(__tg_sinh(x.lo), __tg_sinh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_sinh_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_sinh(simd_double2 x) {
+  return _simd_sinh_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_sinh(simd_double2 x) {
+  return simd_make_double2(sinh(x.x), sinh(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_sinh(simd_double3 x) {
+  return simd_make_double3(__tg_sinh(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_sinh_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_sinh(simd_double4 x) {
+  return _simd_sinh_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_sinh(simd_double4 x) {
+  return simd_make_double4(__tg_sinh(x.lo), __tg_sinh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_sinh_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_sinh(simd_double8 x) {
+  return _simd_sinh_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_sinh(simd_double8 x) {
+  return simd_make_double8(__tg_sinh(x.lo), __tg_sinh(x.hi));
+}
+#endif
+
+#pragma mark - tanh implementation
+static inline SIMD_CFUNC simd_float2 __tg_tanh(simd_float2 x) {
+  return simd_make_float2(__tg_tanh(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_tanh(simd_float3 x) {
+  return simd_make_float3(__tg_tanh(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_tanh_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_tanh(simd_float4 x) {
+  return _simd_tanh_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_tanh(simd_float4 x) {
+  return simd_make_float4(tanh(x.x), tanh(x.y), tanh(x.z), tanh(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_tanh_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_tanh(simd_float8 x) {
+  return _simd_tanh_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_tanh(simd_float8 x) {
+  return simd_make_float8(__tg_tanh(x.lo), __tg_tanh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_tanh_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_tanh(simd_float16 x) {
+  return _simd_tanh_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_tanh(simd_float16 x) {
+  return simd_make_float16(__tg_tanh(x.lo), __tg_tanh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_tanh_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_tanh(simd_double2 x) {
+  return _simd_tanh_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_tanh(simd_double2 x) {
+  return simd_make_double2(tanh(x.x), tanh(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_tanh(simd_double3 x) {
+  return simd_make_double3(__tg_tanh(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_tanh_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_tanh(simd_double4 x) {
+  return _simd_tanh_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_tanh(simd_double4 x) {
+  return simd_make_double4(__tg_tanh(x.lo), __tg_tanh(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_tanh_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_tanh(simd_double8 x) {
+  return _simd_tanh_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_tanh(simd_double8 x) {
+  return simd_make_double8(__tg_tanh(x.lo), __tg_tanh(x.hi));
+}
+#endif
+
+#pragma mark - exp implementation
+static inline SIMD_CFUNC simd_float2 __tg_exp(simd_float2 x) {
+  return simd_make_float2(__tg_exp(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_exp(simd_float3 x) {
+  return simd_make_float3(__tg_exp(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_exp_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_exp(simd_float4 x) {
+  return _simd_exp_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_exp(simd_float4 x) {
+  return simd_make_float4(exp(x.x), exp(x.y), exp(x.z), exp(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_exp_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_exp(simd_float8 x) {
+  return _simd_exp_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_exp(simd_float8 x) {
+  return simd_make_float8(__tg_exp(x.lo), __tg_exp(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_exp_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_exp(simd_float16 x) {
+  return _simd_exp_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_exp(simd_float16 x) {
+  return simd_make_float16(__tg_exp(x.lo), __tg_exp(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_exp_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_exp(simd_double2 x) {
+  return _simd_exp_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_exp(simd_double2 x) {
+  return simd_make_double2(exp(x.x), exp(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_exp(simd_double3 x) {
+  return simd_make_double3(__tg_exp(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_exp_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_exp(simd_double4 x) {
+  return _simd_exp_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_exp(simd_double4 x) {
+  return simd_make_double4(__tg_exp(x.lo), __tg_exp(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_exp_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_exp(simd_double8 x) {
+  return _simd_exp_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_exp(simd_double8 x) {
+  return simd_make_double8(__tg_exp(x.lo), __tg_exp(x.hi));
+}
+#endif
+
+#pragma mark - exp2 implementation
+static inline SIMD_CFUNC simd_float2 __tg_exp2(simd_float2 x) {
+  return simd_make_float2(__tg_exp2(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_exp2(simd_float3 x) {
+  return simd_make_float3(__tg_exp2(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_exp2_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_exp2(simd_float4 x) {
+  return _simd_exp2_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_exp2(simd_float4 x) {
+  return simd_make_float4(exp2(x.x), exp2(x.y), exp2(x.z), exp2(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_exp2_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_exp2(simd_float8 x) {
+  return _simd_exp2_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_exp2(simd_float8 x) {
+  return simd_make_float8(__tg_exp2(x.lo), __tg_exp2(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_exp2_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_exp2(simd_float16 x) {
+  return _simd_exp2_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_exp2(simd_float16 x) {
+  return simd_make_float16(__tg_exp2(x.lo), __tg_exp2(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_exp2_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_exp2(simd_double2 x) {
+  return _simd_exp2_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_exp2(simd_double2 x) {
+  return simd_make_double2(exp2(x.x), exp2(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_exp2(simd_double3 x) {
+  return simd_make_double3(__tg_exp2(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_exp2_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_exp2(simd_double4 x) {
+  return _simd_exp2_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_exp2(simd_double4 x) {
+  return simd_make_double4(__tg_exp2(x.lo), __tg_exp2(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_exp2_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_exp2(simd_double8 x) {
+  return _simd_exp2_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_exp2(simd_double8 x) {
+  return simd_make_double8(__tg_exp2(x.lo), __tg_exp2(x.hi));
+}
+#endif
+
+#pragma mark - exp10 implementation
+#if SIMD_LIBRARY_VERSION >= 1
+static inline SIMD_CFUNC simd_float2 __tg_exp10(simd_float2 x) {
+  return simd_make_float2(__tg_exp10(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_exp10(simd_float3 x) {
+  return simd_make_float3(__tg_exp10(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_exp10_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_exp10(simd_float4 x) {
+  return _simd_exp10_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_exp10(simd_float4 x) {
+  return simd_make_float4(__exp10(x.x), __exp10(x.y), __exp10(x.z), __exp10(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_exp10_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_exp10(simd_float8 x) {
+  return _simd_exp10_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_exp10(simd_float8 x) {
+  return simd_make_float8(__tg_exp10(x.lo), __tg_exp10(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_exp10_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_exp10(simd_float16 x) {
+  return _simd_exp10_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_exp10(simd_float16 x) {
+  return simd_make_float16(__tg_exp10(x.lo), __tg_exp10(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_exp10_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_exp10(simd_double2 x) {
+  return _simd_exp10_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_exp10(simd_double2 x) {
+  return simd_make_double2(__exp10(x.x), __exp10(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_exp10(simd_double3 x) {
+  return simd_make_double3(__tg_exp10(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_exp10_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_exp10(simd_double4 x) {
+  return _simd_exp10_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_exp10(simd_double4 x) {
+  return simd_make_double4(__tg_exp10(x.lo), __tg_exp10(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_exp10_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_exp10(simd_double8 x) {
+  return _simd_exp10_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_exp10(simd_double8 x) {
+  return simd_make_double8(__tg_exp10(x.lo), __tg_exp10(x.hi));
+}
+#endif
+
+#endif /* SIMD_LIBRARY_VERSION */
+#pragma mark - expm1 implementation
+static inline SIMD_CFUNC simd_float2 __tg_expm1(simd_float2 x) {
+  return simd_make_float2(__tg_expm1(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_expm1(simd_float3 x) {
+  return simd_make_float3(__tg_expm1(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_expm1_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_expm1(simd_float4 x) {
+  return _simd_expm1_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_expm1(simd_float4 x) {
+  return simd_make_float4(expm1(x.x), expm1(x.y), expm1(x.z), expm1(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_expm1_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_expm1(simd_float8 x) {
+  return _simd_expm1_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_expm1(simd_float8 x) {
+  return simd_make_float8(__tg_expm1(x.lo), __tg_expm1(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_expm1_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_expm1(simd_float16 x) {
+  return _simd_expm1_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_expm1(simd_float16 x) {
+  return simd_make_float16(__tg_expm1(x.lo), __tg_expm1(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_expm1_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_expm1(simd_double2 x) {
+  return _simd_expm1_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_expm1(simd_double2 x) {
+  return simd_make_double2(expm1(x.x), expm1(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_expm1(simd_double3 x) {
+  return simd_make_double3(__tg_expm1(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_expm1_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_expm1(simd_double4 x) {
+  return _simd_expm1_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_expm1(simd_double4 x) {
+  return simd_make_double4(__tg_expm1(x.lo), __tg_expm1(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_expm1_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_expm1(simd_double8 x) {
+  return _simd_expm1_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_expm1(simd_double8 x) {
+  return simd_make_double8(__tg_expm1(x.lo), __tg_expm1(x.hi));
+}
+#endif
+
+#pragma mark - log implementation
+static inline SIMD_CFUNC simd_float2 __tg_log(simd_float2 x) {
+  return simd_make_float2(__tg_log(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_log(simd_float3 x) {
+  return simd_make_float3(__tg_log(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_log_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_log(simd_float4 x) {
+  return _simd_log_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_log(simd_float4 x) {
+  return simd_make_float4(log(x.x), log(x.y), log(x.z), log(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_log_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_log(simd_float8 x) {
+  return _simd_log_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_log(simd_float8 x) {
+  return simd_make_float8(__tg_log(x.lo), __tg_log(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_log_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_log(simd_float16 x) {
+  return _simd_log_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_log(simd_float16 x) {
+  return simd_make_float16(__tg_log(x.lo), __tg_log(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_log_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_log(simd_double2 x) {
+  return _simd_log_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_log(simd_double2 x) {
+  return simd_make_double2(log(x.x), log(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_log(simd_double3 x) {
+  return simd_make_double3(__tg_log(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_log_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_log(simd_double4 x) {
+  return _simd_log_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_log(simd_double4 x) {
+  return simd_make_double4(__tg_log(x.lo), __tg_log(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_log_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_log(simd_double8 x) {
+  return _simd_log_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_log(simd_double8 x) {
+  return simd_make_double8(__tg_log(x.lo), __tg_log(x.hi));
+}
+#endif
+
+#pragma mark - log2 implementation
+static inline SIMD_CFUNC simd_float2 __tg_log2(simd_float2 x) {
+  return simd_make_float2(__tg_log2(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_log2(simd_float3 x) {
+  return simd_make_float3(__tg_log2(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_log2_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_log2(simd_float4 x) {
+  return _simd_log2_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_log2(simd_float4 x) {
+  return simd_make_float4(log2(x.x), log2(x.y), log2(x.z), log2(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_log2_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_log2(simd_float8 x) {
+  return _simd_log2_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_log2(simd_float8 x) {
+  return simd_make_float8(__tg_log2(x.lo), __tg_log2(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_log2_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_log2(simd_float16 x) {
+  return _simd_log2_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_log2(simd_float16 x) {
+  return simd_make_float16(__tg_log2(x.lo), __tg_log2(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_log2_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_log2(simd_double2 x) {
+  return _simd_log2_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_log2(simd_double2 x) {
+  return simd_make_double2(log2(x.x), log2(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_log2(simd_double3 x) {
+  return simd_make_double3(__tg_log2(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_log2_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_log2(simd_double4 x) {
+  return _simd_log2_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_log2(simd_double4 x) {
+  return simd_make_double4(__tg_log2(x.lo), __tg_log2(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_log2_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_log2(simd_double8 x) {
+  return _simd_log2_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_log2(simd_double8 x) {
+  return simd_make_double8(__tg_log2(x.lo), __tg_log2(x.hi));
+}
+#endif
+
+#pragma mark - log10 implementation
+static inline SIMD_CFUNC simd_float2 __tg_log10(simd_float2 x) {
+  return simd_make_float2(__tg_log10(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_log10(simd_float3 x) {
+  return simd_make_float3(__tg_log10(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_log10_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_log10(simd_float4 x) {
+  return _simd_log10_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_log10(simd_float4 x) {
+  return simd_make_float4(log10(x.x), log10(x.y), log10(x.z), log10(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_log10_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_log10(simd_float8 x) {
+  return _simd_log10_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_log10(simd_float8 x) {
+  return simd_make_float8(__tg_log10(x.lo), __tg_log10(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_log10_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_log10(simd_float16 x) {
+  return _simd_log10_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_log10(simd_float16 x) {
+  return simd_make_float16(__tg_log10(x.lo), __tg_log10(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_log10_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_log10(simd_double2 x) {
+  return _simd_log10_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_log10(simd_double2 x) {
+  return simd_make_double2(log10(x.x), log10(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_log10(simd_double3 x) {
+  return simd_make_double3(__tg_log10(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_log10_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_log10(simd_double4 x) {
+  return _simd_log10_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_log10(simd_double4 x) {
+  return simd_make_double4(__tg_log10(x.lo), __tg_log10(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_log10_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_log10(simd_double8 x) {
+  return _simd_log10_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_log10(simd_double8 x) {
+  return simd_make_double8(__tg_log10(x.lo), __tg_log10(x.hi));
+}
+#endif
+
+#pragma mark - log1p implementation
+static inline SIMD_CFUNC simd_float2 __tg_log1p(simd_float2 x) {
+  return simd_make_float2(__tg_log1p(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_log1p(simd_float3 x) {
+  return simd_make_float3(__tg_log1p(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_log1p_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_log1p(simd_float4 x) {
+  return _simd_log1p_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_log1p(simd_float4 x) {
+  return simd_make_float4(log1p(x.x), log1p(x.y), log1p(x.z), log1p(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_log1p_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_log1p(simd_float8 x) {
+  return _simd_log1p_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_log1p(simd_float8 x) {
+  return simd_make_float8(__tg_log1p(x.lo), __tg_log1p(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_log1p_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_log1p(simd_float16 x) {
+  return _simd_log1p_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_log1p(simd_float16 x) {
+  return simd_make_float16(__tg_log1p(x.lo), __tg_log1p(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_log1p_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_log1p(simd_double2 x) {
+  return _simd_log1p_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_log1p(simd_double2 x) {
+  return simd_make_double2(log1p(x.x), log1p(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_log1p(simd_double3 x) {
+  return simd_make_double3(__tg_log1p(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_log1p_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_log1p(simd_double4 x) {
+  return _simd_log1p_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_log1p(simd_double4 x) {
+  return simd_make_double4(__tg_log1p(x.lo), __tg_log1p(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_log1p_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_log1p(simd_double8 x) {
+  return _simd_log1p_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_log1p(simd_double8 x) {
+  return simd_make_double8(__tg_log1p(x.lo), __tg_log1p(x.hi));
+}
+#endif
+
+#pragma mark - cbrt implementation
+static inline SIMD_CFUNC simd_float2 __tg_cbrt(simd_float2 x) {
+  return simd_make_float2(__tg_cbrt(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_cbrt(simd_float3 x) {
+  return simd_make_float3(__tg_cbrt(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_cbrt_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_cbrt(simd_float4 x) {
+  return _simd_cbrt_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_cbrt(simd_float4 x) {
+  return simd_make_float4(cbrt(x.x), cbrt(x.y), cbrt(x.z), cbrt(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_cbrt_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_cbrt(simd_float8 x) {
+  return _simd_cbrt_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_cbrt(simd_float8 x) {
+  return simd_make_float8(__tg_cbrt(x.lo), __tg_cbrt(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_cbrt_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_cbrt(simd_float16 x) {
+  return _simd_cbrt_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_cbrt(simd_float16 x) {
+  return simd_make_float16(__tg_cbrt(x.lo), __tg_cbrt(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_cbrt_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_cbrt(simd_double2 x) {
+  return _simd_cbrt_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_cbrt(simd_double2 x) {
+  return simd_make_double2(cbrt(x.x), cbrt(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_cbrt(simd_double3 x) {
+  return simd_make_double3(__tg_cbrt(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_cbrt_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_cbrt(simd_double4 x) {
+  return _simd_cbrt_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_cbrt(simd_double4 x) {
+  return simd_make_double4(__tg_cbrt(x.lo), __tg_cbrt(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_cbrt_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_cbrt(simd_double8 x) {
+  return _simd_cbrt_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_cbrt(simd_double8 x) {
+  return simd_make_double8(__tg_cbrt(x.lo), __tg_cbrt(x.hi));
+}
+#endif
+
+#pragma mark - erf implementation
+static inline SIMD_CFUNC simd_float2 __tg_erf(simd_float2 x) {
+  return simd_make_float2(__tg_erf(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_erf(simd_float3 x) {
+  return simd_make_float3(__tg_erf(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_erf_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_erf(simd_float4 x) {
+  return _simd_erf_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_erf(simd_float4 x) {
+  return simd_make_float4(erf(x.x), erf(x.y), erf(x.z), erf(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_erf_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_erf(simd_float8 x) {
+  return _simd_erf_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_erf(simd_float8 x) {
+  return simd_make_float8(__tg_erf(x.lo), __tg_erf(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_erf_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_erf(simd_float16 x) {
+  return _simd_erf_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_erf(simd_float16 x) {
+  return simd_make_float16(__tg_erf(x.lo), __tg_erf(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_erf_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_erf(simd_double2 x) {
+  return _simd_erf_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_erf(simd_double2 x) {
+  return simd_make_double2(erf(x.x), erf(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_erf(simd_double3 x) {
+  return simd_make_double3(__tg_erf(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_erf_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_erf(simd_double4 x) {
+  return _simd_erf_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_erf(simd_double4 x) {
+  return simd_make_double4(__tg_erf(x.lo), __tg_erf(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_erf_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_erf(simd_double8 x) {
+  return _simd_erf_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_erf(simd_double8 x) {
+  return simd_make_double8(__tg_erf(x.lo), __tg_erf(x.hi));
+}
+#endif
+
+#pragma mark - erfc implementation
+static inline SIMD_CFUNC simd_float2 __tg_erfc(simd_float2 x) {
+  return simd_make_float2(__tg_erfc(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_erfc(simd_float3 x) {
+  return simd_make_float3(__tg_erfc(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_erfc_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_erfc(simd_float4 x) {
+  return _simd_erfc_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_erfc(simd_float4 x) {
+  return simd_make_float4(erfc(x.x), erfc(x.y), erfc(x.z), erfc(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_erfc_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_erfc(simd_float8 x) {
+  return _simd_erfc_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_erfc(simd_float8 x) {
+  return simd_make_float8(__tg_erfc(x.lo), __tg_erfc(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_erfc_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_erfc(simd_float16 x) {
+  return _simd_erfc_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_erfc(simd_float16 x) {
+  return simd_make_float16(__tg_erfc(x.lo), __tg_erfc(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_erfc_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_erfc(simd_double2 x) {
+  return _simd_erfc_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_erfc(simd_double2 x) {
+  return simd_make_double2(erfc(x.x), erfc(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_erfc(simd_double3 x) {
+  return simd_make_double3(__tg_erfc(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_erfc_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_erfc(simd_double4 x) {
+  return _simd_erfc_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_erfc(simd_double4 x) {
+  return simd_make_double4(__tg_erfc(x.lo), __tg_erfc(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_erfc_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_erfc(simd_double8 x) {
+  return _simd_erfc_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_erfc(simd_double8 x) {
+  return simd_make_double8(__tg_erfc(x.lo), __tg_erfc(x.hi));
+}
+#endif
+
+#pragma mark - tgamma implementation
+static inline SIMD_CFUNC simd_float2 __tg_tgamma(simd_float2 x) {
+  return simd_make_float2(__tg_tgamma(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_tgamma(simd_float3 x) {
+  return simd_make_float3(__tg_tgamma(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_tgamma_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_tgamma(simd_float4 x) {
+  return _simd_tgamma_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_tgamma(simd_float4 x) {
+  return simd_make_float4(tgamma(x.x), tgamma(x.y), tgamma(x.z), tgamma(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_tgamma_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_tgamma(simd_float8 x) {
+  return _simd_tgamma_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_tgamma(simd_float8 x) {
+  return simd_make_float8(__tg_tgamma(x.lo), __tg_tgamma(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_tgamma_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_tgamma(simd_float16 x) {
+  return _simd_tgamma_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_tgamma(simd_float16 x) {
+  return simd_make_float16(__tg_tgamma(x.lo), __tg_tgamma(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_tgamma_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_tgamma(simd_double2 x) {
+  return _simd_tgamma_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_tgamma(simd_double2 x) {
+  return simd_make_double2(tgamma(x.x), tgamma(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_tgamma(simd_double3 x) {
+  return simd_make_double3(__tg_tgamma(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_tgamma_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_tgamma(simd_double4 x) {
+  return _simd_tgamma_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_tgamma(simd_double4 x) {
+  return simd_make_double4(__tg_tgamma(x.lo), __tg_tgamma(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_tgamma_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_tgamma(simd_double8 x) {
+  return _simd_tgamma_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_tgamma(simd_double8 x) {
+  return simd_make_double8(__tg_tgamma(x.lo), __tg_tgamma(x.hi));
+}
+#endif
+
+#pragma mark - round implementation
+static inline SIMD_CFUNC simd_float2 __tg_round(simd_float2 x) {
+  return simd_make_float2(__tg_round(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_round(simd_float3 x) {
+  return simd_make_float3(__tg_round(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_round_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_round(simd_float4 x) {
+#if defined __arm64__
+  return vrndaq_f32(x);
+#else
+  return _simd_round_f4(x);
+#endif
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_round(simd_float4 x) {
+  return simd_make_float4(round(x.x), round(x.y), round(x.z), round(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_round_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_round(simd_float8 x) {
+  return _simd_round_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_round(simd_float8 x) {
+  return simd_make_float8(__tg_round(x.lo), __tg_round(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_round_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_round(simd_float16 x) {
+  return _simd_round_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_round(simd_float16 x) {
+  return simd_make_float16(__tg_round(x.lo), __tg_round(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_round_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_round(simd_double2 x) {
+#if defined __arm64__
+  return vrndaq_f64(x);
+#else
+  return _simd_round_d2(x);
+#endif
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_round(simd_double2 x) {
+  return simd_make_double2(round(x.x), round(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_round(simd_double3 x) {
+  return simd_make_double3(__tg_round(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_round_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_round(simd_double4 x) {
+  return _simd_round_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_round(simd_double4 x) {
+  return simd_make_double4(__tg_round(x.lo), __tg_round(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_round_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_round(simd_double8 x) {
+  return _simd_round_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_round(simd_double8 x) {
+  return simd_make_double8(__tg_round(x.lo), __tg_round(x.hi));
+}
+#endif
+
+#pragma mark - atan2 implementation
+static inline SIMD_CFUNC simd_float2 __tg_atan2(simd_float2 y, simd_float2 x) {
+  return simd_make_float2(__tg_atan2(simd_make_float4(y), simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_atan2(simd_float3 y, simd_float3 x) {
+  return simd_make_float3(__tg_atan2(simd_make_float4(y), simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_atan2_f4(simd_float4 y, simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_atan2(simd_float4 y, simd_float4 x) {
+  return _simd_atan2_f4(y, x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_atan2(simd_float4 y, simd_float4 x) {
+  return simd_make_float4(atan2(y.x, x.x), atan2(y.y, x.y), atan2(y.z, x.z), atan2(y.w, x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_atan2_f8(simd_float8 y, simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_atan2(simd_float8 y, simd_float8 x) {
+  return _simd_atan2_f8(y, x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_atan2(simd_float8 y, simd_float8 x) {
+  return simd_make_float8(__tg_atan2(y.lo, x.lo), __tg_atan2(y.hi, x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_atan2_f16(simd_float16 y, simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_atan2(simd_float16 y, simd_float16 x) {
+  return _simd_atan2_f16(y, x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_atan2(simd_float16 y, simd_float16 x) {
+  return simd_make_float16(__tg_atan2(y.lo, x.lo), __tg_atan2(y.hi, x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_atan2_d2(simd_double2 y, simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_atan2(simd_double2 y, simd_double2 x) {
+  return _simd_atan2_d2(y, x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_atan2(simd_double2 y, simd_double2 x) {
+  return simd_make_double2(atan2(y.x, x.x), atan2(y.y, x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_atan2(simd_double3 y, simd_double3 x) {
+  return simd_make_double3(__tg_atan2(simd_make_double4(y), simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_atan2_d4(simd_double4 y, simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_atan2(simd_double4 y, simd_double4 x) {
+  return _simd_atan2_d4(y, x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_atan2(simd_double4 y, simd_double4 x) {
+  return simd_make_double4(__tg_atan2(y.lo, x.lo), __tg_atan2(y.hi, x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_atan2_d8(simd_double8 y, simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_atan2(simd_double8 y, simd_double8 x) {
+  return _simd_atan2_d8(y, x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_atan2(simd_double8 y, simd_double8 x) {
+  return simd_make_double8(__tg_atan2(y.lo, x.lo), __tg_atan2(y.hi, x.hi));
+}
+#endif
+
+#pragma mark - hypot implementation
+static inline SIMD_CFUNC simd_float2 __tg_hypot(simd_float2 x, simd_float2 y) {
+  return simd_make_float2(__tg_hypot(simd_make_float4(x), simd_make_float4(y)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_hypot(simd_float3 x, simd_float3 y) {
+  return simd_make_float3(__tg_hypot(simd_make_float4(x), simd_make_float4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_hypot_f4(simd_float4 x, simd_float4 y);
+static inline SIMD_CFUNC simd_float4 __tg_hypot(simd_float4 x, simd_float4 y) {
+  return _simd_hypot_f4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_hypot(simd_float4 x, simd_float4 y) {
+  return simd_make_float4(hypot(x.x, y.x), hypot(x.y, y.y), hypot(x.z, y.z), hypot(x.w, y.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_hypot_f8(simd_float8 x, simd_float8 y);
+static inline SIMD_CFUNC simd_float8 __tg_hypot(simd_float8 x, simd_float8 y) {
+  return _simd_hypot_f8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_hypot(simd_float8 x, simd_float8 y) {
+  return simd_make_float8(__tg_hypot(x.lo, y.lo), __tg_hypot(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_hypot_f16(simd_float16 x, simd_float16 y);
+static inline SIMD_CFUNC simd_float16 __tg_hypot(simd_float16 x, simd_float16 y) {
+  return _simd_hypot_f16(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_hypot(simd_float16 x, simd_float16 y) {
+  return simd_make_float16(__tg_hypot(x.lo, y.lo), __tg_hypot(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_hypot_d2(simd_double2 x, simd_double2 y);
+static inline SIMD_CFUNC simd_double2 __tg_hypot(simd_double2 x, simd_double2 y) {
+  return _simd_hypot_d2(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_hypot(simd_double2 x, simd_double2 y) {
+  return simd_make_double2(hypot(x.x, y.x), hypot(x.y, y.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_hypot(simd_double3 x, simd_double3 y) {
+  return simd_make_double3(__tg_hypot(simd_make_double4(x), simd_make_double4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_hypot_d4(simd_double4 x, simd_double4 y);
+static inline SIMD_CFUNC simd_double4 __tg_hypot(simd_double4 x, simd_double4 y) {
+  return _simd_hypot_d4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_hypot(simd_double4 x, simd_double4 y) {
+  return simd_make_double4(__tg_hypot(x.lo, y.lo), __tg_hypot(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_hypot_d8(simd_double8 x, simd_double8 y);
+static inline SIMD_CFUNC simd_double8 __tg_hypot(simd_double8 x, simd_double8 y) {
+  return _simd_hypot_d8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_hypot(simd_double8 x, simd_double8 y) {
+  return simd_make_double8(__tg_hypot(x.lo, y.lo), __tg_hypot(x.hi, y.hi));
+}
+#endif
+
+#pragma mark - pow implementation
+static inline SIMD_CFUNC simd_float2 __tg_pow(simd_float2 x, simd_float2 y) {
+  return simd_make_float2(__tg_pow(simd_make_float4(x), simd_make_float4(y)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_pow(simd_float3 x, simd_float3 y) {
+  return simd_make_float3(__tg_pow(simd_make_float4(x), simd_make_float4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_pow_f4(simd_float4 x, simd_float4 y);
+static inline SIMD_CFUNC simd_float4 __tg_pow(simd_float4 x, simd_float4 y) {
+  return _simd_pow_f4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_pow(simd_float4 x, simd_float4 y) {
+  return simd_make_float4(pow(x.x, y.x), pow(x.y, y.y), pow(x.z, y.z), pow(x.w, y.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_pow_f8(simd_float8 x, simd_float8 y);
+static inline SIMD_CFUNC simd_float8 __tg_pow(simd_float8 x, simd_float8 y) {
+  return _simd_pow_f8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_pow(simd_float8 x, simd_float8 y) {
+  return simd_make_float8(__tg_pow(x.lo, y.lo), __tg_pow(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_pow_f16(simd_float16 x, simd_float16 y);
+static inline SIMD_CFUNC simd_float16 __tg_pow(simd_float16 x, simd_float16 y) {
+  return _simd_pow_f16(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_pow(simd_float16 x, simd_float16 y) {
+  return simd_make_float16(__tg_pow(x.lo, y.lo), __tg_pow(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_pow_d2(simd_double2 x, simd_double2 y);
+static inline SIMD_CFUNC simd_double2 __tg_pow(simd_double2 x, simd_double2 y) {
+  return _simd_pow_d2(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_pow(simd_double2 x, simd_double2 y) {
+  return simd_make_double2(pow(x.x, y.x), pow(x.y, y.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_pow(simd_double3 x, simd_double3 y) {
+  return simd_make_double3(__tg_pow(simd_make_double4(x), simd_make_double4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_pow_d4(simd_double4 x, simd_double4 y);
+static inline SIMD_CFUNC simd_double4 __tg_pow(simd_double4 x, simd_double4 y) {
+  return _simd_pow_d4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_pow(simd_double4 x, simd_double4 y) {
+  return simd_make_double4(__tg_pow(x.lo, y.lo), __tg_pow(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_pow_d8(simd_double8 x, simd_double8 y);
+static inline SIMD_CFUNC simd_double8 __tg_pow(simd_double8 x, simd_double8 y) {
+  return _simd_pow_d8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_pow(simd_double8 x, simd_double8 y) {
+  return simd_make_double8(__tg_pow(x.lo, y.lo), __tg_pow(x.hi, y.hi));
+}
+#endif
+
+#pragma mark - fmod implementation
+static inline SIMD_CFUNC simd_float2 __tg_fmod(simd_float2 x, simd_float2 y) {
+  return simd_make_float2(__tg_fmod(simd_make_float4(x), simd_make_float4(y)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_fmod(simd_float3 x, simd_float3 y) {
+  return simd_make_float3(__tg_fmod(simd_make_float4(x), simd_make_float4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_fmod_f4(simd_float4 x, simd_float4 y);
+static inline SIMD_CFUNC simd_float4 __tg_fmod(simd_float4 x, simd_float4 y) {
+  return _simd_fmod_f4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_fmod(simd_float4 x, simd_float4 y) {
+  return simd_make_float4(fmod(x.x, y.x), fmod(x.y, y.y), fmod(x.z, y.z), fmod(x.w, y.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_fmod_f8(simd_float8 x, simd_float8 y);
+static inline SIMD_CFUNC simd_float8 __tg_fmod(simd_float8 x, simd_float8 y) {
+  return _simd_fmod_f8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_fmod(simd_float8 x, simd_float8 y) {
+  return simd_make_float8(__tg_fmod(x.lo, y.lo), __tg_fmod(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_fmod_f16(simd_float16 x, simd_float16 y);
+static inline SIMD_CFUNC simd_float16 __tg_fmod(simd_float16 x, simd_float16 y) {
+  return _simd_fmod_f16(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_fmod(simd_float16 x, simd_float16 y) {
+  return simd_make_float16(__tg_fmod(x.lo, y.lo), __tg_fmod(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_fmod_d2(simd_double2 x, simd_double2 y);
+static inline SIMD_CFUNC simd_double2 __tg_fmod(simd_double2 x, simd_double2 y) {
+  return _simd_fmod_d2(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_fmod(simd_double2 x, simd_double2 y) {
+  return simd_make_double2(fmod(x.x, y.x), fmod(x.y, y.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_fmod(simd_double3 x, simd_double3 y) {
+  return simd_make_double3(__tg_fmod(simd_make_double4(x), simd_make_double4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_fmod_d4(simd_double4 x, simd_double4 y);
+static inline SIMD_CFUNC simd_double4 __tg_fmod(simd_double4 x, simd_double4 y) {
+  return _simd_fmod_d4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_fmod(simd_double4 x, simd_double4 y) {
+  return simd_make_double4(__tg_fmod(x.lo, y.lo), __tg_fmod(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_fmod_d8(simd_double8 x, simd_double8 y);
+static inline SIMD_CFUNC simd_double8 __tg_fmod(simd_double8 x, simd_double8 y) {
+  return _simd_fmod_d8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_fmod(simd_double8 x, simd_double8 y) {
+  return simd_make_double8(__tg_fmod(x.lo, y.lo), __tg_fmod(x.hi, y.hi));
+}
+#endif
+
+#pragma mark - remainder implementation
+static inline SIMD_CFUNC simd_float2 __tg_remainder(simd_float2 x, simd_float2 y) {
+  return simd_make_float2(__tg_remainder(simd_make_float4(x), simd_make_float4(y)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_remainder(simd_float3 x, simd_float3 y) {
+  return simd_make_float3(__tg_remainder(simd_make_float4(x), simd_make_float4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_remainder_f4(simd_float4 x, simd_float4 y);
+static inline SIMD_CFUNC simd_float4 __tg_remainder(simd_float4 x, simd_float4 y) {
+  return _simd_remainder_f4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_remainder(simd_float4 x, simd_float4 y) {
+  return simd_make_float4(remainder(x.x, y.x), remainder(x.y, y.y), remainder(x.z, y.z), remainder(x.w, y.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_remainder_f8(simd_float8 x, simd_float8 y);
+static inline SIMD_CFUNC simd_float8 __tg_remainder(simd_float8 x, simd_float8 y) {
+  return _simd_remainder_f8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_remainder(simd_float8 x, simd_float8 y) {
+  return simd_make_float8(__tg_remainder(x.lo, y.lo), __tg_remainder(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_remainder_f16(simd_float16 x, simd_float16 y);
+static inline SIMD_CFUNC simd_float16 __tg_remainder(simd_float16 x, simd_float16 y) {
+  return _simd_remainder_f16(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_remainder(simd_float16 x, simd_float16 y) {
+  return simd_make_float16(__tg_remainder(x.lo, y.lo), __tg_remainder(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_remainder_d2(simd_double2 x, simd_double2 y);
+static inline SIMD_CFUNC simd_double2 __tg_remainder(simd_double2 x, simd_double2 y) {
+  return _simd_remainder_d2(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_remainder(simd_double2 x, simd_double2 y) {
+  return simd_make_double2(remainder(x.x, y.x), remainder(x.y, y.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_remainder(simd_double3 x, simd_double3 y) {
+  return simd_make_double3(__tg_remainder(simd_make_double4(x), simd_make_double4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_remainder_d4(simd_double4 x, simd_double4 y);
+static inline SIMD_CFUNC simd_double4 __tg_remainder(simd_double4 x, simd_double4 y) {
+  return _simd_remainder_d4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_remainder(simd_double4 x, simd_double4 y) {
+  return simd_make_double4(__tg_remainder(x.lo, y.lo), __tg_remainder(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_remainder_d8(simd_double8 x, simd_double8 y);
+static inline SIMD_CFUNC simd_double8 __tg_remainder(simd_double8 x, simd_double8 y) {
+  return _simd_remainder_d8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_remainder(simd_double8 x, simd_double8 y) {
+  return simd_make_double8(__tg_remainder(x.lo, y.lo), __tg_remainder(x.hi, y.hi));
+}
+#endif
+
+#pragma mark - nextafter implementation
+static inline SIMD_CFUNC simd_float2 __tg_nextafter(simd_float2 x, simd_float2 y) {
+  return simd_make_float2(__tg_nextafter(simd_make_float4(x), simd_make_float4(y)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_nextafter(simd_float3 x, simd_float3 y) {
+  return simd_make_float3(__tg_nextafter(simd_make_float4(x), simd_make_float4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_float4 _simd_nextafter_f4(simd_float4 x, simd_float4 y);
+static inline SIMD_CFUNC simd_float4 __tg_nextafter(simd_float4 x, simd_float4 y) {
+  return _simd_nextafter_f4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_nextafter(simd_float4 x, simd_float4 y) {
+  return simd_make_float4(nextafter(x.x, y.x), nextafter(x.y, y.y), nextafter(x.z, y.z), nextafter(x.w, y.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_nextafter_f8(simd_float8 x, simd_float8 y);
+static inline SIMD_CFUNC simd_float8 __tg_nextafter(simd_float8 x, simd_float8 y) {
+  return _simd_nextafter_f8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_nextafter(simd_float8 x, simd_float8 y) {
+  return simd_make_float8(__tg_nextafter(x.lo, y.lo), __tg_nextafter(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_nextafter_f16(simd_float16 x, simd_float16 y);
+static inline SIMD_CFUNC simd_float16 __tg_nextafter(simd_float16 x, simd_float16 y) {
+  return _simd_nextafter_f16(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_nextafter(simd_float16 x, simd_float16 y) {
+  return simd_make_float16(__tg_nextafter(x.lo, y.lo), __tg_nextafter(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_nextafter_d2(simd_double2 x, simd_double2 y);
+static inline SIMD_CFUNC simd_double2 __tg_nextafter(simd_double2 x, simd_double2 y) {
+  return _simd_nextafter_d2(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_nextafter(simd_double2 x, simd_double2 y) {
+  return simd_make_double2(nextafter(x.x, y.x), nextafter(x.y, y.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_nextafter(simd_double3 x, simd_double3 y) {
+  return simd_make_double3(__tg_nextafter(simd_make_double4(x), simd_make_double4(y)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_nextafter_d4(simd_double4 x, simd_double4 y);
+static inline SIMD_CFUNC simd_double4 __tg_nextafter(simd_double4 x, simd_double4 y) {
+  return _simd_nextafter_d4(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_nextafter(simd_double4 x, simd_double4 y) {
+  return simd_make_double4(__tg_nextafter(x.lo, y.lo), __tg_nextafter(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 3 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_nextafter_d8(simd_double8 x, simd_double8 y);
+static inline SIMD_CFUNC simd_double8 __tg_nextafter(simd_double8 x, simd_double8 y) {
+  return _simd_nextafter_d8(x, y);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_nextafter(simd_double8 x, simd_double8 y) {
+  return simd_make_double8(__tg_nextafter(x.lo, y.lo), __tg_nextafter(x.hi, y.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 5
+#pragma mark - sincos implementation
+static inline SIMD_NONCONST void __tg_sincos(simd_float2 x, simd_float2 *sinp, simd_float2 *cosp) {
+    simd_float4 sin_val;
+    simd_float4 cos_val;
+    __tg_sincos(simd_make_float4(x), &sin_val, &cos_val);
+    *sinp = simd_make_float2(sin_val);
+    *cosp = simd_make_float2(cos_val);
+}
+
+static inline SIMD_NONCONST void __tg_sincos(simd_float3 x, simd_float3 *sinp, simd_float3 *cosp) {
+    simd_float4 sin_val;
+    simd_float4 cos_val;
+    __tg_sincos(simd_make_float4(x), &sin_val, &cos_val);
+    *sinp = simd_make_float3(sin_val);
+    *cosp = simd_make_float3(cos_val);
+}
+
+extern void _simd_sincos_f4(simd_float4 x, simd_float4 *sinp, simd_float4 *cosp);
+static inline SIMD_NONCONST void __tg_sincos(simd_float4 x, simd_float4 *sinp, simd_float4 *cosp) {
+  return _simd_sincos_f4(x, sinp, cosp);
+}
+
+static inline SIMD_NONCONST void __tg_sincos(simd_float8 x, simd_float8 *sinp, simd_float8 *cosp) {
+  __tg_sincos(x.lo, (simd_float4 *)sinp+0, (simd_float4 *)cosp+0);
+  __tg_sincos(x.hi, (simd_float4 *)sinp+1, (simd_float4 *)cosp+1);
+}
+
+static inline SIMD_NONCONST void __tg_sincos(simd_float16 x, simd_float16 *sinp, simd_float16 *cosp) {
+  __tg_sincos(x.lo, (simd_float8 *)sinp+0, (simd_float8 *)cosp+0);
+  __tg_sincos(x.hi, (simd_float8 *)sinp+1, (simd_float8 *)cosp+1);
+}
+
+extern void _simd_sincos_d2(simd_double2 x, simd_double2 *sinp, simd_double2 *cosp);
+static inline SIMD_NONCONST void __tg_sincos(simd_double2 x, simd_double2 *sinp, simd_double2 *cosp) {
+  return _simd_sincos_d2(x, sinp, cosp);
+}
+
+static inline SIMD_NONCONST void __tg_sincos(simd_double3 x, simd_double3 *sinp, simd_double3 *cosp) {
+    simd_double4 sin_val;
+    simd_double4 cos_val;
+    __tg_sincos(simd_make_double4(x), &sin_val, &cos_val);
+    *sinp = simd_make_double3(sin_val);
+    *cosp = simd_make_double3(cos_val);
+}
+
+static inline SIMD_NONCONST void __tg_sincos(simd_double4 x, simd_double4 *sinp, simd_double4 *cosp) {
+  __tg_sincos(x.lo, (simd_double2 *)sinp+0, (simd_double2 *)cosp+0);
+  __tg_sincos(x.hi, (simd_double2 *)sinp+1, (simd_double2 *)cosp+1);
+}
+
+static inline SIMD_NONCONST void __tg_sincos(simd_double8 x, simd_double8 *sinp, simd_double8 *cosp) {
+  __tg_sincos(x.lo, (simd_double4 *)sinp+0, (simd_double4 *)cosp+0);
+  __tg_sincos(x.hi, (simd_double4 *)sinp+1, (simd_double4 *)cosp+1);
+}
+
+#pragma mark - sincospi implementation
+static inline SIMD_NONCONST void __tg_sincospi(simd_float2 x, simd_float2 *sinp, simd_float2 *cosp) {
+    simd_float4 sin_val;
+    simd_float4 cos_val;
+    __tg_sincospi(simd_make_float4(x), &sin_val, &cos_val);
+    *sinp = simd_make_float2(sin_val);
+    *cosp = simd_make_float2(cos_val);
+}
+
+static inline SIMD_NONCONST void __tg_sincospi(simd_float3 x, simd_float3 *sinp, simd_float3 *cosp) {
+    simd_float4 sin_val;
+    simd_float4 cos_val;
+    __tg_sincospi(simd_make_float4(x), &sin_val, &cos_val);
+    *sinp = simd_make_float3(sin_val);
+    *cosp = simd_make_float3(cos_val);
+}
+
+extern void _simd_sincospi_f4(simd_float4 x, simd_float4 *sinp, simd_float4 *cosp);
+static inline SIMD_NONCONST void __tg_sincospi(simd_float4 x, simd_float4 *sinp, simd_float4 *cosp) {
+  return _simd_sincospi_f4(x, sinp, cosp);
+}
+
+static inline SIMD_NONCONST void __tg_sincospi(simd_float8 x, simd_float8 *sinp, simd_float8 *cosp) {
+  __tg_sincospi(x.lo, (simd_float4 *)sinp+0, (simd_float4 *)cosp+0);
+  __tg_sincospi(x.hi, (simd_float4 *)sinp+1, (simd_float4 *)cosp+1);
+}
+
+static inline SIMD_NONCONST void __tg_sincospi(simd_float16 x, simd_float16 *sinp, simd_float16 *cosp) {
+  __tg_sincospi(x.lo, (simd_float8 *)sinp+0, (simd_float8 *)cosp+0);
+  __tg_sincospi(x.hi, (simd_float8 *)sinp+1, (simd_float8 *)cosp+1);
+}
+
+extern void _simd_sincospi_d2(simd_double2 x, simd_double2 *sinp, simd_double2 *cosp);
+static inline SIMD_NONCONST void __tg_sincospi(simd_double2 x, simd_double2 *sinp, simd_double2 *cosp) {
+  return _simd_sincospi_d2(x, sinp, cosp);
+}
+
+static inline SIMD_NONCONST void __tg_sincospi(simd_double3 x, simd_double3 *sinp, simd_double3 *cosp) {
+    simd_double4 sin_val;
+    simd_double4 cos_val;
+    __tg_sincospi(simd_make_double4(x), &sin_val, &cos_val);
+    *sinp = simd_make_double3(sin_val);
+    *cosp = simd_make_double3(cos_val);
+}
+
+static inline SIMD_NONCONST void __tg_sincospi(simd_double4 x, simd_double4 *sinp, simd_double4 *cosp) {
+  __tg_sincospi(x.lo, (simd_double2 *)sinp+0, (simd_double2 *)cosp+0);
+  __tg_sincospi(x.hi, (simd_double2 *)sinp+1, (simd_double2 *)cosp+1);
+}
+
+static inline SIMD_NONCONST void __tg_sincospi(simd_double8 x, simd_double8 *sinp, simd_double8 *cosp) {
+  __tg_sincospi(x.lo, (simd_double4 *)sinp+0, (simd_double4 *)cosp+0);
+  __tg_sincospi(x.hi, (simd_double4 *)sinp+1, (simd_double4 *)cosp+1);
+}
+
+#endif // SIMD_LIBRARY_VERSION >= 5
+#pragma mark - lgamma implementation
+static inline SIMD_CFUNC simd_float2 __tg_lgamma(simd_float2 x) {
+  return simd_make_float2(__tg_lgamma(simd_make_float4(x)));
+}
+
+static inline SIMD_CFUNC simd_float3 __tg_lgamma(simd_float3 x) {
+  return simd_make_float3(__tg_lgamma(simd_make_float4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 4
+extern simd_float4 _simd_lgamma_f4(simd_float4 x);
+static inline SIMD_CFUNC simd_float4 __tg_lgamma(simd_float4 x) {
+  return _simd_lgamma_f4(x);
+}
+#else
+static inline SIMD_CFUNC simd_float4 __tg_lgamma(simd_float4 x) {
+  return simd_make_float4(lgamma(x.x), lgamma(x.y), lgamma(x.z), lgamma(x.w));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 4 && defined __x86_64__ && defined __AVX2__
+extern simd_float8 _simd_lgamma_f8(simd_float8 x);
+static inline SIMD_CFUNC simd_float8 __tg_lgamma(simd_float8 x) {
+  return _simd_lgamma_f8(x);
+}
+#else
+static inline SIMD_CFUNC simd_float8 __tg_lgamma(simd_float8 x) {
+  return simd_make_float8(__tg_lgamma(x.lo), __tg_lgamma(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 4 && defined __x86_64__ && defined __AVX512F__
+extern simd_float16 _simd_lgamma_f16(simd_float16 x);
+static inline SIMD_CFUNC simd_float16 __tg_lgamma(simd_float16 x) {
+  return _simd_lgamma_f16(x);
+}
+#else
+static inline SIMD_CFUNC simd_float16 __tg_lgamma(simd_float16 x) {
+  return simd_make_float16(__tg_lgamma(x.lo), __tg_lgamma(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 4
+extern simd_double2 _simd_lgamma_d2(simd_double2 x);
+static inline SIMD_CFUNC simd_double2 __tg_lgamma(simd_double2 x) {
+  return _simd_lgamma_d2(x);
+}
+#else
+static inline SIMD_CFUNC simd_double2 __tg_lgamma(simd_double2 x) {
+  return simd_make_double2(lgamma(x.x), lgamma(x.y));
+}
+#endif
+
+static inline SIMD_CFUNC simd_double3 __tg_lgamma(simd_double3 x) {
+  return simd_make_double3(__tg_lgamma(simd_make_double4(x)));
+}
+
+#if SIMD_LIBRARY_VERSION >= 4 && defined __x86_64__ && defined __AVX2__
+extern simd_double4 _simd_lgamma_d4(simd_double4 x);
+static inline SIMD_CFUNC simd_double4 __tg_lgamma(simd_double4 x) {
+  return _simd_lgamma_d4(x);
+}
+#else
+static inline SIMD_CFUNC simd_double4 __tg_lgamma(simd_double4 x) {
+  return simd_make_double4(__tg_lgamma(x.lo), __tg_lgamma(x.hi));
+}
+#endif
+
+#if SIMD_LIBRARY_VERSION >= 4 && defined __x86_64__ && defined __AVX512F__
+extern simd_double8 _simd_lgamma_d8(simd_double8 x);
+static inline SIMD_CFUNC simd_double8 __tg_lgamma(simd_double8 x) {
+  return _simd_lgamma_d8(x);
+}
+#else
+static inline SIMD_CFUNC simd_double8 __tg_lgamma(simd_double8 x) {
+  return simd_make_double8(__tg_lgamma(x.lo), __tg_lgamma(x.hi));
+}
+#endif
+
+static inline SIMD_CFUNC simd_float2 __tg_fdim(simd_float2 x, simd_float2 y) { return simd_bitselect(x-y, 0, x= 3
+extern simd_float4 _simd_fma_f4(simd_float4 x, simd_float4 y, simd_float4 z);
+#endif
+static inline SIMD_CFUNC simd_float4 __tg_fma(simd_float4 x, simd_float4 y, simd_float4 z) {
+#if defined __arm64__ || defined __ARM_VFPV4__
+  return vfmaq_f32(z, x, y);
+#elif (defined __i386__ || defined __x86_64__) && defined __FMA__
+  return _mm_fmadd_ps(x, y, z);
+#elif SIMD_LIBRARY_VERSION >= 3
+  return _simd_fma_f4(x, y, z);
+#else
+  return simd_make_float4(fma(x.x, y.x, z.x), fma(x.y, y.y, z.y), fma(x.z, y.z, z.z), fma(x.w, y.w, z.w));
+#endif
+}
+
+static inline SIMD_CFUNC simd_float8 __tg_fma(simd_float8 x, simd_float8 y, simd_float8 z) {
+#if (defined __i386__ || defined __x86_64__) && defined __FMA__
+  return _mm256_fmadd_ps(x, y, z);
+#else
+  return simd_make_float8(__tg_fma(x.lo, y.lo, z.lo), __tg_fma(x.hi, y.hi, z.hi));
+#endif
+}
+
+static inline SIMD_CFUNC simd_float16 __tg_fma(simd_float16 x, simd_float16 y, simd_float16 z) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_fmadd_ps(x, y, z);
+#else
+  return simd_make_float16(__tg_fma(x.lo, y.lo, z.lo), __tg_fma(x.hi, y.hi, z.hi));
+#endif
+}
+
+#if SIMD_LIBRARY_VERSION >= 3
+extern simd_double2 _simd_fma_d2(simd_double2 x, simd_double2 y, simd_double2 z);
+#endif
+static inline SIMD_CFUNC simd_double2 __tg_fma(simd_double2 x, simd_double2 y, simd_double2 z) {
+#if defined __arm64__
+  return vfmaq_f64(z, x, y);
+#elif (defined __i386__ || defined __x86_64__) && defined __FMA__
+  return _mm_fmadd_pd(x, y, z);
+#elif SIMD_LIBRARY_VERSION >= 3
+  return _simd_fma_d2(x, y, z);
+#else
+  return simd_make_double2(fma(x.x, y.x, z.x), fma(x.y, y.y, z.y));
+#endif
+}
+
+static inline SIMD_CFUNC simd_double3 __tg_fma(simd_double3 x, simd_double3 y, simd_double3 z) {
+  return simd_make_double3(__tg_fma(simd_make_double4(x), simd_make_double4(y), simd_make_double4(z)));
+}
+
+static inline SIMD_CFUNC simd_double4 __tg_fma(simd_double4 x, simd_double4 y, simd_double4 z) {
+#if (defined __i386__ || defined __x86_64__) && defined __FMA__
+  return _mm256_fmadd_pd(x, y, z);
+#else
+  return simd_make_double4(__tg_fma(x.lo, y.lo, z.lo), __tg_fma(x.hi, y.hi, z.hi));
+#endif
+}
+
+static inline SIMD_CFUNC simd_double8 __tg_fma(simd_double8 x, simd_double8 y, simd_double8 z) {
+#if defined __x86_64__ && defined __AVX512F__
+  return _mm512_fmadd_pd(x, y, z);
+#else
+  return simd_make_double8(__tg_fma(x.lo, y.lo, z.lo), __tg_fma(x.hi, y.hi, z.hi));
+#endif
+}
+
+static inline SIMD_CFUNC float simd_muladd(float x, float y, float z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_float2 simd_muladd(simd_float2 x, simd_float2 y, simd_float2 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_float3 simd_muladd(simd_float3 x, simd_float3 y, simd_float3 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_float4 simd_muladd(simd_float4 x, simd_float4 y, simd_float4 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_float8 simd_muladd(simd_float8 x, simd_float8 y, simd_float8 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_float16 simd_muladd(simd_float16 x, simd_float16 y, simd_float16 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC double simd_muladd(double x, double y, double z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_double2 simd_muladd(simd_double2 x, simd_double2 y, simd_double2 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_double3 simd_muladd(simd_double3 x, simd_double3 y, simd_double3 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_double4 simd_muladd(simd_double4 x, simd_double4 y, simd_double4 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+static inline SIMD_CFUNC simd_double8 simd_muladd(simd_double8 x, simd_double8 y, simd_double8 z) {
+#pragma STDC FP_CONTRACT ON
+  return x*y + z;
+}
+#ifdef __cplusplus
+}      /* extern "C" */
+#endif
+#endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
+#endif /* SIMD_MATH_HEADER */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/stdio.h b/lib/libc/include/any-macos.13-any/stdio.h
new file mode 100644
index 0000000000000000000000000000000000000000..aec8472e707ffe157d9176258b504e0d683cd990
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/stdio.h
@@ -0,0 +1,419 @@
+/*
+ * Copyright (c) 2000, 2005, 2007, 2009, 2010 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) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chris Torek.
+ *
+ * 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.
+ *
+ *	@(#)stdio.h	8.5 (Berkeley) 4/29/95
+ */
+
+#ifndef	_STDIO_H_
+#define	_STDIO_H_
+
+#include <_stdio.h>
+
+__BEGIN_DECLS
+extern FILE *__stdinp;
+extern FILE *__stdoutp;
+extern FILE *__stderrp;
+__END_DECLS
+
+#define	__SLBF	0x0001		/* line buffered */
+#define	__SNBF	0x0002		/* unbuffered */
+#define	__SRD	0x0004		/* OK to read */
+#define	__SWR	0x0008		/* OK to write */
+	/* RD and WR are never simultaneously asserted */
+#define	__SRW	0x0010		/* open for reading & writing */
+#define	__SEOF	0x0020		/* found EOF */
+#define	__SERR	0x0040		/* found error */
+#define	__SMBF	0x0080		/* _buf is from malloc */
+#define	__SAPP	0x0100		/* fdopen()ed in append mode */
+#define	__SSTR	0x0200		/* this is an sprintf/snprintf string */
+#define	__SOPT	0x0400		/* do fseek() optimisation */
+#define	__SNPT	0x0800		/* do not do fseek() optimisation */
+#define	__SOFF	0x1000		/* set iff _offset is in fact correct */
+#define	__SMOD	0x2000		/* true => fgetln modified _p text */
+#define __SALC  0x4000		/* allocate string space dynamically */
+#define __SIGN  0x8000		/* ignore this file in _fwalk */
+
+/*
+ * The following three definitions are for ANSI C, which took them
+ * from System V, which brilliantly took internal interface macros and
+ * made them official arguments to setvbuf(), without renaming them.
+ * Hence, these ugly _IOxxx names are *supposed* to appear in user code.
+ *
+ * Although numbered as their counterparts above, the implementation
+ * does not rely on this.
+ */
+#define	_IOFBF	0		/* setvbuf should set fully buffered */
+#define	_IOLBF	1		/* setvbuf should set line buffered */
+#define	_IONBF	2		/* setvbuf should set unbuffered */
+
+#define	BUFSIZ	1024		/* size of buffer used by setbuf */
+#define	EOF	(-1)
+
+				/* must be == _POSIX_STREAM_MAX  */
+#define	FOPEN_MAX	20	/* must be <= OPEN_MAX  */
+#define	FILENAME_MAX	1024	/* must be <= PATH_MAX  */
+
+/* System V/ANSI C; this is the wrong way to do this, do *not* use these. */
+#ifndef _ANSI_SOURCE
+#define	P_tmpdir	"/var/tmp/"
+#endif
+#define	L_tmpnam	1024	/* XXX must be == PATH_MAX */
+#define	TMP_MAX		308915776
+
+#ifndef SEEK_SET
+#define	SEEK_SET	0	/* set file offset to offset */
+#endif
+#ifndef SEEK_CUR
+#define	SEEK_CUR	1	/* set file offset to current plus offset */
+#endif
+#ifndef SEEK_END
+#define	SEEK_END	2	/* set file offset to EOF plus offset */
+#endif
+
+#define	stdin	__stdinp
+#define	stdout	__stdoutp
+#define	stderr	__stderrp
+
+#ifdef _DARWIN_UNLIMITED_STREAMS
+#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2
+#error "_DARWIN_UNLIMITED_STREAMS 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_STREAMS specified, but -mmacosx-version-min version does not support it."
+#endif
+#endif
+
+/* ANSI-C */
+
+__BEGIN_DECLS
+void	 clearerr(FILE *);
+int	 fclose(FILE *);
+int	 feof(FILE *);
+int	 ferror(FILE *);
+int	 fflush(FILE *);
+int	 fgetc(FILE *);
+int	 fgetpos(FILE * __restrict, fpos_t *);
+char	*fgets(char * __restrict, int, FILE *);
+#if defined(_DARWIN_UNLIMITED_STREAMS) || defined(_DARWIN_C_SOURCE)
+FILE	*fopen(const char * __restrict __filename, const char * __restrict __mode) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(fopen));
+#else /* !_DARWIN_UNLIMITED_STREAMS && !_DARWIN_C_SOURCE */
+FILE	*fopen(const char * __restrict __filename, const char * __restrict __mode) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fopen));
+#endif /* (DARWIN_UNLIMITED_STREAMS || _DARWIN_C_SOURCE) */
+int	 fprintf(FILE * __restrict, const char * __restrict, ...) __printflike(2, 3);
+int	 fputc(int, FILE *);
+int	 fputs(const char * __restrict, FILE * __restrict) __DARWIN_ALIAS(fputs);
+size_t	 fread(void * __restrict __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream);
+FILE	*freopen(const char * __restrict, const char * __restrict,
+                 FILE * __restrict) __DARWIN_ALIAS(freopen);
+int	 fscanf(FILE * __restrict, const char * __restrict, ...) __scanflike(2, 3);
+int	 fseek(FILE *, long, int);
+int	 fsetpos(FILE *, const fpos_t *);
+long	 ftell(FILE *);
+size_t	 fwrite(const void * __restrict __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream) __DARWIN_ALIAS(fwrite);
+int	 getc(FILE *);
+int	 getchar(void);
+
+#if !defined(_POSIX_C_SOURCE)
+__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of gets(3), it is highly recommended that you use fgets(3) instead.")
+#endif
+char	*gets(char *);
+
+void	 perror(const char *) __cold;
+int	 printf(const char * __restrict, ...) __printflike(1, 2);
+int	 putc(int, FILE *);
+int	 putchar(int);
+int	 puts(const char *);
+int	 remove(const char *);
+int	 rename (const char *__old, const char *__new);
+void	 rewind(FILE *);
+int	 scanf(const char * __restrict, ...) __scanflike(1, 2);
+void	 setbuf(FILE * __restrict, char * __restrict);
+int	 setvbuf(FILE * __restrict, char * __restrict, int, size_t);
+
+__swift_unavailable("Use snprintf instead.")
+#if !defined(_POSIX_C_SOURCE)
+__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
+#endif
+int	 sprintf(char * __restrict, const char * __restrict, ...) __printflike(2, 3);
+
+int	 sscanf(const char * __restrict, const char * __restrict, ...) __scanflike(2, 3);
+FILE	*tmpfile(void);
+
+__swift_unavailable("Use mkstemp(3) instead.")
+#if !defined(_POSIX_C_SOURCE)
+__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of tmpnam(3), it is highly recommended that you use mkstemp(3) instead.")
+#endif
+char	*tmpnam(char *);
+
+int	 ungetc(int, FILE *);
+int	 vfprintf(FILE * __restrict, const char * __restrict, va_list) __printflike(2, 0);
+int	 vprintf(const char * __restrict, va_list) __printflike(1, 0);
+
+__swift_unavailable("Use vsnprintf instead.")
+#if !defined(_POSIX_C_SOURCE)
+__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use vsnprintf(3) instead.")
+#endif
+int	 vsprintf(char * __restrict, const char * __restrict, va_list) __printflike(2, 0);
+__END_DECLS
+
+
+
+/* Additional functionality provided by:
+ * POSIX.1-1988
+ */
+
+#if __DARWIN_C_LEVEL >= 198808L
+#define	L_ctermid	1024	/* size for ctermid(); PATH_MAX */
+
+__BEGIN_DECLS
+#include <_ctermid.h>
+
+#if defined(_DARWIN_UNLIMITED_STREAMS) || defined(_DARWIN_C_SOURCE)
+FILE	*fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(fdopen));
+#else /* !_DARWIN_UNLIMITED_STREAMS && !_DARWIN_C_SOURCE */
+FILE	*fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen));
+#endif /* (DARWIN_UNLIMITED_STREAMS || _DARWIN_C_SOURCE) */
+int	 fileno(FILE *);
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 198808L */
+
+
+/* Additional functionality provided by:
+ * POSIX.2-1992 C Language Binding Option
+ */
+
+#if __DARWIN_C_LEVEL >= 199209L
+__BEGIN_DECLS
+int	 pclose(FILE *) __swift_unavailable("Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)");
+#if defined(_DARWIN_UNLIMITED_STREAMS) || defined(_DARWIN_C_SOURCE)
+FILE	*popen(const char *, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(popen)) __swift_unavailable("Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)");
+#else /* !_DARWIN_UNLIMITED_STREAMS && !_DARWIN_C_SOURCE */
+FILE	*popen(const char *, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(popen)) __swift_unavailable("Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)");
+#endif /* (DARWIN_UNLIMITED_STREAMS || _DARWIN_C_SOURCE) */
+__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
+
+/* Functions internal to the implementation. */
+__BEGIN_DECLS
+int	__srget(FILE *);
+int	__svfscanf(FILE *, const char *, va_list) __scanflike(2, 0);
+int	__swbuf(int, FILE *);
+__END_DECLS
+
+/*
+ * The __sfoo macros are here so that we can
+ * define function versions in the C library.
+ */
+#define	__sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))
+#if defined(__GNUC__) && defined(__STDC__)
+__header_always_inline int __sputc(int _c, FILE *_p) {
+	if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
+		return (*_p->_p++ = _c);
+	else
+		return (__swbuf(_c, _p));
+}
+#else
+/*
+ * This has been tuned to generate reasonable code on the vax using pcc.
+ */
+#define	__sputc(c, p) \
+	(--(p)->_w < 0 ? \
+		(p)->_w >= (p)->_lbfsize ? \
+			(*(p)->_p = (c)), *(p)->_p != '\n' ? \
+				(int)*(p)->_p++ : \
+				__swbuf('\n', p) : \
+			__swbuf((int)(c), p) : \
+		(*(p)->_p = (c), (int)*(p)->_p++))
+#endif
+
+#define	__sfeof(p)	(((p)->_flags & __SEOF) != 0)
+#define	__sferror(p)	(((p)->_flags & __SERR) != 0)
+#define	__sclearerr(p)	((void)((p)->_flags &= ~(__SERR|__SEOF)))
+#define	__sfileno(p)	((p)->_file)
+
+__BEGIN_DECLS
+void	 flockfile(FILE *);
+int	 ftrylockfile(FILE *);
+void	 funlockfile(FILE *);
+int	 getc_unlocked(FILE *);
+int	 getchar_unlocked(void);
+int	 putc_unlocked(int, FILE *);
+int	 putchar_unlocked(int);
+
+/* Removed in Issue 6 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
+int	 getw(FILE *);
+int	 putw(int, FILE *);
+#endif
+
+__swift_unavailable("Use mkstemp(3) instead.")
+#if !defined(_POSIX_C_SOURCE)
+__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of tempnam(3), it is highly recommended that you use mkstemp(3) instead.")
+#endif
+char	*tempnam(const char *__dir, const char *__prefix) __DARWIN_ALIAS(tempnam);
+__END_DECLS
+
+#ifndef lint
+#define	getc_unlocked(fp)	__sgetc(fp)
+#define putc_unlocked(x, fp)	__sputc(x, fp)
+#endif /* lint */
+
+#define	getchar_unlocked()	getc_unlocked(stdin)
+#define	putchar_unlocked(x)	putc_unlocked(x, stdout)
+#endif /* __DARWIN_C_LEVEL >= 199506L */
+
+
+
+/* Additional functionality provided by:
+ * POSIX.1-2001
+ * ISO C99
+ */
+
+#if __DARWIN_C_LEVEL >= 200112L
+#include 
+
+__BEGIN_DECLS
+int	 fseeko(FILE * __stream, off_t __offset, int __whence);
+off_t	 ftello(FILE * __stream);
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 200112L */
+
+#if __DARWIN_C_LEVEL >= 200112L || defined(_C99_SOURCE) || defined(__cplusplus)
+__BEGIN_DECLS
+int	 snprintf(char * __restrict __str, size_t __size, const char * __restrict __format, ...) __printflike(3, 4);
+int	 vfscanf(FILE * __restrict __stream, const char * __restrict __format, va_list) __scanflike(2, 0);
+int	 vscanf(const char * __restrict __format, va_list) __scanflike(1, 0);
+int	 vsnprintf(char * __restrict __str, size_t __size, const char * __restrict __format, va_list) __printflike(3, 0);
+int	 vsscanf(const char * __restrict __str, const char * __restrict __format, va_list) __scanflike(2, 0);
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 200112L || defined(_C99_SOURCE) || defined(__cplusplus) */
+
+
+
+/* Additional functionality provided by:
+ * POSIX.1-2008
+ */
+
+#if __DARWIN_C_LEVEL >= 200809L
+#include 
+
+__BEGIN_DECLS
+int	dprintf(int, const char * __restrict, ...) __printflike(2, 3) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+int	vdprintf(int, const char * __restrict, va_list) __printflike(2, 0) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+ssize_t getdelim(char ** __restrict __linep, size_t * __restrict __linecapp, int __delimiter, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+ssize_t getline(char ** __restrict __linep, size_t * __restrict __linecapp, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+FILE *fmemopen(void * __restrict __buf, size_t __size, const char * __restrict __mode) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+FILE *open_memstream(char **__bufp, size_t *__sizep) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 200809L */
+
+
+
+/* Darwin extensions */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+__BEGIN_DECLS
+extern __const int sys_nerr;		/* perror(3) external variables */
+extern __const char *__const sys_errlist[];
+
+int	 asprintf(char ** __restrict, const char * __restrict, ...) __printflike(2, 3);
+char	*ctermid_r(char *);
+char	*fgetln(FILE *, size_t *);
+__const char *fmtcheck(const char *, const char *) __attribute__((format_arg(2)));
+int	 fpurge(FILE *);
+void	 setbuffer(FILE *, char *, int);
+int	 setlinebuf(FILE *);
+int	 vasprintf(char ** __restrict, const char * __restrict, va_list) __printflike(2, 0);
+
+
+/*
+ * Stdio function-access interface.
+ */
+FILE	*funopen(const void *,
+                 int (* _Nullable)(void *, char *, int),
+                 int (* _Nullable)(void *, const char *, int),
+                 fpos_t (* _Nullable)(void *, fpos_t, int),
+                 int (* _Nullable)(void *));
+__END_DECLS
+#define	fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0)
+#define	fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0)
+
+#define	feof_unlocked(p)	__sfeof(p)
+#define	ferror_unlocked(p)	__sferror(p)
+#define	clearerr_unlocked(p)	__sclearerr(p)
+#define	fileno_unlocked(p)	__sfileno(p)
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+
+#ifdef _USE_EXTENDED_LOCALES_
+#include 
+#endif /* _USE_EXTENDED_LOCALES_ */
+
+#if defined (__GNUC__) && _FORTIFY_SOURCE > 0 && !defined (__cplusplus)
+/* Security checking functions.  */
+#include 
+#endif
+
+#endif /* _STDIO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/stdlib.h b/lib/libc/include/any-macos.13-any/stdlib.h
new file mode 100644
index 0000000000000000000000000000000000000000..24eab305a4d6df6ef45b884483f14bfe5c7a2f37
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/stdlib.h
@@ -0,0 +1,378 @@
+/*
+ * Copyright (c) 2000, 2002 - 2008 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) 1990, 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.
+ *
+ *	@(#)stdlib.h	8.5 (Berkeley) 5/19/95
+ */
+
+#ifndef _STDLIB_H_
+#define _STDLIB_H_
+
+#include 
+#include 
+
+#include <_types.h>
+#if !defined(_ANSI_SOURCE)
+#include 
+#if (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+#include 
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#endif /* !_ANSI_SOURCE */
+
+/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+ * _GCC_SIZE_T */
+#include 
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+#include 
+#include 
+#endif	/* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+#include 
+
+typedef struct {
+	int quot;		/* quotient */
+	int rem;		/* remainder */
+} div_t;
+
+typedef struct {
+	long quot;		/* quotient */
+	long rem;		/* remainder */
+} ldiv_t;
+
+#if !__DARWIN_NO_LONG_LONG
+typedef struct {
+	long long quot;
+	long long rem;
+} lldiv_t;
+#endif /* !__DARWIN_NO_LONG_LONG */
+
+#include 
+
+#define	EXIT_FAILURE	1
+#define	EXIT_SUCCESS	0
+
+#define	RAND_MAX	0x7fffffff
+
+#ifdef _USE_EXTENDED_LOCALES_
+#include <_xlocale.h>
+#endif /* _USE_EXTENDED_LOCALES_ */
+
+#ifndef MB_CUR_MAX
+#ifdef _USE_EXTENDED_LOCALES_
+#define	MB_CUR_MAX	(___mb_cur_max())
+#ifndef MB_CUR_MAX_L
+#define	MB_CUR_MAX_L(x)	(___mb_cur_max_l(x))
+#endif /* !MB_CUR_MAX_L */
+#else /* !_USE_EXTENDED_LOCALES_ */
+extern int __mb_cur_max;
+#define	MB_CUR_MAX	__mb_cur_max
+#endif /* _USE_EXTENDED_LOCALES_ */
+#endif /* MB_CUR_MAX */
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) \
+    && defined(_USE_EXTENDED_LOCALES_) && !defined(MB_CUR_MAX_L)
+#define	MB_CUR_MAX_L(x)	(___mb_cur_max_l(x))
+#endif
+
+#include 
+
+__BEGIN_DECLS
+void	 abort(void) __cold __dead2;
+int	 abs(int) __pure2;
+int	 atexit(void (* _Nonnull)(void));
+double	 atof(const char *);
+int	 atoi(const char *);
+long	 atol(const char *);
+#if !__DARWIN_NO_LONG_LONG
+long long
+	 atoll(const char *);
+#endif /* !__DARWIN_NO_LONG_LONG */
+void	*bsearch(const void *__key, const void *__base, size_t __nel,
+	    size_t __width, int (* _Nonnull __compar)(const void *, const void *));
+/* calloc is now declared in _malloc.h */
+div_t	 div(int, int) __pure2;
+void	 exit(int) __dead2;
+/* free is now declared in _malloc.h */
+char	*getenv(const char *);
+long	 labs(long) __pure2;
+ldiv_t	 ldiv(long, long) __pure2;
+#if !__DARWIN_NO_LONG_LONG
+long long
+	 llabs(long long);
+lldiv_t	 lldiv(long long, long long);
+#endif /* !__DARWIN_NO_LONG_LONG */
+/* malloc is now declared in _malloc.h */
+int	 mblen(const char *__s, size_t __n);
+size_t	 mbstowcs(wchar_t * __restrict , const char * __restrict, size_t);
+int	 mbtowc(wchar_t * __restrict, const char * __restrict, size_t);
+/* posix_memalign is now declared in _malloc.h */
+void	 qsort(void *__base, size_t __nel, size_t __width,
+	    int (* _Nonnull __compar)(const void *, const void *));
+int	 rand(void) __swift_unavailable("Use arc4random instead.");
+/* realloc is now declared in _malloc.h */
+void	 srand(unsigned) __swift_unavailable("Use arc4random instead.");
+double	 strtod(const char *, char **) __DARWIN_ALIAS(strtod);
+float	 strtof(const char *, char **) __DARWIN_ALIAS(strtof);
+long	 strtol(const char *__str, char **__endptr, int __base);
+long double
+	 strtold(const char *, char **);
+#if !__DARWIN_NO_LONG_LONG
+long long 
+	 strtoll(const char *__str, char **__endptr, int __base);
+#endif /* !__DARWIN_NO_LONG_LONG */
+unsigned long
+	 strtoul(const char *__str, char **__endptr, int __base);
+#if !__DARWIN_NO_LONG_LONG
+unsigned long long
+	 strtoull(const char *__str, char **__endptr, int __base);
+#endif /* !__DARWIN_NO_LONG_LONG */
+
+__swift_unavailable("Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)")
+__API_AVAILABLE(macos(10.0)) __IOS_PROHIBITED
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+int	 system(const char *) __DARWIN_ALIAS_C(system);
+
+
+size_t	 wcstombs(char * __restrict, const wchar_t * __restrict, size_t);
+int	 wctomb(char *, wchar_t);
+
+#ifndef _ANSI_SOURCE
+void	_Exit(int) __dead2;
+long	 a64l(const char *);
+double	 drand48(void);
+char	*ecvt(double, int, int *__restrict, int *__restrict); /* LEGACY */
+double	 erand48(unsigned short[3]);
+char	*fcvt(double, int, int *__restrict, int *__restrict); /* LEGACY */
+char	*gcvt(double, int, char *); /* LEGACY */
+int	 getsubopt(char **, char * const *, char **);
+int	 grantpt(int);
+#if __DARWIN_UNIX03
+char	*initstate(unsigned, char *, size_t); /* no  __DARWIN_ALIAS needed */
+#else /* !__DARWIN_UNIX03 */
+char	*initstate(unsigned long, char *, long);
+#endif /* __DARWIN_UNIX03 */
+long	 jrand48(unsigned short[3]) __swift_unavailable("Use arc4random instead.");
+char	*l64a(long);
+void	 lcong48(unsigned short[7]);
+long	 lrand48(void) __swift_unavailable("Use arc4random instead.");
+#if !defined(_POSIX_C_SOURCE)
+__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of mktemp(3), it is highly recommended that you use mkstemp(3) instead.")
+#endif
+char	*mktemp(char *);
+int	 mkstemp(char *);
+long	 mrand48(void) __swift_unavailable("Use arc4random instead.");
+long	 nrand48(unsigned short[3]) __swift_unavailable("Use arc4random instead.");
+int	 posix_openpt(int);
+char	*ptsname(int);
+
+#if (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+int ptsname_r(int fildes, char *buffer, size_t buflen) __API_AVAILABLE(macos(10.13.4), ios(11.3), tvos(11.3), watchos(4.3));
+#endif
+
+int	 putenv(char *) __DARWIN_ALIAS(putenv);
+long	 random(void) __swift_unavailable("Use arc4random instead.");
+int	 rand_r(unsigned *) __swift_unavailable("Use arc4random instead.");
+#if (__DARWIN_UNIX03 && !defined(_POSIX_C_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(_DARWIN_BETTER_REALPATH)
+char	*realpath(const char * __restrict, char * __restrict) __DARWIN_EXTSN(realpath);
+#else /* (!__DARWIN_UNIX03 || _POSIX_C_SOURCE) && !_DARWIN_C_SOURCE && !_DARWIN_BETTER_REALPATH */
+char	*realpath(const char * __restrict, char * __restrict) __DARWIN_ALIAS(realpath);
+#endif /* (__DARWIN_UNIX03 && _POSIX_C_SOURCE) || _DARWIN_C_SOURCE || _DARWIN_BETTER_REALPATH */
+unsigned short
+	*seed48(unsigned short[3]);
+int	 setenv(const char * __name, const char * __value, int __overwrite) __DARWIN_ALIAS(setenv);
+#if __DARWIN_UNIX03
+void	 setkey(const char *) __DARWIN_ALIAS(setkey);
+#else /* !__DARWIN_UNIX03 */
+int	 setkey(const char *);
+#endif /* __DARWIN_UNIX03 */
+char	*setstate(const char *);
+void	 srand48(long);
+#if __DARWIN_UNIX03
+void	 srandom(unsigned);
+#else /* !__DARWIN_UNIX03 */
+void	 srandom(unsigned long);
+#endif /* __DARWIN_UNIX03 */
+int	 unlockpt(int);
+#if __DARWIN_UNIX03
+int	 unsetenv(const char *) __DARWIN_ALIAS(unsetenv);
+#else /* !__DARWIN_UNIX03 */
+void	 unsetenv(const char *);
+#endif /* __DARWIN_UNIX03 */
+#endif	/* !_ANSI_SOURCE */
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+#include 
+#include 
+#include 
+#include <_types/_uint32_t.h>
+
+uint32_t arc4random(void);
+void	 arc4random_addrandom(unsigned char * /*dat*/, int /*datlen*/)
+    __OSX_DEPRECATED(10.0, 10.12, "use arc4random_stir")
+    __IOS_DEPRECATED(2.0, 10.0, "use arc4random_stir")
+    __TVOS_DEPRECATED(2.0, 10.0, "use arc4random_stir")
+    __WATCHOS_DEPRECATED(1.0, 3.0, "use arc4random_stir");
+void	 arc4random_buf(void * __buf, size_t __nbytes) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+void	 arc4random_stir(void);
+uint32_t
+	 arc4random_uniform(uint32_t __upper_bound) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+#ifdef __BLOCKS__
+int	 atexit_b(void (^ _Nonnull)(void)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+
+#ifdef __BLOCKS__
+#if __has_attribute(noescape)
+#define __bsearch_noescape __attribute__((__noescape__))
+#else
+#define __bsearch_noescape
+#endif
+#endif /* __BLOCKS__ */
+void	*bsearch_b(const void *__key, const void *__base, size_t __nel,
+	    size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __bsearch_noescape)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+
+	 /* getcap(3) functions */
+char	*cgetcap(char *, const char *, int);
+int	 cgetclose(void);
+int	 cgetent(char **, char **, const char *);
+int	 cgetfirst(char **, char **);
+int	 cgetmatch(const char *, const char *);
+int	 cgetnext(char **, char **);
+int	 cgetnum(char *, const char *, long *);
+int	 cgetset(const char *);
+int	 cgetstr(char *, const char *, char **);
+int	 cgetustr(char *, const char *, char **);
+
+int	 daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0, "Use posix_spawn APIs instead.") __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+char	*devname(dev_t, mode_t);
+char	*devname_r(dev_t, mode_t, char *buf, int len);
+char	*getbsize(int *, long *);
+int	 getloadavg(double [], int);
+const char
+	*getprogname(void);
+void	 setprogname(const char *);
+
+#ifdef __BLOCKS__
+#if __has_attribute(noescape)
+#define __sort_noescape __attribute__((__noescape__))
+#else
+#define __sort_noescape
+#endif
+#endif /* __BLOCKS__ */
+
+int	 heapsort(void *__base, size_t __nel, size_t __width,
+	    int (* _Nonnull __compar)(const void *, const void *));
+#ifdef __BLOCKS__
+int	 heapsort_b(void *__base, size_t __nel, size_t __width,
+	    int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+int	 mergesort(void *__base, size_t __nel, size_t __width,
+	    int (* _Nonnull __compar)(const void *, const void *));
+#ifdef __BLOCKS__
+int	 mergesort_b(void *__base, size_t __nel, size_t __width,
+	    int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+void	 psort(void *__base, size_t __nel, size_t __width,
+	    int (* _Nonnull __compar)(const void *, const void *))
+	    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#ifdef __BLOCKS__
+void	 psort_b(void *__base, size_t __nel, size_t __width,
+	    int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+void	 psort_r(void *__base, size_t __nel, size_t __width, void *,
+	    int (* _Nonnull __compar)(void *, const void *, const void *))
+	    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#ifdef __BLOCKS__
+void	 qsort_b(void *__base, size_t __nel, size_t __width,
+	    int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape)
+	    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+void	 qsort_r(void *__base, size_t __nel, size_t __width, void *,
+	    int (* _Nonnull __compar)(void *, const void *, const void *));
+int	 radixsort(const unsigned char **__base, int __nel, const unsigned char *__table,
+	    unsigned __endbyte);
+int	rpmatch(const char *)
+	__API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+int	 sradixsort(const unsigned char **__base, int __nel, const unsigned char *__table,
+	    unsigned __endbyte);
+void	 sranddev(void);
+void	 srandomdev(void);
+void	*reallocf(void *__ptr, size_t __size) __alloc_size(2);
+long long
+	strtonum(const char *__numstr, long long __minval, long long __maxval, const char **__errstrp)
+	__API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0));
+#if !__DARWIN_NO_LONG_LONG
+long long
+	 strtoq(const char *__str, char **__endptr, int __base);
+unsigned long long
+	 strtouq(const char *__str, char **__endptr, int __base);
+#endif /* !__DARWIN_NO_LONG_LONG */
+extern char *suboptarg;		/* getsubopt(3) external variable */
+/* valloc is now declared in _malloc.h */
+#endif	/* !_ANSI_SOURCE && !_POSIX_SOURCE */
+
+/* Poison the following routines if -fshort-wchar is set */
+#if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU
+#pragma GCC poison mbstowcs mbtowc wcstombs wctomb
+#endif
+__END_DECLS
+
+#ifdef _USE_EXTENDED_LOCALES_
+#include 
+#endif /* _USE_EXTENDED_LOCALES_ */
+
+#endif /* _STDLIB_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/_symbol_aliasing.h b/lib/libc/include/any-macos.13-any/sys/_symbol_aliasing.h
new file mode 100644
index 0000000000000000000000000000000000000000..6d0429add15adc4d4374d872781be40608aee92f
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/_symbol_aliasing.h
@@ -0,0 +1,636 @@
+/* Copyright (c) 2010 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 _CDEFS_H_
+# error "Never use  directly.  Use  instead."
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 50000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 50100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 70000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 70100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130500
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_5(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_5(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130600
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_6(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_6(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130700
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_7(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_7(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 140000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 140100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 140200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 140300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 140500
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_5(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_14_5(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 150000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 150100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 150200
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 150300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 150400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_15_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 160000
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 160100
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_1(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
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1010
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1020
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1030
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1040
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1080
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101000
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101002
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101003
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101100
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101102
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101103
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101104
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101200
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101201
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101202
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101204
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101300
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101301
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101302
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101304
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101401
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101404
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101405
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_5(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_5(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101406
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_6(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_6(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101500
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101501
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101504
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_4(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101600
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_16(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_16(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110000
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110100
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110300
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_11_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 120000
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_0(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 120100
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_1(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 120200
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 120300
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_12_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 130000
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_0(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_0(x)
+#endif
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/_types/_graftdmg_un.h b/lib/libc/include/any-macos.13-any/sys/_types/_graftdmg_un.h
new file mode 100644
index 0000000000000000000000000000000000000000..12282c994bb54daf469acff16a8f7de4a8731b21
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/_types/_graftdmg_un.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2021-22 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 _GRAFTDMG_UN_
+#define _GRAFTDMG_UN_
+
+#include 
+#include 
+#include 
+
+#define GRAFTDMG_SECURE_BOOT_CRYPTEX_ARGS_VERSION 1
+#define MAX_GRAFT_ARGS_SIZE 512
+
+/* Flag values for secure_boot_cryptex_args.sbc_flags */
+#define SBC_PRESERVE_MOUNT              0x0001  /* Preserve underlying mount until shutdown */
+#define SBC_ALTERNATE_SHARED_REGION     0x0002  /* Binaries within should use alternate shared region */
+#define SBC_SYSTEM_CONTENT              0x0004  /* Cryptex contains system content */
+#define SBC_PANIC_ON_AUTHFAIL           0x0008  /* On failure to authenticate, panic */
+#define SBC_STRICT_AUTH                 0x0010  /* Strict authentication mode */
+#define SBC_PRESERVE_GRAFT              0x0020  /* Preserve graft itself until unmount */
+
+typedef struct secure_boot_cryptex_args {
+	u_int32_t sbc_version;
+	u_int32_t sbc_4cc;
+	int sbc_authentic_manifest_fd;
+	int sbc_user_manifest_fd;
+	int sbc_payload_fd;
+	u_int64_t sbc_flags;
+} __attribute__((aligned(4), packed))  secure_boot_cryptex_args_t;
+
+typedef union graft_args {
+	u_int8_t max_size[MAX_GRAFT_ARGS_SIZE];
+	secure_boot_cryptex_args_t sbc_args;
+} graftdmg_args_un;
+
+#endif /* _GRAFTDMG_UN_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/cdefs.h b/lib/libc/include/any-macos.13-any/sys/cdefs.h
new file mode 100644
index 0000000000000000000000000000000000000000..40afbe54242f6fc019d2353bce3c0d2f2a923a9e
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/cdefs.h
@@ -0,0 +1,969 @@
+/*
+ * Copyright (c) 2000-2018 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@
+ */
+/* Copyright 1995 NeXT Computer, Inc. All rights reserved. */
+/*
+ * Copyright (c) 1991, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Berkeley Software Design, Inc.
+ *
+ * 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.
+ *
+ *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
+ */
+
+#ifndef _CDEFS_H_
+#define _CDEFS_H_
+
+#if defined(__cplusplus)
+#define __BEGIN_DECLS   extern "C" {
+#define __END_DECLS     }
+#else
+#define __BEGIN_DECLS
+#define __END_DECLS
+#endif
+
+/* This SDK is designed to work with clang and specific versions of
+ * gcc >= 4.0 with Apple's patch sets */
+#if !defined(__GNUC__) || __GNUC__ < 4
+#warning "Unsupported compiler detected"
+#endif
+
+/*
+ * Compatibility with compilers and environments that don't support compiler
+ * feature checking function-like macros.
+ */
+#ifndef __has_builtin
+#define __has_builtin(x) 0
+#endif
+#ifndef __has_include
+#define __has_include(x) 0
+#endif
+#ifndef __has_feature
+#define __has_feature(x) 0
+#endif
+#ifndef __has_attribute
+#define __has_attribute(x) 0
+#endif
+#ifndef __has_extension
+#define __has_extension(x) 0
+#endif
+
+/*
+ * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+ * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+ * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+ * in between its arguments.  __CONCAT can also concatenate double-quoted
+ * strings produced by the __STRING macro, but this only works with ANSI C.
+ */
+#if defined(__STDC__) || defined(__cplusplus)
+#define __P(protos)     protos          /* full-blown ANSI C */
+#define __CONCAT(x, y)   x ## y
+#define __STRING(x)     #x
+
+#define __const         const           /* define reserved names to standard */
+#define __signed        signed
+#define __volatile      volatile
+#if defined(__cplusplus)
+#define __inline        inline          /* convert to C++ keyword */
+#else
+#ifndef __GNUC__
+#define __inline                        /* delete GCC keyword */
+#endif /* !__GNUC__ */
+#endif /* !__cplusplus */
+
+#else   /* !(__STDC__ || __cplusplus) */
+#define __P(protos)     ()              /* traditional C preprocessor */
+#define __CONCAT(x, y)   x /**/ y
+#define __STRING(x)     "x"
+
+#ifndef __GNUC__
+#define __const                         /* delete pseudo-ANSI C keywords */
+#define __inline
+#define __signed
+#define __volatile
+#endif  /* !__GNUC__ */
+
+/*
+ * In non-ANSI C environments, new programs will want ANSI-only C keywords
+ * deleted from the program and old programs will want them left alone.
+ * When using a compiler other than gcc, programs using the ANSI C keywords
+ * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+ * When using "gcc -traditional", we assume that this is the intent; if
+ * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+ */
+#ifndef NO_ANSI_KEYWORDS
+#define const           __const                 /* convert ANSI C keywords */
+#define inline          __inline
+#define signed          __signed
+#define volatile        __volatile
+#endif /* !NO_ANSI_KEYWORDS */
+#endif /* !(__STDC__ || __cplusplus) */
+
+/*
+ * __pure2 can be used for functions that are only a function of their scalar
+ * arguments (meaning they can't dereference pointers).
+ *
+ * __stateful_pure can be used for functions that have no side effects,
+ * but depend on the state of the memory.
+ */
+#define __dead2         __attribute__((__noreturn__))
+#define __pure2         __attribute__((__const__))
+#define __stateful_pure __attribute__((__pure__))
+
+/* __unused denotes variables and functions that may not be used, preventing
+ * the compiler from warning about it if not used.
+ */
+#define __unused        __attribute__((__unused__))
+
+/* __used forces variables and functions to be included even if it appears
+ * to the compiler that they are not used (and would thust be discarded).
+ */
+#define __used          __attribute__((__used__))
+
+/* __cold marks code used for debugging or that is rarely taken
+ * and tells the compiler to optimize for size and outline code.
+ */
+#if __has_attribute(cold)
+#define __cold          __attribute__((__cold__))
+#else
+#define __cold
+#endif
+
+/* __returns_nonnull marks functions that return a non-null pointer. */
+#if __has_attribute(returns_nonnull)
+#define __returns_nonnull __attribute((returns_nonnull))
+#else
+#define __returns_nonnull
+#endif
+
+/* __exported denotes symbols that should be exported even when symbols
+ * are hidden by default.
+ * __exported_push/_exported_pop are pragmas used to delimit a range of
+ *  symbols that should be exported even when symbols are hidden by default.
+ */
+#define __exported      __attribute__((__visibility__("default")))
+#define __exported_push _Pragma("GCC visibility push(default)")
+#define __exported_pop  _Pragma("GCC visibility pop")
+
+/* __deprecated causes the compiler to produce a warning when encountering
+ * code using the deprecated functionality.
+ * __deprecated_msg() does the same, and compilers that support it will print
+ * a message along with the deprecation warning.
+ * This may require turning on such warning with the -Wdeprecated flag.
+ * __deprecated_enum_msg() should be used on enums, and compilers that support
+ * it will print the deprecation warning.
+ * __kpi_deprecated() specifically indicates deprecation of kernel programming
+ * interfaces in Kernel.framework used by KEXTs.
+ */
+#define __deprecated    __attribute__((__deprecated__))
+
+#if __has_extension(attribute_deprecated_with_message) || \
+        (defined(__GNUC__) && ((__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))))
+	#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
+#else
+	#define __deprecated_msg(_msg) __attribute__((__deprecated__))
+#endif
+
+#if __has_extension(enumerator_attributes)
+	#define __deprecated_enum_msg(_msg) __deprecated_msg(_msg)
+#else
+	#define __deprecated_enum_msg(_msg)
+#endif
+
+#define __kpi_deprecated(_msg)
+
+/* __unavailable causes the compiler to error out when encountering
+ * code using the tagged function
+ */
+#if __has_attribute(unavailable)
+#define __unavailable __attribute__((__unavailable__))
+#else
+#define __unavailable
+#endif
+
+#define __kpi_unavailable
+
+#define __kpi_deprecated_arm64_macos_unavailable
+
+/* Delete pseudo-keywords wherever they are not available or needed. */
+#ifndef __dead
+#define __dead
+#define __pure
+#endif
+
+/*
+ * We use `__restrict' as a way to define the `restrict' type qualifier
+ * without disturbing older software that is unaware of C99 keywords.
+ */
+#if __STDC_VERSION__ < 199901
+#define __restrict
+#else
+#define __restrict      restrict
+#endif
+
+/* Compatibility with compilers and environments that don't support the
+ * nullability feature.
+ */
+
+#if !__has_feature(nullability)
+#ifndef __nullable
+#define __nullable
+#endif
+#ifndef __nonnull
+#define __nonnull
+#endif
+#ifndef __null_unspecified
+#define __null_unspecified
+#endif
+#ifndef _Nullable
+#define _Nullable
+#endif
+#ifndef _Nonnull
+#define _Nonnull
+#endif
+#ifndef _Null_unspecified
+#define _Null_unspecified
+#endif
+#endif
+
+/*
+ * __disable_tail_calls causes the compiler to not perform tail call
+ * optimization inside the marked function.
+ */
+#if __has_attribute(disable_tail_calls)
+#define __disable_tail_calls    __attribute__((__disable_tail_calls__))
+#else
+#define __disable_tail_calls
+#endif
+
+/*
+ * __not_tail_called causes the compiler to prevent tail call optimization
+ * on statically bound calls to the function.  It has no effect on indirect
+ * calls.  Virtual functions, objective-c methods, and functions marked as
+ * "always_inline" cannot be marked as __not_tail_called.
+ */
+#if __has_attribute(not_tail_called)
+#define __not_tail_called       __attribute__((__not_tail_called__))
+#else
+#define __not_tail_called
+#endif
+
+/*
+ * __result_use_check warns callers of a function that not using the function
+ * return value is a bug, i.e. dismissing malloc() return value results in a
+ * memory leak.
+ */
+#if __has_attribute(warn_unused_result)
+#define __result_use_check __attribute__((__warn_unused_result__))
+#else
+#define __result_use_check
+#endif
+
+/*
+ * __swift_unavailable causes the compiler to mark a symbol as specifically
+ * unavailable in Swift, regardless of any other availability in C.
+ */
+#if __has_feature(attribute_availability_swift)
+#define __swift_unavailable(_msg)       __attribute__((__availability__(swift, unavailable, message=_msg)))
+#else
+#define __swift_unavailable(_msg)
+#endif
+
+/*
+ * __abortlike is the attribute to put on functions like abort() that are
+ * typically used to mark assertions. These optimize the codegen
+ * for outlining while still maintaining debugability.
+ */
+#ifndef __abortlike
+#define __abortlike __dead2 __cold __not_tail_called
+#endif
+
+/* Declaring inline functions within headers is error-prone due to differences
+ * across various versions of the C language and extensions.  __header_inline
+ * can be used to declare inline functions within system headers.  In cases
+ * where you want to force inlining instead of letting the compiler make
+ * the decision, you can use __header_always_inline.
+ *
+ * Be aware that using inline for functions which compilers may also provide
+ * builtins can behave differently under various compilers.  If you intend to
+ * provide an inline version of such a function, you may want to use a macro
+ * instead.
+ *
+ * The check for !__GNUC__ || __clang__ is because gcc doesn't correctly
+ * support c99 inline in some cases:
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965
+ */
+
+#if defined(__cplusplus) || \
+        (__STDC_VERSION__ >= 199901L && \
+        !defined(__GNUC_GNU_INLINE__) && \
+        (!defined(__GNUC__) || defined(__clang__)))
+# define __header_inline           inline
+#elif defined(__GNUC__) && defined(__GNUC_STDC_INLINE__)
+# define __header_inline           extern __inline __attribute__((__gnu_inline__))
+#elif defined(__GNUC__)
+# define __header_inline           extern __inline
+#else
+/* If we land here, we've encountered an unsupported compiler,
+ * so hopefully it understands static __inline as a fallback.
+ */
+# define __header_inline           static __inline
+#endif
+
+#ifdef __GNUC__
+# define __header_always_inline    __header_inline __attribute__ ((__always_inline__))
+#else
+/* Unfortunately, we're using a compiler that we don't know how to force to
+ * inline.  Oh well.
+ */
+# define __header_always_inline    __header_inline
+#endif
+
+/*
+ * Compiler-dependent macros that bracket portions of code where the
+ * "-Wunreachable-code" warning should be ignored. Please use sparingly.
+ */
+#if defined(__clang__)
+# define __unreachable_ok_push \
+	 _Pragma("clang diagnostic push") \
+	 _Pragma("clang diagnostic ignored \"-Wunreachable-code\"")
+# define __unreachable_ok_pop \
+	 _Pragma("clang diagnostic pop")
+#elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+# define __unreachable_ok_push \
+	 _Pragma("GCC diagnostic push") \
+	 _Pragma("GCC diagnostic ignored \"-Wunreachable-code\"")
+# define __unreachable_ok_pop \
+	 _Pragma("GCC diagnostic pop")
+#else
+# define __unreachable_ok_push
+# define __unreachable_ok_pop
+#endif
+
+/*
+ * Compiler-dependent macros to declare that functions take printf-like
+ * or scanf-like arguments.  They are null except for versions of gcc
+ * that are known to support the features properly.  Functions declared
+ * with these attributes will cause compilation warnings if there is a
+ * mismatch between the format string and subsequent function parameter
+ * types.
+ */
+#define __printflike(fmtarg, firstvararg) \
+	__attribute__((__format__ (__printf__, fmtarg, firstvararg)))
+#define __printf0like(fmtarg, firstvararg) \
+	__attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
+#define __scanflike(fmtarg, firstvararg) \
+	__attribute__((__format__ (__scanf__, fmtarg, firstvararg)))
+#define __osloglike(fmtarg, firstvararg) \
+	__attribute__((__format__ (__os_log__, fmtarg, firstvararg)))
+
+#define __IDSTRING(name, string) static const char name[] __used = string
+
+#ifndef __COPYRIGHT
+#define __COPYRIGHT(s) __IDSTRING(copyright,s)
+#endif
+
+#ifndef __RCSID
+#define __RCSID(s) __IDSTRING(rcsid,s)
+#endif
+
+#ifndef __SCCSID
+#define __SCCSID(s) __IDSTRING(sccsid,s)
+#endif
+
+#ifndef __PROJECT_VERSION
+#define __PROJECT_VERSION(s) __IDSTRING(project_version,s)
+#endif
+
+/* Source compatibility only, ID string not emitted in object file */
+#ifndef __FBSDID
+#define __FBSDID(s)
+#endif
+
+#ifndef __DECONST
+#define __DECONST(type, var)    __CAST_AWAY_QUALIFIER(var, const, type)
+#endif
+
+#ifndef __DEVOLATILE
+#define __DEVOLATILE(type, var) __CAST_AWAY_QUALIFIER(var, volatile, type)
+#endif
+
+#ifndef __DEQUALIFY
+#define __DEQUALIFY(type, var)  __CAST_AWAY_QUALIFIER(var, const volatile, type)
+#endif
+
+/*
+ * __alloc_size can be used to label function arguments that represent the
+ * size of memory that the function allocates and returns. The one-argument
+ * form labels a single argument that gives the allocation size (where the
+ * arguments are numbered from 1):
+ *
+ * void	*malloc(size_t __size) __alloc_size(1);
+ *
+ * The two-argument form handles the case where the size is calculated as the
+ * product of two arguments:
+ *
+ * void	*calloc(size_t __count, size_t __size) __alloc_size(1,2);
+ */
+#ifndef __alloc_size
+#if __has_attribute(alloc_size)
+#define __alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
+#else
+#define __alloc_size(...)
+#endif
+#endif // __alloc_size
+
+/*
+ * COMPILATION ENVIRONMENTS -- see compat(5) for additional detail
+ *
+ * DEFAULT	By default newly complied code will get POSIX APIs plus
+ *		Apple API extensions in scope.
+ *
+ *		Most users will use this compilation environment to avoid
+ *		behavioral differences between 32 and 64 bit code.
+ *
+ * LEGACY	Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple
+ *		API extensions in scope.
+ *
+ *		This is generally equivalent to the Tiger release compilation
+ *		environment, except that it cannot be applied to 64 bit code;
+ *		its use is discouraged.
+ *
+ *		We expect this environment to be deprecated in the future.
+ *
+ * STRICT	Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the
+ *		available APIs to exactly the set of APIs defined by the
+ *		corresponding standard, based on the value defined.
+ *
+ *		A correct, portable definition for _POSIX_C_SOURCE is 200112L.
+ *		A correct, portable definition for _XOPEN_SOURCE is 600L.
+ *
+ *		Apple API extensions are not visible in this environment,
+ *		which can cause Apple specific code to fail to compile,
+ *		or behave incorrectly if prototypes are not in scope or
+ *		warnings about missing prototypes are not enabled or ignored.
+ *
+ * In any compilation environment, for correct symbol resolution to occur,
+ * function prototypes must be in scope.  It is recommended that all Apple
+ * tools users add either the "-Wall" or "-Wimplicit-function-declaration"
+ * compiler flags to their projects to be warned when a function is being
+ * used without a prototype in scope.
+ */
+
+/* These settings are particular to each product. */
+/* Platform: MacOSX */
+#if defined(__i386__)
+#define __DARWIN_ONLY_64_BIT_INO_T      0
+#define __DARWIN_ONLY_UNIX_CONFORMANCE  0
+#define __DARWIN_ONLY_VERS_1050         0
+#elif defined(__x86_64__)
+#define __DARWIN_ONLY_64_BIT_INO_T      0
+#define __DARWIN_ONLY_UNIX_CONFORMANCE  1
+#define __DARWIN_ONLY_VERS_1050         0
+#else
+#define __DARWIN_ONLY_64_BIT_INO_T      1
+#define __DARWIN_ONLY_UNIX_CONFORMANCE  1
+#define __DARWIN_ONLY_VERS_1050         1
+#endif
+
+/*
+ * The __DARWIN_ALIAS macros are used to do symbol renaming; they allow
+ * legacy code to use the old symbol, thus maintaining binary compatibility
+ * while new code can use a standards compliant version of the same function.
+ *
+ * __DARWIN_ALIAS is used by itself if the function signature has not
+ * changed, it is used along with a #ifdef check for __DARWIN_UNIX03
+ * if the signature has changed.  Because the __LP64__ environment
+ * only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be
+ * defined, but causes __DARWIN_ALIAS to do no symbol mangling.
+ *
+ * As a special case, when XCode is used to target a specific version of the
+ * OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+ * will be defined by the compiler, with the digits representing major version
+ * time 100 + minor version times 10 (e.g. 10.5 := 1050).  If we are targeting
+ * pre-10.5, and it is the default compilation environment, revert the
+ * compilation environment to pre-__DARWIN_UNIX03.
+ */
+#if !defined(__DARWIN_UNIX03)
+#  if   __DARWIN_ONLY_UNIX_CONFORMANCE
+#    if defined(_NONSTD_SOURCE)
+#      error "Can't define _NONSTD_SOURCE when only UNIX conformance is available."
+#    endif /* _NONSTD_SOURCE */
+#    define __DARWIN_UNIX03     1
+#  elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1040)
+#    define __DARWIN_UNIX03     0
+#  elif defined(_DARWIN_C_SOURCE) || defined(_XOPEN_SOURCE) || defined(_POSIX_C_SOURCE)
+#    if defined(_NONSTD_SOURCE)
+#      error "Can't define both _NONSTD_SOURCE and any of _DARWIN_C_SOURCE, _XOPEN_SOURCE or _POSIX_C_SOURCE."
+#    endif /* _NONSTD_SOURCE */
+#    define __DARWIN_UNIX03     1
+#  elif defined(_NONSTD_SOURCE)
+#    define __DARWIN_UNIX03     0
+#  else /* default */
+#    if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1050)
+#      define __DARWIN_UNIX03   0
+#    else /* __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 */
+#      define __DARWIN_UNIX03   1
+#    endif /* __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 */
+#  endif /* _DARWIN_C_SOURCE || _XOPEN_SOURCE || _POSIX_C_SOURCE || __LP64__ */
+#endif /* !__DARWIN_UNIX03 */
+
+#if !defined(__DARWIN_64_BIT_INO_T)
+#  if   defined(_DARWIN_USE_64_BIT_INODE)
+#    if defined(_DARWIN_NO_64_BIT_INODE)
+#      error "Can't define both _DARWIN_USE_64_BIT_INODE and _DARWIN_NO_64_BIT_INODE."
+#    endif /* _DARWIN_NO_64_BIT_INODE */
+#    define __DARWIN_64_BIT_INO_T 1
+#  elif defined(_DARWIN_NO_64_BIT_INODE)
+#    if __DARWIN_ONLY_64_BIT_INO_T
+#      error "Can't define _DARWIN_NO_64_BIT_INODE when only 64-bit inodes are available."
+#    endif /* __DARWIN_ONLY_64_BIT_INO_T */
+#    define __DARWIN_64_BIT_INO_T 0
+#  else /* default */
+#    if __DARWIN_ONLY_64_BIT_INO_T
+#      define __DARWIN_64_BIT_INO_T 1
+#    elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1060) || __DARWIN_UNIX03 == 0
+#      define __DARWIN_64_BIT_INO_T 0
+#    else /* default */
+#      define __DARWIN_64_BIT_INO_T 1
+#    endif /* __DARWIN_ONLY_64_BIT_INO_T */
+#  endif
+#endif /* !__DARWIN_64_BIT_INO_T */
+
+#if !defined(__DARWIN_VERS_1050)
+#  if   __DARWIN_ONLY_VERS_1050
+#    define __DARWIN_VERS_1050 1
+#  elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1050) || __DARWIN_UNIX03 == 0
+#    define __DARWIN_VERS_1050 0
+#  else /* default */
+#    define __DARWIN_VERS_1050 1
+#  endif
+#endif /* !__DARWIN_VERS_1050 */
+
+#if !defined(__DARWIN_NON_CANCELABLE)
+#    define __DARWIN_NON_CANCELABLE 0
+#endif /* !__DARWIN_NON_CANCELABLE */
+
+/*
+ * symbol suffixes used for symbol versioning
+ */
+#if __DARWIN_UNIX03
+#  if __DARWIN_ONLY_UNIX_CONFORMANCE
+#    define __DARWIN_SUF_UNIX03         /* nothing */
+#  else /* !__DARWIN_ONLY_UNIX_CONFORMANCE */
+#    define __DARWIN_SUF_UNIX03         "$UNIX2003"
+#  endif /* __DARWIN_ONLY_UNIX_CONFORMANCE */
+
+#  if __DARWIN_64_BIT_INO_T
+#    if __DARWIN_ONLY_64_BIT_INO_T
+#      define __DARWIN_SUF_64_BIT_INO_T /* nothing */
+#    else /* !__DARWIN_ONLY_64_BIT_INO_T */
+#      define __DARWIN_SUF_64_BIT_INO_T "$INODE64"
+#    endif /* __DARWIN_ONLY_64_BIT_INO_T */
+#  else /* !__DARWIN_64_BIT_INO_T */
+#    define __DARWIN_SUF_64_BIT_INO_T   /* nothing */
+#  endif /* __DARWIN_64_BIT_INO_T */
+
+#  if __DARWIN_VERS_1050
+#    if __DARWIN_ONLY_VERS_1050
+#      define __DARWIN_SUF_1050         /* nothing */
+#    else /* !__DARWIN_ONLY_VERS_1050 */
+#      define __DARWIN_SUF_1050         "$1050"
+#    endif /* __DARWIN_ONLY_VERS_1050 */
+#  else /* !__DARWIN_VERS_1050 */
+#    define __DARWIN_SUF_1050           /* nothing */
+#  endif /* __DARWIN_VERS_1050 */
+
+#  if __DARWIN_NON_CANCELABLE
+#    define __DARWIN_SUF_NON_CANCELABLE "$NOCANCEL"
+#  else /* !__DARWIN_NON_CANCELABLE */
+#    define __DARWIN_SUF_NON_CANCELABLE /* nothing */
+#  endif /* __DARWIN_NON_CANCELABLE */
+
+#else /* !__DARWIN_UNIX03 */
+#  define __DARWIN_SUF_UNIX03           /* nothing */
+#  define __DARWIN_SUF_64_BIT_INO_T     /* nothing */
+#  define __DARWIN_SUF_NON_CANCELABLE   /* nothing */
+#  define __DARWIN_SUF_1050             /* nothing */
+#endif /* __DARWIN_UNIX03 */
+
+#define __DARWIN_SUF_EXTSN              "$DARWIN_EXTSN"
+
+/*
+ * symbol versioning macros
+ */
+#define __DARWIN_ALIAS(sym)             __asm("_" __STRING(sym) __DARWIN_SUF_UNIX03)
+#define __DARWIN_ALIAS_C(sym)           __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03)
+#define __DARWIN_ALIAS_I(sym)           __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03)
+#define __DARWIN_NOCANCEL(sym)          __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE)
+#define __DARWIN_INODE64(sym)           __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T)
+
+#define __DARWIN_1050(sym)              __asm("_" __STRING(sym) __DARWIN_SUF_1050)
+#define __DARWIN_1050ALIAS(sym)         __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_UNIX03)
+#define __DARWIN_1050ALIAS_C(sym)       __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03)
+#define __DARWIN_1050ALIAS_I(sym)       __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03)
+#define __DARWIN_1050INODE64(sym)       __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T)
+
+#define __DARWIN_EXTSN(sym)             __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN)
+#define __DARWIN_EXTSN_C(sym)           __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN __DARWIN_SUF_NON_CANCELABLE)
+
+/*
+ * symbol release macros
+ */
+#include 
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
+#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x)   __DARWIN_ALIAS_STARTING_IPHONE_##_iphone(x)
+#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
+#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x)   __DARWIN_ALIAS_STARTING_MAC_##_mac(x)
+#else
+#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x)   x
+#endif
+
+
+/*
+ * POSIX.1 requires that the macros we test be defined before any standard
+ * header file is included.  This permits us to convert values for feature
+ * testing, as necessary, using only _POSIX_C_SOURCE.
+ *
+ * Here's a quick run-down of the versions:
+ *  defined(_POSIX_SOURCE)		1003.1-1988
+ *  _POSIX_C_SOURCE == 1L		1003.1-1990
+ *  _POSIX_C_SOURCE == 2L		1003.2-1992 C Language Binding Option
+ *  _POSIX_C_SOURCE == 199309L		1003.1b-1993
+ *  _POSIX_C_SOURCE == 199506L		1003.1c-1995, 1003.1i-1995,
+ *					and the omnibus ISO/IEC 9945-1: 1996
+ *  _POSIX_C_SOURCE == 200112L		1003.1-2001
+ *  _POSIX_C_SOURCE == 200809L		1003.1-2008
+ *
+ * In addition, the X/Open Portability Guide, which is now the Single UNIX
+ * Specification, defines a feature-test macro which indicates the version of
+ * that specification, and which subsumes _POSIX_C_SOURCE.
+ */
+
+/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L. */
+#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1L
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE         199009L
+#endif
+
+/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L. */
+#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2L
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE         199209L
+#endif
+
+/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
+#ifdef _XOPEN_SOURCE
+#if _XOPEN_SOURCE - 0L >= 700L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 200809L)
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE         200809L
+#elif _XOPEN_SOURCE - 0L >= 600L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 200112L)
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE         200112L
+#elif _XOPEN_SOURCE - 0L >= 500L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 199506L)
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE         199506L
+#endif
+#endif
+
+/*
+ * Deal with all versions of POSIX.  The ordering relative to the tests above is
+ * important.
+ */
+#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
+#define _POSIX_C_SOURCE         198808L
+#endif
+
+/* POSIX C deprecation macros */
+#include 
+
+#define __POSIX_C_DEPRECATED(ver) ___POSIX_C_DEPRECATED_STARTING_##ver
+
+/*
+ * Set a single macro which will always be defined and can be used to determine
+ * the appropriate namespace.  For POSIX, these values will correspond to
+ * _POSIX_C_SOURCE value.  Currently there are two additional levels corresponding
+ * to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE)
+ */
+#define __DARWIN_C_ANSI         010000L
+#define __DARWIN_C_FULL         900000L
+
+#if   defined(_ANSI_SOURCE)
+#define __DARWIN_C_LEVEL        __DARWIN_C_ANSI
+#elif defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE) && !defined(_NONSTD_SOURCE)
+#define __DARWIN_C_LEVEL        _POSIX_C_SOURCE
+#else
+#define __DARWIN_C_LEVEL        __DARWIN_C_FULL
+#endif
+
+/* If the developer has neither requested a strict language mode nor a version
+ * of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part
+ * of __DARWIN_C_FULL.
+ */
+#if !defined(__STDC_WANT_LIB_EXT1__) && !defined(__STRICT_ANSI__) && __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define __STDC_WANT_LIB_EXT1__ 1
+#endif
+
+/*
+ * long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and
+ * c99 still want long longs.  While not perfect, we allow long longs for
+ * g++.
+ */
+#if (defined(__STRICT_ANSI__) && (__STDC_VERSION__ - 0 < 199901L) && !defined(__GNUG__))
+#define __DARWIN_NO_LONG_LONG 1
+#else
+#define __DARWIN_NO_LONG_LONG 0
+#endif
+
+/*****************************************
+*  Public darwin-specific feature macros
+*****************************************/
+
+/*
+ * _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
+ * structures modified for 64-bit inodes (like struct stat) will be used.
+ */
+#if __DARWIN_64_BIT_INO_T
+#define _DARWIN_FEATURE_64_BIT_INODE            1
+#endif
+
+/*
+ * _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only
+ * be 64-bit; there is no support for 32-bit ino_t when this macro is defined
+ * (and non-zero).  There is no struct stat64 either, as the regular
+ * struct stat will already be the 64-bit version.
+ */
+#if __DARWIN_ONLY_64_BIT_INO_T
+#define _DARWIN_FEATURE_ONLY_64_BIT_INODE       1
+#endif
+
+/*
+ * _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated
+ * in 10.5 exists; no pre-10.5 variants are available.
+ */
+#if __DARWIN_ONLY_VERS_1050
+#define _DARWIN_FEATURE_ONLY_VERS_1050          1
+#endif
+
+/*
+ * _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API
+ * are available (the legacy BSD APIs are not available)
+ */
+#if __DARWIN_ONLY_UNIX_CONFORMANCE
+#define _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE   1
+#endif
+
+/*
+ * _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on,
+ * and specifies the conformance level (3 is SUSv3)
+ */
+#if __DARWIN_UNIX03
+#define _DARWIN_FEATURE_UNIX_CONFORMANCE        3
+#endif
+
+
+/*
+ * This macro casts away the qualifier from the variable
+ *
+ * Note: use at your own risk, removing qualifiers can result in
+ * catastrophic run-time failures.
+ */
+#ifndef __CAST_AWAY_QUALIFIER
+/*
+ * XXX: this shouldn't ignore anything more than -Wcast-qual,
+ * but the old implementation made it an almighty cast that
+ * ignored everything, so things break left and right if you
+ * make it only ignore -Wcast-qual.
+ */
+#define __CAST_AWAY_QUALIFIER(variable, qualifier, type) \
+	_Pragma("GCC diagnostic push") \
+	_Pragma("GCC diagnostic ignored \"-Wcast-qual\"") \
+	_Pragma("GCC diagnostic ignored \"-Wcast-align\"") \
+	_Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
+	((type)(variable)) \
+	_Pragma("GCC diagnostic pop")
+#endif
+
+/*
+ * __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be
+ * used from other compilation units, but not other libraries or executables.
+ */
+#ifndef __XNU_PRIVATE_EXTERN
+#define __XNU_PRIVATE_EXTERN __attribute__((visibility("hidden")))
+#endif
+
+#if __has_include()
+#include 
+#else
+/*
+ * We intentionally define to nothing pointer attributes which do not have an
+ * impact on the ABI. __indexable and __bidi_indexable are not defined because
+ * of the ABI incompatibility that makes the diagnostic preferable.
+ */
+#define __has_ptrcheck 0
+#define __single
+#define __unsafe_indexable
+#define __counted_by(N)
+#define __sized_by(N)
+#define __ended_by(E)
+#define __terminated_by(T)
+#define __null_terminated
+
+/*
+ * Similarly, we intentionally define to nothing the
+ * __ptrcheck_abi_assume_single and __ptrcheck_abi_assume_unsafe_indexable
+ * macros because they do not lead to an ABI incompatibility. However, we do not
+ * define the indexable and unsafe_indexable ones because the diagnostic is
+ * better than the silent ABI break.
+ */
+#define __ptrcheck_abi_assume_single()
+#define __ptrcheck_abi_assume_unsafe_indexable()
+
+/* __unsafe_forge intrinsics are defined as regular C casts. */
+#define __unsafe_forge_bidi_indexable(T, P, S) ((T)(P))
+#define __unsafe_forge_single(T, P) ((T)(P))
+#define __terminated_by_to_indexable(P) (P)
+#define __unsafe_terminated_by_to_indexable(P) (P)
+#define __null_terminated_to_indexable(P) (P)
+#define __unsafe_null_terminated_to_indexable(P) (P)
+#define __unsafe_terminated_by_from_indexable(T, P, ...) (P)
+#define __unsafe_null_terminated_from_indexable(P, ...) (P)
+
+/* decay operates normally; attribute is meaningless without pointer checks. */
+#define __array_decay_dicards_count_in_parameters
+
+/* this is a write-once variable; not useful without pointer checks. */
+#define __unsafe_late_const
+#endif /* !__has_include() */
+
+
+#define __ASSUME_PTR_ABI_SINGLE_BEGIN       __ptrcheck_abi_assume_single()
+#define __ASSUME_PTR_ABI_SINGLE_END         __ptrcheck_abi_assume_unsafe_indexable()
+
+#if __has_ptrcheck
+#define __header_indexable                  __indexable
+#define __header_bidi_indexable             __bidi_indexable
+#else
+#define __header_indexable
+#define __header_bidi_indexable
+#endif
+
+/*
+ * Architecture validation for current SDK
+ */
+#if !defined(__sys_cdefs_arch_unknown__) && defined(__i386__)
+#elif !defined(__sys_cdefs_arch_unknown__) && defined(__x86_64__)
+#elif !defined(__sys_cdefs_arch_unknown__) && defined(__arm__)
+#elif !defined(__sys_cdefs_arch_unknown__) && defined(__arm64__)
+#else
+#error Unsupported architecture
+#endif
+
+
+
+#define __compiler_barrier() __asm__ __volatile__("" ::: "memory")
+
+#if __has_attribute(enum_extensibility)
+#define __enum_open __attribute__((__enum_extensibility__(open)))
+#define __enum_closed __attribute__((__enum_extensibility__(closed)))
+#else
+#define __enum_open
+#define __enum_closed
+#endif // __has_attribute(enum_extensibility)
+
+#if __has_attribute(flag_enum)
+#define __enum_options __attribute__((__flag_enum__))
+#else
+#define __enum_options
+#endif
+
+/*
+ * Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS
+ *
+ * This provides more advanced type checking on compilers supporting
+ * the proper extensions, even in C.
+ */
+#if __has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum) || \
+        __has_extension(cxx_strong_enums)
+#define __enum_decl(_name, _type, ...) \
+	        typedef enum : _type __VA_ARGS__ __enum_open _name
+#define __enum_closed_decl(_name, _type, ...) \
+	        typedef enum : _type __VA_ARGS__ __enum_closed _name
+#define __options_decl(_name, _type, ...) \
+	        typedef enum : _type __VA_ARGS__ __enum_open __enum_options _name
+#define __options_closed_decl(_name, _type, ...) \
+	        typedef enum : _type __VA_ARGS__ __enum_closed __enum_options _name
+#else
+#define __enum_decl(_name, _type, ...) \
+	        typedef _type _name; enum __VA_ARGS__ __enum_open
+#define __enum_closed_decl(_name, _type, ...) \
+	        typedef _type _name; enum __VA_ARGS__ __enum_closed
+#define __options_decl(_name, _type, ...) \
+	        typedef _type _name; enum __VA_ARGS__ __enum_open __enum_options
+#define __options_closed_decl(_name, _type, ...) \
+	        typedef _type _name; enum __VA_ARGS__ __enum_closed __enum_options
+#endif
+
+
+
+#define __kernel_ptr_semantics
+#define __kernel_data_semantics
+#define __kernel_dual_semantics
+
+
+
+#endif /* !_CDEFS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/clonefile.h b/lib/libc/include/any-macos.13-any/sys/clonefile.h
new file mode 100644
index 0000000000000000000000000000000000000000..faaf3a08023b965bf04740973ef63a890e7107b9
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/clonefile.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2015-2017 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 _SYS_CLONEFILE_H_
+#define _SYS_CLONEFILE_H_
+
+/* Options for clonefile calls */
+#define CLONE_NOFOLLOW      0x0001     /* Don't follow symbolic links */
+#define CLONE_NOOWNERCOPY   0x0002     /* Don't copy ownership information from source */
+#define CLONE_ACL           0x0004     /* Copy access control lists from source */
+
+
+#include 
+#include 
+#include <_types/_uint32_t.h>
+#include 
+
+__BEGIN_DECLS
+
+int clonefileat(int, const char *, int, const char *, uint32_t) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+
+int fclonefileat(int, int, const char *, uint32_t) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+
+int clonefile(const char *, const char *, uint32_t) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+
+__END_DECLS
+
+
+#endif /* _SYS_CLONEFILE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/constrained_ctypes.h b/lib/libc/include/any-macos.13-any/sys/constrained_ctypes.h
new file mode 100644
index 0000000000000000000000000000000000000000..da3aaff482878139ef9555de2c3a8c95fcca7bbb
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/constrained_ctypes.h
@@ -0,0 +1,591 @@
+/*
+ * Copyright (c) 2000-2022 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 __CONSTRAINED_CTYPES__
+#define __CONSTRAINED_CTYPES__
+
+#include 
+
+/* This file introduces macros for constraining pointer
+ * types to specific contracts:
+ *
+ *
+ * 1. List of supported constrained pointers.
+ *
+ * 1.1. `Reference' pointers.
+ *
+ *      The `reference' pointers point to a single entity. The pointer
+ *      arithmetics are not supported for the `reference' pointers.
+ *
+ *      The `reference' pointers are fully ABI compatible with
+ *      the unconstrained C pointers.
+ *
+ *      The naming convention for the `reference' pointers uses
+ *      the `ref' constraint tag. See `Naming conventions' below for furhter
+ *      discussion.
+ *
+ *      Examples:
+ *
+ *      (1) `socket_ref_t' is `reference' pointer to `struct socket'.
+ *      (2) `uint32_ref_t' is `reference' pointer to `uint32_t'.
+ *
+ *
+ * 1.2. `Checked' pointers.
+ *
+ *      The `checked' pointers represent contigous data arrays, which
+ *      can be traversed only in the direction of increasing memory addresses.
+ *      The pointer arithmetics are partially supported: decrements (p--, --p)
+ *      are disallowed.
+ *
+ *      The `checked' pointers are not ABI-compatible with plain C pointers,
+ *      due to the boundary checks instrumentation. See `ABI
+ *      Compatibility Considerations' below for further discussion.
+ *
+ *      The naming convention for the `checked' pointers uses the `ptr'
+ *      constraint tag. See `Naming conventions' below for furhter discussion.
+ *
+ *      Examples:
+ *
+ *      (1) `socket_ptr_t' is `checked' pointer to `struct socket'.
+ *      (2) `uint32_ptr_t' is `checked' pointer to `uint32_t'.
+ *
+ *
+ * 1.3. `Bidirectional' pointers.
+ *
+ *      The `bidirectional' pointers represent contigous data arrays,
+ *      which can be traversed in both directions. The pointer arithmetics are
+ *      fully supported for the `array' pointers.
+ *
+ *      The `bidirectional' pointers are not ABI-compatible with plain C
+ *      pointers, due to the boundary checks instrumentation. Additionally,
+ *      passing `bidirectional' pointers to functions require the use of stack.
+ *      See `ABI Compatibility Considerations' below for further discussion.
+ *
+ *      The naming convention for the `bidirectional' pointers uses
+ *      the `bptr' constraint tag. See `Naming conventions' below for furhter
+ *      discussion.
+ *
+ *      Examples:
+ *
+ *      (1) `socket_bptr_t' is `bidirectional' pointer to `struct socket'.
+ *      (2) `uint32_bptr_t' is `bidirectional' pointer to `uint32_t'.
+ *
+ *
+ * 1.4. Multidimensional constrained pointers.
+ *
+ *      Constraining multidimensional pointers is achieved by iteratively
+ *      applying the constraints from the innermost type to the outermost type.
+ *
+ *      Pointer arithmetics are supported for the dimensions that
+ *      are not constrained to a `reference' or `const reference'.
+ *
+ *      If any of the dimension constraints isn't ABI-compatible with its
+ *      unconstrained counterpart, then the entire constrained multidimensional
+ *      pointer is not ABI-compatible with the corresponding unconstrained
+ *      multidimensional pointer. Otherwise, the two are ABI-compatible. See
+ *      `ABI compatibility' below for further discussion.
+ *
+ *      The naming convention for the multidimensional constrained pointers
+ *      combines the naming tags that correspond to the individual constraints.
+ *      See `Naming conventions' below for furhter discussion.
+ *
+ *      Examples:
+ *
+ *      (1) `socket_ref_bptr_t' is a `bidirectional' pointer to a `reference'
+ *          pointer to `struct socket'.
+ *      (2) `socket_ptr_ref_t' is a `reference' pointer to a `checked'
+ *          pointer to `struct socket'.
+ *
+ *
+ * 1.5. Using `const', `volatile', and `restrict' type qualifiers with
+ *      constrained types.
+ *
+ *      The use of the `const', `volatile', and `restrict' type qualifiers
+ *      (a.k.a. "CRV qualifiers") follows the syntax of the C language.
+ *
+ *      As a special case, if a `const' qualifier is applied to inner
+ *      dimensions of a multidimensional constrained pointer type, the
+ *      constraint tag is prepended with letter `c'; thus `cref' can be used
+ *      for const-qualified `reference' pointer. This abbreviation is only
+ *      supported for the `const' qualifier, as use of `volatile' or `restrict'
+ *      for inner constrained types is quite uncommon. See `Multidimensional
+ *      constrained pointers' above and `Naming conventions' below for further
+ *      discussion.
+ *
+ *      Examples:
+ *
+ *      (1) `socket_ref_t const' is the const-qualified `reference' pointer
+ *          to `struct socket'.
+ *      (2) `socket_ptr_t volatile' is the volatile-qualified `checked' pointer
+ *          to `struct socket'.
+ *      (3) `socket_ptr_ref_t const' is a const-qualified `reference' pointer
+ *          to a `checked' pointer to `struct socket'.
+ *      (4) `socket_cref_ptr_t const' is a `checked' pointer to a
+ *          const-qualified `reference' pointer to `struct socket'.
+ *
+ *
+ * 1.6. Combining constrained pointers and unconstrained pointers.
+ *
+ *      Unconstrained pointers to constrained pointers follow
+ *      the standard C syntax. Defining constrained pointers to
+ *      unconstrained pointers is possible via defining a constrained pointer
+ *      to a typedef.
+ *
+ *      Examples:
+ *
+ *      (1) `socket_ref_t *' is an unconstrained pointer to `socket_ref_t', i.e.
+ *          unconstrained pointer to a `reference' pointer to `struct socket'.
+ *      (2) `socket_ref_t const *' is an unconstrained pointer to `socket_ref_t const',
+ *          i.e. an unconstrained pointer to a const-qualified `reference'
+ *          pointer to `struct socket'.
+ *      (3) `socket_ref_t * const' is a const-qualified unconstrained pointer to
+ *          `socket_ref_t', i.e. a const-qualified unconstrained pointer to a
+ *          `reference' pointer to `struct socket'.
+ *      (4) `intptr_ref_t' is a `reference' pointer to `intptr_t', i.e.
+ *          a `reference' pointer to an unconstrained pointer to `int'. Note
+ *          the use of `intptr_t' typedef, which is necessary at the moment.
+ *
+ *
+ * 2. Defining constrained pointer types.
+ *
+ * 2.1. Declaring multiple constrained types simultaneously.
+ *
+ *      `__CCT_DECLARE_CONSTRAINED_PTR_TYPES(basetype, basetag)`
+ *      is the suggested way to declare constrained pointer types.
+ *
+ *      Parameters:
+ *
+ *      `basetype`: the pointee type, including `struct' or `enum' keywords.
+ *      `basetag`:  the prefix of the constrained type.
+ *
+ *      This macro acts differently in the user-space and the kernel-space
+ *      code. When used in the former, it will only declare types which are
+ *      ABI-safe. See `ABI Compatibility Considerations' below for more details.
+ *
+ *      Examples:
+ *
+ *      (1) When used from the user space,
+ *          `__CCT_DECLARE_CONSTRAINED_PTR_TYPES(struct socket, socket);'
+ *           will declare types:
+ *
+ *          (a) `socket_ref_t': the `reference' to `struct socket'
+ *          (b) `socket_ref_ref_t': the `reference to reference'
+ *              to `struct socket'.
+ *
+ *      (2) When used from the kernel space,
+ *          `__CCT_DECLARE_CONSTRAINED_PTR_TYPES(struct socket, socket);'
+ *           will declare the above types, plus:
+ *
+ *          (c) `socket_ptr_t': `checked' pointer to `struct socket'.
+ *          (d) `socket_bptr_t': `bidirectional' pointer to `struct socket'.
+ *          (e) `socket_ref_ptr_t': `checked' pointer to a `reference'
+ *              to `struct socket'.
+ *          (f) `socket_ptr_ref_t': `reference' to a `checked' pointer
+ *              to `struct socket'.
+ *
+ *      These additional types are not ABI-safe, and therefore are not exposed
+ *      to the user space. See `ABI Compatibility Considerations' below.
+ *
+ *
+ * 2.2. Declaring individual constrained types.
+ *
+ *      The above macro attempts to do many things at once, and under some
+ *      circumstances can be not appropriate. For these circumstances, a
+ *      finer-graned declarator can be used:
+ *
+ *      `__CCT_DECLARE_CONSTRAINED_PTR_TYPE(basetype, basetag, ...)'
+ *
+ *      Parameters:
+ *
+ *      `basetype`: the pointee type.
+ *      `basetag`:  the prefix of the constrained type.
+ *      `...`:      list of `REF', `CREF', `BPTR' or `PTR', which represent
+ *                  the desired constraints.
+ *
+ *      Examples:
+ *
+ *      (1) `__CCT_DECLARE_CONSTRAINED_PTR_TYPE(struct socket, socket, REF)'
+ *          will declare the type `socket_ref_t`:
+ *
+ *      (2) `__CCT_DECLARE_CONSTRAINED_PTR_TYPE(struct socket, socket, REF, PTR, REF)'
+ *           will declare the type `socket_ref_ptr_ref_t`:
+ *
+ *
+ * 3. Using constrained pointer types.
+ *
+ * 3.1. Using constrained pointers for local variables.
+ *
+ *      Constraining the pointers on the stack reduces the risk of stack
+ *      overflow. Therefore, it is highly suggested to use the constrained
+ *      versions of the pointers for stack parameters. For local array
+ *      variables, opt for the `bidirectional' pointers. If only a single value
+ *      needs to be pointed, opt for the `reference' pointers.
+ *
+ *      There are two alternative approaches for using the `reference' pointers.
+ *      One approach is to explicitly use `thing_ref_t ptr` instead of `thing *ptr`.
+ *      The other approach is to surround the code with the directives
+ *      `__ASSUME_PTR_ABI_SINGLE_BEGIN' and `__ASSUME_PTR_ABI_SINGLE_END', which
+ *      will have the effect of turning every unconstrained pointer to its
+ *      `reference' counterpart.
+ *
+ *
+ * 3.2. Using constrained pointers for function parameters
+ *
+ * 3.2.1. Use `reference' pointers for scalar parameters.
+ *
+ *      Scalar parameters are safe to use across ABI boundaries.
+ *
+ *      Examples:
+ *
+ *      (1) Using `reference' pointers for scalar input:
+ *
+ *      errno_t thing_is_valid(const thing_ref_t t)
+ *      {
+ *              return t == NULL ? EINVAL : 0;
+ *      }
+ *
+ *
+ *      (2) Using `reference' pointers for scalar output, which is
+ *          allocated by the caller:
+ *
+ *      errno_t thing_copy(const thing_ref_t src, thing_ref_t dst)
+ *      {
+ *              if (src == NULL || dst == NULL) {
+ *                      return EINVAL;
+ *              }
+ *              bcopy(src, dst);
+ *              return 0;
+ *      }
+ *
+ *      (3) Using `reference to reference' for scalar output that is
+ *          allocated by the callee:
+ *
+ *      errno_t thing_dup(const thing_ref_t src, thing_ref_ref_t dst)
+ *      {
+ *              *dst = malloc(sizeof(*dst));
+ *              bcopy(src, *dst, sizeof(*src));
+ *              return 0;
+ *      }
+ *
+ *
+ * 3.2.2. Use `checked' pointers for vector parameters.
+ *
+ *      When the ABI isn't a concern, use of `checked' pointers
+ *      increases the code readability.
+ *
+ *      See `ABI Compatibility Considerations' below for vector parameters when
+ *      ABI is a concern.
+ *
+ *      Examples:
+ *
+ *      (1) Using `checked' pointers for vector input:
+ *
+ *      errno_t thing_find_best(const thing_ref_ptr_t things,
+ *                              thing_ref_ref_t best, size_t count)
+ *      {
+ *              for (int i = 0; i < count; i++) {
+ *                      if (thing_is_the_best(things[i])) {
+ *                              *best = things[i];
+ *                              return 0;
+ *                      }
+ *              }
+ *              return ENOENT; // no best thing
+ *      }
+ *
+ *      (2) Using `checked' pointers for vector output parameters that
+ *          are allocated by caller:
+ *
+ *      errno_t thing_copy_things(thing_ref_ptr_t src, thing_ref_ptr_t dst,
+ *                                size_t count)
+ *      {
+ *              for (int i = 0; i < count; i++) {
+ *                      dst[i] = malloc(sizeof(*dst[i]));
+ *                      bcopy(src[i], dst[i], sizeof(*src[i]));
+ *              }
+ *              return 0;
+ *      }
+ *
+ *      (3) Using `reference to checked' pointers for vector output
+ *      parameters that are allocated by callee:
+ *
+ *      errno_t thing_dup_things(thing_ref_ptr_t src, thing_ref_ptr_ref_t dst,
+ *                               size_t count)
+ *      {
+ *              *dst = malloc(sizeof(**src) * count);
+ *              return thing_copy_things(src, *dst, count);
+ *      }
+ *
+ *
+ * 3.3. Using constrained pointers in struct definitions
+ *
+ *      Examples:
+ *
+ *      (1) Using a structure that points to array of things:
+ *
+ *      struct things_crate {
+ *              size_t       tc_count;
+ *              thing_bptr_t tc_things;
+ *      };
+ *
+ *
+ * 3.4. Variable-size structures
+ *
+ *      Constrained pointer instrumentation depends on knowing the size of the
+ *      structures. If the structure contains a variable array, the array needs
+ *      to be annotated by `__sized_by' or `__counted_by' attribute:
+ *
+ *      Example:
+ *
+ *      struct sockaddr {
+ *              __uint8_t       sa_len;
+ *              sa_family_t     sa_family;
+ *              char            sa_data[__counted_by(sa_len - 2)];
+ *      };
+ *
+ *
+ * 4. ABI Compatibility Considerations
+ *
+ *      The pointer instrumentation process has ABI implications.
+ *
+ *      When the pointer insrumentation is enabled, the size of `bidirectional'
+ *      and `checked' pointers exceeds the size of the machine word.
+ *
+ *      Thus, if there is a concern that the instrumentation is enabled only in
+ *      some compilation units that use the function, these constrained
+ *      pointers can not be used for function parameters.
+ *
+ *      Instead, one should rely on `__counted_by(count)' or `__sized_by(size)'
+ *      attributes. These attributes accept as a parameter the name of a
+ *      variable that contains the cont of items, or the byte size, of the
+ *      pointed-to array. Use of these attributes does not change the size of
+ *      the pointer.
+ *
+ *      The tradeoff is between maintaining code readabilty and ABI compatibility.
+ *
+ *      A common pattern is to split the function into the implementation,
+ *      which is statically linked and therefore is ABI-safe, and the interface
+ *      wrapper, which uses `__counted_by' or `__sized_by' to preserve ABI
+ *      compatibility.
+ *
+ *
+ * 4.1. When ABI is a concern, replace `bidirectional' and `checked'
+ *        with  `__counted_by(count)` and `__sized_by(size)` for vector
+ *        parameters.
+ *
+ *
+ *      Examples:
+ *
+ *      (1) Using `const thing_ref_t __counted_by(count)' instead of `const
+ *          thing_ref_ptr_t' for vector input in a wrapper:
+ *
+ *      errno_t thing_find_best_compat(const thing_ref_t __counted_by(count)things,
+ *                                     thing_ref_ref_t best, size_t count)
+ *      {
+ *              // __counted_by implicitly upgraded to `checked'
+ *              return thing_find_best(things, best, count);
+ *      }
+ *
+ *      (2) Using `thing_ref_t __counted_by(count)' instead of `thing_ref_ptr_t'
+ *          for vector output in a wrapper.
+ *
+ *      errno_t thing_copy_things_compat(thing_ref_t __counted_by(count)src,
+ *                                       things_ref_t __counted_by(count)dst,
+ *                                       size_t count)
+ *      {
+ *              // __counted_by implicitly upgraded to `checked'
+ *              return thing_copy_things(src, dst, count);
+ *      }
+ *
+ *
+ * 4.2. When ABI is a concern, use `__counted_by(count)' and
+ *        `__sized_by(size)' for struct members that point to arrays.
+ *
+ *      Examples:
+ *
+ *      (1) Using a structure that points to array of things:
+ *
+ *      struct things_crate {
+ *              size_t                               tc_count;
+ *              struct thing * __counted_by(tc_count)tc_things;
+ *      };
+ *
+ * 5. Naming conventions
+ *
+ *      If `typename' is the name of a C type, and `tag' is a constraint tag
+ *      (one of `ref', `ptr', or `bptr'), then the name of a pointer to
+ *      `typename' constrained by `tag' is `basetag_tag_t', where `basename'
+ *      is defined by:
+ *
+ *      (a) If `typename' is a name of an integral type, then `basetag' is same
+ *          as `typename'.
+ *      (b) If `typename' is a name of a function type, then `basetag' is same
+ *          as `typename'.
+ *      (c) If `typename' is a name of a structure, then `basetag' is formed by
+ *          stripping the `struct' keyword from `typename'.
+ *      (d) If `typename' is a name of an enumeration, then `basetag' is formed
+ *          by stripping the `enum' keyword from `typename'.
+ *      (e) If `typename' is a name of a typedef to a struct or an enum that ends
+ *          with `_t', then `basetag' is formed by stripping the `_t' suffix
+ *          from `typename'. See (h) below for when `typename' is a pointer typedef.
+ *      (f) If `typename' is a name of constrained pointer type ending with `_t',
+ *          then `basetag' is formed by stripping the `_t' suffix from `typename'.
+ *
+ *      Additionally, constrained pointers to constrained const pointers are a
+ *      special case:
+ *
+ *      (g) If `typename' is a name of a constrained pointer type, ending with
+ *          `_{innertag}_t', and `typename' has `const' qualifier, then `basetag'
+ *          is formed by replacing `_{innertag}_t' with `_c{innertag}'
+ *
+ *      Finally, sometimes `name_t' represents not `struct name' but `struct name *'.
+ *      This creates additional special case:
+ *
+ *      (h) If `typename' is a pointer typedef named `{struct}_t`, such as
+ *          `mbuf_t',  then creating a constrained pointer to a `typename' would
+ *           require creating a  constrained pointer to an unconstrained pointer,
+ *           which is not supported at the moment. Instead, a constrained pointer to
+ *           `typeof(*typename)` must be created first, and constrained again. Using
+ *           the `mbuf_t` example, first one should create a constrained pointer to
+ *           `struct mbuf`, e.g, `mbuf_bptr_t`, and then constrain it again with
+ *           `tag`, leading to `mbuf_bptr_ref_t'.
+ *
+ *      Examples:
+ *
+ *      (1) `int_ref_t' is a `reference pointer' to `int', following the rule (a) above.
+ *      (2) `so_pru_ref_t' is a `reference pointer' to function `so_pru',
+ *          following the rule (b) above.
+ *      (3) `socket_ref_t' is a `reference pointer' to `struct socket',
+ *          following the rule (c) above.
+ *      (4) `classq_pkt_type_ref_t' is a `reference pointer' to `enum classq_pkt_type'
+ *          following the rule (d) above.
+ *      (5) `classq_pkt_type_ref_t' is a also `reference pointer' to `classq_pkt_type_t'
+ *          following the rule (e) above.
+ *      (6) `socket_ref_ref_t' is a `reference pointer' to `socket_ref_t`,
+ *          following the rule (f) above.
+ *      (7) `socket_cref_ref_t' is a `reference pointer' to `socket_ref_t const`,
+ *          following the rule (g) above.
+ *      (8) `mbuf_ref_ref_t', is a `reference pointer' to `mbuf_ref_t`, and is one
+ *          possible result of creating a `reference pointer' to `mbuf_t',
+ *          following the rule (h) above.
+ *      (9) `mbuf_bptr_ref_t', is a `reference pointer' to `mbuf_bptr_t`, and
+ *          is another possible result of creating a `reference pointer' to
+ *          `mbuf_t', following the rule (h) above.
+ *
+ */
+
+/*
+ * Constraint contract constants.
+ *
+ * At the moment only clang (when compiled with `ptrcheck' feature) supports
+ * pointer tagging via `__single', `__indexable' and `__bidi_indexable' attributes.
+ *
+ * During the transitional period, the `__indexable__' and `__bidi_indexable'
+ * constraints will decay to raw pointers if the `ptrcheck' feature is not enabled.
+ * Once the transitional period is over, the `__CCT_CONTRACT_ATTR_{B}PTR' constraints
+ * will stop decaying to raw pointers when built by sufficiently recent version
+ * of clang.
+ *
+ * Support for other compilers will be added after the introduction of support
+ * for pointer tagging on those compilers.
+ */
+#if defined(__clang__)
+#define __CCT_CONTRACT_ATTR_REF         __single
+#define __CCT_CONTRACT_ATTR_CREF        const __single
+#if  __has_ptrcheck
+#define __CCT_CONTRACT_ATTR_BPTR        __bidi_indexable
+#define __CCT_CONTRACT_ATTR_PTR         __indexable
+#else /* __clang__ + __has_ptrcheck */
+#define __CCT_CONTRACT_ATTR_BPTR
+#define __CCT_CONTRACT_ATTR_PTR
+#endif /* __clang__ + !__has_ptrcheck */
+#else /* !__clang__ */
+#define __CCT_CONTRACT_ATTR_REF
+#define __CCT_CONTRACT_ATTR_CREF        const
+#define __CCT_CONTRACT_ATTR_BPTR
+#define __CCT_CONTRACT_ATTR_PTR
+#endif /* __clang__ */
+
+#define __CCT_CONTRACT_TAG_REF          _ref
+#define __CCT_CONTRACT_TAG_CREF         _cref
+#define __CCT_CONTRACT_TAG_BPTR         _bptr
+#define __CCT_CONTRACT_TAG_PTR          _ptr
+
+/* Helper macros */
+#define __CCT_DEFER(F, ...) F(__VA_ARGS__)
+#define __CCT_CONTRACT_TO_ATTR(kind) __CONCAT(__CCT_CONTRACT_ATTR_, kind)
+#define __CCT_CONTRACT_TO_TAG(kind)  __CCT_DEFER(__CONCAT, __CCT_CONTRACT_TAG_, kind)
+
+#define __CCT_COUNT_ARGS1(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, N, ...) N
+#define __CCT_COUNT_ARGS(...) \
+	__CCT_COUNT_ARGS1(, __VA_ARGS__, _9, _8, _7, _6, _5, _4, _3, _2, _1, _0)
+#define __CCT_DISPATCH1(base, N, ...) __CONCAT(base, N)(__VA_ARGS__)
+#define __CCT_DISPATCH(base, ...) \
+	__CCT_DISPATCH1(base, __CCT_COUNT_ARGS(__VA_ARGS__), __VA_ARGS__)
+
+/* Covert a contract list to a type suffix */
+#define __CCT_CONTRACT_LIST_TO_TAGGED_SUFFIX_1(kind)                                                \
+	__CCT_DEFER(__CONCAT, __CCT_CONTRACT_TO_TAG(kind), _t)
+#define __CCT_CONTRACT_LIST_TO_TAGGED_SUFFIX_2(kind1, kind2)                                        \
+	__CCT_DEFER(__CONCAT, __CCT_CONTRACT_TO_TAG(kind1),                                             \
+	         __CCT_CONTRACT_LIST_TO_TAGGED_SUFFIX_1(kind2))
+#define __CCT_CONTRACT_LIST_TO_TAGGED_SUFFIX_3(kind1, kind2, kind3)                                 \
+	__CCT_DEFER(__CONCAT, __CCT_CONTRACT_TO_TAG(kind1),                                             \
+	         __CCT_CONTRACT_LIST_TO_TAGGED_SUFFIX_2(kind2, kind3))
+
+/* Create typedefs for the constrained pointer type */
+#define __CCT_DECLARE_CONSTRAINED_PTR_TYPE_3(basetype, basetag, kind)                               \
+typedef basetype * __CCT_CONTRACT_TO_ATTR(kind)                                                     \
+	__CCT_DEFER(__CONCAT, basetag,  __CCT_CONTRACT_LIST_TO_TAGGED_SUFFIX_1(kind))
+
+#define __CCT_DECLARE_CONSTRAINED_PTR_TYPE_4(basetype, basetag, kind1, kind2)                       \
+typedef basetype * __CCT_CONTRACT_TO_ATTR(kind1)                                                    \
+	         * __CCT_CONTRACT_TO_ATTR(kind2)                                                        \
+	__CCT_DEFER(__CONCAT, basetag,  __CCT_CONTRACT_LIST_TO_TAGGED_SUFFIX_2(kind1, kind2))
+
+#define __CCT_DECLARE_CONSTRAINED_PTR_TYPE_5(basetype, basetag, kind1, kind2, kind3)                \
+typedef basetype * __CCT_CONTRACT_TO_ATTR(kind1)                                                    \
+	         * __CCT_CONTRACT_TO_ATTR(kind2)                                                        \
+	         * __CCT_CONTRACT_TO_ATTR(kind3)                                                        \
+	__CCT_DEFER(__CONCAT, basetag,  __CCT_CONTRACT_LIST_TO_TAGGED_SUFFIX_3(kind1, kind2, kind3))
+
+/*
+ * Lower level type constructor.
+ */
+#define __CCT_DECLARE_CONSTRAINED_PTR_TYPE(basetype, basetag, ...)                                  \
+	__CCT_DISPATCH(__CCT_DECLARE_CONSTRAINED_PTR_TYPE, basetype, basetag, __VA_ARGS__)
+
+/*
+ * Higher level type constructors.
+ * The constrained types that can potentially break the ABI are not exposed
+ * into the user-space.
+ */
+#define __CCT_DECLARE_CONSTRAINED_PTR_TYPES(basetype, basetag)                                      \
+__CCT_DECLARE_CONSTRAINED_PTR_TYPE(basetype, basetag, REF);                                         \
+__CCT_DECLARE_CONSTRAINED_PTR_TYPE(basetype, basetag, REF, REF)
+
+#endif /* __CONSTRAINED_CTYPES__ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/event.h b/lib/libc/include/any-macos.13-any/sys/event.h
new file mode 100644
index 0000000000000000000000000000000000000000..d56e6dfaf09b2b6e3f063d9c0435be67ed4e9b29
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/event.h
@@ -0,0 +1,397 @@
+/*
+ * Copyright (c) 2003-2021 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@
+ */
+/*-
+ * Copyright (c) 1999,2000,2001 Jonathan Lemon 
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ *
+ *	$FreeBSD: src/sys/sys/event.h,v 1.5.2.5 2001/12/14 19:21:22 jlemon Exp $
+ */
+
+#ifndef _SYS_EVENT_H_
+#define _SYS_EVENT_H_
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/*
+ * Filter types
+ */
+#define EVFILT_READ             (-1)
+#define EVFILT_WRITE            (-2)
+#define EVFILT_AIO              (-3)    /* attached to aio requests */
+#define EVFILT_VNODE            (-4)    /* attached to vnodes */
+#define EVFILT_PROC             (-5)    /* attached to struct proc */
+#define EVFILT_SIGNAL           (-6)    /* attached to struct proc */
+#define EVFILT_TIMER            (-7)    /* timers */
+#define EVFILT_MACHPORT         (-8)    /* Mach portsets */
+#define EVFILT_FS               (-9)    /* Filesystem events */
+#define EVFILT_USER             (-10)   /* User events */
+#define EVFILT_VM               (-12)   /* Virtual memory events */
+#define EVFILT_EXCEPT           (-15)   /* Exception events */
+
+#define EVFILT_SYSCOUNT         17
+#define EVFILT_THREADMARKER     EVFILT_SYSCOUNT /* Internal use only */
+
+#pragma pack(4)
+
+struct kevent {
+	uintptr_t       ident;  /* identifier for this event */
+	int16_t         filter; /* filter for event */
+	uint16_t        flags;  /* general flags */
+	uint32_t        fflags; /* filter-specific flags */
+	intptr_t        data;   /* filter-specific data */
+	void            *udata; /* opaque user data identifier */
+};
+
+
+#pragma pack()
+
+struct kevent64_s {
+	uint64_t        ident;          /* identifier for this event */
+	int16_t         filter;         /* filter for event */
+	uint16_t        flags;          /* general flags */
+	uint32_t        fflags;         /* filter-specific flags */
+	int64_t         data;           /* filter-specific data */
+	uint64_t        udata;          /* opaque user data identifier */
+	uint64_t        ext[2];         /* filter-specific extensions */
+};
+
+
+#define EV_SET(kevp, a, b, c, d, e, f) do {     \
+	struct kevent *__kevp__ = (kevp);       \
+	__kevp__->ident = (a);                  \
+	__kevp__->filter = (b);                 \
+	__kevp__->flags = (c);                  \
+	__kevp__->fflags = (d);                 \
+	__kevp__->data = (e);                   \
+	__kevp__->udata = (f);                  \
+} while(0)
+
+#define EV_SET64(kevp, a, b, c, d, e, f, g, h) do {     \
+	struct kevent64_s *__kevp__ = (kevp);           \
+	__kevp__->ident = (a);                          \
+	__kevp__->filter = (b);                         \
+	__kevp__->flags = (c);                          \
+	__kevp__->fflags = (d);                         \
+	__kevp__->data = (e);                           \
+	__kevp__->udata = (f);                          \
+	__kevp__->ext[0] = (g);                         \
+	__kevp__->ext[1] = (h);                         \
+} while(0)
+
+
+/* kevent system call flags */
+#define KEVENT_FLAG_NONE                         0x000000       /* no flag value */
+#define KEVENT_FLAG_IMMEDIATE                    0x000001       /* immediate timeout */
+#define KEVENT_FLAG_ERROR_EVENTS                 0x000002       /* output events only include change errors */
+
+
+/* actions */
+#define EV_ADD              0x0001      /* add event to kq (implies enable) */
+#define EV_DELETE           0x0002      /* delete event from kq */
+#define EV_ENABLE           0x0004      /* enable event */
+#define EV_DISABLE          0x0008      /* disable event (not reported) */
+
+/* flags */
+#define EV_ONESHOT          0x0010      /* only report one occurrence */
+#define EV_CLEAR            0x0020      /* clear event state after reporting */
+#define EV_RECEIPT          0x0040      /* force immediate event output */
+                                        /* ... with or without EV_ERROR */
+                                        /* ... use KEVENT_FLAG_ERROR_EVENTS */
+                                        /*     on syscalls supporting flags */
+
+#define EV_DISPATCH         0x0080      /* disable event after reporting */
+#define EV_UDATA_SPECIFIC   0x0100      /* unique kevent per udata value */
+
+#define EV_DISPATCH2        (EV_DISPATCH | EV_UDATA_SPECIFIC)
+/* ... in combination with EV_DELETE */
+/* will defer delete until udata-specific */
+/* event enabled. EINPROGRESS will be */
+/* returned to indicate the deferral */
+
+#define EV_VANISHED         0x0200      /* report that source has vanished  */
+                                        /* ... only valid with EV_DISPATCH2 */
+
+#define EV_SYSFLAGS         0xF000      /* reserved by system */
+#define EV_FLAG0            0x1000      /* filter-specific flag */
+#define EV_FLAG1            0x2000      /* filter-specific flag */
+
+/* returned values */
+#define EV_EOF              0x8000      /* EOF detected */
+#define EV_ERROR            0x4000      /* error, data contains errno */
+
+/*
+ * Filter specific flags for EVFILT_READ
+ *
+ * The default behavior for EVFILT_READ is to make the "read" determination
+ * relative to the current file descriptor read pointer.
+ *
+ * The EV_POLL flag indicates the determination should be made via poll(2)
+ * semantics. These semantics dictate always returning true for regular files,
+ * regardless of the amount of unread data in the file.
+ *
+ * On input, EV_OOBAND specifies that filter should actively return in the
+ * presence of OOB on the descriptor. It implies that filter will return
+ * if there is OOB data available to read OR when any other condition
+ * for the read are met (for example number of bytes regular data becomes >=
+ * low-watermark).
+ * If EV_OOBAND is not set on input, it implies that the filter should not actively
+ * return for out of band data on the descriptor. The filter will then only return
+ * when some other condition for read is met (ex: when number of regular data bytes
+ * >=low-watermark OR when socket can't receive more data (SS_CANTRCVMORE)).
+ *
+ * On output, EV_OOBAND indicates the presence of OOB data on the descriptor.
+ * If it was not specified as an input parameter, then the data count is the
+ * number of bytes before the current OOB marker, else data count is the number
+ * of bytes beyond OOB marker.
+ */
+#define EV_POLL         EV_FLAG0
+#define EV_OOBAND       EV_FLAG1
+
+/*
+ * data/hint fflags for EVFILT_USER, shared with userspace
+ */
+
+/*
+ * On input, NOTE_TRIGGER causes the event to be triggered for output.
+ */
+#define NOTE_TRIGGER    0x01000000
+
+/*
+ * On input, the top two bits of fflags specifies how the lower twenty four
+ * bits should be applied to the stored value of fflags.
+ *
+ * On output, the top two bits will always be set to NOTE_FFNOP and the
+ * remaining twenty four bits will contain the stored fflags value.
+ */
+#define NOTE_FFNOP      0x00000000              /* ignore input fflags */
+#define NOTE_FFAND      0x40000000              /* and fflags */
+#define NOTE_FFOR       0x80000000              /* or fflags */
+#define NOTE_FFCOPY     0xc0000000              /* copy fflags */
+#define NOTE_FFCTRLMASK 0xc0000000              /* mask for operations */
+#define NOTE_FFLAGSMASK 0x00ffffff
+
+
+/*
+ * data/hint fflags for EVFILT_{READ|WRITE}, shared with userspace
+ *
+ * The default behavior for EVFILT_READ is to make the determination
+ * realtive to the current file descriptor read pointer.
+ */
+#define NOTE_LOWAT      0x00000001              /* low water mark */
+
+/* data/hint flags for EVFILT_EXCEPT, shared with userspace */
+#define NOTE_OOB        0x00000002              /* OOB data */
+
+/*
+ * data/hint fflags for EVFILT_VNODE, shared with userspace
+ */
+#define NOTE_DELETE     0x00000001              /* vnode was removed */
+#define NOTE_WRITE      0x00000002              /* data contents changed */
+#define NOTE_EXTEND     0x00000004              /* size increased */
+#define NOTE_ATTRIB     0x00000008              /* attributes changed */
+#define NOTE_LINK       0x00000010              /* link count changed */
+#define NOTE_RENAME     0x00000020              /* vnode was renamed */
+#define NOTE_REVOKE     0x00000040              /* vnode access was revoked */
+#define NOTE_NONE       0x00000080              /* No specific vnode event: to test for EVFILT_READ activation*/
+#define NOTE_FUNLOCK    0x00000100              /* vnode was unlocked by flock(2) */
+#define NOTE_LEASE_DOWNGRADE 0x00000200         /* lease downgrade requested */
+#define NOTE_LEASE_RELEASE 0x00000400           /* lease release requested */
+
+/*
+ * data/hint fflags for EVFILT_PROC, shared with userspace
+ *
+ * Please note that EVFILT_PROC and EVFILT_SIGNAL share the same knote list
+ * that hangs off the proc structure. They also both play games with the hint
+ * passed to KNOTE(). If NOTE_SIGNAL is passed as a hint, then the lower bits
+ * of the hint contain the signal. IF NOTE_FORK is passed, then the lower bits
+ * contain the PID of the child (but the pid does not get passed through in
+ * the actual kevent).
+ */
+enum {
+	eNoteReapDeprecated __deprecated_enum_msg("This kqueue(2) EVFILT_PROC flag is deprecated") = 0x10000000
+};
+
+#define NOTE_EXIT               0x80000000      /* process exited */
+#define NOTE_FORK               0x40000000      /* process forked */
+#define NOTE_EXEC               0x20000000      /* process exec'd */
+#define NOTE_REAP               ((unsigned int)eNoteReapDeprecated /* 0x10000000 */ )   /* process reaped */
+#define NOTE_SIGNAL             0x08000000      /* shared with EVFILT_SIGNAL */
+#define NOTE_EXITSTATUS         0x04000000      /* exit status to be returned, valid for child process or when allowed to signal target pid */
+#define NOTE_EXIT_DETAIL        0x02000000      /* provide details on reasons for exit */
+
+#define NOTE_PDATAMASK  0x000fffff              /* mask for signal & exit status */
+#define NOTE_PCTRLMASK  (~NOTE_PDATAMASK)
+
+/*
+ * If NOTE_EXITSTATUS is present, provide additional info about exiting process.
+ */
+enum {
+	eNoteExitReparentedDeprecated __deprecated_enum_msg("This kqueue(2) EVFILT_PROC flag is no longer sent") = 0x00080000
+};
+#define NOTE_EXIT_REPARENTED    ((unsigned int)eNoteExitReparentedDeprecated)   /* exited while reparented */
+
+/*
+ * If NOTE_EXIT_DETAIL is present, these bits indicate specific reasons for exiting.
+ */
+#define NOTE_EXIT_DETAIL_MASK           0x00070000
+#define NOTE_EXIT_DECRYPTFAIL           0x00010000
+#define NOTE_EXIT_MEMORY                0x00020000
+#define NOTE_EXIT_CSERROR               0x00040000
+
+
+/*
+ * data/hint fflags for EVFILT_VM, shared with userspace.
+ */
+#define NOTE_VM_PRESSURE                        0x80000000              /* will react on memory pressure */
+#define NOTE_VM_PRESSURE_TERMINATE              0x40000000              /* will quit on memory pressure, possibly after cleaning up dirty state */
+#define NOTE_VM_PRESSURE_SUDDEN_TERMINATE       0x20000000              /* will quit immediately on memory pressure */
+#define NOTE_VM_ERROR                           0x10000000              /* there was an error */
+
+
+/*
+ * data/hint fflags for EVFILT_TIMER, shared with userspace.
+ * The default is a (repeating) interval timer with the data
+ * specifying the timeout interval in milliseconds.
+ *
+ * All timeouts are implicitly EV_CLEAR events.
+ */
+#define NOTE_SECONDS    0x00000001              /* data is seconds         */
+#define NOTE_USECONDS   0x00000002              /* data is microseconds    */
+#define NOTE_NSECONDS   0x00000004              /* data is nanoseconds     */
+#define NOTE_ABSOLUTE   0x00000008              /* absolute timeout        */
+/* ... implicit EV_ONESHOT, timeout uses the gettimeofday epoch */
+#define NOTE_LEEWAY             0x00000010              /* ext[1] holds leeway for power aware timers */
+#define NOTE_CRITICAL   0x00000020              /* system does minimal timer coalescing */
+#define NOTE_BACKGROUND 0x00000040              /* system does maximum timer coalescing */
+#define NOTE_MACH_CONTINUOUS_TIME       0x00000080
+/*
+ * NOTE_MACH_CONTINUOUS_TIME:
+ * with NOTE_ABSOLUTE: causes the timer to continue to tick across sleep,
+ *      still uses gettimeofday epoch
+ * with NOTE_MACHTIME and NOTE_ABSOLUTE: uses mach continuous time epoch
+ * without NOTE_ABSOLUTE (interval timer mode): continues to tick across sleep
+ */
+#define NOTE_MACHTIME   0x00000100              /* data is mach absolute time units */
+/* timeout uses the mach absolute time epoch */
+
+
+/*
+ * data/hint fflags for EVFILT_MACHPORT, shared with userspace.
+ *
+ * Only portsets are supported at this time.
+ *
+ * The fflags field can optionally contain the MACH_RCV_MSG, MACH_RCV_LARGE,
+ * and related trailer receive options as defined in .
+ * The presence of these flags directs the kevent64() call to attempt to receive
+ * the message during kevent delivery, rather than just indicate that a message exists.
+ * On setup, The ext[0] field contains the receive buffer pointer and ext[1] contains
+ * the receive buffer length.  Upon event delivery, the actual received message size
+ * is returned in ext[1].  As with mach_msg(), the buffer must be large enough to
+ * receive the message and the requested (or default) message trailers.  In addition,
+ * the fflags field contains the return code normally returned by mach_msg().
+ *
+ * If MACH_RCV_MSG is specified, and the ext[1] field specifies a zero length, the
+ * system call argument specifying an ouput area (kevent_qos) will be consulted. If
+ * the system call specified an output data area, the user-space address
+ * of the received message is carved from that provided output data area (if enough
+ * space remains there). The address and length of each received message is
+ * returned in the ext[0] and ext[1] fields (respectively) of the corresponding kevent.
+ *
+ * IF_MACH_RCV_VOUCHER_CONTENT is specified, the contents of the message voucher is
+ * extracted (as specified in the xflags field) and stored in ext[2] up to ext[3]
+ * length.  If the input length is zero, and the system call provided a data area,
+ * the space for the voucher content is carved from the provided space and its
+ * address and length is returned in ext[2] and ext[3] respectively.
+ *
+ * If no message receipt options were provided in the fflags field on setup, no
+ * message is received by this call. Instead, on output, the data field simply
+ * contains the name of the actual port detected with a message waiting.
+ */
+
+/*
+ * DEPRECATED!!!!!!!!!
+ * NOTE_TRACK, NOTE_TRACKERR, and NOTE_CHILD are no longer supported as of 10.5
+ */
+/* additional flags for EVFILT_PROC */
+#define NOTE_TRACK      0x00000001              /* follow across forks */
+#define NOTE_TRACKERR   0x00000002              /* could not track child */
+#define NOTE_CHILD      0x00000004              /* am a child process */
+
+
+
+/* Temporay solution for BootX to use inode.h till kqueue moves to vfs layer */
+struct knote;
+SLIST_HEAD(klist, knote);
+
+
+struct timespec;
+
+__BEGIN_DECLS
+int     kqueue(void);
+int     kevent(int kq,
+    const struct kevent *changelist, int nchanges,
+    struct kevent *eventlist, int nevents,
+    const struct timespec *timeout);
+int     kevent64(int kq,
+    const struct kevent64_s *changelist, int nchanges,
+    struct kevent64_s *eventlist, int nevents,
+    unsigned int flags,
+    const struct timespec *timeout);
+
+
+__END_DECLS
+
+
+
+
+#endif /* !_SYS_EVENT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/fcntl.h b/lib/libc/include/any-macos.13-any/sys/fcntl.h
new file mode 100644
index 0000000000000000000000000000000000000000..5f7d0d6524a887babc8ba42678f46e0fec22bf3d
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/fcntl.h
@@ -0,0 +1,604 @@
+/*
+ * Copyright (c) 2000-2022 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1983, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * 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.
+ *
+ *	@(#)fcntl.h	8.3 (Berkeley) 1/21/94
+ */
+
+
+#ifndef _SYS_FCNTL_H_
+#define _SYS_FCNTL_H_
+
+/*
+ * This file includes the definitions for open and fcntl
+ * described by POSIX for ; it also includes
+ * related kernel definitions.
+ */
+#include 
+#include 
+#include 
+
+/* We should not be exporting size_t here.  Temporary for gcc bootstrapping. */
+#include 
+#include 
+#include 
+#include 
+
+/*
+ * File status flags: these are used by open(2), fcntl(2).
+ * They are also used (indirectly) in the kernel file structure f_flags,
+ * which is a superset of the open/fcntl flags.  Open flags and f_flags
+ * are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
+ * Open/fcntl flags begin with O_; kernel-internal flags begin with F.
+ */
+/* open-only flags */
+#define O_RDONLY        0x0000          /* open for reading only */
+#define O_WRONLY        0x0001          /* open for writing only */
+#define O_RDWR          0x0002          /* open for reading and writing */
+#define O_ACCMODE       0x0003          /* mask for above modes */
+
+/*
+ * Kernel encoding of open mode; separate read and write bits that are
+ * independently testable: 1 greater than the above.
+ *
+ * XXX
+ * FREAD and FWRITE are excluded from the #ifdef KERNEL so that TIOCFLUSH,
+ * which was documented to use FREAD/FWRITE, continues to work.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define FREAD           0x00000001
+#define FWRITE          0x00000002
+#endif
+#define O_NONBLOCK      0x00000004      /* no delay */
+#define O_APPEND        0x00000008      /* set append mode */
+
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_SHLOCK        0x00000010      /* open with shared file lock */
+#define O_EXLOCK        0x00000020      /* open with exclusive file lock */
+#define O_ASYNC         0x00000040      /* signal pgrp when data ready */
+#define O_FSYNC         O_SYNC          /* source compatibility: do not use */
+#define O_NOFOLLOW      0x00000100      /* don't follow symlinks */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define O_CREAT         0x00000200      /* create if nonexistant */
+#define O_TRUNC         0x00000400      /* truncate to zero length */
+#define O_EXCL          0x00000800      /* error if already exists */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_EVTONLY       0x00008000      /* descriptor requested for event notifications only */
+#endif
+
+
+#define O_NOCTTY        0x00020000      /* don't assign controlling terminal */
+
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define O_DIRECTORY     0x00100000
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define O_SYMLINK       0x00200000      /* allow open of a symlink */
+#endif
+
+//      O_DSYNC         0x00400000      /* synch I/O data integrity */
+#include 
+
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define O_CLOEXEC       0x01000000      /* implicitly set FD_CLOEXEC */
+#endif
+
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define O_NOFOLLOW_ANY  0x20000000      /* no symlinks allowed in path */
+#endif
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define O_EXEC          0x40000000               /* open file for execute only */
+#define O_SEARCH        (O_EXEC | O_DIRECTORY)   /* open directory for search only */
+#endif
+
+
+
+#if __DARWIN_C_LEVEL >= 200809L
+/*
+ * Descriptor value for the current working directory
+ */
+#define AT_FDCWD        -2
+
+/*
+ * Flags for the at functions
+ */
+#define AT_EACCESS              0x0010  /* Use effective ids in access check */
+#define AT_SYMLINK_NOFOLLOW     0x0020  /* Act on the symlink itself not the target */
+#define AT_SYMLINK_FOLLOW       0x0040  /* Act on target of symlink */
+#define AT_REMOVEDIR            0x0080  /* Path refers to directory */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define AT_REALDEV              0x0200  /* Return real device inodes resides on for fstatat(2) */
+#define AT_FDONLY               0x0400  /* Use only the fd and Ignore the path for fstatat(2) */
+#define AT_SYMLINK_NOFOLLOW_ANY 0x0800  /* Path should not contain any symlinks */
+#endif
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* Data Protection Flags */
+#define O_DP_GETRAWENCRYPTED    0x0001
+#define O_DP_GETRAWUNENCRYPTED  0x0002
+#define O_DP_AUTHENTICATE       0x0004
+
+/* Descriptor value for openat_authenticated_np() to skip authentication with another fd */
+#define AUTH_OPEN_NOAUTHFD      -1
+#endif
+
+
+
+/*
+ * The O_* flags used to have only F* names, which were used in the kernel
+ * and by fcntl.  We retain the F* names for the kernel f_flags field
+ * and for backward compatibility for fcntl.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define FAPPEND         O_APPEND        /* kernel/compat */
+#define FASYNC          O_ASYNC         /* kernel/compat */
+#define FFSYNC          O_FSYNC         /* kernel */
+#define FFDSYNC         O_DSYNC         /* kernel */
+#define FNONBLOCK       O_NONBLOCK      /* kernel */
+#define FNDELAY         O_NONBLOCK      /* compat */
+#define O_NDELAY        O_NONBLOCK      /* compat */
+#endif
+
+/*
+ * Flags used for copyfile(2)
+ */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define CPF_OVERWRITE    0x0001
+#define CPF_IGNORE_MODE  0x0002
+#define CPF_MASK (CPF_OVERWRITE|CPF_IGNORE_MODE)
+#endif
+
+/*
+ * Constants used for fcntl(2)
+ */
+
+/* command values */
+#define F_DUPFD         0               /* duplicate file descriptor */
+#define F_GETFD         1               /* get file descriptor flags */
+#define F_SETFD         2               /* set file descriptor flags */
+#define F_GETFL         3               /* get file status flags */
+#define F_SETFL         4               /* set file status flags */
+#define F_GETOWN        5               /* get SIGIO/SIGURG proc/pgrp */
+#define F_SETOWN        6               /* set SIGIO/SIGURG proc/pgrp */
+#define F_GETLK         7               /* get record locking information */
+#define F_SETLK         8               /* set record locking information */
+#define F_SETLKW        9               /* F_SETLK; wait if blocked */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define F_SETLKWTIMEOUT 10              /* F_SETLK; wait if blocked, return on timeout */
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define F_FLUSH_DATA    40
+#define F_CHKCLEAN      41              /* Used for regression test */
+#define F_PREALLOCATE   42              /* Preallocate storage */
+#define F_SETSIZE       43              /* Truncate a file. Equivalent to calling truncate(2) */
+#define F_RDADVISE      44              /* Issue an advisory read async with no copy to user */
+#define F_RDAHEAD       45              /* turn read ahead off/on for this fd */
+/*
+ * 46,47 used to be F_READBOOTSTRAP and F_WRITEBOOTSTRAP
+ */
+#define F_NOCACHE       48              /* turn data caching off/on for this fd */
+#define F_LOG2PHYS      49              /* file offset to device offset */
+#define F_GETPATH       50              /* return the full path of the fd */
+#define F_FULLFSYNC     51              /* fsync + ask the drive to flush to the media */
+#define F_PATHPKG_CHECK 52              /* find which component (if any) is a package */
+#define F_FREEZE_FS     53              /* "freeze" all fs operations */
+#define F_THAW_FS       54              /* "thaw" all fs operations */
+#define F_GLOBAL_NOCACHE 55             /* turn data caching off/on (globally) for this file */
+
+
+#define F_ADDSIGS       59              /* add detached signatures */
+
+
+#define F_ADDFILESIGS   61              /* add signature from same file (used by dyld for shared libs) */
+
+#define F_NODIRECT      62              /* used in conjunction with F_NOCACHE to indicate that DIRECT, synchonous writes */
+                                        /* should not be used (i.e. its ok to temporaily create cached pages) */
+
+#define F_GETPROTECTIONCLASS    63              /* Get the protection class of a file from the EA, returns int */
+#define F_SETPROTECTIONCLASS    64              /* Set the protection class of a file for the EA, requires int */
+
+#define F_LOG2PHYS_EXT  65              /* file offset to device offset, extended */
+
+#define F_GETLKPID              66      /* See man fcntl(2) F_GETLK
+	                                 * Similar to F_GETLK but in addition l_pid is treated as an input parameter
+	                                 * which is used as a matching value when searching locks on the file
+	                                 * so that only locks owned by the process with pid l_pid are returned.
+	                                 * However, any flock(2) type lock will also be found with the returned value
+	                                 * of l_pid set to -1 (as with F_GETLK).
+	                                 */
+
+/* See F_DUPFD_CLOEXEC below for 67 */
+
+
+#define F_SETBACKINGSTORE       70      /* Mark the file as being the backing store for another filesystem */
+#define F_GETPATH_MTMINFO       71      /* return the full path of the FD, but error in specific mtmd circumstances */
+
+#define F_GETCODEDIR            72      /* Returns the code directory, with associated hashes, to the caller */
+
+#define F_SETNOSIGPIPE          73      /* No SIGPIPE generated on EPIPE */
+#define F_GETNOSIGPIPE          74      /* Status of SIGPIPE for this fd */
+
+#define F_TRANSCODEKEY          75      /* For some cases, we need to rewrap the key for AKS/MKB */
+
+#define F_SINGLE_WRITER         76      /* file being written to a by single writer... if throttling enabled, writes */
+                                        /* may be broken into smaller chunks with throttling in between */
+
+#define F_GETPROTECTIONLEVEL    77      /* Get the protection version number for this filesystem */
+
+#define F_FINDSIGS              78      /* Add detached code signatures (used by dyld for shared libs) */
+
+
+#define F_ADDFILESIGS_FOR_DYLD_SIM 83   /* Add signature from same file, only if it is signed by Apple (used by dyld for simulator) */
+
+
+#define F_BARRIERFSYNC          85      /* fsync + issue barrier to drive */
+
+
+#define F_ADDFILESIGS_RETURN    97      /* Add signature from same file, return end offset in structure on success */
+#define F_CHECK_LV              98      /* Check if Library Validation allows this Mach-O file to be mapped into the calling process */
+
+#define F_PUNCHHOLE     99              /* Deallocate a range of the file */
+
+#define F_TRIM_ACTIVE_FILE      100     /* Trim an active file */
+
+#define F_SPECULATIVE_READ     101      /* Synchronous advisory read fcntl for regular and compressed file */
+
+#define F_GETPATH_NOFIRMLINK       102              /* return the full path without firmlinks of the fd */
+
+#define F_ADDFILESIGS_INFO      103     /* Add signature from same file, return information */
+#define F_ADDFILESUPPL          104     /* Add supplemental signature from same file with fd reference to original */
+#define F_GETSIGSINFO           105     /* Look up code signature information attached to a file or slice */
+
+#define F_SETLEASE              106      /* Acquire or release lease */
+#define F_GETLEASE              107      /* Retrieve lease information */
+
+#define F_SETLEASE_ARG(t, oc)   ((t) | ((oc) << 2))
+
+
+#define F_TRANSFEREXTENTS       110      /* Transfer allocated extents beyond leof to a different file */
+
+// FS-specific fcntl()'s numbers begin at 0x00010000 and go up
+#define FCNTL_FS_SPECIFIC_BASE  0x00010000
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define F_DUPFD_CLOEXEC         67      /* mark the dup with FD_CLOEXEC */
+#endif
+
+/* file descriptor flags (F_GETFD, F_SETFD) */
+#define FD_CLOEXEC      1               /* close-on-exec flag */
+
+/* record locking flags (F_GETLK, F_SETLK, F_SETLKW) */
+#define F_RDLCK         1               /* shared or read lock */
+#define F_UNLCK         2               /* unlock */
+#define F_WRLCK         3               /* exclusive or write lock */
+
+
+/*
+ * [XSI] The values used for l_whence shall be defined as described
+ * in 
+ */
+#include 
+
+/*
+ * [XSI] The symbolic names for file modes for use as values of mode_t
+ * shall be defined as described in 
+ */
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* allocate flags (F_PREALLOCATE) */
+
+#define F_ALLOCATECONTIG  0x00000002    /* allocate contigious space */
+#define F_ALLOCATEALL     0x00000004    /* allocate all requested space or no space at all */
+#define F_ALLOCATEPERSIST 0x00000008    /* do not free space upon close(2) */
+
+/* Position Modes (fst_posmode) for F_PREALLOCATE */
+
+#define F_PEOFPOSMODE 3                 /* Make it past all of the SEEK pos modes so that */
+                                        /* we can keep them in sync should we desire */
+#define F_VOLPOSMODE    4               /* specify volume starting postion */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+/*
+ * Advisory file segment locking data type -
+ * information passed to system by user
+ */
+struct flock {
+	off_t   l_start;        /* starting offset */
+	off_t   l_len;          /* len = 0 means until end of file */
+	pid_t   l_pid;          /* lock owner */
+	short   l_type;         /* lock type: read/write, etc. */
+	short   l_whence;       /* type of l_start */
+};
+
+#include 
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/*
+ * Advisory file segment locking with time out -
+ * Information passed to system by user for F_SETLKWTIMEOUT
+ */
+struct flocktimeout {
+	struct flock    fl;             /* flock passed for file locking */
+	struct timespec timeout;        /* timespec struct for timeout */
+};
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * advisory file read data type -
+ * information passed by user to system
+ */
+
+
+struct radvisory {
+	off_t   ra_offset;
+	int     ra_count;
+};
+
+
+/*
+ * detached code signatures data type -
+ * information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS.
+ * F_ADDFILESIGS is a shortcut for files that contain their own signature and
+ * doesn't require mapping of the file in order to load the signature.
+ */
+#define USER_FSIGNATURES_CDHASH_LEN 20
+typedef struct fsignatures {
+	off_t           fs_file_start;
+	void            *fs_blob_start;
+	size_t          fs_blob_size;
+
+	/* The following fields are only applicable to F_ADDFILESIGS_INFO (64bit only). */
+	/* Prior to F_ADDFILESIGS_INFO, this struct ended after fs_blob_size. */
+	size_t          fs_fsignatures_size;// input: size of this struct (for compatibility)
+	char            fs_cdhash[USER_FSIGNATURES_CDHASH_LEN];     // output: cdhash
+	int             fs_hash_type;// output: hash algorithm type for cdhash
+} fsignatures_t;
+
+typedef struct fsupplement {
+	off_t           fs_file_start;   /* offset of Mach-O image in FAT file  */
+	off_t           fs_blob_start;   /* offset of signature in Mach-O image */
+	size_t          fs_blob_size;    /* signature blob size                 */
+	int             fs_orig_fd;      /* address of original image           */
+} fsupplement_t;
+
+
+
+/*
+ * DYLD needs to check if the object is allowed to be combined
+ * into the main binary. This is done between the code signature
+ * is loaded and dyld is doing all the work to process the LOAD commands.
+ *
+ * While this could be done in F_ADDFILESIGS.* family the hook into
+ * the MAC module doesn't say no when LV isn't enabled and then that
+ * is cached on the vnode, and the MAC module never gets change once
+ * a process that library validation enabled.
+ */
+typedef struct fchecklv {
+	off_t           lv_file_start;
+	size_t          lv_error_message_size;
+	void            *lv_error_message;
+} fchecklv_t;
+
+
+/* At this time F_GETSIGSINFO can only indicate platformness.
+ *  As additional requestable information is defined, new keys will be added and the
+ *  fgetsigsinfo_t structure will be lengthened to add space for the additional information
+ */
+#define GETSIGSINFO_PLATFORM_BINARY 1
+
+/* fgetsigsinfo_t used by F_GETSIGSINFO command */
+typedef struct fgetsigsinfo {
+	off_t fg_file_start; /* IN: Offset in the file to look for a signature, -1 for any signature */
+	int   fg_info_request; /* IN: Key indicating the info requested */
+	int   fg_sig_is_platform; /* OUT: 1 if the signature is a plat form binary, 0 if not */
+} fgetsigsinfo_t;
+
+
+/* lock operations for flock(2) */
+#define LOCK_SH         0x01            /* shared file lock */
+#define LOCK_EX         0x02            /* exclusive file lock */
+#define LOCK_NB         0x04            /* don't block when locking */
+#define LOCK_UN         0x08            /* unlock file */
+
+/* fstore_t type used by F_PREALLOCATE command */
+
+typedef struct fstore {
+	unsigned int fst_flags; /* IN: flags word */
+	int     fst_posmode;    /* IN: indicates use of offset field */
+	off_t   fst_offset;     /* IN: start of the region */
+	off_t   fst_length;     /* IN: size of the region */
+	off_t   fst_bytesalloc; /* OUT: number of bytes allocated */
+} fstore_t;
+
+/* fpunchhole_t used by F_PUNCHHOLE */
+typedef struct fpunchhole {
+	unsigned int fp_flags; /* unused */
+	unsigned int reserved; /* (to maintain 8-byte alignment) */
+	off_t fp_offset; /* IN: start of the region */
+	off_t fp_length; /* IN: size of the region */
+} fpunchhole_t;
+
+/* factive_file_trim_t used by F_TRIM_ACTIVE_FILE */
+typedef struct ftrimactivefile {
+	off_t fta_offset;  /* IN: start of the region */
+	off_t fta_length; /* IN: size of the region */
+} ftrimactivefile_t;
+
+/* fspecread_t used by F_SPECULATIVE_READ */
+typedef struct fspecread {
+	unsigned int fsr_flags;  /* IN: flags word */
+	unsigned int reserved;   /* to maintain 8-byte alignment */
+	off_t fsr_offset;        /* IN: start of the region */
+	off_t fsr_length;        /* IN: size of the region */
+} fspecread_t;
+
+
+/*
+ * For F_LOG2PHYS this information is passed back to user
+ * Currently only devoffset is returned - that is the VOP_BMAP
+ * result - the disk device address corresponding to the
+ * current file offset (likely set with an lseek).
+ *
+ * The flags could hold an indication of whether the # of
+ * contiguous bytes reflects the true extent length on disk,
+ * or is an advisory value that indicates there is at least that
+ * many bytes contiguous.  For some filesystems it might be too
+ * inefficient to provide anything beyond the advisory value.
+ * Flags and contiguous bytes return values are not yet implemented.
+ * For them the fcntl will nedd to switch from using BMAP to CMAP
+ * and a per filesystem type flag will be needed to interpret the
+ * contiguous bytes count result from CMAP.
+ *
+ * F_LOG2PHYS_EXT is a variant of F_LOG2PHYS that uses a passed in
+ * file offset and length instead of the current file offset.
+ * F_LOG2PHYS_EXT operates on the same structure as F_LOG2PHYS, but
+ * treats it as an in/out.
+ */
+#pragma pack(4)
+
+struct log2phys {
+	unsigned int    l2p_flags;       /* unused so far */
+	off_t           l2p_contigbytes; /* F_LOG2PHYS:     unused so far */
+	                                 /* F_LOG2PHYS_EXT: IN:  number of bytes to be queried */
+	                                 /*                 OUT: number of contiguous bytes at this position */
+	off_t           l2p_devoffset;   /* F_LOG2PHYS:     OUT: bytes into device */
+	                                 /* F_LOG2PHYS_EXT: IN:  bytes into file */
+	                                 /*                 OUT: bytes into device */
+};
+
+#pragma pack()
+
+#define O_POPUP    0x80000000   /* force window to popup on open */
+#define O_ALERT    0x20000000   /* small, clean popup window */
+
+
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include 
+
+typedef enum {
+	FILESEC_OWNER = 1,
+	FILESEC_GROUP = 2,
+	FILESEC_UUID = 3,
+	FILESEC_MODE = 4,
+	FILESEC_ACL = 5,
+	FILESEC_GRPUUID = 6,
+
+/* XXX these are private to the implementation */
+	FILESEC_ACL_RAW = 100,
+	FILESEC_ACL_ALLOCSIZE = 101
+} filesec_property_t;
+
+/* XXX backwards compatibility */
+#define FILESEC_GUID FILESEC_UUID
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+__BEGIN_DECLS
+int     open(const char *, int, ...) __DARWIN_ALIAS_C(open);
+#if __DARWIN_C_LEVEL >= 200809L
+int     openat(int, const char *, int, ...) __DARWIN_NOCANCEL(openat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+#endif
+int     creat(const char *, mode_t) __DARWIN_ALIAS_C(creat);
+int     fcntl(int, int, ...) __DARWIN_ALIAS_C(fcntl);
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+int     openx_np(const char *, int, filesec_t);
+/*
+ * data-protected non-portable open(2) :
+ *  int open_dprotected_np(user_addr_t path, int flags, int class, int dpflags, int mode)
+ */
+int open_dprotected_np( const char *, int, int, int, ...);
+int openat_dprotected_np( int, const char *, int, int, int, ...);
+int openat_authenticated_np(int, const char *, int, int);
+int     flock(int, int);
+filesec_t filesec_init(void);
+filesec_t filesec_dup(filesec_t);
+void    filesec_free(filesec_t);
+int     filesec_get_property(filesec_t, filesec_property_t, void *);
+int     filesec_query_property(filesec_t, filesec_property_t, int *);
+int     filesec_set_property(filesec_t, filesec_property_t, const void *);
+int     filesec_unset_property(filesec_t, filesec_property_t) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#define _FILESEC_UNSET_PROPERTY ((void *)0)
+#define _FILESEC_REMOVE_ACL     ((void *)1)
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+__END_DECLS
+
+#endif /* !_SYS_FCNTL_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/filio.h b/lib/libc/include/any-macos.13-any/sys/filio.h
new file mode 100644
index 0000000000000000000000000000000000000000..5744524f5b4bf1e2598f17ac57747f0ecc1fa75d
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/filio.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2000-2022 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, 1990, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * 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.
+ *
+ *	@(#)filio.h	8.1 (Berkeley) 3/28/94
+ */
+
+#ifndef _SYS_FILIO_H_
+#define _SYS_FILIO_H_
+
+#include 
+
+/* Generic file-descriptor ioctl's. */
+#define FIOCLEX          _IO('f', 1)            /* set close on exec on fd */
+#define FIONCLEX         _IO('f', 2)            /* remove close on exec */
+#define FIONREAD        _IOR('f', 127, int)     /* get # bytes to read */
+#define FIONBIO         _IOW('f', 126, int)     /* set/clear non-blocking i/o */
+#define FIOASYNC        _IOW('f', 125, int)     /* set/clear async i/o */
+#define FIOSETOWN       _IOW('f', 124, int)     /* set owner */
+#define FIOGETOWN       _IOR('f', 123, int)     /* get owner */
+#define FIODTYPE        _IOR('f', 122, int)     /* get d_type */
+
+
+#endif /* !_SYS_FILIO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/mount.h b/lib/libc/include/any-macos.13-any/sys/mount.h
new file mode 100644
index 0000000000000000000000000000000000000000..21b9bf3c12343b846e6a086b8d2577cbba2918b5
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/mount.h
@@ -0,0 +1,443 @@
+/*
+ * Copyright (c) 2000-2021 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1989, 1991, 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.
+ *
+ *	@(#)mount.h	8.21 (Berkeley) 5/20/95
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+
+
+#ifndef _SYS_MOUNT_H_
+#define _SYS_MOUNT_H_
+
+#include 
+#include 
+#include            /* needed for vol_capabilities_attr_t */
+#include 
+
+#include 
+#include 
+#include           /* XXX needed for user builds */
+#include 
+
+#include  /* file system id type */
+#include 
+
+/*
+ * file system statistics
+ */
+
+#define MFSNAMELEN      15      /* length of fs type name, not inc. null */
+#define MFSTYPENAMELEN  16      /* length of fs type name including null */
+
+#if __DARWIN_64_BIT_INO_T
+#define MNAMELEN        MAXPATHLEN      /* length of buffer for returned name */
+#else /* ! __DARWIN_64_BIT_INO_T */
+#define MNAMELEN        90              /* length of buffer for returned name */
+#endif /* __DARWIN_64_BIT_INO_T */
+
+#define MNT_EXT_ROOT_DATA_VOL      0x00000001      /* Data volume of root volume group */
+
+#define __DARWIN_STRUCT_STATFS64 { \
+	uint32_t	f_bsize;        /* fundamental file system block size */ \
+	int32_t		f_iosize;       /* optimal transfer block size */ \
+	uint64_t	f_blocks;       /* total data blocks in file system */ \
+	uint64_t	f_bfree;        /* free blocks in fs */ \
+	uint64_t	f_bavail;       /* free blocks avail to non-superuser */ \
+	uint64_t	f_files;        /* total file nodes in file system */ \
+	uint64_t	f_ffree;        /* free file nodes in fs */ \
+	fsid_t		f_fsid;         /* file system id */ \
+	uid_t		f_owner;        /* user that mounted the filesystem */ \
+	uint32_t	f_type;         /* type of filesystem */ \
+	uint32_t	f_flags;        /* copy of mount exported flags */ \
+	uint32_t	f_fssubtype;    /* fs sub-type (flavor) */ \
+	char		f_fstypename[MFSTYPENAMELEN];   /* fs type name */ \
+	char		f_mntonname[MAXPATHLEN];        /* directory on which mounted */ \
+	char		f_mntfromname[MAXPATHLEN];      /* mounted filesystem */ \
+	uint32_t    f_flags_ext;    /* extended flags */ \
+	uint32_t	f_reserved[7];  /* For future use */ \
+}
+
+#if !__DARWIN_ONLY_64_BIT_INO_T
+
+struct statfs64 __DARWIN_STRUCT_STATFS64;
+
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+
+#if __DARWIN_64_BIT_INO_T
+
+struct statfs __DARWIN_STRUCT_STATFS64;
+
+#else /* !__DARWIN_64_BIT_INO_T */
+
+/*
+ * LP64 - WARNING - must be kept in sync with struct user_statfs in mount_internal.h.
+ */
+struct statfs {
+	short   f_otype;                /* TEMPORARY SHADOW COPY OF f_type */
+	short   f_oflags;               /* TEMPORARY SHADOW COPY OF f_flags */
+	long    f_bsize;                /* fundamental file system block size */
+	long    f_iosize;               /* optimal transfer block size */
+	long    f_blocks;               /* total data blocks in file system */
+	long    f_bfree;                /* free blocks in fs */
+	long    f_bavail;               /* free blocks avail to non-superuser */
+	long    f_files;                /* total file nodes in file system */
+	long    f_ffree;                /* free file nodes in fs */
+	fsid_t  f_fsid;                 /* file system id */
+	uid_t   f_owner;                /* user that mounted the filesystem */
+	short   f_reserved1;    /* spare for later */
+	short   f_type;                 /* type of filesystem */
+	long    f_flags;                /* copy of mount exported flags */
+	long    f_reserved2[2]; /* reserved for future use */
+	char    f_fstypename[MFSNAMELEN]; /* fs type name */
+	char    f_mntonname[MNAMELEN];  /* directory on which mounted */
+	char    f_mntfromname[MNAMELEN];/* mounted filesystem */
+	char    f_reserved3;    /* For alignment */
+	long    f_reserved4[4]; /* For future use */
+};
+
+#endif /* __DARWIN_64_BIT_INO_T */
+
+#pragma pack(4)
+
+struct vfsstatfs {
+	uint32_t        f_bsize;        /* fundamental file system block size */
+	size_t          f_iosize;       /* optimal transfer block size */
+	uint64_t        f_blocks;       /* total data blocks in file system */
+	uint64_t        f_bfree;        /* free blocks in fs */
+	uint64_t        f_bavail;       /* free blocks avail to non-superuser */
+	uint64_t        f_bused;        /* free blocks avail to non-superuser */
+	uint64_t        f_files;        /* total file nodes in file system */
+	uint64_t        f_ffree;        /* free file nodes in fs */
+	fsid_t          f_fsid;         /* file system id */
+	uid_t           f_owner;        /* user that mounted the filesystem */
+	uint64_t        f_flags;        /* copy of mount exported flags */
+	char            f_fstypename[MFSTYPENAMELEN];/* fs type name inclus */
+	char            f_mntonname[MAXPATHLEN];/* directory on which mounted */
+	char            f_mntfromname[MAXPATHLEN];/* mounted filesystem */
+	uint32_t        f_fssubtype;     /* fs sub-type (flavor) */
+	void            *f_reserved[2];         /* For future use == 0 */
+};
+
+#pragma pack()
+
+
+/*
+ * User specifiable flags.
+ *
+ * Unmount uses MNT_FORCE flag.
+ */
+#define MNT_RDONLY      0x00000001      /* read only filesystem */
+#define MNT_SYNCHRONOUS 0x00000002      /* file system written synchronously */
+#define MNT_NOEXEC      0x00000004      /* can't exec from filesystem */
+#define MNT_NOSUID      0x00000008      /* don't honor setuid bits on fs */
+#define MNT_NODEV       0x00000010      /* don't interpret special files */
+#define MNT_UNION       0x00000020      /* union with underlying filesystem */
+#define MNT_ASYNC       0x00000040      /* file system written asynchronously */
+#define MNT_CPROTECT    0x00000080      /* file system supports content protection */
+
+/*
+ * NFS export related mount flags.
+ */
+#define MNT_EXPORTED    0x00000100      /* file system is exported */
+
+/*
+ * Denotes storage which can be removed from the system by the user.
+ */
+
+#define MNT_REMOVABLE   0x00000200
+
+/*
+ * MAC labeled / "quarantined" flag
+ */
+#define MNT_QUARANTINE  0x00000400      /* file system is quarantined */
+
+/*
+ * Flags set by internal operations.
+ */
+#define MNT_LOCAL       0x00001000      /* filesystem is stored locally */
+#define MNT_QUOTA       0x00002000      /* quotas are enabled on filesystem */
+#define MNT_ROOTFS      0x00004000      /* identifies the root filesystem */
+#define MNT_DOVOLFS     0x00008000      /* FS supports volfs (deprecated flag in Mac OS X 10.5) */
+
+
+#define MNT_DONTBROWSE  0x00100000      /* file system is not appropriate path to user data */
+#define MNT_IGNORE_OWNERSHIP 0x00200000 /* VFS will ignore ownership information on filesystem objects */
+#define MNT_AUTOMOUNTED 0x00400000      /* filesystem was mounted by automounter */
+#define MNT_JOURNALED   0x00800000      /* filesystem is journaled */
+#define MNT_NOUSERXATTR 0x01000000      /* Don't allow user extended attributes */
+#define MNT_DEFWRITE    0x02000000      /* filesystem should defer writes */
+#define MNT_MULTILABEL  0x04000000      /* MAC support for individual labels */
+#define MNT_NOFOLLOW    0x08000000      /* don't follow symlink when resolving mount point */
+#define MNT_NOATIME             0x10000000      /* disable update of file access time */
+#define MNT_SNAPSHOT    0x40000000 /* The mount is a snapshot */
+#define MNT_STRICTATIME 0x80000000      /* enable strict update of file access time */
+
+/* backwards compatibility only */
+#define MNT_UNKNOWNPERMISSIONS MNT_IGNORE_OWNERSHIP
+
+
+/*
+ * XXX I think that this could now become (~(MNT_CMDFLAGS))
+ * but the 'mount' program may need changing to handle this.
+ */
+#define MNT_VISFLAGMASK (MNT_RDONLY	| MNT_SYNCHRONOUS | MNT_NOEXEC	| \
+	                MNT_NOSUID	| MNT_NODEV	| MNT_UNION	| \
+	                MNT_ASYNC	| MNT_EXPORTED	| MNT_QUARANTINE | \
+	                MNT_LOCAL	| MNT_QUOTA | MNT_REMOVABLE | \
+	                MNT_ROOTFS	| MNT_DOVOLFS	| MNT_DONTBROWSE | \
+	                MNT_IGNORE_OWNERSHIP | MNT_AUTOMOUNTED | MNT_JOURNALED | \
+	                MNT_NOUSERXATTR | MNT_DEFWRITE	| MNT_MULTILABEL | \
+	                MNT_NOFOLLOW | MNT_NOATIME | MNT_STRICTATIME | \
+	                MNT_SNAPSHOT | MNT_CPROTECT)
+/*
+ * External filesystem command modifier flags.
+ * Unmount can use the MNT_FORCE flag.
+ * XXX These are not STATES and really should be somewhere else.
+ * External filesystem control flags.
+ */
+#define MNT_UPDATE      0x00010000      /* not a real mount, just an update */
+#define MNT_NOBLOCK     0x00020000      /* don't block unmount if not responding */
+#define MNT_RELOAD      0x00040000      /* reload filesystem data */
+#define MNT_FORCE       0x00080000      /* force unmount or readonly change */
+#define MNT_CMDFLAGS    (MNT_UPDATE|MNT_NOBLOCK|MNT_RELOAD|MNT_FORCE)
+
+
+
+/*
+ * Sysctl CTL_VFS definitions.
+ *
+ * Second level identifier specifies which filesystem. Second level
+ * identifier VFS_GENERIC returns information about all filesystems.
+ */
+#define VFS_GENERIC             0       /* generic filesystem information */
+#define VFS_NUMMNTOPS           1       /* int: total num of vfs mount/unmount operations */
+/*
+ * Third level identifiers for VFS_GENERIC are given below; third
+ * level identifiers for specific filesystems are given in their
+ * mount specific header files.
+ */
+#define VFS_MAXTYPENUM  1       /* int: highest defined filesystem type */
+#define VFS_CONF        2       /* struct: vfsconf for filesystem given
+	                         *  as next argument */
+
+/*
+ * Flags for various system call interfaces.
+ *
+ * waitfor flags to vfs_sync() and getfsstat()
+ */
+#define MNT_WAIT        1       /* synchronized I/O file integrity completion */
+#define MNT_NOWAIT      2       /* start all I/O, but do not wait for it */
+#define MNT_DWAIT       4       /* synchronized I/O data integrity completion */
+
+
+#if !defined(KERNEL) && !defined(_KERN_SYS_KERNELTYPES_H_) /* also defined in kernel_types.h */
+struct mount;
+typedef struct mount * mount_t;
+struct vnode;
+typedef struct vnode * vnode_t;
+#endif
+
+/* Reserved fields preserve binary compatibility */
+struct vfsconf {
+	uint32_t vfc_reserved1;         /* opaque */
+	char    vfc_name[MFSNAMELEN];   /* filesystem type name */
+	int     vfc_typenum;            /* historic filesystem type number */
+	int     vfc_refcount;           /* number mounted of this type */
+	int     vfc_flags;              /* permanent flags */
+	uint32_t vfc_reserved2;         /* opaque */
+	uint32_t vfc_reserved3;         /* opaque */
+};
+
+struct vfsidctl {
+	int             vc_vers;        /* should be VFSIDCTL_VERS1 (below) */
+	fsid_t          vc_fsid;        /* fsid to operate on. */
+	void            *vc_ptr;        /* pointer to data structure. */
+	size_t          vc_len;         /* sizeof said structure. */
+	u_int32_t       vc_spare[12];   /* spare (must be zero). */
+};
+
+
+/* vfsidctl API version. */
+#define VFS_CTL_VERS1   0x01
+
+
+/*
+ * New style VFS sysctls, do not reuse/conflict with the namespace for
+ * private sysctls.
+ */
+#define VFS_CTL_OSTATFS 0x00010001      /* old legacy statfs */
+#define VFS_CTL_UMOUNT  0x00010002      /* unmount */
+#define VFS_CTL_QUERY   0x00010003      /* anything wrong? (vfsquery) */
+#define VFS_CTL_NEWADDR 0x00010004      /* reconnect to new address */
+#define VFS_CTL_TIMEO   0x00010005      /* set timeout for vfs notification */
+#define VFS_CTL_NOLOCKS 0x00010006      /* disable file locking */
+#define VFS_CTL_SADDR   0x00010007      /* get server address */
+#define VFS_CTL_DISC    0x00010008      /* server disconnected */
+#define VFS_CTL_SERVERINFO  0x00010009  /* information about fs server */
+#define VFS_CTL_NSTATUS 0x0001000A      /* netfs mount status */
+#define VFS_CTL_STATFS64 0x0001000B     /* statfs64 */
+
+/*
+ * Automatically select the correct VFS_CTL_*STATFS* flavor based
+ * on what "struct statfs" layout the client will use.
+ */
+#if __DARWIN_64_BIT_INO_T
+#define VFS_CTL_STATFS  VFS_CTL_STATFS64
+#else
+#define VFS_CTL_STATFS  VFS_CTL_OSTATFS
+#endif
+
+struct vfsquery {
+	u_int32_t       vq_flags;
+	u_int32_t       vq_spare[31];
+};
+
+struct vfs_server {
+	int32_t  vs_minutes;                    /* minutes until server goes down. */
+	u_int8_t vs_server_name[MAXHOSTNAMELEN * 3]; /* UTF8 server name to display (null terminated) */
+};
+
+/*
+ * NetFS mount status - returned by VFS_CTL_NSTATUS
+ */
+struct netfs_status {
+	u_int32_t       ns_status;              // Current status of mount (vfsquery flags)
+	char            ns_mountopts[512];      // Significant mount options
+	uint32_t        ns_waittime;            // Time waiting for reply (sec)
+	uint32_t        ns_threadcount;         // Number of threads blocked on network calls
+	uint64_t        ns_threadids[0];        // Thread IDs of those blocked threads
+};
+
+/* vfsquery flags */
+#define VQ_NOTRESP      0x0001  /* server down */
+#define VQ_NEEDAUTH     0x0002  /* server bad auth */
+#define VQ_LOWDISK      0x0004  /* we're low on space */
+#define VQ_MOUNT        0x0008  /* new filesystem arrived */
+#define VQ_UNMOUNT      0x0010  /* filesystem has left */
+#define VQ_DEAD         0x0020  /* filesystem is dead, needs force unmount */
+#define VQ_ASSIST       0x0040  /* filesystem needs assistance from external program */
+#define VQ_NOTRESPLOCK  0x0080  /* server lockd down */
+#define VQ_UPDATE       0x0100  /* filesystem information has changed */
+#define VQ_VERYLOWDISK  0x0200  /* file system has *very* little disk space left */
+#define VQ_SYNCEVENT    0x0400  /* a sync just happened (not set by kernel starting Mac OS X 10.9) */
+#define VQ_SERVEREVENT  0x0800  /* server issued notification/warning */
+#define VQ_QUOTA        0x1000  /* a user quota has been hit */
+#define VQ_NEARLOWDISK          0x2000  /* Above lowdisk and below desired disk space */
+#define VQ_DESIRED_DISK         0x4000  /* the desired disk space */
+#define VQ_FREE_SPACE_CHANGE    0x8000  /* free disk space has significantly changed */
+#define VQ_FLAG10000    0x10000  /* placeholder */
+
+
+
+/*
+ * Generic file handle
+ */
+#define NFS_MAX_FH_SIZE         NFSV4_MAX_FH_SIZE
+#define NFSV4_MAX_FH_SIZE       128
+#define NFSV3_MAX_FH_SIZE       64
+#define NFSV2_MAX_FH_SIZE       32
+struct fhandle {
+	unsigned int    fh_len;                         /* length of file handle */
+	unsigned char   fh_data[NFS_MAX_FH_SIZE];       /* file handle value */
+};
+typedef struct fhandle  fhandle_t;
+
+OS_ENUM(graftdmg_type, uint32_t,
+    GRAFTDMG_CRYPTEX_BOOT = 1,
+    GRAFTDMG_CRYPTEX_PREBOOT = 2,
+    GRAFTDMG_CRYPTEX_DOWNLEVEL = 3);
+
+
+
+
+__BEGIN_DECLS
+int     fhopen(const struct fhandle *, int);
+int     fstatfs(int, struct statfs *) __DARWIN_INODE64(fstatfs);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int     fstatfs64(int, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int     getfh(const char *, fhandle_t *);
+int     getfsstat(struct statfs *, int, int) __DARWIN_INODE64(getfsstat);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int     getfsstat64(struct statfs64 *, int, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int     getmntinfo(struct statfs **, int) __DARWIN_INODE64(getmntinfo);
+int     getmntinfo_r_np(struct statfs **, int) __DARWIN_INODE64(getmntinfo_r_np)
+__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int     getmntinfo64(struct statfs64 **, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int     mount(const char *, const char *, int, void *);
+int     fmount(const char *, int, int, void *) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int     statfs(const char *, struct statfs *) __DARWIN_INODE64(statfs);
+#if !__DARWIN_ONLY_64_BIT_INO_T
+int     statfs64(const char *, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+int     unmount(const char *, int);
+int     getvfsbyname(const char *, struct vfsconf *);
+__END_DECLS
+
+#endif /* !_SYS_MOUNT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/proc_info.h b/lib/libc/include/any-macos.13-any/sys/proc_info.h
new file mode 100644
index 0000000000000000000000000000000000000000..e59e5256b705b38807557a09f52072a2970b9e87
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/proc_info.h
@@ -0,0 +1,833 @@
+/*
+ * Copyright (c) 2005-2021 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 _SYS_PROC_INFO_H
+#define _SYS_PROC_INFO_H
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+
+__BEGIN_DECLS
+
+
+#define PROC_ALL_PIDS           1
+#define PROC_PGRP_ONLY          2
+#define PROC_TTY_ONLY           3
+#define PROC_UID_ONLY           4
+#define PROC_RUID_ONLY          5
+#define PROC_PPID_ONLY          6
+#define PROC_KDBG_ONLY          7
+
+struct proc_bsdinfo {
+	uint32_t                pbi_flags;              /* 64bit; emulated etc */
+	uint32_t                pbi_status;
+	uint32_t                pbi_xstatus;
+	uint32_t                pbi_pid;
+	uint32_t                pbi_ppid;
+	uid_t                   pbi_uid;
+	gid_t                   pbi_gid;
+	uid_t                   pbi_ruid;
+	gid_t                   pbi_rgid;
+	uid_t                   pbi_svuid;
+	gid_t                   pbi_svgid;
+	uint32_t                rfu_1;                  /* reserved */
+	char                    pbi_comm[MAXCOMLEN];
+	char                    pbi_name[2 * MAXCOMLEN];  /* empty if no name is registered */
+	uint32_t                pbi_nfiles;
+	uint32_t                pbi_pgid;
+	uint32_t                pbi_pjobc;
+	uint32_t                e_tdev;                 /* controlling tty dev */
+	uint32_t                e_tpgid;                /* tty process group id */
+	int32_t                 pbi_nice;
+	uint64_t                pbi_start_tvsec;
+	uint64_t                pbi_start_tvusec;
+};
+
+
+struct proc_bsdshortinfo {
+	uint32_t                pbsi_pid;               /* process id */
+	uint32_t                pbsi_ppid;              /* process parent id */
+	uint32_t                pbsi_pgid;              /* process perp id */
+	uint32_t                pbsi_status;            /* p_stat value, SZOMB, SRUN, etc */
+	char                    pbsi_comm[MAXCOMLEN];   /* upto 16 characters of process name */
+	uint32_t                pbsi_flags;              /* 64bit; emulated etc */
+	uid_t                   pbsi_uid;               /* current uid on process */
+	gid_t                   pbsi_gid;               /* current gid on process */
+	uid_t                   pbsi_ruid;              /* current ruid on process */
+	gid_t                   pbsi_rgid;              /* current tgid on process */
+	uid_t                   pbsi_svuid;             /* current svuid on process */
+	gid_t                   pbsi_svgid;             /* current svgid on process */
+	uint32_t                pbsi_rfu;               /* reserved for future use*/
+};
+
+
+/* pbi_flags values */
+#define PROC_FLAG_SYSTEM        1       /*  System process */
+#define PROC_FLAG_TRACED        2       /* process currently being traced, possibly by gdb */
+#define PROC_FLAG_INEXIT        4       /* process is working its way in exit() */
+#define PROC_FLAG_PPWAIT        8
+#define PROC_FLAG_LP64          0x10    /* 64bit process */
+#define PROC_FLAG_SLEADER       0x20    /* The process is the session leader */
+#define PROC_FLAG_CTTY          0x40    /* process has a control tty */
+#define PROC_FLAG_CONTROLT      0x80    /* Has a controlling terminal */
+#define PROC_FLAG_THCWD         0x100   /* process has a thread with cwd */
+/* process control bits for resource starvation */
+#define PROC_FLAG_PC_THROTTLE   0x200   /* In resource starvation situations, this process is to be throttled */
+#define PROC_FLAG_PC_SUSP       0x400   /* In resource starvation situations, this process is to be suspended */
+#define PROC_FLAG_PC_KILL       0x600   /* In resource starvation situations, this process is to be terminated */
+#define PROC_FLAG_PC_MASK       0x600
+/* process action bits for resource starvation */
+#define PROC_FLAG_PA_THROTTLE   0x800   /* The process is currently throttled due to resource starvation */
+#define PROC_FLAG_PA_SUSP       0x1000  /* The process is currently suspended due to resource starvation */
+#define PROC_FLAG_PSUGID        0x2000   /* process has set privileges since last exec */
+#define PROC_FLAG_EXEC          0x4000   /* process has called exec  */
+
+
+struct proc_taskinfo {
+	uint64_t                pti_virtual_size;       /* virtual memory size (bytes) */
+	uint64_t                pti_resident_size;      /* resident memory size (bytes) */
+	uint64_t                pti_total_user;         /* total time */
+	uint64_t                pti_total_system;
+	uint64_t                pti_threads_user;       /* existing threads only */
+	uint64_t                pti_threads_system;
+	int32_t                 pti_policy;             /* default policy for new threads */
+	int32_t                 pti_faults;             /* number of page faults */
+	int32_t                 pti_pageins;            /* number of actual pageins */
+	int32_t                 pti_cow_faults;         /* number of copy-on-write faults */
+	int32_t                 pti_messages_sent;      /* number of messages sent */
+	int32_t                 pti_messages_received;  /* number of messages received */
+	int32_t                 pti_syscalls_mach;      /* number of mach system calls */
+	int32_t                 pti_syscalls_unix;      /* number of unix system calls */
+	int32_t                 pti_csw;                /* number of context switches */
+	int32_t                 pti_threadnum;          /* number of threads in the task */
+	int32_t                 pti_numrunning;         /* number of running threads */
+	int32_t                 pti_priority;           /* task priority*/
+};
+
+struct proc_taskallinfo {
+	struct proc_bsdinfo     pbsd;
+	struct proc_taskinfo    ptinfo;
+};
+
+#define MAXTHREADNAMESIZE 64
+
+struct proc_threadinfo {
+	uint64_t                pth_user_time;          /* user run time */
+	uint64_t                pth_system_time;        /* system run time */
+	int32_t                 pth_cpu_usage;          /* scaled cpu usage percentage */
+	int32_t                 pth_policy;             /* scheduling policy in effect */
+	int32_t                 pth_run_state;          /* run state (see below) */
+	int32_t                 pth_flags;              /* various flags (see below) */
+	int32_t                 pth_sleep_time;         /* number of seconds that thread */
+	int32_t                 pth_curpri;             /* cur priority*/
+	int32_t                 pth_priority;           /*  priority*/
+	int32_t                 pth_maxpriority;        /* max priority*/
+	char                    pth_name[MAXTHREADNAMESIZE];    /* thread name, if any */
+};
+
+struct proc_regioninfo {
+	uint32_t                pri_protection;
+	uint32_t                pri_max_protection;
+	uint32_t                pri_inheritance;
+	uint32_t                pri_flags;              /* shared, external pager, is submap */
+	uint64_t                pri_offset;
+	uint32_t                pri_behavior;
+	uint32_t                pri_user_wired_count;
+	uint32_t                pri_user_tag;
+	uint32_t                pri_pages_resident;
+	uint32_t                pri_pages_shared_now_private;
+	uint32_t                pri_pages_swapped_out;
+	uint32_t                pri_pages_dirtied;
+	uint32_t                pri_ref_count;
+	uint32_t                pri_shadow_depth;
+	uint32_t                pri_share_mode;
+	uint32_t                pri_private_pages_resident;
+	uint32_t                pri_shared_pages_resident;
+	uint32_t                pri_obj_id;
+	uint32_t                pri_depth;
+	uint64_t                pri_address;
+	uint64_t                pri_size;
+};
+
+#define PROC_REGION_SUBMAP      1
+#define PROC_REGION_SHARED      2
+
+#define SM_COW             1
+#define SM_PRIVATE         2
+#define SM_EMPTY           3
+#define SM_SHARED          4
+#define SM_TRUESHARED      5
+#define SM_PRIVATE_ALIASED 6
+#define SM_SHARED_ALIASED  7
+#define SM_LARGE_PAGE      8
+
+
+/*
+ *	Thread run states (state field).
+ */
+
+#define TH_STATE_RUNNING        1       /* thread is running normally */
+#define TH_STATE_STOPPED        2       /* thread is stopped */
+#define TH_STATE_WAITING        3       /* thread is waiting normally */
+#define TH_STATE_UNINTERRUPTIBLE 4      /* thread is in an uninterruptible
+	                                 *  wait */
+#define TH_STATE_HALTED         5       /* thread is halted at a
+	                                 *  clean point */
+
+/*
+ *	Thread flags (flags field).
+ */
+#define TH_FLAGS_SWAPPED        0x1     /* thread is swapped out */
+#define TH_FLAGS_IDLE           0x2     /* thread is an idle thread */
+
+
+struct proc_workqueueinfo {
+	uint32_t        pwq_nthreads;           /* total number of workqueue threads */
+	uint32_t        pwq_runthreads;         /* total number of running workqueue threads */
+	uint32_t        pwq_blockedthreads;     /* total number of blocked workqueue threads */
+	uint32_t        pwq_state;
+};
+
+/*
+ *	workqueue state (pwq_state field)
+ */
+#define WQ_EXCEEDED_CONSTRAINED_THREAD_LIMIT 0x1
+#define WQ_EXCEEDED_TOTAL_THREAD_LIMIT 0x2
+#define WQ_FLAGS_AVAILABLE 0x4
+
+struct proc_fileinfo {
+	uint32_t                fi_openflags;
+	uint32_t                fi_status;
+	off_t                   fi_offset;
+	int32_t                 fi_type;
+	uint32_t                fi_guardflags;
+};
+
+/* stats flags in proc_fileinfo */
+#define PROC_FP_SHARED  1       /* shared by more than one fd */
+#define PROC_FP_CLEXEC  2       /* close on exec */
+#define PROC_FP_GUARDED 4       /* guarded fd */
+#define PROC_FP_CLFORK  8       /* close on fork */
+
+#define PROC_FI_GUARD_CLOSE             (1u << 0)
+#define PROC_FI_GUARD_DUP               (1u << 1)
+#define PROC_FI_GUARD_SOCKET_IPC        (1u << 2)
+#define PROC_FI_GUARD_FILEPORT          (1u << 3)
+
+struct proc_exitreasonbasicinfo {
+	uint32_t                        beri_namespace;
+	uint64_t                        beri_code;
+	uint64_t                        beri_flags;
+	uint32_t                        beri_reason_buf_size;
+} __attribute__((packed));
+
+struct proc_exitreasoninfo {
+	uint32_t                        eri_namespace;
+	uint64_t                        eri_code;
+	uint64_t                        eri_flags;
+	uint32_t                        eri_reason_buf_size;
+	uint64_t                        eri_kcd_buf;
+} __attribute__((packed));
+
+/*
+ * A copy of stat64 with static sized fields.
+ */
+struct vinfo_stat {
+	uint32_t        vst_dev;        /* [XSI] ID of device containing file */
+	uint16_t        vst_mode;       /* [XSI] Mode of file (see below) */
+	uint16_t        vst_nlink;      /* [XSI] Number of hard links */
+	uint64_t        vst_ino;        /* [XSI] File serial number */
+	uid_t           vst_uid;        /* [XSI] User ID of the file */
+	gid_t           vst_gid;        /* [XSI] Group ID of the file */
+	int64_t         vst_atime;      /* [XSI] Time of last access */
+	int64_t         vst_atimensec;  /* nsec of last access */
+	int64_t         vst_mtime;      /* [XSI] Last data modification time */
+	int64_t         vst_mtimensec;  /* last data modification nsec */
+	int64_t         vst_ctime;      /* [XSI] Time of last status change */
+	int64_t         vst_ctimensec;  /* nsec of last status change */
+	int64_t         vst_birthtime;  /*  File creation time(birth)  */
+	int64_t         vst_birthtimensec;      /* nsec of File creation time */
+	off_t           vst_size;       /* [XSI] file size, in bytes */
+	int64_t         vst_blocks;     /* [XSI] blocks allocated for file */
+	int32_t         vst_blksize;    /* [XSI] optimal blocksize for I/O */
+	uint32_t        vst_flags;      /* user defined flags for file */
+	uint32_t        vst_gen;        /* file generation number */
+	uint32_t        vst_rdev;       /* [XSI] Device ID */
+	int64_t         vst_qspare[2];  /* RESERVED: DO NOT USE! */
+};
+
+struct vnode_info {
+	struct vinfo_stat       vi_stat;
+	int                     vi_type;
+	int                     vi_pad;
+	fsid_t                  vi_fsid;
+};
+
+struct vnode_info_path {
+	struct vnode_info       vip_vi;
+	char                    vip_path[MAXPATHLEN];   /* tail end of it  */
+};
+
+struct vnode_fdinfo {
+	struct proc_fileinfo    pfi;
+	struct vnode_info       pvi;
+};
+
+struct vnode_fdinfowithpath {
+	struct proc_fileinfo    pfi;
+	struct vnode_info_path  pvip;
+};
+
+struct proc_regionwithpathinfo {
+	struct proc_regioninfo  prp_prinfo;
+	struct vnode_info_path  prp_vip;
+};
+
+struct proc_regionpath {
+	uint64_t prpo_addr;
+	uint64_t prpo_regionlength;
+	char prpo_path[MAXPATHLEN];
+};
+
+struct proc_vnodepathinfo {
+	struct vnode_info_path  pvi_cdir;
+	struct vnode_info_path  pvi_rdir;
+};
+
+struct proc_threadwithpathinfo {
+	struct proc_threadinfo  pt;
+	struct vnode_info_path  pvip;
+};
+
+/*
+ *  Socket
+ */
+
+
+/*
+ * IPv4 and IPv6 Sockets
+ */
+
+#define INI_IPV4        0x1
+#define INI_IPV6        0x2
+
+struct in4in6_addr {
+	u_int32_t               i46a_pad32[3];
+	struct in_addr          i46a_addr4;
+};
+
+struct in_sockinfo {
+	int                                     insi_fport;             /* foreign port */
+	int                                     insi_lport;             /* local port */
+	uint64_t                                insi_gencnt;            /* generation count of this instance */
+	uint32_t                                insi_flags;             /* generic IP/datagram flags */
+	uint32_t                                insi_flow;
+
+	uint8_t                                 insi_vflag;             /* ini_IPV4 or ini_IPV6 */
+	uint8_t                                 insi_ip_ttl;            /* time to live proto */
+	uint32_t                                rfu_1;                  /* reserved */
+	/* protocol dependent part */
+	union {
+		struct in4in6_addr      ina_46;
+		struct in6_addr         ina_6;
+	}                                       insi_faddr;             /* foreign host table entry */
+	union {
+		struct in4in6_addr      ina_46;
+		struct in6_addr         ina_6;
+	}                                       insi_laddr;             /* local host table entry */
+	struct {
+		u_char                  in4_tos;                        /* type of service */
+	}                                       insi_v4;
+	struct {
+		uint8_t                 in6_hlim;
+		int                     in6_cksum;
+		u_short                 in6_ifindex;
+		short                   in6_hops;
+	}                                       insi_v6;
+};
+
+/*
+ * TCP Sockets
+ */
+
+#define TSI_T_REXMT             0       /* retransmit */
+#define TSI_T_PERSIST           1       /* retransmit persistence */
+#define TSI_T_KEEP              2       /* keep alive */
+#define TSI_T_2MSL              3       /* 2*msl quiet time timer */
+#define TSI_T_NTIMERS           4
+
+#define TSI_S_CLOSED            0       /* closed */
+#define TSI_S_LISTEN            1       /* listening for connection */
+#define TSI_S_SYN_SENT          2       /* active, have sent syn */
+#define TSI_S_SYN_RECEIVED      3       /* have send and received syn */
+#define TSI_S_ESTABLISHED       4       /* established */
+#define TSI_S__CLOSE_WAIT       5       /* rcvd fin, waiting for close */
+#define TSI_S_FIN_WAIT_1        6       /* have closed, sent fin */
+#define TSI_S_CLOSING           7       /* closed xchd FIN; await FIN ACK */
+#define TSI_S_LAST_ACK          8       /* had fin and close; await FIN ACK */
+#define TSI_S_FIN_WAIT_2        9       /* have closed, fin is acked */
+#define TSI_S_TIME_WAIT         10      /* in 2*msl quiet wait after close */
+#define TSI_S_RESERVED          11      /* pseudo state: reserved */
+
+struct tcp_sockinfo {
+	struct in_sockinfo              tcpsi_ini;
+	int                             tcpsi_state;
+	int                             tcpsi_timer[TSI_T_NTIMERS];
+	int                             tcpsi_mss;
+	uint32_t                        tcpsi_flags;
+	uint32_t                        rfu_1;          /* reserved */
+	uint64_t                        tcpsi_tp;       /* opaque handle of TCP protocol control block */
+};
+
+/*
+ * Unix Domain Sockets
+ */
+
+
+struct un_sockinfo {
+	uint64_t                                unsi_conn_so;   /* opaque handle of connected socket */
+	uint64_t                                unsi_conn_pcb;  /* opaque handle of connected protocol control block */
+	union {
+		struct sockaddr_un      ua_sun;
+		char                    ua_dummy[SOCK_MAXADDRLEN];
+	}                                       unsi_addr;      /* bound address */
+	union {
+		struct sockaddr_un      ua_sun;
+		char                    ua_dummy[SOCK_MAXADDRLEN];
+	}                                       unsi_caddr;     /* address of socket connected to */
+};
+
+/*
+ * PF_NDRV Sockets
+ */
+
+struct ndrv_info {
+	uint32_t        ndrvsi_if_family;
+	uint32_t        ndrvsi_if_unit;
+	char            ndrvsi_if_name[IF_NAMESIZE];
+};
+
+/*
+ * Kernel Event Sockets
+ */
+
+struct kern_event_info {
+	uint32_t        kesi_vendor_code_filter;
+	uint32_t        kesi_class_filter;
+	uint32_t        kesi_subclass_filter;
+};
+
+/*
+ * Kernel Control Sockets
+ */
+
+struct kern_ctl_info {
+	uint32_t        kcsi_id;
+	uint32_t        kcsi_reg_unit;
+	uint32_t        kcsi_flags;                     /* support flags */
+	uint32_t        kcsi_recvbufsize;               /* request more than the default buffer size */
+	uint32_t        kcsi_sendbufsize;               /* request more than the default buffer size */
+	uint32_t        kcsi_unit;
+	char            kcsi_name[MAX_KCTL_NAME];       /* unique nke identifier, provided by DTS */
+};
+
+/*
+ * VSock Sockets
+ */
+
+struct vsock_sockinfo {
+	uint32_t        local_cid;
+	uint32_t        local_port;
+	uint32_t        remote_cid;
+	uint32_t        remote_port;
+};
+
+/* soi_state */
+
+#define SOI_S_NOFDREF           0x0001  /* no file table ref any more */
+#define SOI_S_ISCONNECTED       0x0002  /* socket connected to a peer */
+#define SOI_S_ISCONNECTING      0x0004  /* in process of connecting to peer */
+#define SOI_S_ISDISCONNECTING   0x0008  /* in process of disconnecting */
+#define SOI_S_CANTSENDMORE      0x0010  /* can't send more data to peer */
+#define SOI_S_CANTRCVMORE       0x0020  /* can't receive more data from peer */
+#define SOI_S_RCVATMARK         0x0040  /* at mark on input */
+#define SOI_S_PRIV              0x0080  /* privileged for broadcast, raw... */
+#define SOI_S_NBIO              0x0100  /* non-blocking ops */
+#define SOI_S_ASYNC             0x0200  /* async i/o notify */
+#define SOI_S_INCOMP            0x0800  /* Unaccepted, incomplete connection */
+#define SOI_S_COMP              0x1000  /* unaccepted, complete connection */
+#define SOI_S_ISDISCONNECTED    0x2000  /* socket disconnected from peer */
+#define SOI_S_DRAINING          0x4000  /* close waiting for blocked system calls to drain */
+
+struct sockbuf_info {
+	uint32_t                sbi_cc;
+	uint32_t                sbi_hiwat;                      /* SO_RCVBUF, SO_SNDBUF */
+	uint32_t                sbi_mbcnt;
+	uint32_t                sbi_mbmax;
+	uint32_t                sbi_lowat;
+	short                   sbi_flags;
+	short                   sbi_timeo;
+};
+
+enum {
+	SOCKINFO_GENERIC        = 0,
+	SOCKINFO_IN             = 1,
+	SOCKINFO_TCP            = 2,
+	SOCKINFO_UN             = 3,
+	SOCKINFO_NDRV           = 4,
+	SOCKINFO_KERN_EVENT     = 5,
+	SOCKINFO_KERN_CTL       = 6,
+	SOCKINFO_VSOCK          = 7,
+};
+
+struct socket_info {
+	struct vinfo_stat                       soi_stat;
+	uint64_t                                soi_so;         /* opaque handle of socket */
+	uint64_t                                soi_pcb;        /* opaque handle of protocol control block */
+	int                                     soi_type;
+	int                                     soi_protocol;
+	int                                     soi_family;
+	short                                   soi_options;
+	short                                   soi_linger;
+	short                                   soi_state;
+	short                                   soi_qlen;
+	short                                   soi_incqlen;
+	short                                   soi_qlimit;
+	short                                   soi_timeo;
+	u_short                                 soi_error;
+	uint32_t                                soi_oobmark;
+	struct sockbuf_info                     soi_rcv;
+	struct sockbuf_info                     soi_snd;
+	int                                     soi_kind;
+	uint32_t                                rfu_1;          /* reserved */
+	union {
+		struct in_sockinfo      pri_in;                 /* SOCKINFO_IN */
+		struct tcp_sockinfo     pri_tcp;                /* SOCKINFO_TCP */
+		struct un_sockinfo      pri_un;                 /* SOCKINFO_UN */
+		struct ndrv_info        pri_ndrv;               /* SOCKINFO_NDRV */
+		struct kern_event_info  pri_kern_event;         /* SOCKINFO_KERN_EVENT */
+		struct kern_ctl_info    pri_kern_ctl;           /* SOCKINFO_KERN_CTL */
+		struct vsock_sockinfo   pri_vsock;              /* SOCKINFO_VSOCK */
+	}                                       soi_proto;
+};
+
+struct socket_fdinfo {
+	struct proc_fileinfo    pfi;
+	struct socket_info      psi;
+};
+
+
+
+struct psem_info {
+	struct vinfo_stat       psem_stat;
+	char                    psem_name[MAXPATHLEN];
+};
+
+struct psem_fdinfo {
+	struct proc_fileinfo    pfi;
+	struct psem_info        pseminfo;
+};
+
+
+
+struct pshm_info  {
+	struct vinfo_stat       pshm_stat;
+	uint64_t                pshm_mappaddr;
+	char                    pshm_name[MAXPATHLEN];
+};
+
+struct pshm_fdinfo {
+	struct proc_fileinfo    pfi;
+	struct pshm_info        pshminfo;
+};
+
+
+struct pipe_info {
+	struct vinfo_stat       pipe_stat;
+	uint64_t                pipe_handle;
+	uint64_t                pipe_peerhandle;
+	int                     pipe_status;
+	int                     rfu_1;  /* reserved */
+};
+
+struct pipe_fdinfo {
+	struct proc_fileinfo    pfi;
+	struct pipe_info        pipeinfo;
+};
+
+
+struct kqueue_info {
+	struct vinfo_stat       kq_stat;
+	uint32_t                kq_state;
+	uint32_t                rfu_1;  /* reserved */
+};
+
+struct kqueue_dyninfo {
+	struct kqueue_info kqdi_info;
+	uint64_t kqdi_servicer;
+	uint64_t kqdi_owner;
+	uint32_t kqdi_sync_waiters;
+	uint8_t  kqdi_sync_waiter_qos;
+	uint8_t  kqdi_async_qos;
+	uint16_t kqdi_request_state;
+	uint8_t  kqdi_events_qos;
+	uint8_t  kqdi_pri;
+	uint8_t  kqdi_pol;
+	uint8_t  kqdi_cpupercent;
+	uint8_t  _kqdi_reserved0[4];
+	uint64_t _kqdi_reserved1[4];
+};
+
+/* keep in sync with KQ_* in sys/eventvar.h */
+#define PROC_KQUEUE_SELECT      0x0001
+#define PROC_KQUEUE_SLEEP       0x0002
+#define PROC_KQUEUE_32          0x0008
+#define PROC_KQUEUE_64          0x0010
+#define PROC_KQUEUE_QOS         0x0020
+
+struct kqueue_fdinfo {
+	struct proc_fileinfo    pfi;
+	struct kqueue_info      kqueueinfo;
+};
+
+struct appletalk_info {
+	struct vinfo_stat       atalk_stat;
+};
+
+struct appletalk_fdinfo {
+	struct proc_fileinfo    pfi;
+	struct appletalk_info   appletalkinfo;
+};
+
+typedef uint64_t proc_info_udata_t;
+
+/* defns of process file desc type */
+#define PROX_FDTYPE_ATALK       0
+#define PROX_FDTYPE_VNODE       1
+#define PROX_FDTYPE_SOCKET      2
+#define PROX_FDTYPE_PSHM        3
+#define PROX_FDTYPE_PSEM        4
+#define PROX_FDTYPE_KQUEUE      5
+#define PROX_FDTYPE_PIPE        6
+#define PROX_FDTYPE_FSEVENTS    7
+#define PROX_FDTYPE_NETPOLICY   9
+#define PROX_FDTYPE_CHANNEL     10
+#define PROX_FDTYPE_NEXUS       11
+
+struct proc_fdinfo {
+	int32_t                 proc_fd;
+	uint32_t                proc_fdtype;
+};
+
+struct proc_fileportinfo {
+	uint32_t                proc_fileport;
+	uint32_t                proc_fdtype;
+};
+
+/*
+ * Channel
+ */
+
+/* type */
+#define PROC_CHANNEL_TYPE_USER_PIPE             0
+#define PROC_CHANNEL_TYPE_KERNEL_PIPE           1
+#define PROC_CHANNEL_TYPE_NET_IF                2
+#define PROC_CHANNEL_TYPE_FLOW_SWITCH           3
+
+/* flags */
+#define PROC_CHANNEL_FLAGS_MONITOR_TX           0x1
+#define PROC_CHANNEL_FLAGS_MONITOR_RX           0x2
+#define PROC_CHANNEL_FLAGS_MONITOR_NO_COPY      0x4
+#define PROC_CHANNEL_FLAGS_EXCLUSIVE            0x10
+#define PROC_CHANNEL_FLAGS_USER_PACKET_POOL     0x20
+#define PROC_CHANNEL_FLAGS_DEFUNCT_OK           0x40
+#define PROC_CHANNEL_FLAGS_LOW_LATENCY          0x80
+#define PROC_CHANNEL_FLAGS_MONITOR                                      \
+	(PROC_CHANNEL_FLAGS_MONITOR_TX | PROC_CHANNEL_FLAGS_MONITOR_RX)
+
+struct proc_channel_info {
+	uuid_t                  chi_instance;
+	uint32_t                chi_port;
+	uint32_t                chi_type;
+	uint32_t                chi_flags;
+	uint32_t                rfu_1;/* reserved */
+};
+
+struct channel_fdinfo {
+	struct proc_fileinfo    pfi;
+	struct proc_channel_info channelinfo;
+};
+
+/* Flavors for proc_pidinfo() */
+#define PROC_PIDLISTFDS                 1
+#define PROC_PIDLISTFD_SIZE             (sizeof(struct proc_fdinfo))
+
+#define PROC_PIDTASKALLINFO             2
+#define PROC_PIDTASKALLINFO_SIZE        (sizeof(struct proc_taskallinfo))
+
+#define PROC_PIDTBSDINFO                3
+#define PROC_PIDTBSDINFO_SIZE           (sizeof(struct proc_bsdinfo))
+
+#define PROC_PIDTASKINFO                4
+#define PROC_PIDTASKINFO_SIZE           (sizeof(struct proc_taskinfo))
+
+#define PROC_PIDTHREADINFO              5
+#define PROC_PIDTHREADINFO_SIZE         (sizeof(struct proc_threadinfo))
+
+#define PROC_PIDLISTTHREADS             6
+#define PROC_PIDLISTTHREADS_SIZE        (2* sizeof(uint32_t))
+
+#define PROC_PIDREGIONINFO              7
+#define PROC_PIDREGIONINFO_SIZE         (sizeof(struct proc_regioninfo))
+
+#define PROC_PIDREGIONPATHINFO          8
+#define PROC_PIDREGIONPATHINFO_SIZE     (sizeof(struct proc_regionwithpathinfo))
+
+#define PROC_PIDVNODEPATHINFO           9
+#define PROC_PIDVNODEPATHINFO_SIZE      (sizeof(struct proc_vnodepathinfo))
+
+#define PROC_PIDTHREADPATHINFO          10
+#define PROC_PIDTHREADPATHINFO_SIZE     (sizeof(struct proc_threadwithpathinfo))
+
+#define PROC_PIDPATHINFO                11
+#define PROC_PIDPATHINFO_SIZE           (MAXPATHLEN)
+#define PROC_PIDPATHINFO_MAXSIZE        (4*MAXPATHLEN)
+
+#define PROC_PIDWORKQUEUEINFO           12
+#define PROC_PIDWORKQUEUEINFO_SIZE      (sizeof(struct proc_workqueueinfo))
+
+#define PROC_PIDT_SHORTBSDINFO          13
+#define PROC_PIDT_SHORTBSDINFO_SIZE     (sizeof(struct proc_bsdshortinfo))
+
+#define PROC_PIDLISTFILEPORTS           14
+#define PROC_PIDLISTFILEPORTS_SIZE      (sizeof(struct proc_fileportinfo))
+
+#define PROC_PIDTHREADID64INFO          15
+#define PROC_PIDTHREADID64INFO_SIZE     (sizeof(struct proc_threadinfo))
+
+#define PROC_PID_RUSAGE                 16
+#define PROC_PID_RUSAGE_SIZE            0
+
+/* Flavors for proc_pidfdinfo */
+
+#define PROC_PIDFDVNODEINFO             1
+#define PROC_PIDFDVNODEINFO_SIZE        (sizeof(struct vnode_fdinfo))
+
+#define PROC_PIDFDVNODEPATHINFO         2
+#define PROC_PIDFDVNODEPATHINFO_SIZE    (sizeof(struct vnode_fdinfowithpath))
+
+#define PROC_PIDFDSOCKETINFO            3
+#define PROC_PIDFDSOCKETINFO_SIZE       (sizeof(struct socket_fdinfo))
+
+#define PROC_PIDFDPSEMINFO              4
+#define PROC_PIDFDPSEMINFO_SIZE         (sizeof(struct psem_fdinfo))
+
+#define PROC_PIDFDPSHMINFO              5
+#define PROC_PIDFDPSHMINFO_SIZE         (sizeof(struct pshm_fdinfo))
+
+#define PROC_PIDFDPIPEINFO              6
+#define PROC_PIDFDPIPEINFO_SIZE         (sizeof(struct pipe_fdinfo))
+
+#define PROC_PIDFDKQUEUEINFO            7
+#define PROC_PIDFDKQUEUEINFO_SIZE       (sizeof(struct kqueue_fdinfo))
+
+#define PROC_PIDFDATALKINFO             8
+#define PROC_PIDFDATALKINFO_SIZE        (sizeof(struct appletalk_fdinfo))
+
+
+#define PROC_PIDFDCHANNELINFO           10
+#define PROC_PIDFDCHANNELINFO_SIZE      (sizeof(struct channel_fdinfo))
+
+/* Flavors for proc_pidfileportinfo */
+
+#define PROC_PIDFILEPORTVNODEPATHINFO   2       /* out: vnode_fdinfowithpath */
+#define PROC_PIDFILEPORTVNODEPATHINFO_SIZE      \
+	                                PROC_PIDFDVNODEPATHINFO_SIZE
+
+#define PROC_PIDFILEPORTSOCKETINFO      3       /* out: socket_fdinfo */
+#define PROC_PIDFILEPORTSOCKETINFO_SIZE PROC_PIDFDSOCKETINFO_SIZE
+
+#define PROC_PIDFILEPORTPSHMINFO        5       /* out: pshm_fdinfo */
+#define PROC_PIDFILEPORTPSHMINFO_SIZE   PROC_PIDFDPSHMINFO_SIZE
+
+#define PROC_PIDFILEPORTPIPEINFO        6       /* out: pipe_fdinfo */
+#define PROC_PIDFILEPORTPIPEINFO_SIZE   PROC_PIDFDPIPEINFO_SIZE
+
+/* used for proc_setcontrol */
+#define PROC_SELFSET_PCONTROL           1
+
+#define PROC_SELFSET_THREADNAME         2
+#define PROC_SELFSET_THREADNAME_SIZE    (MAXTHREADNAMESIZE -1)
+
+#define PROC_SELFSET_VMRSRCOWNER        3
+
+#define PROC_SELFSET_DELAYIDLESLEEP     4
+
+/* used for proc_dirtycontrol */
+#define PROC_DIRTYCONTROL_TRACK         1
+#define PROC_DIRTYCONTROL_SET           2
+#define PROC_DIRTYCONTROL_GET           3
+#define PROC_DIRTYCONTROL_CLEAR         4
+
+/* proc_track_dirty() flags */
+#define PROC_DIRTY_TRACK                0x1
+#define PROC_DIRTY_ALLOW_IDLE_EXIT      0x2
+#define PROC_DIRTY_DEFER                0x4
+#define PROC_DIRTY_LAUNCH_IN_PROGRESS   0x8
+#define PROC_DIRTY_DEFER_ALWAYS         0x10
+
+/* proc_get_dirty() flags */
+#define PROC_DIRTY_TRACKED              0x1
+#define PROC_DIRTY_ALLOWS_IDLE_EXIT     0x2
+#define PROC_DIRTY_IS_DIRTY             0x4
+#define PROC_DIRTY_LAUNCH_IS_IN_PROGRESS   0x8
+
+/* Flavors for proc_udata_info */
+#define PROC_UDATA_INFO_GET             1
+#define PROC_UDATA_INFO_SET             2
+
+
+
+
+__END_DECLS
+
+#endif /*_SYS_PROC_INFO_H */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/resource.h b/lib/libc/include/any-macos.13-any/sys/resource.h
new file mode 100644
index 0000000000000000000000000000000000000000..4e1c86636c67f515c03521e34b7a8a7dae68974f
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/resource.h
@@ -0,0 +1,576 @@
+/*
+ * Copyright (c) 2000-2018 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@
+ */
+/* 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.
+ *
+ *	@(#)resource.h	8.2 (Berkeley) 1/4/94
+ */
+
+#ifndef _SYS_RESOURCE_H_
+#define _SYS_RESOURCE_H_
+
+#include 
+#include 
+#include 
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#include 
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#include 
+
+/* [XSI] The timeval structure shall be defined as described in
+ * 
+ */
+#include 
+
+/* The id_t type shall be defined as described in  */
+#include 
+
+
+/*
+ * Resource limit type (low 63 bits, excluding the sign bit)
+ */
+typedef __uint64_t      rlim_t;
+
+
+/*****
+ * PRIORITY
+ */
+
+/*
+ * Possible values of the first parameter to getpriority()/setpriority(),
+ * used to indicate the type of the second parameter.
+ */
+#define PRIO_PROCESS    0               /* Second argument is a PID */
+#define PRIO_PGRP       1               /* Second argument is a GID */
+#define PRIO_USER       2               /* Second argument is a UID */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define PRIO_DARWIN_THREAD      3               /* Second argument is always 0 (current thread) */
+#define PRIO_DARWIN_PROCESS     4               /* Second argument is a PID */
+
+
+/*
+ * Range limitations for the value of the third parameter to setpriority().
+ */
+#define PRIO_MIN        -20
+#define PRIO_MAX        20
+
+/*
+ * use PRIO_DARWIN_BG to set the current thread into "background" state
+ * which lowers CPU, disk IO, and networking priorites until thread terminates
+ * or "background" state is revoked
+ */
+#define PRIO_DARWIN_BG 0x1000
+
+/*
+ * use PRIO_DARWIN_NONUI to restrict a process's ability to make calls to
+ * the GPU. (deprecated)
+ */
+#define PRIO_DARWIN_NONUI 0x1001
+
+#endif  /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+
+
+/*****
+ * RESOURCE USAGE
+ */
+
+/*
+ * Possible values of the first parameter to getrusage(), used to indicate
+ * the scope of the information to be returned.
+ */
+#define RUSAGE_SELF     0               /* Current process information */
+#define RUSAGE_CHILDREN -1              /* Current process' children */
+
+/*
+ * A structure representing an accounting of resource utilization.  The
+ * address of an instance of this structure is the second parameter to
+ * getrusage().
+ *
+ * Note: All values other than ru_utime and ru_stime are implementaiton
+ *       defined and subject to change in a future release.  Their use
+ *       is discouraged for standards compliant programs.
+ */
+struct  rusage {
+	struct timeval ru_utime;        /* user time used (PL) */
+	struct timeval ru_stime;        /* system time used (PL) */
+#if __DARWIN_C_LEVEL < __DARWIN_C_FULL
+	long    ru_opaque[14];          /* implementation defined */
+#else
+	/*
+	 * Informational aliases for source compatibility with programs
+	 * that need more information than that provided by standards,
+	 * and which do not mind being OS-dependent.
+	 */
+	long    ru_maxrss;              /* max resident set size (PL) */
+#define ru_first        ru_ixrss        /* internal: ruadd() range start */
+	long    ru_ixrss;               /* integral shared memory size (NU) */
+	long    ru_idrss;               /* integral unshared data (NU)  */
+	long    ru_isrss;               /* integral unshared stack (NU) */
+	long    ru_minflt;              /* page reclaims (NU) */
+	long    ru_majflt;              /* page faults (NU) */
+	long    ru_nswap;               /* swaps (NU) */
+	long    ru_inblock;             /* block input operations (atomic) */
+	long    ru_oublock;             /* block output operations (atomic) */
+	long    ru_msgsnd;              /* messages sent (atomic) */
+	long    ru_msgrcv;              /* messages received (atomic) */
+	long    ru_nsignals;            /* signals received (atomic) */
+	long    ru_nvcsw;               /* voluntary context switches (atomic) */
+	long    ru_nivcsw;              /* involuntary " */
+#define ru_last         ru_nivcsw       /* internal: ruadd() range end */
+#endif  /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+};
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/*
+ * Flavors for proc_pid_rusage().
+ */
+#define RUSAGE_INFO_V0  0
+#define RUSAGE_INFO_V1  1
+#define RUSAGE_INFO_V2  2
+#define RUSAGE_INFO_V3  3
+#define RUSAGE_INFO_V4  4
+#define RUSAGE_INFO_V5  5
+#define RUSAGE_INFO_V6  6
+#define RUSAGE_INFO_CURRENT RUSAGE_INFO_V6
+
+/*
+ * Flags for RUSAGE_INFO_V5
+ */
+#define RU_PROC_RUNS_RESLIDE    0x00000001      /* proc has reslid shared cache */
+
+typedef void *rusage_info_t;
+
+struct rusage_info_v0 {
+	uint8_t  ri_uuid[16];
+	uint64_t ri_user_time;
+	uint64_t ri_system_time;
+	uint64_t ri_pkg_idle_wkups;
+	uint64_t ri_interrupt_wkups;
+	uint64_t ri_pageins;
+	uint64_t ri_wired_size;
+	uint64_t ri_resident_size;
+	uint64_t ri_phys_footprint;
+	uint64_t ri_proc_start_abstime;
+	uint64_t ri_proc_exit_abstime;
+};
+
+struct rusage_info_v1 {
+	uint8_t  ri_uuid[16];
+	uint64_t ri_user_time;
+	uint64_t ri_system_time;
+	uint64_t ri_pkg_idle_wkups;
+	uint64_t ri_interrupt_wkups;
+	uint64_t ri_pageins;
+	uint64_t ri_wired_size;
+	uint64_t ri_resident_size;
+	uint64_t ri_phys_footprint;
+	uint64_t ri_proc_start_abstime;
+	uint64_t ri_proc_exit_abstime;
+	uint64_t ri_child_user_time;
+	uint64_t ri_child_system_time;
+	uint64_t ri_child_pkg_idle_wkups;
+	uint64_t ri_child_interrupt_wkups;
+	uint64_t ri_child_pageins;
+	uint64_t ri_child_elapsed_abstime;
+};
+
+struct rusage_info_v2 {
+	uint8_t  ri_uuid[16];
+	uint64_t ri_user_time;
+	uint64_t ri_system_time;
+	uint64_t ri_pkg_idle_wkups;
+	uint64_t ri_interrupt_wkups;
+	uint64_t ri_pageins;
+	uint64_t ri_wired_size;
+	uint64_t ri_resident_size;
+	uint64_t ri_phys_footprint;
+	uint64_t ri_proc_start_abstime;
+	uint64_t ri_proc_exit_abstime;
+	uint64_t ri_child_user_time;
+	uint64_t ri_child_system_time;
+	uint64_t ri_child_pkg_idle_wkups;
+	uint64_t ri_child_interrupt_wkups;
+	uint64_t ri_child_pageins;
+	uint64_t ri_child_elapsed_abstime;
+	uint64_t ri_diskio_bytesread;
+	uint64_t ri_diskio_byteswritten;
+};
+
+struct rusage_info_v3 {
+	uint8_t  ri_uuid[16];
+	uint64_t ri_user_time;
+	uint64_t ri_system_time;
+	uint64_t ri_pkg_idle_wkups;
+	uint64_t ri_interrupt_wkups;
+	uint64_t ri_pageins;
+	uint64_t ri_wired_size;
+	uint64_t ri_resident_size;
+	uint64_t ri_phys_footprint;
+	uint64_t ri_proc_start_abstime;
+	uint64_t ri_proc_exit_abstime;
+	uint64_t ri_child_user_time;
+	uint64_t ri_child_system_time;
+	uint64_t ri_child_pkg_idle_wkups;
+	uint64_t ri_child_interrupt_wkups;
+	uint64_t ri_child_pageins;
+	uint64_t ri_child_elapsed_abstime;
+	uint64_t ri_diskio_bytesread;
+	uint64_t ri_diskio_byteswritten;
+	uint64_t ri_cpu_time_qos_default;
+	uint64_t ri_cpu_time_qos_maintenance;
+	uint64_t ri_cpu_time_qos_background;
+	uint64_t ri_cpu_time_qos_utility;
+	uint64_t ri_cpu_time_qos_legacy;
+	uint64_t ri_cpu_time_qos_user_initiated;
+	uint64_t ri_cpu_time_qos_user_interactive;
+	uint64_t ri_billed_system_time;
+	uint64_t ri_serviced_system_time;
+};
+
+struct rusage_info_v4 {
+	uint8_t  ri_uuid[16];
+	uint64_t ri_user_time;
+	uint64_t ri_system_time;
+	uint64_t ri_pkg_idle_wkups;
+	uint64_t ri_interrupt_wkups;
+	uint64_t ri_pageins;
+	uint64_t ri_wired_size;
+	uint64_t ri_resident_size;
+	uint64_t ri_phys_footprint;
+	uint64_t ri_proc_start_abstime;
+	uint64_t ri_proc_exit_abstime;
+	uint64_t ri_child_user_time;
+	uint64_t ri_child_system_time;
+	uint64_t ri_child_pkg_idle_wkups;
+	uint64_t ri_child_interrupt_wkups;
+	uint64_t ri_child_pageins;
+	uint64_t ri_child_elapsed_abstime;
+	uint64_t ri_diskio_bytesread;
+	uint64_t ri_diskio_byteswritten;
+	uint64_t ri_cpu_time_qos_default;
+	uint64_t ri_cpu_time_qos_maintenance;
+	uint64_t ri_cpu_time_qos_background;
+	uint64_t ri_cpu_time_qos_utility;
+	uint64_t ri_cpu_time_qos_legacy;
+	uint64_t ri_cpu_time_qos_user_initiated;
+	uint64_t ri_cpu_time_qos_user_interactive;
+	uint64_t ri_billed_system_time;
+	uint64_t ri_serviced_system_time;
+	uint64_t ri_logical_writes;
+	uint64_t ri_lifetime_max_phys_footprint;
+	uint64_t ri_instructions;
+	uint64_t ri_cycles;
+	uint64_t ri_billed_energy;
+	uint64_t ri_serviced_energy;
+	uint64_t ri_interval_max_phys_footprint;
+	uint64_t ri_runnable_time;
+};
+
+struct rusage_info_v5 {
+	uint8_t  ri_uuid[16];
+	uint64_t ri_user_time;
+	uint64_t ri_system_time;
+	uint64_t ri_pkg_idle_wkups;
+	uint64_t ri_interrupt_wkups;
+	uint64_t ri_pageins;
+	uint64_t ri_wired_size;
+	uint64_t ri_resident_size;
+	uint64_t ri_phys_footprint;
+	uint64_t ri_proc_start_abstime;
+	uint64_t ri_proc_exit_abstime;
+	uint64_t ri_child_user_time;
+	uint64_t ri_child_system_time;
+	uint64_t ri_child_pkg_idle_wkups;
+	uint64_t ri_child_interrupt_wkups;
+	uint64_t ri_child_pageins;
+	uint64_t ri_child_elapsed_abstime;
+	uint64_t ri_diskio_bytesread;
+	uint64_t ri_diskio_byteswritten;
+	uint64_t ri_cpu_time_qos_default;
+	uint64_t ri_cpu_time_qos_maintenance;
+	uint64_t ri_cpu_time_qos_background;
+	uint64_t ri_cpu_time_qos_utility;
+	uint64_t ri_cpu_time_qos_legacy;
+	uint64_t ri_cpu_time_qos_user_initiated;
+	uint64_t ri_cpu_time_qos_user_interactive;
+	uint64_t ri_billed_system_time;
+	uint64_t ri_serviced_system_time;
+	uint64_t ri_logical_writes;
+	uint64_t ri_lifetime_max_phys_footprint;
+	uint64_t ri_instructions;
+	uint64_t ri_cycles;
+	uint64_t ri_billed_energy;
+	uint64_t ri_serviced_energy;
+	uint64_t ri_interval_max_phys_footprint;
+	uint64_t ri_runnable_time;
+	uint64_t ri_flags;
+};
+
+struct rusage_info_v6 {
+	uint8_t  ri_uuid[16];
+	uint64_t ri_user_time;
+	uint64_t ri_system_time;
+	uint64_t ri_pkg_idle_wkups;
+	uint64_t ri_interrupt_wkups;
+	uint64_t ri_pageins;
+	uint64_t ri_wired_size;
+	uint64_t ri_resident_size;
+	uint64_t ri_phys_footprint;
+	uint64_t ri_proc_start_abstime;
+	uint64_t ri_proc_exit_abstime;
+	uint64_t ri_child_user_time;
+	uint64_t ri_child_system_time;
+	uint64_t ri_child_pkg_idle_wkups;
+	uint64_t ri_child_interrupt_wkups;
+	uint64_t ri_child_pageins;
+	uint64_t ri_child_elapsed_abstime;
+	uint64_t ri_diskio_bytesread;
+	uint64_t ri_diskio_byteswritten;
+	uint64_t ri_cpu_time_qos_default;
+	uint64_t ri_cpu_time_qos_maintenance;
+	uint64_t ri_cpu_time_qos_background;
+	uint64_t ri_cpu_time_qos_utility;
+	uint64_t ri_cpu_time_qos_legacy;
+	uint64_t ri_cpu_time_qos_user_initiated;
+	uint64_t ri_cpu_time_qos_user_interactive;
+	uint64_t ri_billed_system_time;
+	uint64_t ri_serviced_system_time;
+	uint64_t ri_logical_writes;
+	uint64_t ri_lifetime_max_phys_footprint;
+	uint64_t ri_instructions;
+	uint64_t ri_cycles;
+	uint64_t ri_billed_energy;
+	uint64_t ri_serviced_energy;
+	uint64_t ri_interval_max_phys_footprint;
+	uint64_t ri_runnable_time;
+	uint64_t ri_flags;
+	uint64_t ri_user_ptime;
+	uint64_t ri_system_ptime;
+	uint64_t ri_pinstructions;
+	uint64_t ri_pcycles;
+	uint64_t ri_energy_nj;
+	uint64_t ri_penergy_nj;
+	uint64_t ri_reserved[14];
+};
+
+typedef struct rusage_info_v6 rusage_info_current;
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+
+
+/*****
+ * RESOURCE LIMITS
+ */
+
+/*
+ * Symbolic constants for resource limits; since all limits are representable
+ * as a type rlim_t, we are permitted to define RLIM_SAVED_* in terms of
+ * RLIM_INFINITY.
+ */
+#define RLIM_INFINITY   (((__uint64_t)1 << 63) - 1)     /* no limit */
+#define RLIM_SAVED_MAX  RLIM_INFINITY   /* Unrepresentable hard limit */
+#define RLIM_SAVED_CUR  RLIM_INFINITY   /* Unrepresentable soft limit */
+
+/*
+ * Possible values of the first parameter to getrlimit()/setrlimit(), to
+ * indicate for which resource the operation is being performed.
+ */
+#define RLIMIT_CPU      0               /* cpu time per process */
+#define RLIMIT_FSIZE    1               /* file size */
+#define RLIMIT_DATA     2               /* data segment size */
+#define RLIMIT_STACK    3               /* stack size */
+#define RLIMIT_CORE     4               /* core file size */
+#define RLIMIT_AS       5               /* address space (resident set size) */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define RLIMIT_RSS      RLIMIT_AS       /* source compatibility alias */
+#define RLIMIT_MEMLOCK  6               /* locked-in-memory address space */
+#define RLIMIT_NPROC    7               /* number of processes */
+#endif  /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+#define RLIMIT_NOFILE   8               /* number of open files */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define RLIM_NLIMITS    9               /* total number of resource limits */
+#endif  /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+#define _RLIMIT_POSIX_FLAG      0x1000  /* Set bit for strict POSIX */
+
+/*
+ * A structure representing a resource limit.  The address of an instance
+ * of this structure is the second parameter to getrlimit()/setrlimit().
+ */
+struct rlimit {
+	rlim_t  rlim_cur;               /* current (soft) limit */
+	rlim_t  rlim_max;               /* maximum value for rlim_cur */
+};
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/*
+ * proc_rlimit_control()
+ *
+ * Resource limit flavors
+ */
+#define RLIMIT_WAKEUPS_MONITOR          0x1 /* Configure the wakeups monitor. */
+#define RLIMIT_CPU_USAGE_MONITOR        0x2 /* Configure the CPU usage monitor. */
+#define RLIMIT_THREAD_CPULIMITS         0x3 /* Configure a blocking, per-thread, CPU limits. */
+#define RLIMIT_FOOTPRINT_INTERVAL       0x4 /* Configure memory footprint interval tracking */
+
+/*
+ * Flags for wakeups monitor control.
+ */
+#define WAKEMON_ENABLE                  0x01
+#define WAKEMON_DISABLE                 0x02
+#define WAKEMON_GET_PARAMS              0x04
+#define WAKEMON_SET_DEFAULTS            0x08
+#define WAKEMON_MAKE_FATAL              0x10 /* Configure the task so that violations are fatal. */
+
+/*
+ * Flags for CPU usage monitor control.
+ */
+#define CPUMON_MAKE_FATAL               0x1000
+
+/*
+ * Flags for memory footprint interval tracking.
+ */
+#define FOOTPRINT_INTERVAL_RESET        0x1 /* Reset the footprint interval counter to zero */
+
+struct proc_rlimit_control_wakeupmon {
+	uint32_t wm_flags;
+	int32_t wm_rate;
+};
+
+
+
+/* I/O type */
+#define IOPOL_TYPE_DISK 0
+#define IOPOL_TYPE_VFS_ATIME_UPDATES 2
+#define IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES 3
+#define IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME 4
+#define IOPOL_TYPE_VFS_TRIGGER_RESOLVE 5
+#define IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION 6
+#define IOPOL_TYPE_VFS_IGNORE_PERMISSIONS 7
+#define IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE 8
+#define IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES 9
+#define IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY 10
+
+/* scope */
+#define IOPOL_SCOPE_PROCESS   0
+#define IOPOL_SCOPE_THREAD    1
+#define IOPOL_SCOPE_DARWIN_BG 2
+
+/* I/O Priority */
+#define IOPOL_DEFAULT           0
+#define IOPOL_IMPORTANT         1
+#define IOPOL_PASSIVE           2
+#define IOPOL_THROTTLE          3
+#define IOPOL_UTILITY           4
+#define IOPOL_STANDARD          5
+
+/* compatibility with older names */
+#define IOPOL_APPLICATION       IOPOL_STANDARD
+#define IOPOL_NORMAL            IOPOL_IMPORTANT
+
+
+#define IOPOL_ATIME_UPDATES_DEFAULT     0
+#define IOPOL_ATIME_UPDATES_OFF         1
+
+#define IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT 0
+#define IOPOL_MATERIALIZE_DATALESS_FILES_OFF     1
+#define IOPOL_MATERIALIZE_DATALESS_FILES_ON      2
+
+#define IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT 0
+#define IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME   1
+
+#define IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT 0
+#define IOPOL_VFS_TRIGGER_RESOLVE_OFF     1
+
+#define IOPOL_VFS_CONTENT_PROTECTION_DEFAULT 0
+#define IOPOL_VFS_CONTENT_PROTECTION_IGNORE  1
+
+#define IOPOL_VFS_IGNORE_PERMISSIONS_OFF 0
+#define IOPOL_VFS_IGNORE_PERMISSIONS_ON  1
+
+#define IOPOL_VFS_SKIP_MTIME_UPDATE_OFF 0
+#define IOPOL_VFS_SKIP_MTIME_UPDATE_ON 1
+
+#define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF 0
+#define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON 1
+
+#define IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT 0
+#define IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON 1
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+
+__BEGIN_DECLS
+int     getpriority(int, id_t);
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+int     getiopolicy_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+int     getrlimit(int, struct rlimit *) __DARWIN_ALIAS(getrlimit);
+int     getrusage(int, struct rusage *);
+int     setpriority(int, id_t, int);
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+int     setiopolicy_np(int, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+int     setrlimit(int, const struct rlimit *) __DARWIN_ALIAS(setrlimit);
+__END_DECLS
+
+#endif  /* !_SYS_RESOURCE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/socket.h b/lib/libc/include/any-macos.13-any/sys/socket.h
new file mode 100644
index 0000000000000000000000000000000000000000..4c5a523336f3bda8dd891a3e9db55e63290bcda4
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/socket.h
@@ -0,0 +1,765 @@
+/*
+ * Copyright (c) 2000-2022 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@
+ */
+/* Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1982, 1985, 1986, 1988, 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.
+ *
+ *	@(#)socket.h	8.4 (Berkeley) 2/21/94
+ * $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+
+#ifndef _SYS_SOCKET_H_
+#define _SYS_SOCKET_H_
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+
+
+#include 
+
+/*
+ * Definitions related to sockets: types, address families, options.
+ */
+
+/*
+ * Data types.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/* XXX Not explicitly defined by POSIX, but function return types are */
+#include 
+
+/* XXX Not explicitly defined by POSIX, but function return types are */
+#include 
+
+/*
+ * [XSI] The iovec structure shall be defined as described in .
+ */
+#include 
+
+/*
+ * Types
+ */
+#define SOCK_STREAM     1               /* stream socket */
+#define SOCK_DGRAM      2               /* datagram socket */
+#define SOCK_RAW        3               /* raw-protocol interface */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SOCK_RDM        4               /* reliably-delivered message */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define SOCK_SEQPACKET  5               /* sequenced packet stream */
+
+/*
+ * Option flags per-socket.
+ */
+#define SO_DEBUG        0x0001          /* turn on debugging info recording */
+#define SO_ACCEPTCONN   0x0002          /* socket has had listen() */
+#define SO_REUSEADDR    0x0004          /* allow local address reuse */
+#define SO_KEEPALIVE    0x0008          /* keep connections alive */
+#define SO_DONTROUTE    0x0010          /* just use interface addresses */
+#define SO_BROADCAST    0x0020          /* permit sending of broadcast msgs */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SO_USELOOPBACK  0x0040          /* bypass hardware when possible */
+#define SO_LINGER       0x0080          /* linger on close if data present (in ticks) */
+#define SO_LINGER_SEC   0x1080          /* linger on close if data present (in seconds) */
+#else
+#define SO_LINGER       0x1080          /* linger on close if data present (in seconds) */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define SO_OOBINLINE    0x0100          /* leave received OOB data in line */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SO_REUSEPORT    0x0200          /* allow local address & port reuse */
+#define SO_TIMESTAMP    0x0400          /* timestamp received dgram traffic */
+#define SO_TIMESTAMP_MONOTONIC  0x0800  /* Monotonically increasing timestamp on rcvd dgram */
+#ifndef __APPLE__
+#define SO_ACCEPTFILTER 0x1000          /* there is an accept filter */
+#else
+#define SO_DONTTRUNC    0x2000          /* APPLE: Retain unread data */
+                                        /*  (ATOMIC proto) */
+#define SO_WANTMORE     0x4000          /* APPLE: Give hint when more data ready */
+#define SO_WANTOOBFLAG  0x8000          /* APPLE: Want OOB in MSG_FLAG on receive */
+
+
+#endif  /* (!__APPLE__) */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Additional options, not kept in so_options.
+ */
+#define SO_SNDBUF       0x1001          /* send buffer size */
+#define SO_RCVBUF       0x1002          /* receive buffer size */
+#define SO_SNDLOWAT     0x1003          /* send low-water mark */
+#define SO_RCVLOWAT     0x1004          /* receive low-water mark */
+#define SO_SNDTIMEO     0x1005          /* send timeout */
+#define SO_RCVTIMEO     0x1006          /* receive timeout */
+#define SO_ERROR        0x1007          /* get error status and clear */
+#define SO_TYPE         0x1008          /* get socket type */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SO_LABEL        0x1010          /* deprecated */
+#define SO_PEERLABEL    0x1011          /* deprecated */
+#ifdef __APPLE__
+#define SO_NREAD        0x1020          /* APPLE: get 1st-packet byte count */
+#define SO_NKE          0x1021          /* APPLE: Install socket-level NKE */
+#define SO_NOSIGPIPE    0x1022          /* APPLE: No SIGPIPE on EPIPE */
+#define SO_NOADDRERR    0x1023          /* APPLE: Returns EADDRNOTAVAIL when src is not available anymore */
+#define SO_NWRITE       0x1024          /* APPLE: Get number of bytes currently in send socket buffer */
+#define SO_REUSESHAREUID        0x1025          /* APPLE: Allow reuse of port/socket by different userids */
+#ifdef __APPLE_API_PRIVATE
+#define SO_NOTIFYCONFLICT       0x1026  /* APPLE: send notification if there is a bind on a port which is already in use */
+#define SO_UPCALLCLOSEWAIT      0x1027  /* APPLE: block on close until an upcall returns */
+#endif
+#define SO_RANDOMPORT   0x1082  /* APPLE: request local port randomization */
+#define SO_NP_EXTENSIONS        0x1083  /* To turn off some POSIX behavior */
+#endif
+
+#define SO_NUMRCVPKT            0x1112  /* number of datagrams in receive socket buffer */
+#define SO_NET_SERVICE_TYPE     0x1116  /* Network service type */
+
+
+#define SO_NETSVC_MARKING_LEVEL    0x1119  /* Get QoS marking in effect for socket */
+
+
+#define SO_RESOLVER_SIGNATURE      0x1131  /* A signed data blob from the system resolver */
+
+
+/* When adding new socket-options, you need to make sure MPTCP supports these as well! */
+
+/*
+ * Network Service Type for option SO_NET_SERVICE_TYPE
+ *
+ * The vast majority of sockets should use Best Effort that is the default
+ * Network Service Type. Other Network Service Types have to be used only if
+ * the traffic actually matches the description of the Network Service Type.
+ *
+ * Network Service Types do not represent priorities but rather describe
+ * different categories of delay, jitter and loss parameters.
+ * Those parameters may influence protocols from layer 4 protocols like TCP
+ * to layer 2 protocols like Wi-Fi. The Network Service Type can determine
+ * how the traffic is queued and scheduled by the host networking stack and
+ * by other entities on the network like switches and routers. For example
+ * for Wi-Fi, the Network Service Type can select the marking of the
+ * layer 2 packet with the appropriate WMM Access Category.
+ *
+ * There is no point in attempting to game the system and use
+ * a Network Service Type that does not correspond to the actual
+ * traffic characteristic but one that seems to have a higher precedence.
+ * The reason is that for service classes that have lower tolerance
+ * for delay and jitter, the queues size is lower than for service
+ * classes that are more tolerant to delay and jitter.
+ *
+ * For example using a voice service type for bulk data transfer will lead
+ * to disastrous results as soon as congestion happens because the voice
+ * queue overflows and packets get dropped. This is not only bad for the bulk
+ * data transfer but it is also bad for VoIP apps that legitimately are using
+ * the voice  service type.
+ *
+ * The characteristics of the Network Service Types are based on the service
+ * classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service
+ * Classes"
+ *
+ * When system detects the outgoing interface belongs to a DiffServ domain
+ * that follows the recommendation of the IETF draft "Guidelines for DiffServ to
+ * IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value
+ * that corresponds to Network Service Type.
+ *
+ * NET_SERVICE_TYPE_BE
+ *	"Best Effort", unclassified/standard.  This is the default service
+ *	class and cover the majority of the traffic.
+ *
+ * NET_SERVICE_TYPE_BK
+ *	"Background", high delay tolerant, loss tolerant. elastic flow,
+ *	variable size & long-lived. E.g: non-interactive network bulk transfer
+ *	like synching or backup.
+ *
+ * NET_SERVICE_TYPE_RD
+ *	"Responsive Data", a notch higher than "Best Effort", medium delay
+ *	tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email,
+ *	instant messaging, for which there is a sense of interactivity and
+ *	urgency (user waiting for output).
+ *
+ * NET_SERVICE_TYPE_OAM
+ *	"Operations, Administration, and Management", medium delay tolerant,
+ *	low-medium loss tolerant, elastic & inelastic flows, variable size.
+ *	E.g. VPN tunnels.
+ *
+ * NET_SERVICE_TYPE_AV
+ *	"Multimedia Audio/Video Streaming", medium delay tolerant, low-medium
+ *	loss tolerant, elastic flow, constant packet interval, variable rate
+ *	and size. E.g. video and audio playback with buffering.
+ *
+ * NET_SERVICE_TYPE_RV
+ *	"Responsive Multimedia Audio/Video", low delay tolerant, low-medium
+ *	loss tolerant, elastic flow, variable packet interval, rate and size.
+ *	E.g. screen sharing.
+ *
+ * NET_SERVICE_TYPE_VI
+ *	"Interactive Video", low delay tolerant, low-medium loss tolerant,
+ *	elastic flow, constant packet interval, variable rate & size. E.g.
+ *	video telephony.
+ *
+ * NET_SERVICE_TYPE_SIG
+ *	"Signaling", low delay tolerant, low loss tolerant, inelastic flow,
+ *	jitter tolerant, rate is bursty but short, variable size. E.g. SIP.
+ *
+ * NET_SERVICE_TYPE_VO
+ *	"Interactive Voice", very low delay tolerant, very low loss tolerant,
+ *	inelastic flow, constant packet rate, somewhat fixed size.
+ *	E.g. VoIP.
+ */
+
+#define NET_SERVICE_TYPE_BE     0 /* Best effort */
+#define NET_SERVICE_TYPE_BK     1 /* Background system initiated */
+#define NET_SERVICE_TYPE_SIG    2 /* Signaling */
+#define NET_SERVICE_TYPE_VI     3 /* Interactive Video */
+#define NET_SERVICE_TYPE_VO     4 /* Interactive Voice */
+#define NET_SERVICE_TYPE_RV     5 /* Responsive Multimedia Audio/Video */
+#define NET_SERVICE_TYPE_AV     6 /* Multimedia Audio/Video Streaming */
+#define NET_SERVICE_TYPE_OAM    7 /* Operations, Administration, and Management */
+#define NET_SERVICE_TYPE_RD     8 /* Responsive Data */
+
+
+/* These are supported values for SO_NETSVC_MARKING_LEVEL */
+#define NETSVC_MRKNG_UNKNOWN            0       /* The outgoing network interface is not known */
+#define NETSVC_MRKNG_LVL_L2             1       /* Default marking at layer 2 (for example Wi-Fi WMM) */
+#define NETSVC_MRKNG_LVL_L3L2_ALL       2       /* Layer 3 DSCP marking and layer 2 marking for all Network Service Types */
+#define NETSVC_MRKNG_LVL_L3L2_BK        3       /* The system policy limits layer 3 DSCP marking and layer 2 marking
+	                                         * to background Network Service Types */
+
+
+typedef __uint32_t sae_associd_t;
+#define SAE_ASSOCID_ANY 0
+#define SAE_ASSOCID_ALL ((sae_associd_t)(-1ULL))
+
+typedef __uint32_t sae_connid_t;
+#define SAE_CONNID_ANY  0
+#define SAE_CONNID_ALL  ((sae_connid_t)(-1ULL))
+
+/* connectx() flag parameters */
+#define CONNECT_RESUME_ON_READ_WRITE    0x1 /* resume connect() on read/write */
+#define CONNECT_DATA_IDEMPOTENT         0x2 /* data is idempotent */
+#define CONNECT_DATA_AUTHENTICATED      0x4 /* data includes security that replaces the TFO-cookie */
+
+/* sockaddr endpoints */
+typedef struct sa_endpoints {
+	unsigned int            sae_srcif;      /* optional source interface */
+	const struct sockaddr   *sae_srcaddr;   /* optional source address */
+	socklen_t               sae_srcaddrlen; /* size of source address */
+	const struct sockaddr   *sae_dstaddr;   /* destination address */
+	socklen_t               sae_dstaddrlen; /* size of destination address */
+} sa_endpoints_t;
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Structure used for manipulating linger option.
+ */
+struct  linger {
+	int     l_onoff;                /* option on/off */
+	int     l_linger;               /* linger time */
+};
+
+#ifndef __APPLE__
+struct  accept_filter_arg {
+	char    af_name[16];
+	char    af_arg[256 - 16];
+};
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#ifdef __APPLE__
+
+/*
+ * Structure to control non-portable Sockets extension to POSIX
+ */
+struct so_np_extensions {
+	u_int32_t       npx_flags;
+	u_int32_t       npx_mask;
+};
+
+#define SONPX_SETOPTSHUT        0x000000001     /* flag for allowing setsockopt after shutdown */
+
+
+
+#endif
+#endif
+
+/*
+ * Level number for (get/set)sockopt() to apply to socket itself.
+ */
+#define SOL_SOCKET      0xffff          /* options for socket level */
+
+
+/*
+ * Address families.
+ */
+#define AF_UNSPEC       0               /* unspecified */
+#define AF_UNIX         1               /* local to host (pipes) */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define AF_LOCAL        AF_UNIX         /* backward compatibility */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define AF_INET         2               /* internetwork: UDP, TCP, etc. */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define AF_IMPLINK      3               /* arpanet imp addresses */
+#define AF_PUP          4               /* pup protocols: e.g. BSP */
+#define AF_CHAOS        5               /* mit CHAOS protocols */
+#define AF_NS           6               /* XEROX NS protocols */
+#define AF_ISO          7               /* ISO protocols */
+#define AF_OSI          AF_ISO
+#define AF_ECMA         8               /* European computer manufacturers */
+#define AF_DATAKIT      9               /* datakit protocols */
+#define AF_CCITT        10              /* CCITT protocols, X.25 etc */
+#define AF_SNA          11              /* IBM SNA */
+#define AF_DECnet       12              /* DECnet */
+#define AF_DLI          13              /* DEC Direct data link interface */
+#define AF_LAT          14              /* LAT */
+#define AF_HYLINK       15              /* NSC Hyperchannel */
+#define AF_APPLETALK    16              /* Apple Talk */
+#define AF_ROUTE        17              /* Internal Routing Protocol */
+#define AF_LINK         18              /* Link layer interface */
+#define pseudo_AF_XTP   19              /* eXpress Transfer Protocol (no AF) */
+#define AF_COIP         20              /* connection-oriented IP, aka ST II */
+#define AF_CNT          21              /* Computer Network Technology */
+#define pseudo_AF_RTIP  22              /* Help Identify RTIP packets */
+#define AF_IPX          23              /* Novell Internet Protocol */
+#define AF_SIP          24              /* Simple Internet Protocol */
+#define pseudo_AF_PIP   25              /* Help Identify PIP packets */
+#define AF_NDRV         27              /* Network Driver 'raw' access */
+#define AF_ISDN         28              /* Integrated Services Digital Network */
+#define AF_E164         AF_ISDN         /* CCITT E.164 recommendation */
+#define pseudo_AF_KEY   29              /* Internal key-management function */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#define AF_INET6        30              /* IPv6 */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define AF_NATM         31              /* native ATM access */
+#define AF_SYSTEM       32              /* Kernel event messages */
+#define AF_NETBIOS      33              /* NetBIOS */
+#define AF_PPP          34              /* PPP communication protocol */
+#define pseudo_AF_HDRCMPLT 35           /* Used by BPF to not rewrite headers
+	                                 *  in interface output routine */
+#define AF_RESERVED_36  36              /* Reserved for internal usage */
+#define AF_IEEE80211    37              /* IEEE 802.11 protocol */
+#define AF_UTUN         38
+#define AF_VSOCK        40              /* VM Sockets */
+#define AF_MAX          41
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * [XSI] Structure used by kernel to store most addresses.
+ */
+struct sockaddr {
+	__uint8_t       sa_len;         /* total length */
+	sa_family_t     sa_family;      /* [XSI] address family */
+#if __has_ptrcheck
+	char            sa_data[__counted_by(sa_len - 2)];
+#else
+	char            sa_data[14];    /* [XSI] addr value (actually smaller or larger) */
+#endif
+};
+__CCT_DECLARE_CONSTRAINED_PTR_TYPES(struct sockaddr, sockaddr);
+
+/*
+ * Least amount of information that a sockaddr requires.
+ * Sockaddr_header is a compatible prefix structure of
+ * all sockaddr objects.
+ */
+struct __sockaddr_header {
+	__uint8_t           sa_len;
+	sa_family_t         sa_family;
+};
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SOCK_MAXADDRLEN 255             /* longest possible addresses */
+
+/*
+ * Structure used by kernel to pass protocol
+ * information in raw sockets.
+ */
+struct sockproto {
+	__uint16_t      sp_family;              /* address family */
+	__uint16_t      sp_protocol;            /* protocol */
+};
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * RFC 2553: protocol-independent placeholder for socket addresses
+ */
+#define _SS_MAXSIZE     128
+#define _SS_ALIGNSIZE   (sizeof(__int64_t))
+#define _SS_PAD1SIZE    \
+	        (_SS_ALIGNSIZE - sizeof(__uint8_t) - sizeof(sa_family_t))
+#define _SS_PAD2SIZE    \
+	        (_SS_MAXSIZE - sizeof(__uint8_t) - sizeof(sa_family_t) - \
+	                        _SS_PAD1SIZE - _SS_ALIGNSIZE)
+
+/*
+ * [XSI] sockaddr_storage
+ */
+struct sockaddr_storage {
+	__uint8_t       ss_len;         /* address length */
+	sa_family_t     ss_family;      /* [XSI] address family */
+	char                    __ss_pad1[_SS_PAD1SIZE];
+	__int64_t       __ss_align;     /* force structure storage alignment */
+	char                    __ss_pad2[_SS_PAD2SIZE];
+};
+__CCT_DECLARE_CONSTRAINED_PTR_TYPES(struct sockaddr_storage, sockaddr_storage);
+
+/*
+ * Protocol families, same as address families for now.
+ */
+#define PF_UNSPEC       AF_UNSPEC
+#define PF_LOCAL        AF_LOCAL
+#define PF_UNIX         PF_LOCAL        /* backward compatibility */
+#define PF_INET         AF_INET
+#define PF_IMPLINK      AF_IMPLINK
+#define PF_PUP          AF_PUP
+#define PF_CHAOS        AF_CHAOS
+#define PF_NS           AF_NS
+#define PF_ISO          AF_ISO
+#define PF_OSI          AF_ISO
+#define PF_ECMA         AF_ECMA
+#define PF_DATAKIT      AF_DATAKIT
+#define PF_CCITT        AF_CCITT
+#define PF_SNA          AF_SNA
+#define PF_DECnet       AF_DECnet
+#define PF_DLI          AF_DLI
+#define PF_LAT          AF_LAT
+#define PF_HYLINK       AF_HYLINK
+#define PF_APPLETALK    AF_APPLETALK
+#define PF_ROUTE        AF_ROUTE
+#define PF_LINK         AF_LINK
+#define PF_XTP          pseudo_AF_XTP   /* really just proto family, no AF */
+#define PF_COIP         AF_COIP
+#define PF_CNT          AF_CNT
+#define PF_SIP          AF_SIP
+#define PF_IPX          AF_IPX          /* same format as AF_NS */
+#define PF_RTIP         pseudo_AF_RTIP  /* same format as AF_INET */
+#define PF_PIP          pseudo_AF_PIP
+#define PF_NDRV         AF_NDRV
+#define PF_ISDN         AF_ISDN
+#define PF_KEY          pseudo_AF_KEY
+#define PF_INET6        AF_INET6
+#define PF_NATM         AF_NATM
+#define PF_SYSTEM       AF_SYSTEM
+#define PF_NETBIOS      AF_NETBIOS
+#define PF_PPP          AF_PPP
+#define PF_RESERVED_36  AF_RESERVED_36
+#define PF_UTUN         AF_UTUN
+#define PF_VSOCK        AF_VSOCK
+#define PF_MAX          AF_MAX
+
+/*
+ * These do not have socket-layer support:
+ */
+#define PF_VLAN         ((uint32_t)0x766c616e)  /* 'vlan' */
+#define PF_BOND         ((uint32_t)0x626f6e64)  /* 'bond' */
+
+/*
+ * Definitions for network related sysctl, CTL_NET.
+ *
+ * Second level is protocol family.
+ * Third level is protocol number.
+ *
+ * Further levels are defined by the individual families below.
+ */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define NET_MAXID       AF_MAX
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * PF_ROUTE - Routing table
+ *
+ * Three additional levels are defined:
+ *	Fourth: address family, 0 is wildcard
+ *	Fifth: type of info, defined below
+ *	Sixth: flag(s) to mask with for NET_RT_FLAGS
+ */
+#define NET_RT_DUMP             1       /* dump; may limit to a.f. */
+#define NET_RT_FLAGS            2       /* by flags, e.g. RESOLVING */
+#define NET_RT_IFLIST           3       /* survey interface list */
+#define NET_RT_STAT             4       /* routing statistics */
+#define NET_RT_TRASH            5       /* routes not in table but not freed */
+#define NET_RT_IFLIST2          6       /* interface list with addresses */
+#define NET_RT_DUMP2            7       /* dump; may limit to a.f. */
+/*
+ * Allows read access non-local host's MAC address
+ * if the process has neighbor cache entitlement.
+ */
+#define NET_RT_FLAGS_PRIV       10
+#define NET_RT_MAXID            11
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+
+
+
+/*
+ * Maximum queue length specifiable by listen.
+ */
+#define SOMAXCONN       128
+
+/*
+ * [XSI] Message header for recvmsg and sendmsg calls.
+ * Used value-result for recvmsg, value only for sendmsg.
+ */
+struct msghdr {
+	void            *msg_name;      /* [XSI] optional address */
+	socklen_t       msg_namelen;    /* [XSI] size of address */
+	struct          iovec *msg_iov; /* [XSI] scatter/gather array */
+	int             msg_iovlen;     /* [XSI] # elements in msg_iov */
+	void            *msg_control;   /* [XSI] ancillary data, see below */
+	socklen_t       msg_controllen; /* [XSI] ancillary data buffer len */
+	int             msg_flags;      /* [XSI] flags on received message */
+};
+
+
+
+#define MSG_OOB         0x1             /* process out-of-band data */
+#define MSG_PEEK        0x2             /* peek at incoming message */
+#define MSG_DONTROUTE   0x4             /* send without using routing tables */
+#define MSG_EOR         0x8             /* data completes record */
+#define MSG_TRUNC       0x10            /* data discarded before delivery */
+#define MSG_CTRUNC      0x20            /* control data lost before delivery */
+#define MSG_WAITALL     0x40            /* wait for full request or error */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MSG_DONTWAIT    0x80            /* this message should be nonblocking */
+#define MSG_EOF         0x100           /* data completes connection */
+#ifdef __APPLE__
+#ifdef __APPLE_API_OBSOLETE
+#define MSG_WAITSTREAM  0x200           /* wait up to full request.. may return partial */
+#endif
+#define MSG_FLUSH       0x400           /* Start of 'hold' seq; dump so_temp, deprecated */
+#define MSG_HOLD        0x800           /* Hold frag in so_temp, deprecated */
+#define MSG_SEND        0x1000          /* Send the packet in so_temp, deprecated */
+#define MSG_HAVEMORE    0x2000          /* Data ready to be read */
+#define MSG_RCVMORE     0x4000          /* Data remains in current pkt */
+#endif
+#define MSG_NEEDSA      0x10000         /* Fail receive if socket address cannot be allocated */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define MSG_NOSIGNAL    0x80000         /* do not generate SIGPIPE on EOF */
+#endif /* __DARWIN_C_LEVEL */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Header for ancillary data objects in msg_control buffer.
+ * Used for additional information with/about a datagram
+ * not expressible by flags.  The format is a sequence
+ * of message elements headed by cmsghdr structures.
+ */
+struct cmsghdr {
+	socklen_t       cmsg_len;       /* [XSI] data byte count, including hdr */
+	int             cmsg_level;     /* [XSI] originating protocol */
+	int             cmsg_type;      /* [XSI] protocol-specific type */
+/* followed by	unsigned char  cmsg_data[]; */
+};
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#ifndef __APPLE__
+/*
+ * While we may have more groups than this, the cmsgcred struct must
+ * be able to fit in an mbuf, and NGROUPS_MAX is too large to allow
+ * this.
+ */
+#define CMGROUP_MAX 16
+
+/*
+ * Credentials structure, used to verify the identity of a peer
+ * process that has sent us a message. This is allocated by the
+ * peer process but filled in by the kernel. This prevents the
+ * peer from lying about its identity. (Note that cmcred_groups[0]
+ * is the effective GID.)
+ */
+struct cmsgcred {
+	pid_t   cmcred_pid;             /* PID of sending process */
+	uid_t   cmcred_uid;             /* real UID of sending process */
+	uid_t   cmcred_euid;            /* effective UID of sending process */
+	gid_t   cmcred_gid;             /* real GID of sending process */
+	short   cmcred_ngroups;         /* number or groups */
+	gid_t   cmcred_groups[CMGROUP_MAX];     /* groups */
+};
+#endif
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/* given pointer to struct cmsghdr, return pointer to data */
+#define CMSG_DATA(cmsg)         ((unsigned char *)(cmsg) + \
+	__DARWIN_ALIGN32(sizeof(struct cmsghdr)))
+
+/*
+ * RFC 2292 requires to check msg_controllen, in case that the kernel returns
+ * an empty list for some reasons.
+ */
+#define CMSG_FIRSTHDR(mhdr) \
+	((mhdr)->msg_controllen >= sizeof(struct cmsghdr) ? \
+	    (struct cmsghdr *)(mhdr)->msg_control : \
+	    (struct cmsghdr *)0L)
+
+
+/*
+ * Given pointer to struct cmsghdr, return pointer to next cmsghdr
+ * RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr)
+ */
+#define CMSG_NXTHDR(mhdr, cmsg)                                         \
+	((char *)(cmsg) == (char *)0L ? CMSG_FIRSTHDR(mhdr) :           \
+	    ((((unsigned char *)(cmsg) +                                \
+	    __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len) +            \
+	    __DARWIN_ALIGN32(sizeof(struct cmsghdr))) >                 \
+	    ((unsigned char *)(mhdr)->msg_control +                     \
+	    (mhdr)->msg_controllen)) ?                                  \
+	        (struct cmsghdr *)0L /* NULL */ :                       \
+	        (struct cmsghdr *)(void *)((unsigned char *)(cmsg) +    \
+	            __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len))))
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* RFC 2292 additions */
+#define CMSG_SPACE(l)           (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + __DARWIN_ALIGN32(l))
+#define CMSG_LEN(l)             (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + (l))
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/* "Socket"-level control message types: */
+#define SCM_RIGHTS                      0x01    /* access rights (array of int) */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define SCM_TIMESTAMP                   0x02    /* timestamp (struct timeval) */
+#define SCM_CREDS                       0x03    /* process creds (struct cmsgcred) */
+#define SCM_TIMESTAMP_MONOTONIC         0x04    /* timestamp (uint64_t) */
+
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * howto arguments for shutdown(2), specified by Posix.1g.
+ */
+#define SHUT_RD         0               /* shut down the reading side */
+#define SHUT_WR         1               /* shut down the writing side */
+#define SHUT_RDWR       2               /* shut down both sides */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * sendfile(2) header/trailer struct
+ */
+struct sf_hdtr {
+	struct iovec *headers;  /* pointer to an array of header struct iovec's */
+	int hdr_cnt;            /* number of header iovec's */
+	struct iovec *trailers; /* pointer to an array of trailer struct iovec's */
+	int trl_cnt;            /* number of trailer iovec's */
+};
+
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+__BEGIN_DECLS
+
+int     accept(int, struct sockaddr * __restrict, socklen_t * __restrict)
+__DARWIN_ALIAS_C(accept);
+int     bind(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS(bind);
+int     connect(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(connect);
+int     getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict)
+__DARWIN_ALIAS(getpeername);
+int     getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict)
+__DARWIN_ALIAS(getsockname);
+int     getsockopt(int, int, int, void * __restrict, socklen_t * __restrict);
+int     listen(int, int) __DARWIN_ALIAS(listen);
+ssize_t recv(int, void *, size_t, int) __DARWIN_ALIAS_C(recv);
+ssize_t recvfrom(int, void *, size_t, int, struct sockaddr * __restrict,
+    socklen_t * __restrict) __DARWIN_ALIAS_C(recvfrom);
+ssize_t recvmsg(int, struct msghdr *, int) __DARWIN_ALIAS_C(recvmsg);
+ssize_t send(int, const void *, size_t, int) __DARWIN_ALIAS_C(send);
+ssize_t sendmsg(int, const struct msghdr *, int) __DARWIN_ALIAS_C(sendmsg);
+ssize_t sendto(int, const void *, size_t,
+    int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(sendto);
+int     setsockopt(int, int, int, const void *, socklen_t);
+int     shutdown(int, int);
+int     sockatmark(int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int     socket(int, int, int);
+int     socketpair(int, int, int, int *) __DARWIN_ALIAS(socketpair);
+
+#if !defined(_POSIX_C_SOURCE)
+int     sendfile(int, int, off_t, off_t *, struct sf_hdtr *, int);
+#endif  /* !_POSIX_C_SOURCE */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+void    pfctlinput(int, struct sockaddr *);
+
+__API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0))
+int connectx(int, const sa_endpoints_t *, sae_associd_t, unsigned int,
+    const struct iovec *, unsigned int, size_t *, sae_connid_t *);
+
+__API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0))
+int disconnectx(int, sae_associd_t, sae_connid_t);
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+__END_DECLS
+
+
+#endif /* !_SYS_SOCKET_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/spawn.h b/lib/libc/include/any-macos.13-any/sys/spawn.h
new file mode 100644
index 0000000000000000000000000000000000000000..727b4f500993c2e8f2b61131aeb19d6328a04bdd
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/spawn.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2006-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@
+ */
+
+/*
+ * [SPN] Support for _POSIX_SPAWN
+ *
+ * This header contains information that is shared between the user space
+ * and kernel versions of the posix_spawn() code.  Shared elements are all
+ * manifest constants, at the current time.
+ */
+
+#ifndef _SYS_SPAWN_H_
+#define _SYS_SPAWN_H_
+
+/*
+ * Possible bit values which may be OR'ed together and provided as the second
+ * parameter to posix_spawnattr_setflags() or implicit returned in the value of
+ * the second parameter to posix_spawnattr_getflags().
+ */
+#define POSIX_SPAWN_RESETIDS            0x0001  /* [SPN] R[UG]ID not E[UG]ID */
+#define POSIX_SPAWN_SETPGROUP           0x0002  /* [SPN] set non-parent PGID */
+#define POSIX_SPAWN_SETSIGDEF           0x0004  /* [SPN] reset sigset default */
+#define POSIX_SPAWN_SETSIGMASK          0x0008  /* [SPN] set signal mask */
+
+#if 0   /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */
+#define POSIX_SPAWN_SETSCHEDPARAM       0x0010
+#define POSIX_SPAWN_SETSCHEDULER        0x0020
+#endif  /* 0 */
+
+#if     !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Darwin-specific flags
+ */
+#define POSIX_SPAWN_SETEXEC             0x0040
+#define POSIX_SPAWN_START_SUSPENDED     0x0080
+#define POSIX_SPAWN_SETSID              0x0400
+#define POSIX_SPAWN_CLOEXEC_DEFAULT     0x4000
+
+#define _POSIX_SPAWN_RESLIDE            0x0800
+
+/*
+ * Possible values to be set for the process control actions on resource starvation.
+ * POSIX_SPAWN_PCONTROL_THROTTLE indicates that the process is to be throttled on starvation.
+ * POSIX_SPAWN_PCONTROL_SUSPEND indicates that the process is to be suspended on starvation.
+ * POSIX_SPAWN_PCONTROL_KILL indicates that the process is to be terminated  on starvation.
+ */
+#define POSIX_SPAWN_PCONTROL_NONE       0x0000
+#define POSIX_SPAWN_PCONTROL_THROTTLE   0x0001
+#define POSIX_SPAWN_PCONTROL_SUSPEND    0x0002
+#define POSIX_SPAWN_PCONTROL_KILL       0x0003
+
+#define POSIX_SPAWN_PANIC_ON_CRASH         0x1
+#define POSIX_SPAWN_PANIC_ON_NON_ZERO_EXIT 0x2
+#define POSIX_SPAWN_PANIC_ON_EXIT          0x4
+#define POSIX_SPAWN_PANIC_ON_SPAWN_FAIL    0x8
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+#endif  /* _SYS_SPAWN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/stat.h b/lib/libc/include/any-macos.13-any/sys/stat.h
new file mode 100644
index 0000000000000000000000000000000000000000..a15327260044eb5a4345d37a6472f7dc3bc5d4c4
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/stat.h
@@ -0,0 +1,434 @@
+/*
+ * Copyright (c) 2000-2014 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * 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.
+ *
+ *	@(#)stat.h	8.9 (Berkeley) 8/17/94
+ */
+
+
+#ifndef _SYS_STAT_H_
+#define _SYS_STAT_H_
+
+#include 
+#include 
+#include 
+
+/* [XSI] The timespec structure may be defined as described in  */
+#include 
+
+/*
+ * [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t,
+ * gid_t, off_t, and time_t types shall be defined as described in
+ * .
+ */
+#include 
+#include 
+#include                   /* device number */
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include 
+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * XXX So deprecated, it would make your head spin
+ *
+ * The old stat structure.  In fact, this is not used by the kernel at all,
+ * and should not be used by user space, and should be removed from this
+ * header file entirely (along with the unused cvtstat() prototype in
+ * vnode_internal.h).
+ */
+struct ostat {
+	__uint16_t      st_dev;         /* inode's device */
+	ino_t           st_ino;         /* inode's number */
+	mode_t          st_mode;        /* inode protection mode */
+	nlink_t         st_nlink;       /* number of hard links */
+	__uint16_t      st_uid;         /* user ID of the file's owner */
+	__uint16_t      st_gid;         /* group ID of the file's group */
+	__uint16_t      st_rdev;        /* device type */
+	__int32_t       st_size;        /* file size, in bytes */
+	struct  timespec st_atimespec;  /* time of last access */
+	struct  timespec st_mtimespec;  /* time of last data modification */
+	struct  timespec st_ctimespec;  /* time of last file status change */
+	__int32_t       st_blksize;     /* optimal blocksize for I/O */
+	__int32_t       st_blocks;      /* blocks allocated for file */
+	__uint32_t      st_flags;       /* user defined flags for file */
+	__uint32_t      st_gen;         /* file generation number */
+};
+
+#define __DARWIN_STRUCT_STAT64_TIMES \
+	struct timespec st_atimespec;           /* time of last access */ \
+	struct timespec st_mtimespec;           /* time of last data modification */ \
+	struct timespec st_ctimespec;           /* time of last status change */ \
+	struct timespec st_birthtimespec;       /* time of file creation(birth) */
+
+#else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#define __DARWIN_STRUCT_STAT64_TIMES \
+	time_t		st_atime;               /* [XSI] Time of last access */ \
+	long		st_atimensec;           /* nsec of last access */ \
+	time_t		st_mtime;               /* [XSI] Last data modification time */ \
+	long		st_mtimensec;           /* last data modification nsec */ \
+	time_t		st_ctime;               /* [XSI] Time of last status change */ \
+	long		st_ctimensec;           /* nsec of last status change */ \
+	time_t		st_birthtime;           /*  File creation time(birth)  */ \
+	long		st_birthtimensec;       /* nsec of File creation time */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * This structure is used as the second parameter to the fstat64(),
+ * lstat64(), and stat64() functions, and for struct stat when
+ * __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined
+ * above, depending on whether we use struct timespec or the direct
+ * components.
+ *
+ * This is simillar to stat except for 64bit inode number
+ * number instead of 32bit ino_t and the addition of create(birth) time.
+ */
+#define __DARWIN_STRUCT_STAT64 { \
+	dev_t		st_dev;                 /* [XSI] ID of device containing file */ \
+	mode_t		st_mode;                /* [XSI] Mode of file (see below) */ \
+	nlink_t		st_nlink;               /* [XSI] Number of hard links */ \
+	__darwin_ino64_t st_ino;                /* [XSI] File serial number */ \
+	uid_t		st_uid;                 /* [XSI] User ID of the file */ \
+	gid_t		st_gid;                 /* [XSI] Group ID of the file */ \
+	dev_t		st_rdev;                /* [XSI] Device ID */ \
+	__DARWIN_STRUCT_STAT64_TIMES \
+	off_t		st_size;                /* [XSI] file size, in bytes */ \
+	blkcnt_t	st_blocks;              /* [XSI] blocks allocated for file */ \
+	blksize_t	st_blksize;             /* [XSI] optimal blocksize for I/O */ \
+	__uint32_t	st_flags;               /* user defined flags for file */ \
+	__uint32_t	st_gen;                 /* file generation number */ \
+	__int32_t	st_lspare;              /* RESERVED: DO NOT USE! */ \
+	__int64_t	st_qspare[2];           /* RESERVED: DO NOT USE! */ \
+}
+
+/*
+ * [XSI] This structure is used as the second parameter to the fstat(),
+ * lstat(), and stat() functions.
+ */
+#if __DARWIN_64_BIT_INO_T
+
+struct stat __DARWIN_STRUCT_STAT64;
+
+#else /* !__DARWIN_64_BIT_INO_T */
+
+struct stat {
+	dev_t           st_dev;         /* [XSI] ID of device containing file */
+	ino_t           st_ino;         /* [XSI] File serial number */
+	mode_t          st_mode;        /* [XSI] Mode of file (see below) */
+	nlink_t         st_nlink;       /* [XSI] Number of hard links */
+	uid_t           st_uid;         /* [XSI] User ID of the file */
+	gid_t           st_gid;         /* [XSI] Group ID of the file */
+	dev_t           st_rdev;        /* [XSI] Device ID */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+	struct  timespec st_atimespec;  /* time of last access */
+	struct  timespec st_mtimespec;  /* time of last data modification */
+	struct  timespec st_ctimespec;  /* time of last status change */
+#else
+	time_t          st_atime;       /* [XSI] Time of last access */
+	long            st_atimensec;   /* nsec of last access */
+	time_t          st_mtime;       /* [XSI] Last data modification time */
+	long            st_mtimensec;   /* last data modification nsec */
+	time_t          st_ctime;       /* [XSI] Time of last status change */
+	long            st_ctimensec;   /* nsec of last status change */
+#endif
+	off_t           st_size;        /* [XSI] file size, in bytes */
+	blkcnt_t        st_blocks;      /* [XSI] blocks allocated for file */
+	blksize_t       st_blksize;     /* [XSI] optimal blocksize for I/O */
+	__uint32_t      st_flags;       /* user defined flags for file */
+	__uint32_t      st_gen;         /* file generation number */
+	__int32_t       st_lspare;      /* RESERVED: DO NOT USE! */
+	__int64_t       st_qspare[2];   /* RESERVED: DO NOT USE! */
+};
+
+#endif /* __DARWIN_64_BIT_INO_T */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#if !__DARWIN_ONLY_64_BIT_INO_T
+
+struct stat64 __DARWIN_STRUCT_STAT64;
+
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define st_atime st_atimespec.tv_sec
+#define st_mtime st_mtimespec.tv_sec
+#define st_ctime st_ctimespec.tv_sec
+#define st_birthtime st_birthtimespec.tv_sec
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * [XSI] The following are symbolic names for the values of type mode_t.  They
+ * are bitmap values.
+ */
+#include 
+
+/*
+ * [XSI] The following macros shall be provided to test whether a file is
+ * of the specified type.  The value m supplied to the macros is the value
+ * of st_mode from a stat structure.  The macro shall evaluate to a non-zero
+ * value if the test is true; 0 if the test is false.
+ */
+#define S_ISBLK(m)      (((m) & S_IFMT) == S_IFBLK)     /* block special */
+#define S_ISCHR(m)      (((m) & S_IFMT) == S_IFCHR)     /* char special */
+#define S_ISDIR(m)      (((m) & S_IFMT) == S_IFDIR)     /* directory */
+#define S_ISFIFO(m)     (((m) & S_IFMT) == S_IFIFO)     /* fifo or socket */
+#define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)     /* regular file */
+#define S_ISLNK(m)      (((m) & S_IFMT) == S_IFLNK)     /* symbolic link */
+#define S_ISSOCK(m)     (((m) & S_IFMT) == S_IFSOCK)    /* socket */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define S_ISWHT(m)      (((m) & S_IFMT) == S_IFWHT)     /* OBSOLETE: whiteout */
+#endif
+
+/*
+ * [XSI] The implementation may implement message queues, semaphores, or
+ * shared memory objects as distinct file types.  The following macros
+ * shall be provided to test whether a file is of the specified type.
+ * The value of the buf argument supplied to the macros is a pointer to
+ * a stat structure.  The macro shall evaluate to a non-zero value if
+ * the specified object is implemented as a distinct file type and the
+ * specified file type is contained in the stat structure referenced by
+ * buf.  Otherwise, the macro shall evaluate to zero.
+ *
+ * NOTE:	The current implementation does not do this, although
+ *		this may change in future revisions, and co currently only
+ *		provides these macros to ensure source compatability with
+ *		implementations which do.
+ */
+#define S_TYPEISMQ(buf)         (0)     /* Test for a message queue */
+#define S_TYPEISSEM(buf)        (0)     /* Test for a semaphore */
+#define S_TYPEISSHM(buf)        (0)     /* Test for a shared memory object */
+
+/*
+ * [TYM] The implementation may implement typed memory objects as distinct
+ * file types, and the following macro shall test whether a file is of the
+ * specified type.  The value of the buf argument supplied to the macros is
+ * a pointer to a stat structure.  The macro shall evaluate to a non-zero
+ * value if the specified object is implemented as a distinct file type and
+ * the specified file type is contained in the stat structure referenced by
+ * buf.  Otherwise, the macro shall evaluate to zero.
+ *
+ * NOTE:	The current implementation does not do this, although
+ *		this may change in future revisions, and co currently only
+ *		provides this macro to ensure source compatability with
+ *		implementations which do.
+ */
+#define S_TYPEISTMO(buf)        (0)     /* Test for a typed memory object */
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define ACCESSPERMS     (S_IRWXU|S_IRWXG|S_IRWXO)       /* 0777 */
+                                                        /* 7777 */
+#define ALLPERMS        (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
+/* 0666 */
+#define DEFFILEMODE     (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
+
+#define S_BLKSIZE       512             /* block size used in the stat struct */
+
+/*
+ * Definitions of flags stored in file flags word.
+ *
+ * Super-user and owner changeable flags.
+ */
+#define UF_SETTABLE     0x0000ffff      /* mask of owner changeable flags */
+#define UF_NODUMP       0x00000001      /* do not dump file */
+#define UF_IMMUTABLE    0x00000002      /* file may not be changed */
+#define UF_APPEND       0x00000004      /* writes to file may only append */
+#define UF_OPAQUE       0x00000008      /* directory is opaque wrt. union */
+/*
+ * The following bit is reserved for FreeBSD.  It is not implemented
+ * in Mac OS X.
+ */
+/* #define UF_NOUNLINK	0x00000010 */	/* file may not be removed or renamed */
+#define UF_COMPRESSED   0x00000020      /* file is compressed (some file-systems) */
+
+/* UF_TRACKED is used for dealing with document IDs.  We no longer issue
+ *  notifications for deletes or renames for files which have UF_TRACKED set. */
+#define UF_TRACKED              0x00000040
+
+#define UF_DATAVAULT    0x00000080      /* entitlement required for reading */
+                                        /* and writing */
+
+/* Bits 0x0100 through 0x4000 are currently undefined. */
+#define UF_HIDDEN       0x00008000      /* hint that this item should not be */
+                                        /* displayed in a GUI */
+/*
+ * Super-user changeable flags.
+ */
+#define SF_SUPPORTED    0x009f0000      /* mask of superuser supported flags */
+#define SF_SETTABLE     0x3fff0000      /* mask of superuser changeable flags */
+#define SF_SYNTHETIC    0xc0000000      /* mask of system read-only synthetic flags */
+#define SF_ARCHIVED     0x00010000      /* file is archived */
+#define SF_IMMUTABLE    0x00020000      /* file may not be changed */
+#define SF_APPEND       0x00040000      /* writes to file may only append */
+#define SF_RESTRICTED   0x00080000      /* entitlement required for writing */
+#define SF_NOUNLINK     0x00100000      /* Item may not be removed, renamed or mounted on */
+
+/*
+ * The following two bits are reserved for FreeBSD.  They are not
+ * implemented in Mac OS X.
+ */
+/* #define SF_SNAPSHOT	0x00200000 */	/* snapshot inode */
+/* NOTE: There is no SF_HIDDEN bit. */
+
+#define SF_FIRMLINK     0x00800000      /* file is a firmlink */
+
+/*
+ * Synthetic flags.
+ *
+ * These are read-only.  We keep them out of SF_SUPPORTED so that
+ * attempts to set them will fail.
+ */
+#define SF_DATALESS     0x40000000     /* file is dataless object */
+
+
+#endif
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/*
+ * Extended flags ("EF") returned by ATTR_CMNEXT_EXT_FLAGS from getattrlist/getattrlistbulk
+ */
+#define EF_MAY_SHARE_BLOCKS     0x00000001      /* file may share blocks with another file */
+#define EF_NO_XATTRS            0x00000002      /* file has no xattrs at all */
+#define EF_IS_SYNC_ROOT         0x00000004      /* file is a sync root for iCloud */
+#define EF_IS_PURGEABLE         0x00000008      /* file is purgeable */
+#define EF_IS_SPARSE            0x00000010      /* file has at least one sparse region */
+#define EF_IS_SYNTHETIC         0x00000020      /* a synthetic directory/symlink */
+#endif
+
+
+
+__BEGIN_DECLS
+/* [XSI] */
+int     chmod(const char *, mode_t) __DARWIN_ALIAS(chmod);
+int     fchmod(int, mode_t) __DARWIN_ALIAS(fchmod);
+int     fstat(int, struct stat *) __DARWIN_INODE64(fstat);
+int     lstat(const char *, struct stat *) __DARWIN_INODE64(lstat);
+int     mkdir(const char *, mode_t);
+int     mkfifo(const char *, mode_t);
+int     stat(const char *, struct stat *) __DARWIN_INODE64(stat);
+int     mknod(const char *, mode_t, dev_t);
+mode_t  umask(mode_t);
+
+#if __DARWIN_C_LEVEL >= 200809L
+int     fchmodat(int, const char *, mode_t, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     fstatat(int, const char *, struct stat *, int) __DARWIN_INODE64(fstatat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     mkdirat(int, const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     mkfifoat(int, const char *, mode_t) __API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+int     mknodat(int, const char *, mode_t, dev_t) __API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+
+#define UTIME_NOW       -1
+#define UTIME_OMIT      -2
+
+int     futimens(int __fd, const struct timespec __times[2]) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+int     utimensat(int __fd, const char *__path, const struct timespec __times[2],
+    int __flag) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0));
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include 
+
+int     chflags(const char *, __uint32_t);
+int     chmodx_np(const char *, filesec_t);
+int     fchflags(int, __uint32_t);
+int     fchmodx_np(int, filesec_t);
+int     fstatx_np(int, struct stat *, filesec_t) __DARWIN_INODE64(fstatx_np);
+int     lchflags(const char *, __uint32_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int     lchmod(const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int     lstatx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(lstatx_np);
+int     mkdirx_np(const char *, filesec_t);
+int     mkfifox_np(const char *, filesec_t);
+int     statx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(statx_np);
+int     umaskx_np(filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+
+#if !__DARWIN_ONLY_64_BIT_INO_T
+/* The following deprecated routines are simillar to stat and friends except provide struct stat64 instead of struct stat  */
+int     fstatx64_np(int, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     lstatx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     statx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     fstat64(int, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     lstat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+int     stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
+#endif /* !__DARWIN_ONLY_64_BIT_INO_T */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+__END_DECLS
+#endif /* !_SYS_STAT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/sysctl.h b/lib/libc/include/any-macos.13-any/sys/sysctl.h
new file mode 100644
index 0000000000000000000000000000000000000000..eebee35881729524ddc5ea32559471839496b358
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/sysctl.h
@@ -0,0 +1,803 @@
+/*
+ * Copyright (c) 2000-2021 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Mike Karels at Berkeley Software Design, Inc.
+ *
+ * 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.
+ *
+ *	@(#)sysctl.h	8.1 (Berkeley) 6/2/93
+ */
+/*
+ * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
+ * support for mandatory and extensible security protections.  This notice
+ * is included in support of clause 2.2 (b) of the Apple Public License,
+ * Version 2.0.
+ */
+
+#ifndef _SYS_SYSCTL_H_
+#define _SYS_SYSCTL_H_
+
+/*
+ * These are for the eproc structure defined below.
+ */
+#include 
+
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+/*
+ * Definitions for sysctl call.  The sysctl call uses a hierarchical name
+ * for objects that can be examined or modified.  The name is expressed as
+ * a sequence of integers.  Like a file path name, the meaning of each
+ * component depends on its place in the hierarchy.  The top-level and kern
+ * identifiers are defined here, and other identifiers are defined in the
+ * respective subsystem header files.
+ */
+
+#define CTL_MAXNAME     12      /* largest number of components supported */
+
+/*
+ * Each subsystem defined by sysctl defines a list of variables
+ * for that subsystem. Each name is either a node with further
+ * levels defined below it, or it is a leaf of some particular
+ * type given below. Each sysctl level defines a set of name/type
+ * pairs to be used by sysctl(1) in manipulating the subsystem.
+ *
+ * When declaring new sysctl names, use the CTLFLAG_LOCKED flag in the
+ * type to indicate that all necessary locking will be handled
+ * within the sysctl.
+ *
+ * Any sysctl defined without CTLFLAG_LOCKED is considered legacy
+ * and will be protected by a global mutex.
+ *
+ * Note:	This is not optimal, so it is best to handle locking
+ *		yourself, if you are able to do so.  A simple design
+ *		pattern for use to avoid in a single function known
+ *		to potentially be in the paging path ot doing a DMA
+ *		to physical memory in a user space process is:
+ *
+ *			lock
+ *			perform operation vs. local buffer
+ *			unlock
+ *			SYSCTL_OUT(rey, local buffer, length)
+ *
+ *		...this assumes you are not using a deep call graph
+ *		or are unable to pass a local buffer address as a
+ *		parameter into your deep call graph.
+ *
+ *		Note that very large user buffers can fail the wire
+ *		if to do so would require more physical pages than
+ *		are available (the caller will get an ENOMEM error,
+ *		see sysctl_mem_hold() for details).
+ */
+struct ctlname {
+	char    *ctl_name;      /* subsystem name */
+	int     ctl_type;       /* type of name */
+};
+
+#define CTLTYPE             0xf             /* Mask for the type */
+#define CTLTYPE_NODE        1               /* name is a node */
+#define CTLTYPE_INT         2               /* name describes an integer */
+#define CTLTYPE_STRING      3               /* name describes a string */
+#define CTLTYPE_QUAD        4               /* name describes a 64-bit number */
+#define CTLTYPE_OPAQUE      5               /* name describes a structure */
+#define CTLTYPE_STRUCT      CTLTYPE_OPAQUE  /* name describes a structure */
+
+#define CTLFLAG_RD          0x80000000      /* Allow reads of variable */
+#define CTLFLAG_WR          0x40000000      /* Allow writes to the variable */
+#define CTLFLAG_RW          (CTLFLAG_RD|CTLFLAG_WR)
+#define CTLFLAG_NOLOCK      0x20000000      /* XXX Don't Lock */
+#define CTLFLAG_ANYBODY     0x10000000      /* All users can set this var */
+#define CTLFLAG_SECURE      0x08000000      /* Permit set only if securelevel<=0 */
+#define CTLFLAG_MASKED      0x04000000      /* deprecated variable, do not display */
+#define CTLFLAG_NOAUTO      0x02000000      /* do not auto-register */
+#define CTLFLAG_KERN        0x01000000      /* valid inside the kernel */
+#define CTLFLAG_LOCKED      0x00800000      /* node will handle locking itself */
+#define CTLFLAG_OID2        0x00400000      /* struct sysctl_oid has version info */
+#define CTLFLAG_EXPERIMENT 0x00100000 /* Allows writing w/ the trial experiment entitlement. */
+
+/*
+ * USE THIS instead of a hardwired number from the categories below
+ * to get dynamically assigned sysctl entries using the linker-set
+ * technology. This is the way nearly all new sysctl variables should
+ * be implemented.
+ *
+ * e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, "");
+ *
+ * Note that linker set technology will automatically register all nodes
+ * declared like this on kernel initialization, UNLESS they are defined
+ * in I/O-Kit. In this case, you have to call sysctl_register_oid()
+ * manually - just like in a KEXT.
+ */
+#define OID_AUTO              (-1)
+#define OID_AUTO_START        100 /* conventional */
+
+
+#define SYSCTL_DEF_ENABLED
+
+#ifdef SYSCTL_DEF_ENABLED
+/*
+ * Top-level identifiers
+ */
+#define CTL_UNSPEC      0               /* unused */
+#define CTL_KERN        1               /* "high kernel": proc, limits */
+#define CTL_VM          2               /* virtual memory */
+#define CTL_VFS         3               /* file system, mount type is next */
+#define CTL_NET         4               /* network, see socket.h */
+#define CTL_DEBUG       5               /* debugging parameters */
+#define CTL_HW          6               /* generic cpu/io */
+#define CTL_MACHDEP     7               /* machine dependent */
+#define CTL_USER        8               /* user-level */
+#define CTL_MAXID       9               /* number of valid top-level ids */
+
+#define CTL_NAMES { \
+	{ 0, 0 }, \
+	{ "kern", CTLTYPE_NODE }, \
+	{ "vm", CTLTYPE_NODE }, \
+	{ "vfs", CTLTYPE_NODE }, \
+	{ "net", CTLTYPE_NODE }, \
+	{ "debug", CTLTYPE_NODE }, \
+	{ "hw", CTLTYPE_NODE }, \
+	{ "machdep", CTLTYPE_NODE }, \
+	{ "user", CTLTYPE_NODE }, \
+}
+
+/*
+ * CTL_KERN identifiers
+ */
+#define KERN_OSTYPE              1      /* string: system version */
+#define KERN_OSRELEASE           2      /* string: system release */
+#define KERN_OSREV               3      /* int: system revision */
+#define KERN_VERSION             4      /* string: compile time info */
+#define KERN_MAXVNODES           5      /* int: max vnodes */
+#define KERN_MAXPROC             6      /* int: max processes */
+#define KERN_MAXFILES            7      /* int: max open files */
+#define KERN_ARGMAX              8      /* int: max arguments to exec */
+#define KERN_SECURELVL           9      /* int: system security level */
+#define KERN_HOSTNAME           10      /* string: hostname */
+#define KERN_HOSTID             11      /* int: host identifier */
+#define KERN_CLOCKRATE          12      /* struct: struct clockrate */
+#define KERN_VNODE              13      /* struct: vnode structures */
+#define KERN_PROC               14      /* struct: process entries */
+#define KERN_FILE               15      /* struct: file entries */
+#define KERN_PROF               16      /* node: kernel profiling info */
+#define KERN_POSIX1             17      /* int: POSIX.1 version */
+#define KERN_NGROUPS            18      /* int: # of supplemental group ids */
+#define KERN_JOB_CONTROL        19      /* int: is job control available */
+#define KERN_SAVED_IDS          20      /* int: saved set-user/group-ID */
+#define KERN_BOOTTIME           21      /* struct: time kernel was booted */
+#define KERN_NISDOMAINNAME      22      /* string: YP domain name */
+#define KERN_DOMAINNAME         KERN_NISDOMAINNAME
+#define KERN_MAXPARTITIONS      23      /* int: number of partitions/disk */
+#define KERN_KDEBUG             24      /* int: kernel trace points */
+#define KERN_UPDATEINTERVAL     25      /* int: update process sleep time */
+#define KERN_OSRELDATE          26      /* int: OS release date */
+#define KERN_NTP_PLL            27      /* node: NTP PLL control */
+#define KERN_BOOTFILE           28      /* string: name of booted kernel */
+#define KERN_MAXFILESPERPROC    29      /* int: max open files per proc */
+#define KERN_MAXPROCPERUID      30      /* int: max processes per uid */
+#define KERN_DUMPDEV            31      /* dev_t: device to dump on */
+#define KERN_IPC                32      /* node: anything related to IPC */
+#define KERN_DUMMY              33      /* unused */
+#define KERN_PS_STRINGS 34      /* int: address of PS_STRINGS */
+#define KERN_USRSTACK32 35      /* int: address of USRSTACK */
+#define KERN_LOGSIGEXIT 36      /* int: do we log sigexit procs? */
+#define KERN_SYMFILE            37      /* string: kernel symbol filename */
+#define KERN_PROCARGS           38
+/* 39 was KERN_PCSAMPLES... now obsolete */
+#define KERN_NETBOOT            40      /* int: are we netbooted? 1=yes,0=no */
+/* 41 was KERN_PANICINFO : panic UI information (deprecated) */
+#define KERN_SYSV               42      /* node: System V IPC information */
+#define KERN_AFFINITY           43      /* xxx */
+#define KERN_TRANSLATE          44      /* xxx */
+#define KERN_CLASSIC            KERN_TRANSLATE  /* XXX backwards compat */
+#define KERN_EXEC               45      /* xxx */
+#define KERN_CLASSICHANDLER     KERN_EXEC /* XXX backwards compatibility */
+#define KERN_AIOMAX             46      /* int: max aio requests */
+#define KERN_AIOPROCMAX         47      /* int: max aio requests per process */
+#define KERN_AIOTHREADS         48      /* int: max aio worker threads */
+#ifdef __APPLE_API_UNSTABLE
+#define KERN_PROCARGS2          49
+#endif /* __APPLE_API_UNSTABLE */
+#define KERN_COREFILE           50      /* string: corefile format string */
+#define KERN_COREDUMP           51      /* int: whether to coredump at all */
+#define KERN_SUGID_COREDUMP     52      /* int: whether to dump SUGID cores */
+#define KERN_PROCDELAYTERM      53      /* int: set/reset current proc for delayed termination during shutdown */
+#define KERN_SHREG_PRIVATIZABLE 54      /* int: can shared regions be privatized ? */
+/* 55 was KERN_PROC_LOW_PRI_IO... now deprecated */
+#define KERN_LOW_PRI_WINDOW     56      /* int: set/reset throttle window - milliseconds */
+#define KERN_LOW_PRI_DELAY      57      /* int: set/reset throttle delay - milliseconds */
+#define KERN_POSIX              58      /* node: posix tunables */
+#define KERN_USRSTACK64         59      /* LP64 user stack query */
+#define KERN_NX_PROTECTION      60      /* int: whether no-execute protection is enabled */
+#define KERN_TFP                61      /* Task for pid settings */
+#define KERN_PROCNAME           62      /* setup process program  name(2*MAXCOMLEN) */
+#define KERN_THALTSTACK         63      /* for compat with older x86 and does nothing */
+#define KERN_SPECULATIVE_READS  64      /* int: whether speculative reads are disabled */
+#define KERN_OSVERSION          65      /* for build number i.e. 9A127 */
+#define KERN_SAFEBOOT           66      /* are we booted safe? */
+/*	67 was KERN_LCTX (login context) */
+#define KERN_RAGEVNODE          68
+#define KERN_TTY                69      /* node: tty settings */
+#define KERN_CHECKOPENEVT       70      /* spi: check the VOPENEVT flag on vnodes at open time */
+#define KERN_THREADNAME         71      /* set/get thread name */
+#define KERN_MAXID              72      /* number of valid kern ids */
+/*
+ * Don't add any more sysctls like this.  Instead, use the SYSCTL_*() macros
+ * and OID_AUTO. This will have the added benefit of not having to recompile
+ * sysctl(8) to pick up your changes.
+ */
+
+
+#if defined(__LP64__)
+#define KERN_USRSTACK KERN_USRSTACK64
+#else
+#define KERN_USRSTACK KERN_USRSTACK32
+#endif
+
+
+/* KERN_RAGEVNODE types */
+#define KERN_RAGE_PROC          1
+#define KERN_RAGE_THREAD        2
+#define KERN_UNRAGE_PROC        3
+#define KERN_UNRAGE_THREAD      4
+
+/* KERN_OPENEVT types */
+#define KERN_OPENEVT_PROC     1
+#define KERN_UNOPENEVT_PROC   2
+
+/* KERN_TFP types */
+#define KERN_TFP_POLICY                 1
+
+/* KERN_TFP_POLICY values . All policies allow task port for self */
+#define KERN_TFP_POLICY_DENY            0       /* Deny Mode: None allowed except privileged */
+#define KERN_TFP_POLICY_DEFAULT         2       /* Default  Mode: related ones allowed and upcall authentication */
+
+/* KERN_KDEBUG types */
+#define KERN_KDEFLAGS         1
+#define KERN_KDDFLAGS         2
+#define KERN_KDENABLE         3
+#define KERN_KDSETBUF         4
+#define KERN_KDGETBUF         5
+#define KERN_KDSETUP          6
+#define KERN_KDREMOVE         7
+#define KERN_KDSETREG         8
+#define KERN_KDGETREG         9
+#define KERN_KDREADTR         10
+#define KERN_KDPIDTR          11
+#define KERN_KDTHRMAP         12
+/* Don't use 13 as it is overloaded with KERN_VNODE */
+#define KERN_KDPIDEX          14
+#define KERN_KDSETRTCDEC      15 /* obsolete */
+#define KERN_KDGETENTROPY     16 /* obsolete */
+#define KERN_KDWRITETR        17
+#define KERN_KDWRITEMAP       18
+#define KERN_KDTEST           19
+/* 20 unused */
+#define KERN_KDREADCURTHRMAP  21
+#define KERN_KDSET_TYPEFILTER 22
+#define KERN_KDBUFWAIT        23
+#define KERN_KDCPUMAP         24
+#define KERN_KDCPUMAP_EXT     25
+#define KERN_KDSET_EDM        26
+#define KERN_KDGET_EDM        27
+#define KERN_KDWRITETR_V3     28
+
+#define CTL_KERN_NAMES { \
+	{ 0, 0 }, \
+	{ "ostype", CTLTYPE_STRING }, \
+	{ "osrelease", CTLTYPE_STRING }, \
+	{ "osrevision", CTLTYPE_INT }, \
+	{ "version", CTLTYPE_STRING }, \
+	{ "maxvnodes", CTLTYPE_INT }, \
+	{ "maxproc", CTLTYPE_INT }, \
+	{ "maxfiles", CTLTYPE_INT }, \
+	{ "argmax", CTLTYPE_INT }, \
+	{ "securelevel", CTLTYPE_INT }, \
+	{ "hostname", CTLTYPE_STRING }, \
+	{ "hostid", CTLTYPE_INT }, \
+	{ "clockrate", CTLTYPE_STRUCT }, \
+	{ "vnode", CTLTYPE_STRUCT }, \
+	{ "proc", CTLTYPE_STRUCT }, \
+	{ "file", CTLTYPE_STRUCT }, \
+	{ "profiling", CTLTYPE_NODE }, \
+	{ "posix1version", CTLTYPE_INT }, \
+	{ "ngroups", CTLTYPE_INT }, \
+	{ "job_control", CTLTYPE_INT }, \
+	{ "saved_ids", CTLTYPE_INT }, \
+	{ "boottime", CTLTYPE_STRUCT }, \
+	{ "nisdomainname", CTLTYPE_STRING }, \
+	{ "maxpartitions", CTLTYPE_INT }, \
+	{ "kdebug", CTLTYPE_INT }, \
+	{ "update", CTLTYPE_INT }, \
+	{ "osreldate", CTLTYPE_INT }, \
+	{ "ntp_pll", CTLTYPE_NODE }, \
+	{ "bootfile", CTLTYPE_STRING }, \
+	{ "maxfilesperproc", CTLTYPE_INT }, \
+	{ "maxprocperuid", CTLTYPE_INT }, \
+	{ "dumpdev", CTLTYPE_STRUCT }, /* we lie; don't print as int */ \
+	{ "ipc", CTLTYPE_NODE }, \
+	{ "dummy", CTLTYPE_INT }, \
+	{ "dummy", CTLTYPE_INT }, \
+	{ "usrstack", CTLTYPE_INT }, \
+	{ "logsigexit", CTLTYPE_INT }, \
+	{ "symfile",CTLTYPE_STRING },\
+	{ "procargs",CTLTYPE_STRUCT },\
+	{ "dummy", CTLTYPE_INT },               /* deprecated pcsamples */ \
+	{ "netboot", CTLTYPE_INT }, \
+	{ "dummy", CTLTYPE_INT },               /* deprecated: panicinfo */ \
+	{ "sysv", CTLTYPE_NODE }, \
+	{ "dummy", CTLTYPE_INT }, \
+	{ "dummy", CTLTYPE_INT }, \
+	{ "exec", CTLTYPE_NODE }, \
+	{ "aiomax", CTLTYPE_INT }, \
+	{ "aioprocmax", CTLTYPE_INT }, \
+	{ "aiothreads", CTLTYPE_INT }, \
+	{ "procargs2",CTLTYPE_STRUCT }, \
+	{ "corefile",CTLTYPE_STRING }, \
+	{ "coredump", CTLTYPE_INT }, \
+	{ "sugid_coredump", CTLTYPE_INT }, \
+	{ "delayterm", CTLTYPE_INT }, \
+	{ "shreg_private", CTLTYPE_INT }, \
+	{ "proc_low_pri_io", CTLTYPE_INT }, \
+	{ "low_pri_window", CTLTYPE_INT }, \
+	{ "low_pri_delay", CTLTYPE_INT }, \
+	{ "posix", CTLTYPE_NODE }, \
+	{ "usrstack64", CTLTYPE_QUAD }, \
+	{ "nx", CTLTYPE_INT }, \
+	{ "tfp", CTLTYPE_NODE }, \
+	{ "procname", CTLTYPE_STRING }, \
+	{ "threadsigaltstack", CTLTYPE_INT }, \
+	{ "speculative_reads_disabled", CTLTYPE_INT }, \
+	{ "osversion", CTLTYPE_STRING }, \
+	{ "safeboot", CTLTYPE_INT }, \
+	{ "dummy", CTLTYPE_INT },               /* deprecated: lctx */ \
+	{ "rage_vnode", CTLTYPE_INT }, \
+	{ "tty", CTLTYPE_NODE },        \
+	{ "check_openevt", CTLTYPE_INT }, \
+	{ "thread_name", CTLTYPE_STRING } \
+}
+
+/*
+ * CTL_VFS identifiers
+ */
+#define CTL_VFS_NAMES { \
+	{ "vfsconf", CTLTYPE_STRUCT } \
+}
+
+/*
+ * KERN_PROC subtypes
+ */
+#define KERN_PROC_ALL           0       /* everything */
+#define KERN_PROC_PID           1       /* by process id */
+#define KERN_PROC_PGRP          2       /* by process group id */
+#define KERN_PROC_SESSION       3       /* by session of pid */
+#define KERN_PROC_TTY           4       /* by controlling tty */
+#define KERN_PROC_UID           5       /* by effective uid */
+#define KERN_PROC_RUID          6       /* by real uid */
+#define KERN_PROC_LCID          7       /* by login context id */
+
+/*
+ * KERN_VFSNSPACE subtypes
+ */
+#define KERN_VFSNSPACE_HANDLE_PROC              1
+#define KERN_VFSNSPACE_UNHANDLE_PROC    2
+
+/*
+ * KERN_PROC subtype ops return arrays of augmented proc structures:
+ */
+
+struct _pcred {
+	char    pc_lock[72];            /* opaque content */
+	struct  ucred *pc_ucred;        /* Current credentials. */
+	uid_t   p_ruid;                 /* Real user id. */
+	uid_t   p_svuid;                /* Saved effective user id. */
+	gid_t   p_rgid;                 /* Real group id. */
+	gid_t   p_svgid;                /* Saved effective group id. */
+	int     p_refcnt;               /* Number of references. */
+};
+
+struct _ucred {
+	int32_t cr_ref;                 /* reference count */
+	uid_t   cr_uid;                 /* effective user id */
+	short   cr_ngroups;             /* number of groups */
+	gid_t   cr_groups[NGROUPS];     /* groups */
+};
+
+struct kinfo_proc {
+	struct  extern_proc kp_proc;                    /* proc structure */
+	struct  eproc {
+		struct  proc *e_paddr;          /* address of proc */
+		struct  session *e_sess;        /* session pointer */
+		struct  _pcred e_pcred;         /* process credentials */
+		struct  _ucred e_ucred;         /* current credentials */
+		struct   vmspace e_vm;          /* address space */
+		pid_t   e_ppid;                 /* parent process id */
+		pid_t   e_pgid;                 /* process group id */
+		short   e_jobc;                 /* job control counter */
+		dev_t   e_tdev;                 /* controlling tty dev */
+		pid_t   e_tpgid;                /* tty process group id */
+		struct  session *e_tsess;       /* tty session pointer */
+#define WMESGLEN        7
+		char    e_wmesg[WMESGLEN + 1];    /* wchan message */
+		segsz_t e_xsize;                /* text size */
+		short   e_xrssize;              /* text rss */
+		short   e_xccount;              /* text references */
+		short   e_xswrss;
+		int32_t e_flag;
+#define EPROC_CTTY      0x01    /* controlling tty vnode active */
+#define EPROC_SLEADER   0x02    /* session leader */
+#define COMAPT_MAXLOGNAME       12
+		char    e_login[COMAPT_MAXLOGNAME];     /* short setlogin() name */
+		int32_t e_spare[4];
+	} kp_eproc;
+};
+
+
+
+/*
+ * KERN_IPC identifiers
+ */
+#define KIPC_MAXSOCKBUF         1       /* int: max size of a socket buffer */
+#define KIPC_SOCKBUF_WASTE      2       /* int: wastage factor in sockbuf */
+#define KIPC_SOMAXCONN          3       /* int: max length of connection q */
+#define KIPC_MAX_LINKHDR        4       /* int: max length of link header */
+#define KIPC_MAX_PROTOHDR       5       /* int: max length of network header */
+#define KIPC_MAX_HDR            6       /* int: max total length of headers */
+#define KIPC_MAX_DATALEN        7       /* int: max length of data? */
+#define KIPC_MBSTAT             8       /* struct: mbuf usage statistics */
+#define KIPC_NMBCLUSTERS        9       /* int: maximum mbuf clusters */
+#define KIPC_SOQLIMITCOMPAT     10      /* int: socket queue limit */
+
+/*
+ * CTL_VM identifiers
+ */
+#define VM_METER        1               /* struct vmmeter */
+#define VM_LOADAVG      2               /* struct loadavg */
+/*
+ * Note: "3" was skipped sometime ago and should probably remain unused
+ * to avoid any new entry from being accepted by older kernels...
+ */
+#define VM_MACHFACTOR   4               /* struct loadavg with mach factor*/
+#define VM_SWAPUSAGE    5               /* total swap usage */
+#define VM_MAXID        6               /* number of valid vm ids */
+
+#define CTL_VM_NAMES { \
+	{ 0, 0 }, \
+	{ "vmmeter", CTLTYPE_STRUCT }, \
+	{ "loadavg", CTLTYPE_STRUCT }, \
+	{ 0, 0 }, /* placeholder for "3" (see comment above) */ \
+	{ "dummy", CTLTYPE_INT }, \
+	{ "swapusage", CTLTYPE_STRUCT } \
+}
+
+struct xsw_usage {
+	u_int64_t       xsu_total;
+	u_int64_t       xsu_avail;
+	u_int64_t       xsu_used;
+	u_int32_t       xsu_pagesize;
+	boolean_t       xsu_encrypted;
+};
+
+#ifdef __APPLE_API_PRIVATE
+/* Load average structure.  Use of fixpt_t assume  in scope. */
+/* XXX perhaps we should protect fixpt_t, and define it here (or discard it) */
+struct loadavg {
+	fixpt_t ldavg[3];
+	long    fscale;
+};
+extern struct loadavg averunnable;
+#define LSCALE  1000            /* scaling for "fixed point" arithmetic */
+
+#endif /* __APPLE_API_PRIVATE */
+
+
+/*
+ * CTL_HW identifiers
+ */
+#define HW_MACHINE       1              /* string: machine class (deprecated: use HW_PRODUCT) */
+#define HW_MODEL         2              /* string: specific machine model (deprecated: use HW_TARGET) */
+#define HW_NCPU          3              /* int: number of cpus */
+#define HW_BYTEORDER     4              /* int: machine byte order */
+#define HW_PHYSMEM       5              /* int: total memory */
+#define HW_USERMEM       6              /* int: non-kernel memory */
+#define HW_PAGESIZE      7              /* int: software page size */
+#define HW_DISKNAMES     8              /* strings: disk drive names */
+#define HW_DISKSTATS     9              /* struct: diskstats[] */
+#define HW_EPOCH        10              /* int: 0 for Legacy, else NewWorld */
+#define HW_FLOATINGPT   11              /* int: has HW floating point? */
+#define HW_MACHINE_ARCH 12              /* string: machine architecture */
+#define HW_VECTORUNIT   13              /* int: has HW vector unit? */
+#define HW_BUS_FREQ     14              /* int: Bus Frequency */
+#define HW_CPU_FREQ     15              /* int: CPU Frequency */
+#define HW_CACHELINE    16              /* int: Cache Line Size in Bytes */
+#define HW_L1ICACHESIZE 17              /* int: L1 I Cache Size in Bytes */
+#define HW_L1DCACHESIZE 18              /* int: L1 D Cache Size in Bytes */
+#define HW_L2SETTINGS   19              /* int: L2 Cache Settings */
+#define HW_L2CACHESIZE  20              /* int: L2 Cache Size in Bytes */
+#define HW_L3SETTINGS   21              /* int: L3 Cache Settings */
+#define HW_L3CACHESIZE  22              /* int: L3 Cache Size in Bytes */
+#define HW_TB_FREQ      23              /* int: Bus Frequency */
+#define HW_MEMSIZE      24              /* uint64_t: physical ram size */
+#define HW_AVAILCPU     25              /* int: number of available CPUs */
+#define HW_TARGET       26              /* string: model identifier */
+#define HW_PRODUCT      27              /* string: product identifier */
+#define HW_MAXID        28              /* number of valid hw ids */
+
+#define CTL_HW_NAMES { \
+	{ 0, 0 }, \
+	{ "machine", CTLTYPE_STRING },          /* Deprecated: use hw.product */ \
+	{ "model", CTLTYPE_STRING },            /* Deprecated: use hw.target */ \
+	{ "ncpu", CTLTYPE_INT }, \
+	{ "byteorder", CTLTYPE_INT }, \
+	{ "physmem", CTLTYPE_INT }, \
+	{ "usermem", CTLTYPE_INT }, \
+	{ "pagesize", CTLTYPE_INT }, \
+	{ "disknames", CTLTYPE_STRUCT }, \
+	{ "diskstats", CTLTYPE_STRUCT }, \
+	{ "epoch", CTLTYPE_INT }, \
+	{ "floatingpoint", CTLTYPE_INT }, \
+	{ "machinearch", CTLTYPE_STRING }, \
+	{ "vectorunit", CTLTYPE_INT }, \
+	{ "busfrequency", CTLTYPE_INT }, \
+	{ "cpufrequency", CTLTYPE_INT }, \
+	{ "cachelinesize", CTLTYPE_INT }, \
+	{ "l1icachesize", CTLTYPE_INT }, \
+	{ "l1dcachesize", CTLTYPE_INT }, \
+	{ "l2settings", CTLTYPE_INT }, \
+	{ "l2cachesize", CTLTYPE_INT }, \
+	{ "l3settings", CTLTYPE_INT }, \
+	{ "l3cachesize", CTLTYPE_INT }, \
+	{ "tbfrequency", CTLTYPE_INT }, \
+	{ "memsize", CTLTYPE_QUAD }, \
+	{ "availcpu", CTLTYPE_INT }, \
+	{ "target", CTLTYPE_STRING }, \
+	{ "product", CTLTYPE_STRING }, \
+}
+
+/*
+ * XXX This information should be moved to the man page.
+ *
+ * These are the support HW selectors for sysctlbyname.  Parameters that are byte counts or frequencies are 64 bit numbers.
+ * All other parameters are 32 bit numbers.
+ *
+ *   hw.memsize                - The number of bytes of physical memory in the system.
+ *
+ *   hw.ncpu                   - The maximum number of processors that could be available this boot.
+ *                               Use this value for sizing of static per processor arrays; i.e. processor load statistics.
+ *
+ *   hw.activecpu              - The number of processors currently available for executing threads.
+ *                               Use this number to determine the number threads to create in SMP aware applications.
+ *                               This number can change when power management modes are changed.
+ *
+ *   hw.physicalcpu            - The number of physical processors available in the current power management mode.
+ *   hw.physicalcpu_max        - The maximum number of physical processors that could be available this boot
+ *
+ *   hw.logicalcpu             - The number of logical processors available in the current power management mode.
+ *   hw.logicalcpu_max         - The maximum number of logical processors that could be available this boot
+ *
+ *   hw.tbfrequency            - This gives the time base frequency used by the OS and is the basis of all timing services.
+ *                               In general is is better to use mach's or higher level timing services, but this value
+ *                               is needed to convert the PPC Time Base registers to real time.
+ *
+ *   hw.cpufrequency           - These values provide the current, min and max cpu frequency.  The min and max are for
+ *   hw.cpufrequency_max       - all power management modes.  The current frequency is the max frequency in the current mode.
+ *   hw.cpufrequency_min       - All frequencies are in Hz.
+ *
+ *   hw.busfrequency           - These values provide the current, min and max bus frequency.  The min and max are for
+ *   hw.busfrequency_max       - all power management modes.  The current frequency is the max frequency in the current mode.
+ *   hw.busfrequency_min       - All frequencies are in Hz.
+ *
+ *   hw.cputype                - These values provide the mach-o cpu type and subtype.  A complete list is in 
+ *   hw.cpusubtype             - These values should be used to determine what processor family the running cpu is from so that
+ *                               the best binary can be chosen, or the best dynamic code generated.  They should not be used
+ *                               to determine if a given processor feature is available.
+ *   hw.cputhreadtype          - This value will be present if the processor supports threads.  Like hw.cpusubtype this selector
+ *                               should not be used to infer features, and only used to name the processors thread architecture.
+ *                               The values are defined in 
+ *
+ *   hw.byteorder              - Gives the byte order of the processor.  4321 for big endian, 1234 for little.
+ *
+ *   hw.pagesize               - Gives the size in bytes of the pages used by the processor and VM system.
+ *
+ *   hw.cachelinesize          - Gives the size in bytes of the processor's cache lines.
+ *                               This value should be use to control the strides of loops that use cache control instructions
+ *                               like dcbz, dcbt or dcbst.
+ *
+ *   hw.l1dcachesize           - These values provide the size in bytes of the L1, L2 and L3 caches.  If a cache is not present
+ *   hw.l1icachesize           - then the selector will return and error.
+ *   hw.l2cachesize            -
+ *   hw.l3cachesize            -
+ *
+ *   hw.nperflevels            - Number of core types in the system. See the parameters below, which can be used to get
+ *                             - information associated with a specific perf level.
+ *
+ *   The following parameters apply to perflevel N, where N is a number between 0 and the number of core types in the system minus one.
+ *   perflevel 0 always refers to the highest performance core type in the system.
+ *
+ *   hw.perflevelN.physicalcpu      - The number of physical processors available in the current power management mode.
+ *   hw.perflevelN.physicalcpumax   - The maximum number of physical processors that could be available this boot.
+ *   hw.perflevelN.logicalcpu       - The number of logical processors available in the current power management mode.
+ *   hw.perflevelN.logicalcpumax    - The maximum number of logical processors that could be available this boot.
+ *
+ *   hw.perflevelN.l1dcachesize     - These values provide the size in bytes of the L1, L2 and L3 caches.  If a cache is not present
+ *   hw.perflevelN.l1icachesize     - then the selector will return and error.
+ *   hw.perflevelN.l2cachesize      -
+ *   hw.perflevelN.l3cachesize      -
+ *
+ *   hw.perflevelN.cpusperl2        - These values provide the number of CPUs of the same type that share L2 and L3 caches.
+ *   hw.perflevelN.cpusperl3        - If a cache is not present then the selector will return and error.
+ *
+ *   hw.perflevelN.l2perflevels     - These values provide a bitmap, where bit  number of CPUs of the same type that share L2 and L3 caches.
+ *   hw.perflevelN.l3perflevels     - If a cache is not present then the selector will return and error.
+ *
+ *   hw.packages               - Gives the number of processor packages.
+ *
+ * These are the selectors for optional processor features for specific processors.  Selectors that return errors are not support
+ * on the system.  Supported features will return 1 if they are recommended or 0 if they are supported but are not expected to help .
+ * performance.  Future versions of these selectors may return larger values as necessary so it is best to test for non zero.
+ *
+ * For PowerPC:
+ *
+ *   hw.optional.floatingpoint - Floating Point Instructions
+ *   hw.optional.altivec       - AltiVec Instructions
+ *   hw.optional.graphicsops   - Graphics Operations
+ *   hw.optional.64bitops      - 64-bit Instructions
+ *   hw.optional.fsqrt         - HW Floating Point Square Root Instruction
+ *   hw.optional.stfiwx        - Store Floating Point as Integer Word Indexed Instructions
+ *   hw.optional.dcba          - Data Cache Block Allocate Instruction
+ *   hw.optional.datastreams   - Data Streams Instructions
+ *   hw.optional.dcbtstreams   - Data Cache Block Touch Steams Instruction Form
+ *
+ * For x86 Architecture:
+ *
+ *   hw.optional.floatingpoint     - Floating Point Instructions
+ *   hw.optional.mmx               - Original MMX vector instructions
+ *   hw.optional.sse               - Streaming SIMD Extensions
+ *   hw.optional.sse2              - Streaming SIMD Extensions 2
+ *   hw.optional.sse3              - Streaming SIMD Extensions 3
+ *   hw.optional.supplementalsse3  - Supplemental Streaming SIMD Extensions 3
+ *   hw.optional.x86_64            - 64-bit support
+ */
+
+
+/*
+ * CTL_USER definitions
+ */
+#define USER_CS_PATH             1      /* string: _CS_PATH */
+#define USER_BC_BASE_MAX         2      /* int: BC_BASE_MAX */
+#define USER_BC_DIM_MAX          3      /* int: BC_DIM_MAX */
+#define USER_BC_SCALE_MAX        4      /* int: BC_SCALE_MAX */
+#define USER_BC_STRING_MAX       5      /* int: BC_STRING_MAX */
+#define USER_COLL_WEIGHTS_MAX    6      /* int: COLL_WEIGHTS_MAX */
+#define USER_EXPR_NEST_MAX       7      /* int: EXPR_NEST_MAX */
+#define USER_LINE_MAX            8      /* int: LINE_MAX */
+#define USER_RE_DUP_MAX          9      /* int: RE_DUP_MAX */
+#define USER_POSIX2_VERSION     10      /* int: POSIX2_VERSION */
+#define USER_POSIX2_C_BIND      11      /* int: POSIX2_C_BIND */
+#define USER_POSIX2_C_DEV       12      /* int: POSIX2_C_DEV */
+#define USER_POSIX2_CHAR_TERM   13      /* int: POSIX2_CHAR_TERM */
+#define USER_POSIX2_FORT_DEV    14      /* int: POSIX2_FORT_DEV */
+#define USER_POSIX2_FORT_RUN    15      /* int: POSIX2_FORT_RUN */
+#define USER_POSIX2_LOCALEDEF   16      /* int: POSIX2_LOCALEDEF */
+#define USER_POSIX2_SW_DEV      17      /* int: POSIX2_SW_DEV */
+#define USER_POSIX2_UPE         18      /* int: POSIX2_UPE */
+#define USER_STREAM_MAX         19      /* int: POSIX2_STREAM_MAX */
+#define USER_TZNAME_MAX         20      /* int: POSIX2_TZNAME_MAX */
+#define USER_MAXID              21      /* number of valid user ids */
+
+#define CTL_USER_NAMES { \
+	{ 0, 0 }, \
+	{ "cs_path", CTLTYPE_STRING }, \
+	{ "bc_base_max", CTLTYPE_INT }, \
+	{ "bc_dim_max", CTLTYPE_INT }, \
+	{ "bc_scale_max", CTLTYPE_INT }, \
+	{ "bc_string_max", CTLTYPE_INT }, \
+	{ "coll_weights_max", CTLTYPE_INT }, \
+	{ "expr_nest_max", CTLTYPE_INT }, \
+	{ "line_max", CTLTYPE_INT }, \
+	{ "re_dup_max", CTLTYPE_INT }, \
+	{ "posix2_version", CTLTYPE_INT }, \
+	{ "posix2_c_bind", CTLTYPE_INT }, \
+	{ "posix2_c_dev", CTLTYPE_INT }, \
+	{ "posix2_char_term", CTLTYPE_INT }, \
+	{ "posix2_fort_dev", CTLTYPE_INT }, \
+	{ "posix2_fort_run", CTLTYPE_INT }, \
+	{ "posix2_localedef", CTLTYPE_INT }, \
+	{ "posix2_sw_dev", CTLTYPE_INT }, \
+	{ "posix2_upe", CTLTYPE_INT }, \
+	{ "stream_max", CTLTYPE_INT }, \
+	{ "tzname_max", CTLTYPE_INT } \
+}
+
+
+
+/*
+ * CTL_DEBUG definitions
+ *
+ * Second level identifier specifies which debug variable.
+ * Third level identifier specifies which stucture component.
+ */
+#define CTL_DEBUG_NAME          0       /* string: variable name */
+#define CTL_DEBUG_VALUE         1       /* int: variable value */
+#define CTL_DEBUG_MAXID         20
+
+
+#if (CTL_MAXID != 9) || (KERN_MAXID != 72) || (VM_MAXID != 6) || (HW_MAXID != 28) || (USER_MAXID != 21) || (CTL_DEBUG_MAXID != 20)
+#error Use the SYSCTL_*() macros and OID_AUTO instead!
+#endif
+
+
+
+__BEGIN_DECLS
+int     sysctl(int *, u_int, void *, size_t *, void *, size_t);
+int     sysctlbyname(const char *, void *, size_t *, void *, size_t);
+int     sysctlnametomib(const char *, int *, size_t *);
+__END_DECLS
+
+
+
+#endif /* SYSCTL_DEF_ENABLED */
+
+
+#endif  /* !_SYS_SYSCTL_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/time.h b/lib/libc/include/any-macos.13-any/sys/time.h
new file mode 100644
index 0000000000000000000000000000000000000000..5e8da98d4b88d174b418a5162be1e1ad6fb11ba3
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/time.h
@@ -0,0 +1,210 @@
+/*
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+/* 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.
+ *
+ *	@(#)time.h	8.2 (Berkeley) 7/10/94
+ */
+
+#ifndef _SYS_TIME_H_
+#define _SYS_TIME_H_
+
+#include 
+#include 
+#include 
+
+
+/*
+ * [XSI] The fd_set type shall be defined as described in .
+ * The timespec structure shall be defined as described in 
+ */
+#include 
+#include 
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include 
+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
+
+
+#include 
+#include 
+
+/*
+ * Structure used as a parameter by getitimer(2) and setitimer(2) system
+ * calls.
+ */
+struct  itimerval {
+	struct  timeval it_interval;    /* timer interval */
+	struct  timeval it_value;       /* current value */
+};
+
+/*
+ * Names of the interval timers, and structure
+ * defining a timer setting.
+ */
+#define ITIMER_REAL     0
+#define ITIMER_VIRTUAL  1
+#define ITIMER_PROF     2
+
+/*
+ * Select uses bit masks of file descriptors in longs.  These macros
+ * manipulate such bit fields (the filesystem macros use chars).  The
+ * extra protection here is to permit application redefinition above
+ * the default size.
+ */
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include 
+
+#define TIMEVAL_TO_TIMESPEC(tv, ts) {                                   \
+	(ts)->tv_sec = (tv)->tv_sec;                                    \
+	(ts)->tv_nsec = (tv)->tv_usec * 1000;                           \
+}
+#define TIMESPEC_TO_TIMEVAL(tv, ts) {                                   \
+	(tv)->tv_sec = (ts)->tv_sec;                                    \
+	(tv)->tv_usec = (ts)->tv_nsec / 1000;                           \
+}
+
+struct timezone {
+	int     tz_minuteswest; /* minutes west of Greenwich */
+	int     tz_dsttime;     /* type of dst correction */
+};
+#define DST_NONE        0       /* not on dst */
+#define DST_USA         1       /* USA style dst */
+#define DST_AUST        2       /* Australian style dst */
+#define DST_WET         3       /* Western European dst */
+#define DST_MET         4       /* Middle European dst */
+#define DST_EET         5       /* Eastern European dst */
+#define DST_CAN         6       /* Canada */
+
+/* Operations on timevals. */
+#define timerclear(tvp)         (tvp)->tv_sec = (tvp)->tv_usec = 0
+#define timerisset(tvp)         ((tvp)->tv_sec || (tvp)->tv_usec)
+#define timercmp(tvp, uvp, cmp)                                         \
+	(((tvp)->tv_sec == (uvp)->tv_sec) ?                             \
+	    ((tvp)->tv_usec cmp (uvp)->tv_usec) :                       \
+	    ((tvp)->tv_sec cmp (uvp)->tv_sec))
+#define timeradd(tvp, uvp, vvp)                                         \
+	do {                                                            \
+	        (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;          \
+	        (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;       \
+	        if ((vvp)->tv_usec >= 1000000) {                        \
+	                (vvp)->tv_sec++;                                \
+	                (vvp)->tv_usec -= 1000000;                      \
+	        }                                                       \
+	} while (0)
+#define timersub(tvp, uvp, vvp)                                         \
+	do {                                                            \
+	        (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;          \
+	        (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;       \
+	        if ((vvp)->tv_usec < 0) {                               \
+	                (vvp)->tv_sec--;                                \
+	                (vvp)->tv_usec += 1000000;                      \
+	        }                                                       \
+	} while (0)
+
+#define timevalcmp(l, r, cmp)   timercmp(l, r, cmp) /* freebsd */
+
+/*
+ * Getkerninfo clock information structure
+ */
+struct clockinfo {
+	int     hz;             /* clock frequency */
+	int     tick;           /* micro-seconds per hz tick */
+	int     tickadj;        /* clock skew rate for adjtime() */
+	int     stathz;         /* statistics clock frequency */
+	int     profhz;         /* profiling clock frequency */
+};
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include 
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+__BEGIN_DECLS
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int     adjtime(const struct timeval *, struct timeval *);
+int     futimes(int, const struct timeval *);
+int     lutimes(const char *, const struct timeval *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
+int     settimeofday(const struct timeval *, const struct timezone *);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+int     getitimer(int, struct itimerval *);
+int     gettimeofday(struct timeval * __restrict, void * __restrict);
+
+#include         /* select() prototype */
+
+int     setitimer(int, const struct itimerval * __restrict,
+    struct itimerval * __restrict);
+int     utimes(const char *, const struct timeval *);
+
+__END_DECLS
+
+
+
+#endif /* !_SYS_TIME_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/types.h b/lib/libc/include/any-macos.13-any/sys/types.h
new file mode 100644
index 0000000000000000000000000000000000000000..a6be64c82f67786d72289f2b5a41422d2ac81bec
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/types.h
@@ -0,0 +1,235 @@
+/*
+ * Copyright (c) 2000-2021 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1982, 1986, 1991, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * 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.
+ *
+ *	@(#)types.h	8.4 (Berkeley) 1/21/94
+ */
+
+#ifndef _SYS_TYPES_H_
+#define _SYS_TYPES_H_
+
+#include 
+
+#ifndef __ASSEMBLER__
+#include 
+
+/* Machine type dependent parameters. */
+#include 
+#include 
+
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include 
+#include 
+#include 
+#ifndef _U_LONG
+typedef unsigned long           u_long;
+#define _U_LONG
+#endif
+typedef unsigned short          ushort;         /* Sys V compatibility */
+typedef unsigned int            uint;           /* Sys V compatibility */
+#endif
+
+typedef u_int64_t               u_quad_t;       /* quads */
+typedef int64_t                 quad_t;
+typedef quad_t *                qaddr_t;
+
+#include         /* core address */
+
+typedef int32_t                 daddr_t;        /* disk address */
+
+#include                   /* device number */
+
+typedef u_int32_t               fixpt_t;        /* fixed point number */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include                         /* 64bit inode number */
+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+typedef int32_t                 segsz_t;        /* segment size */
+typedef int32_t                 swblk_t;        /* swap offset */
+
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* Major, minor numbers, dev_t's. */
+#if defined(__cplusplus)
+/*
+ * These lowercase macros tend to match member functions in some C++ code,
+ * so for C++, we must use inline functions instead.
+ */
+
+static inline __int32_t
+major(__uint32_t _x)
+{
+	return (__int32_t)(((__uint32_t)_x >> 24) & 0xff);
+}
+
+static inline __int32_t
+minor(__uint32_t _x)
+{
+	return (__int32_t)((_x) & 0xffffff);
+}
+
+static inline dev_t
+makedev(__uint32_t _major, __uint32_t _minor)
+{
+	return (dev_t)(((_major) << 24) | (_minor));
+}
+
+#else   /* !__cplusplus */
+
+#define major(x)        ((int32_t)(((u_int32_t)(x) >> 24) & 0xff))
+#define minor(x)        ((int32_t)((x) & 0xffffff))
+#define makedev(x, y)    ((dev_t)(((x) << 24) | (y)))
+
+#endif  /* !__cplusplus */
+#endif  /* !_POSIX_C_SOURCE */
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include 
+#include 
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * This code is present here in order to maintain historical backward
+ * compatability, and is intended to be removed at some point in the
+ * future; please include  instead.
+ */
+#include 
+
+#define NBBY            __DARWIN_NBBY           /* bits in a byte */
+#define NFDBITS         __DARWIN_NFDBITS        /* bits per mask */
+#define howmany(x, y)   __DARWIN_howmany(x, y)  /* # y's == x bits? */
+typedef __int32_t       fd_mask;
+
+/*
+ * Select uses bit masks of file descriptors in longs.  These macros
+ * manipulate such bit fields (the filesystem macros use chars).  The
+ * extra protection here is to permit application redefinition above
+ * the default size.
+ */
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include 
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#endif /* __ASSEMBLER__ */
+
+
+#ifndef __POSIX_LIB__
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#endif /* __POSIX_LIB__ */
+
+#include 
+
+
+/* statvfs and fstatvfs */
+
+#include 
+#include 
+
+#endif /* !_SYS_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/sys/unistd.h b/lib/libc/include/any-macos.13-any/sys/unistd.h
new file mode 100644
index 0000000000000000000000000000000000000000..78c93998f79a438eeb07d5706c0af388b0fb6c5e
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/sys/unistd.h
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) 2000-2013 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*
+ * Copyright (c) 1989, 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.
+ *
+ *	@(#)unistd.h	8.2 (Berkeley) 1/7/94
+ */
+
+#ifndef _SYS_UNISTD_H_
+#define _SYS_UNISTD_H_
+
+#include 
+
+/*
+ * Although we have saved user/group IDs, we do not use them in setuid
+ * as described in POSIX 1003.1, because the feature does not work for
+ * root.  We use the saved IDs in seteuid/setegid, which are not currently
+ * part of the POSIX 1003.1 specification.
+ */
+#ifdef  _NOT_AVAILABLE
+#define _POSIX_SAVED_IDS        /* saved set-user-ID and set-group-ID */
+#endif
+
+#define _POSIX_VERSION          200112L
+#define _POSIX2_VERSION         200112L
+
+/* execution-time symbolic constants */
+/* may disable terminal special characters */
+#include 
+
+#define _POSIX_THREAD_KEYS_MAX 128
+
+/* access function */
+#define F_OK            0       /* test for existence of file */
+#define X_OK            (1<<0)  /* test for execute or search permission */
+#define W_OK            (1<<1)  /* test for write permission */
+#define R_OK            (1<<2)  /* test for read permission */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/*
+ * Extended access functions.
+ * Note that we depend on these matching the definitions in sys/kauth.h,
+ * but with the bits shifted left by 8.
+ */
+#define _READ_OK        (1<<9)  /* read file data / read directory */
+#define _WRITE_OK       (1<<10) /* write file data / add file to directory */
+#define _EXECUTE_OK     (1<<11) /* execute file / search in directory*/
+#define _DELETE_OK      (1<<12) /* delete file / delete directory */
+#define _APPEND_OK      (1<<13) /* append to file / add subdirectory to directory */
+#define _RMFILE_OK      (1<<14) /* - / remove file from directory */
+#define _RATTR_OK       (1<<15) /* read basic attributes */
+#define _WATTR_OK       (1<<16) /* write basic attributes */
+#define _REXT_OK        (1<<17) /* read extended attributes */
+#define _WEXT_OK        (1<<18) /* write extended attributes */
+#define _RPERM_OK       (1<<19) /* read permissions */
+#define _WPERM_OK       (1<<20) /* write permissions */
+#define _CHOWN_OK       (1<<21) /* change ownership */
+
+#define _ACCESS_EXTENDED_MASK (_READ_OK | _WRITE_OK | _EXECUTE_OK | \
+	                        _DELETE_OK | _APPEND_OK | \
+	                        _RMFILE_OK | _REXT_OK | \
+	                        _WEXT_OK | _RATTR_OK | _WATTR_OK | _RPERM_OK | \
+	                        _WPERM_OK | _CHOWN_OK)
+#endif
+
+/* whence values for lseek(2) */
+#include 
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+/* whence values for lseek(2); renamed by POSIX 1003.1 */
+#define L_SET           SEEK_SET
+#define L_INCR          SEEK_CUR
+#define L_XTND          SEEK_END
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+struct accessx_descriptor {
+	unsigned int ad_name_offset;
+	int ad_flags;
+	int ad_pad[2];
+};
+#define ACCESSX_MAX_DESCRIPTORS 100
+#define ACCESSX_MAX_TABLESIZE   (16 * 1024)
+#endif
+
+/* configurable pathname variables */
+#define _PC_LINK_MAX             1
+#define _PC_MAX_CANON            2
+#define _PC_MAX_INPUT            3
+#define _PC_NAME_MAX             4
+#define _PC_PATH_MAX             5
+#define _PC_PIPE_BUF             6
+#define _PC_CHOWN_RESTRICTED     7
+#define _PC_NO_TRUNC             8
+#define _PC_VDISABLE             9
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define _PC_NAME_CHARS_MAX       10
+#define _PC_CASE_SENSITIVE               11
+#define _PC_CASE_PRESERVING              12
+#define _PC_EXTENDED_SECURITY_NP        13
+#define _PC_AUTH_OPAQUE_NP      14
+#endif
+
+#define _PC_2_SYMLINKS          15      /* Symlink supported in directory */
+#define _PC_ALLOC_SIZE_MIN      16      /* Minimum storage actually allocated */
+#define _PC_ASYNC_IO            17      /* Async I/O [AIO] supported? */
+#define _PC_FILESIZEBITS        18      /* # of bits to represent file size */
+#define _PC_PRIO_IO             19      /* Priority I/O [PIO] supported? */
+#define _PC_REC_INCR_XFER_SIZE  20      /* Recommended increment for next two */
+#define _PC_REC_MAX_XFER_SIZE   21      /* Recommended max file transfer size */
+#define _PC_REC_MIN_XFER_SIZE   22      /* Recommended min file transfer size */
+#define _PC_REC_XFER_ALIGN      23      /* Recommended buffer alignment */
+#define _PC_SYMLINK_MAX         24      /* Max # of bytes in symlink name */
+#define _PC_SYNC_IO             25      /* Sync I/O [SIO] supported? */
+#define _PC_XATTR_SIZE_BITS     26      /* # of bits to represent maximum xattr size */
+#define _PC_MIN_HOLE_SIZE       27      /* Recommended minimum hole size for sparse files */
+
+/* configurable system strings */
+#define _CS_PATH                 1
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+
+#include 
+#include 
+#include 
+#include <_types/_uint64_t.h>
+#include <_types/_uint32_t.h>
+#include 
+
+__BEGIN_DECLS
+
+int     getattrlistbulk(int, void *, void *, size_t, uint64_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     getattrlistat(int, const char *, void *, void *, size_t, unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     setattrlistat(int, const char *, void *, void *, size_t, uint32_t) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+ssize_t freadlink(int, char * __restrict, size_t) __API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0));
+
+__END_DECLS
+
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if __DARWIN_C_LEVEL >= 200809L
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+__BEGIN_DECLS
+
+int     faccessat(int, const char *, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     fchownat(int, const char *, uid_t, gid_t, int)  __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     linkat(int, const char *, int, const char *, int)       __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+ssize_t readlinkat(int, const char *, char *, size_t)   __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     symlinkat(const char *, int, const char *) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+int     unlinkat(int, const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+__END_DECLS
+
+#endif /* __DARWIN_C_LEVEL >= 200809L */
+
+#endif /* !_SYS_UNISTD_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/xpc/base.h b/lib/libc/include/any-macos.13-any/xpc/base.h
new file mode 100644
index 0000000000000000000000000000000000000000..34687cb583f436388729318e77ae9acbd2013178
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/xpc/base.h
@@ -0,0 +1,244 @@
+// Copyright (c) 2009-2011 Apple Inc. All rights reserved.
+
+#ifndef __XPC_BASE_H__
+#define __XPC_BASE_H__
+
+#include 
+
+__BEGIN_DECLS
+
+#if !defined(__has_include)
+#define __has_include(x) 0
+#endif // !defined(__has_include)
+
+#if !defined(__has_attribute)
+#define __has_attribute(x) 0
+#endif // !defined(__has_attribute)
+
+#if !defined(__has_feature)
+#define __has_feature(x) 0
+#endif // !defined(__has_feature)
+
+#if !defined(__has_extension)
+#define __has_extension(x) 0
+#endif // !defined(__has_extension)
+
+#if __has_include()
+#include 
+#else // __has_include()
+#include 
+#endif // __has_include()
+
+#include 
+
+#ifndef __XPC_INDIRECT__
+#error "Please #include  instead of this file directly."
+#endif // __XPC_INDIRECT__ 
+
+#pragma mark Attribute Shims
+#ifdef __GNUC__
+#define XPC_CONSTRUCTOR __attribute__((constructor))
+#define XPC_NORETURN __attribute__((__noreturn__))
+#define XPC_NOTHROW __attribute__((__nothrow__))
+#define XPC_NONNULL1 __attribute__((__nonnull__(1)))
+#define XPC_NONNULL2 __attribute__((__nonnull__(2)))
+#define XPC_NONNULL3 __attribute__((__nonnull__(3)))
+#define XPC_NONNULL4 __attribute__((__nonnull__(4)))
+#define XPC_NONNULL5 __attribute__((__nonnull__(5)))
+#define XPC_NONNULL6 __attribute__((__nonnull__(6)))
+#define XPC_NONNULL7 __attribute__((__nonnull__(7)))
+#define XPC_NONNULL8 __attribute__((__nonnull__(8)))
+#define XPC_NONNULL9 __attribute__((__nonnull__(9)))
+#define XPC_NONNULL10 __attribute__((__nonnull__(10)))
+#define XPC_NONNULL11 __attribute__((__nonnull__(11)))
+#define XPC_NONNULL_ALL __attribute__((__nonnull__))
+#define XPC_SENTINEL __attribute__((__sentinel__))
+#define XPC_PURE __attribute__((__pure__))
+#define XPC_WARN_RESULT __attribute__((__warn_unused_result__))
+#define XPC_MALLOC __attribute__((__malloc__))
+#define XPC_UNUSED __attribute__((__unused__))
+#define XPC_USED __attribute__((__used__))
+#define XPC_PACKED __attribute__((__packed__))
+#define XPC_PRINTF(m, n) __attribute__((format(printf, m, n)))
+#define XPC_INLINE static __inline__ __attribute__((__always_inline__))
+#define XPC_NOINLINE __attribute__((noinline))
+#define XPC_NOIMPL __attribute__((unavailable))
+
+#if __has_attribute(noescape)
+#define XPC_NOESCAPE __attribute__((__noescape__))
+#else
+#define XPC_NOESCAPE
+#endif
+
+#if __has_extension(attribute_unavailable_with_message)
+#define XPC_UNAVAILABLE(m) __attribute__((unavailable(m)))
+#else // __has_extension(attribute_unavailable_with_message)
+#define XPC_UNAVAILABLE(m) XPC_NOIMPL
+#endif // __has_extension(attribute_unavailable_with_message)
+
+#define XPC_EXPORT extern __attribute__((visibility("default")))
+#define XPC_NOEXPORT __attribute__((visibility("hidden")))
+#define XPC_WEAKIMPORT extern __attribute__((weak_import))
+#define XPC_DEBUGGER_EXCL XPC_NOEXPORT XPC_USED
+#define XPC_TRANSPARENT_UNION __attribute__((transparent_union))
+#if __clang__
+#define XPC_DEPRECATED(m) __attribute__((deprecated(m)))
+#else // __clang__
+#define XPC_DEPRECATED(m) __attribute__((deprecated))
+#endif // __clang
+#ifndef XPC_TESTEXPORT
+#define XPC_TESTEXPORT XPC_NOEXPORT
+#endif // XPC_TESTEXPORT
+
+#if defined(__XPC_TEST__) && __XPC_TEST__
+#define XPC_TESTSTATIC
+#define XPC_TESTEXTERN extern
+#else // defined(__XPC_TEST__) && __XPC_TEST__
+#define XPC_TESTSTATIC static
+#endif // defined(__XPC_TEST__) && __XPC_TEST__
+
+#if __has_feature(objc_arc)
+#define XPC_GIVES_REFERENCE __strong
+#define XPC_UNRETAINED __unsafe_unretained
+#define XPC_BRIDGE(xo) ((__bridge void *)(xo))
+#define XPC_BRIDGEREF_BEGIN(xo) ((__bridge_retained void *)(xo))
+#define XPC_BRIDGEREF_BEGIN_WITH_REF(xo) ((__bridge void *)(xo))
+#define XPC_BRIDGEREF_MIDDLE(xo) ((__bridge id)(xo))
+#define XPC_BRIDGEREF_END(xo) ((__bridge_transfer id)(xo))
+#else // __has_feature(objc_arc)
+#define XPC_GIVES_REFERENCE
+#define XPC_UNRETAINED
+#define XPC_BRIDGE(xo) (xo)
+#define XPC_BRIDGEREF_BEGIN(xo) (xo)
+#define XPC_BRIDGEREF_BEGIN_WITH_REF(xo) (xo)
+#define XPC_BRIDGEREF_MIDDLE(xo) (xo)
+#define XPC_BRIDGEREF_END(xo) (xo)
+#endif // __has_feature(objc_arc)
+
+#define _xpc_unreachable() __builtin_unreachable()
+#else // __GNUC__ 
+/*! @parseOnly */
+#define XPC_CONSTRUCTOR
+/*! @parseOnly */
+#define XPC_NORETURN
+/*! @parseOnly */
+#define XPC_NOTHROW
+/*! @parseOnly */
+#define XPC_NONNULL1
+/*! @parseOnly */
+#define XPC_NONNULL2
+/*! @parseOnly */
+#define XPC_NONNULL3
+/*! @parseOnly */
+#define XPC_NONNULL4
+/*! @parseOnly */
+#define XPC_NONNULL5
+/*! @parseOnly */
+#define XPC_NONNULL6
+/*! @parseOnly */
+#define XPC_NONNULL7
+/*! @parseOnly */
+#define XPC_NONNULL8
+/*! @parseOnly */
+#define XPC_NONNULL9
+/*! @parseOnly */
+#define XPC_NONNULL10
+/*! @parseOnly */
+#define XPC_NONNULL11
+/*! @parseOnly */
+#define XPC_NONNULL(n)
+/*! @parseOnly */
+#define XPC_NONNULL_ALL
+/*! @parseOnly */
+#define XPC_SENTINEL
+/*! @parseOnly */
+#define XPC_PURE
+/*! @parseOnly */
+#define XPC_WARN_RESULT
+/*! @parseOnly */
+#define XPC_MALLOC
+/*! @parseOnly */
+#define XPC_UNUSED
+/*! @parseOnly */
+#define XPC_PACKED
+/*! @parseOnly */
+#define XPC_PRINTF(m, n)
+/*! @parseOnly */
+#define XPC_INLINE static inline
+/*! @parseOnly */
+#define XPC_NOINLINE
+/*! @parseOnly */
+#define XPC_NOIMPL
+/*! @parseOnly */
+#define XPC_EXPORT extern
+/*! @parseOnly */
+#define XPC_WEAKIMPORT
+/*! @parseOnly */
+#define XPC_DEPRECATED
+/*! @parseOnly */
+#define XPC_UNAVAILABLE(m)
+/*! @parseOnly */
+#define XPC_NOESCAPE
+#endif // __GNUC__
+
+#if __has_feature(assume_nonnull)
+#define XPC_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
+#define XPC_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
+#else
+#define XPC_ASSUME_NONNULL_BEGIN
+#define XPC_ASSUME_NONNULL_END
+#endif
+
+#if __has_feature(nullability_on_arrays)
+#define XPC_NONNULL_ARRAY _Nonnull
+#else
+#define XPC_NONNULL_ARRAY
+#endif
+
+#if defined(__has_ptrcheck) && __has_ptrcheck
+#define XPC_PTR_ASSUMES_SINGLE __ptrcheck_abi_assume_single()
+#define XPC_SINGLE __single
+#define XPC_UNSAFE_INDEXABLE __unsafe_indexable
+#define XPC_CSTRING XPC_UNSAFE_INDEXABLE
+#define XPC_SIZEDBY(N) __sized_by(N)
+#define XPC_COUNTEDBY(N) __counted_by(N)
+#define XPC_UNSAFE_FORGE_SIZED_BY(_type, _ptr, _size) \
+		__unsafe_forge_bidi_indexable(_type, _ptr, _size)
+#define XPC_UNSAFE_FORGE_SINGLE(_type, _ptr) \
+		__unsafe_forge_single(_type, _ptr)
+#else // defined(__has_ptrcheck) ** __has_ptrcheck
+#define XPC_PTR_ASSUMES_SINGLE
+#define XPC_SINGLE
+#define XPC_UNSAFE_INDEXABLE
+#define XPC_CSTRING
+#define XPC_SIZEDBY(N)
+#define XPC_COUNTEDBY(N)
+#define XPC_UNSAFE_FORGE_SIZED_BY(_type, _ptr, _size) ((_type)(_ptr))
+#define XPC_UNSAFE_FORGE_SINGLE(_type, _ptr) ((_type)(_ptr))
+#endif // defined(__has_ptrcheck) ** __has_ptrcheck
+
+#ifdef OS_CLOSED_OPTIONS
+#define XPC_FLAGS_ENUM(_name, _type, ...) \
+		OS_CLOSED_OPTIONS(_name, _type, __VA_ARGS__)
+#else // OS_CLOSED_ENUM
+#define XPC_FLAGS_ENUM(_name, _type, ...) \
+		OS_ENUM(_name, _type, __VA_ARGS__)
+#endif // OS_CLOSED_ENUM
+
+#ifdef OS_CLOSED_ENUM
+#define XPC_ENUM(_name, _type, ...) \
+		OS_CLOSED_ENUM(_name, _type, __VA_ARGS__)
+#else // OS_CLOSED_ENUM
+#define XPC_ENUM(_name, _type, ...) \
+		OS_ENUM(_name, _type, __VA_ARGS__)
+#endif // OS_CLOSED_ENUM
+
+#if __has_attribute(swift_name)
+# define XPC_SWIFT_NAME(_name) __attribute__((swift_name(_name)))
+#else
+# define XPC_SWIFT_NAME(_name) // __has_attribute(swift_name)
+#endif
+
+__END_DECLS
+
+#endif // __XPC_BASE_H__
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/xpc/connection.h b/lib/libc/include/any-macos.13-any/xpc/connection.h
new file mode 100644
index 0000000000000000000000000000000000000000..ac89af4e45e9d8fed3c682f6c9e8dafcbae1f370
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/xpc/connection.h
@@ -0,0 +1,796 @@
+#ifndef __XPC_CONNECTION_H__
+#define __XPC_CONNECTION_H__
+
+#ifndef __XPC_INDIRECT__
+#error "Please #include  instead of this file directly."
+// For HeaderDoc.
+#include 
+#endif // __XPC_INDIRECT__
+
+#ifndef __BLOCKS__
+#error "XPC connections require Blocks support."
+#endif // __BLOCKS__
+
+XPC_ASSUME_NONNULL_BEGIN
+__BEGIN_DECLS
+
+/*!
+ * @constant XPC_ERROR_CONNECTION_INTERRUPTED
+ * Will be delivered to the connection's event handler if the remote service
+ * exited. The connection is still live even in this case, and resending a
+ * message will cause the service to be launched on-demand. This error serves
+ * as a client's indication that it should resynchronize any state that it had
+ * given the service.
+ *
+ * Any messages in the queue to be sent will be unwound and canceled when this
+ * error occurs. In the case where a message waiting to be sent has a reply
+ * handler, that handler will be invoked with this error. In the context of the
+ * reply handler, this error indicates that a reply to the message will never
+ * arrive.
+ *
+ * Messages that do not have reply handlers associated with them will be
+ * silently disposed of. This error will only be given to peer connections.
+ */
+#define XPC_ERROR_CONNECTION_INTERRUPTED \
+	XPC_GLOBAL_OBJECT(_xpc_error_connection_interrupted)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+const struct _xpc_dictionary_s _xpc_error_connection_interrupted;
+
+/*!
+ * @constant XPC_ERROR_CONNECTION_INVALID
+ * Will be delivered to the connection's event handler if the named service
+ * provided to xpc_connection_create() could not be found in the XPC service
+ * namespace. The connection is useless and should be disposed of.
+ *
+ * Any messages in the queue to be sent will be unwound and canceled when this
+ * error occurs, similarly to the behavior when XPC_ERROR_CONNECTION_INTERRUPTED
+ * occurs. The only difference is that the XPC_ERROR_CONNECTION_INVALID will be
+ * given to outstanding reply handlers and the connection's event handler.
+ *
+ * This error may be given to any type of connection.
+ */
+#define XPC_ERROR_CONNECTION_INVALID \
+	XPC_GLOBAL_OBJECT(_xpc_error_connection_invalid)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+const struct _xpc_dictionary_s _xpc_error_connection_invalid;
+
+/*!
+ * @constant XPC_ERROR_TERMINATION_IMMINENT
+ * On macOS, this error will be delivered to a peer connection's event handler
+ * when the XPC runtime has determined that the program should exit and that
+ * all outstanding transactions must be wound down, and no new transactions can
+ * be opened.
+ *
+ * After this error has been delivered to the event handler, no more messages
+ * will be received by the connection. The runtime will still attempt to deliver
+ * outgoing messages, but this error should be treated as an indication that
+ * the program will exit very soon, and any outstanding business over the
+ * connection should be wrapped up as quickly as possible and the connection
+ * canceled shortly thereafter.
+ *
+ * This error will only be delivered to peer connections received through a
+ * listener or the xpc_main() event handler.
+ */
+#define XPC_ERROR_TERMINATION_IMMINENT \
+	XPC_GLOBAL_OBJECT(_xpc_error_termination_imminent)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+const struct _xpc_dictionary_s _xpc_error_termination_imminent;
+
+/*!
+ * @constant XPC_ERROR_PEER_CODE_SIGNING_REQUIREMENT
+ * On macOS, this error will be delivered to a peer connection's event handler
+ * when the XPC runtime has detected that a peer connection does not
+ * satisfy the code signing requirement specified for the connection.
+ *
+ * See {@link xpc_connection_set_peer_code_signing_requirement}
+ */
+#define XPC_ERROR_PEER_CODE_SIGNING_REQUIREMENT \
+	XPC_GLOBAL_OBJECT(_xpc_error_peer_code_signing_requirement)
+__API_AVAILABLE(macos(12.0))
+XPC_EXPORT
+const struct _xpc_dictionary_s _xpc_error_peer_code_signing_requirement;
+
+/*!
+ * @constant XPC_CONNECTION_MACH_SERVICE_LISTENER
+ * Passed to xpc_connection_create_mach_service(). This flag indicates that the
+ * caller is the listener for the named service. This flag may only be passed
+ * for services which are advertised in the process' launchd.plist(5). You may
+ * not use this flag to dynamically add services to the Mach bootstrap
+ * namespace.
+ */
+#define XPC_CONNECTION_MACH_SERVICE_LISTENER (1 << 0)
+
+/*!
+ * @constant XPC_CONNECTION_MACH_SERVICE_PRIVILEGED
+ * Passed to xpc_connection_create_mach_service(). This flag indicates that the
+ * job advertising the service name in its launchd.plist(5) should be in the
+ * privileged Mach bootstrap. This is typically accomplished by placing your
+ * launchd.plist(5) in /Library/LaunchDaemons. If specified alongside the
+ * XPC_CONNECTION_MACH_SERVICE_LISTENER flag, this flag is a no-op.
+ */
+#define XPC_CONNECTION_MACH_SERVICE_PRIVILEGED (1 << 1)
+
+/*!
+ * @typedef xpc_finalizer_f
+ * A function that is invoked when a connection is being torn down and its
+ * context needs to be freed. The sole argument is the value that was given to
+ * {@link xpc_connection_set_context} or NULL if no context has been set. It is
+ * not safe to reference the connection from within this function.
+ *
+ * @param value
+ * The context object that is to be disposed of.
+ */
+typedef void (*xpc_finalizer_t)(void * _Nullable value);
+
+/*!
+ * @function xpc_connection_create
+ * Creates a new connection object.
+ *
+ * @param name
+ * If non-NULL, the name of the service with which to connect. The returned
+ * connection will be a peer.
+ *
+ * If NULL, an anonymous listener connection will be created. You can embed the
+ * ability to create new peer connections in an endpoint, which can be inserted
+ * into a message and sent to another process .
+ *
+ * @param targetq
+ * The GCD queue to which the event handler block will be submitted. This
+ * parameter may be NULL, in which case the connection's target queue will be
+ * libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT.
+ * The target queue may be changed later with a call to
+ * xpc_connection_set_target_queue().
+ *
+ * @result
+ * A new connection object. The caller is responsible for disposing of the
+ * returned object with {@link xpc_release} when it is no longer needed.
+ *
+ * @discussion
+ * This method will succeed even if the named service does not exist. This is
+ * because the XPC namespace is not queried for the service name until the
+ * connection has been activated. See {@link xpc_connection_activate()}.
+ *
+ * XPC connections, like dispatch sources, are returned in an inactive state, so
+ * you must call {@link xpc_connection_activate()} in order to begin receiving
+ * events from the connection. Also like dispatch sources, connections must be
+ * activated and not suspended in order to be safely released. It is
+ * a programming error to release an inactive or suspended connection.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_connection_t
+xpc_connection_create(const char * _Nullable name,
+	dispatch_queue_t _Nullable targetq);
+
+/*!
+ * @function xpc_connection_create_mach_service
+ * Creates a new connection object representing a Mach service.
+ *
+ * @param name
+ * The name of the remote service with which to connect. The service name must
+ * exist in a Mach bootstrap that is accessible to the process and be advertised
+ * in a launchd.plist.
+ *
+ * @param targetq
+ * The GCD queue to which the event handler block will be submitted. This
+ * parameter may be NULL, in which case the connection's target queue will be
+ * libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT.
+ * The target queue may be changed later with a call to
+ * xpc_connection_set_target_queue().
+ *
+ * @param flags
+ * Additional attributes with which to create the connection.
+ *
+ * @result
+ * A new connection object.
+ *
+ * @discussion
+ * If the XPC_CONNECTION_MACH_SERVICE_LISTENER flag is given to this method,
+ * then the connection returned will be a listener connection. Otherwise, a peer
+ * connection will be returned. See the documentation for
+ * {@link xpc_connection_set_event_handler()} for the semantics of listener
+ * connections versus peer connections.
+ *
+ * This method will succeed even if the named service does not exist. This is
+ * because the Mach namespace is not queried for the service name until the
+ * connection has been activated. See {@link xpc_connection_activate()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
+xpc_connection_t
+xpc_connection_create_mach_service(const char *name,
+	dispatch_queue_t _Nullable targetq, uint64_t flags);
+
+/*!
+ * @function xpc_connection_create_from_endpoint
+ * Creates a new connection from the given endpoint.
+ *
+ * @param endpoint
+ * The endpoint from which to create the new connection.
+ *
+ * @result
+ * A new peer connection to the listener represented by the given endpoint.
+ *
+ * The same responsibilities of setting an event handler and activating the
+ * connection after calling xpc_connection_create() apply to the connection
+ * returned by this API. Since the connection yielded by this API is not
+ * associated with a name (and therefore is not rediscoverable), this connection
+ * will receive XPC_ERROR_CONNECTION_INVALID if the listening side crashes,
+ * exits or cancels the listener connection.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL
+xpc_connection_t
+xpc_connection_create_from_endpoint(xpc_endpoint_t endpoint);
+
+/*!
+ * @function xpc_connection_set_target_queue
+ * Sets the target queue of the given connection.
+ *
+ * @param connection
+ * The connection object which is to be manipulated.
+ *
+ * @param targetq
+ * The GCD queue to which the event handler block will be submitted. This
+ * parameter may be NULL, in which case the connection's target queue will be
+ * libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT.
+ *
+ * @discussion
+ * Setting the target queue is asynchronous and non-preemptive and therefore
+ * this method will not interrupt the execution of an already-running event
+ * handler block. Setting the target queue may be likened to issuing a barrier
+ * to the connection which does the actual work of changing the target queue.
+ *
+ * The XPC runtime guarantees this non-preemptiveness even for concurrent target
+ * queues. If the target queue is a concurrent queue, then XPC still guarantees
+ * that there will never be more than one invocation of the connection's event
+ * handler block executing concurrently. If you wish to process events
+ * concurrently, you can dispatch_async(3) to a concurrent queue from within
+ * the event handler.
+ *
+ * IMPORTANT: When called from within the event handler block,
+ * dispatch_get_current_queue(3) is NOT guaranteed to return a pointer to the
+ * queue set with this method.
+ *
+ * Despite this seeming inconsistency, the XPC runtime guarantees that, when the
+ * target queue is a serial queue, the event handler block will execute
+ * synchronously with respect to other blocks submitted to that same queue. When
+ * the target queue is a concurrent queue, the event handler block may run
+ * concurrently with other blocks submitted to that queue, but it will never run
+ * concurrently with other invocations of itself for the same connection, as
+ * discussed previously.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_connection_set_target_queue(xpc_connection_t connection,
+	dispatch_queue_t _Nullable targetq);
+
+/*!
+ * @function xpc_connection_set_event_handler
+ * Sets the event handler block for the connection.
+ *
+ * @param connection
+ * The connection object which is to be manipulated.
+ *
+ * @param handler
+ * The event handler block.
+ *
+ * @discussion
+ * Setting the event handler is asynchronous and non-preemptive, and therefore
+ * this method will not interrupt the execution of an already-running event
+ * handler block. If the event handler is executing at the time of this call, it
+ * will finish, and then the connection's event handler will be changed before
+ * the next invocation of the event handler. The XPC runtime guarantees this
+ * non-preemptiveness even for concurrent target queues.
+ *
+ * Connection event handlers are non-reentrant, so it is safe to call
+ * xpc_connection_set_event_handler() from within the event handler block.
+ *
+ * The event handler's execution should be treated as a barrier to all
+ * connection activity. When it is executing, the connection will not attempt to
+ * send or receive messages, including reply messages. Thus, it is not safe to
+ * call xpc_connection_send_message_with_reply_sync() on the connection from
+ * within the event handler.
+ *
+ * You do not hold a reference on the object received as the event handler's
+ * only argument. Regardless of the type of object received, it is safe to call
+ * xpc_retain() on the object to obtain a reference to it.
+ *
+ * A connection may receive different events depending upon whether it is a
+ * listener or not. Any connection may receive an error in its event handler.
+ * But while normal connections may receive messages in addition to errors,
+ * listener connections will receive connections and and not messages.
+ *
+ * Connections received by listeners are equivalent to those returned by
+ * xpc_connection_create() with a non-NULL name argument and a NULL targetq
+ * argument with the exception that you do not hold a reference on them.
+ * You must set an event handler and activate the connection. If you do not wish
+ * to accept the connection, you may simply call xpc_connection_cancel() on it
+ * and return. The runtime will dispose of it for you.
+ *
+ * If there is an error in the connection, this handler will be invoked with the
+ * error dictionary as its argument. This dictionary will be one of the well-
+ * known XPC_ERROR_* dictionaries.
+ *
+ * Regardless of the type of event, ownership of the event object is NOT
+ * implicitly transferred. Thus, the object will be released and deallocated at
+ * some point in the future after the event handler returns. If you wish the
+ * event's lifetime to persist, you must retain it with xpc_retain().
+ *
+ * Connections received through the event handler will be released and
+ * deallocated after the connection has gone invalid and delivered that event to
+ * its event handler.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+void
+xpc_connection_set_event_handler(xpc_connection_t connection,
+	xpc_handler_t handler);
+
+/*!
+ * @function xpc_connection_activate
+ * Activates the connection. Connections start in an inactive state, so you must
+ * call xpc_connection_activate() on a connection before it will send or receive
+ * any messages.
+ *
+ * @param connection
+ * The connection object which is to be manipulated.
+ *
+ * @discussion
+ * Calling xpc_connection_activate() on an active connection has no effect.
+ * Releasing the last reference on an inactive connection that was created with
+ * an xpc_connection_create*() call is undefined.
+ *
+ * For backward compatibility reasons, xpc_connection_resume() on an inactive
+ * and not otherwise suspended xpc connection has the same effect as calling
+ * xpc_connection_activate(). For new code, using xpc_connection_activate()
+ * is preferred.
+ */
+__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0)
+XPC_EXPORT XPC_NONNULL_ALL
+void
+xpc_connection_activate(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_suspend
+ * Suspends the connection so that the event handler block will not fire and
+ * that the connection will not attempt to send any messages it has in its
+ * queue. All calls to xpc_connection_suspend() must be balanced with calls to
+ * xpc_connection_resume() before releasing the last reference to the
+ * connection.
+ *
+ * @param connection
+ * The connection object which is to be manipulated.
+ *
+ * @discussion
+ * Suspension is asynchronous and non-preemptive, and therefore this method will
+ * not interrupt the execution of an already-running event handler block. If
+ * the event handler is executing at the time of this call, it will finish, and
+ * then the connection will be suspended before the next scheduled invocation
+ * of the event handler. The XPC runtime guarantees this non-preemptiveness even
+ * for concurrent target queues.
+ *
+ * Connection event handlers are non-reentrant, so it is safe to call
+ * xpc_connection_suspend() from within the event handler block.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+void
+xpc_connection_suspend(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_resume
+ * Resumes the connection.
+ *
+ * @param connection
+ * The connection object which is to be manipulated.
+ *
+ * @discussion
+ * In order for a connection to become live, every call to
+ * xpc_connection_suspend() must be balanced with a call to
+ * xpc_connection_resume().
+ *
+ * For backward compatibility reasons, xpc_connection_resume() on an inactive
+ * and not otherwise suspended xpc connection has the same effect as calling
+ * xpc_connection_activate(). For new code, using xpc_connection_activate()
+ * is preferred.
+ *
+ * Calling xpc_connection_resume() more times than xpc_connection_suspend()
+ * has been called is otherwise considered an error.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+void
+xpc_connection_resume(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_send_message
+ * Sends a message over the connection to the destination service.
+ *
+ * @param connection
+ * The connection over which the message shall be sent.
+ *
+ * @param message
+ * The message to send. This must be a dictionary object. This dictionary is
+ * logically copied by the connection, so it is safe to modify the dictionary
+ * after this call.
+ *
+ * @discussion
+ * Messages are delivered in FIFO order. This API is safe to call from multiple
+ * GCD queues. There is no indication that a message was delivered successfully.
+ * This is because even once the message has been successfully enqueued on the
+ * remote end, there are no guarantees about when the runtime will dequeue the
+ * message and invoke the other connection's event handler block.
+ *
+ * If this API is used to send a message that is in reply to another message,
+ * there is no guarantee of ordering between the invocations of the connection's
+ * event handler and the reply handler for that message, even if they are
+ * targeted to the same queue.
+ *
+ * After extensive study, we have found that clients who are interested in
+ * the state of the message on the server end are typically holding open
+ * transactions related to that message. And the only reliable way to track the
+ * lifetime of that transaction is at the protocol layer. So the server should
+ * send a reply message, which upon receiving, will cause the client to close
+ * its transaction.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+void
+xpc_connection_send_message(xpc_connection_t connection, xpc_object_t message);
+
+/*!
+ * @function xpc_connection_send_barrier
+ * Issues a barrier against the connection's message-send activity.
+ *
+ * @param connection
+ * The connection against which the barrier is to be issued.
+ *
+ * @param barrier
+ * The barrier block to issue. This barrier prevents concurrent message-send
+ * activity on the connection. No messages will be sent while the barrier block
+ * is executing.
+ *
+ * @discussion
+ * XPC guarantees that, even if the connection's target queue is a concurrent
+ * queue, there are no other messages being sent concurrently while the barrier
+ * block is executing. XPC does not guarantee that the receipt of messages
+ * (either through the connection's event handler or through reply handlers)
+ * will be suspended while the barrier is executing.
+ *
+ * A barrier is issued relative to the message-send queue. Thus, if you call
+ * xpc_connection_send_message() five times and then call
+ * xpc_connection_send_barrier(), the barrier will be invoked after the fifth
+ * message has been sent and its memory disposed of. You may safely cancel a
+ * connection from within a barrier block.
+ *
+ * If a barrier is issued after sending a message which expects a reply, the
+ * behavior is the same as described above. The receipt of a reply message will
+ * not influence when the barrier runs.
+ *
+ * A barrier block can be useful for throttling resource consumption on the
+ * connected side of a connection. For example, if your connection sends many
+ * large messages, you can use a barrier to limit the number of messages that
+ * are inflight at any given time. This can be particularly useful for messages
+ * that contain kernel resources (like file descriptors) which have a system-
+ * wide limit.
+ *
+ * If a barrier is issued on a canceled connection, it will be invoked
+ * immediately. If a connection has been canceled and still has outstanding
+ * barriers, those barriers will be invoked as part of the connection's
+ * unwinding process.
+ *
+ * It is important to note that a barrier block's execution order is not
+ * guaranteed with respect to other blocks that have been scheduled on the
+ * target queue of the connection. Or said differently,
+ * xpc_connection_send_barrier(3) is not equivalent to dispatch_async(3).
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+void
+xpc_connection_send_barrier(xpc_connection_t connection,
+	dispatch_block_t barrier);
+
+/*!
+ * @function xpc_connection_send_message_with_reply
+ * Sends a message over the connection to the destination service and associates
+ * a handler to be invoked when the remote service sends a reply message.
+ *
+ * @param connection
+ * The connection over which the message shall be sent.
+ *
+ * @param message
+ * The message to send. This must be a dictionary object.
+ *
+ * @param replyq
+ * The GCD queue to which the reply handler will be submitted. This may be a
+ * concurrent queue.
+ *
+ * @param handler
+ * The handler block to invoke when a reply to the message is received from
+ * the connection. If the remote service exits prematurely before the reply was
+ * received, the XPC_ERROR_CONNECTION_INTERRUPTED error will be returned.
+ * If the connection went invalid before the message could be sent, the
+ * XPC_ERROR_CONNECTION_INVALID error will be returned.
+ *
+ * @discussion
+ * If the given GCD queue is a concurrent queue, XPC cannot guarantee that there
+ * will not be multiple reply handlers being invoked concurrently. XPC does not
+ * guarantee any ordering for the invocation of reply handlers. So if multiple
+ * messages are waiting for replies and the connection goes invalid, there is no
+ * guarantee that the reply handlers will be invoked in FIFO order. Similarly,
+ * XPC does not guarantee that reply handlers will not run concurrently with
+ * the connection's event handler in the case that the reply queue and the
+ * connection's target queue are the same concurrent queue.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL4
+void
+xpc_connection_send_message_with_reply(xpc_connection_t connection,
+	xpc_object_t message, dispatch_queue_t _Nullable replyq,
+	xpc_handler_t handler);
+
+/*!
+ * @function xpc_connection_send_message_with_reply_sync
+ * Sends a message over the connection and blocks the caller until a reply is
+ * received.
+ *
+ * @param connection
+ * The connection over which the message shall be sent.
+ *
+ * @param message
+ * The message to send. This must be a dictionary object.
+ *
+ * @result
+ * The message that the remote service sent in reply to the original message.
+ * If the remote service exits prematurely before the reply was received, the
+ * XPC_ERROR_CONNECTION_INTERRUPTED error will be returned. If the connection
+ * went invalid before the message could be sent, the
+ * XPC_ERROR_CONNECTION_INVALID error will be returned.
+ *
+ * You are responsible for releasing the returned object.
+ *
+ * @discussion
+ * This API supports priority inversion avoidance, and should be used instead of
+ * combining xpc_connection_send_message_with_reply() with a semaphore.
+ *
+ * Invoking this API from a queue that is a part of the target queue hierarchy
+ * results in deadlocks under certain conditions.
+ *
+ * Be judicious about your use of this API. It can block indefinitely, so if you
+ * are using it to implement an API that can be called from the main thread, you
+ * may wish to consider allowing the API to take a queue and callback block so
+ * that results may be delivered asynchronously if possible.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT XPC_RETURNS_RETAINED
+xpc_object_t
+xpc_connection_send_message_with_reply_sync(xpc_connection_t connection,
+	xpc_object_t message);
+
+/*!
+ * @function xpc_connection_cancel
+ * Cancels the connection and ensures that its event handler will not fire
+ * again. After this call, any messages that have not yet been sent will be
+ * discarded, and the connection will be unwound. If there are messages that are
+ * awaiting replies, they will have their reply handlers invoked with the
+ * XPC_ERROR_CONNECTION_INVALID error.
+ *
+ * @param connection
+ * The connection object which is to be manipulated.
+ *
+ * @discussion
+ * Cancellation is asynchronous and non-preemptive and therefore this method
+ * will not interrupt the execution of an already-running event handler block.
+ * If the event handler is executing at the time of this call, it will finish,
+ * and then the connection will be canceled, causing a final invocation of the
+ * event handler to be scheduled with the XPC_ERROR_CONNECTION_INVALID error.
+ * After that invocation, there will be no further invocations of the event
+ * handler.
+ *
+ * The XPC runtime guarantees this non-preemptiveness even for concurrent target
+ * queues.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+void
+xpc_connection_cancel(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_get_name
+ * Returns the name of the service with which the connections was created.
+ *
+ * @param connection
+ * The connection object which is to be examined.
+ *
+ * @result
+ * The name of the remote service. If you obtained the connection through an
+ * invocation of another connection's event handler, NULL is returned.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT
+const char * _Nullable
+xpc_connection_get_name(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_get_euid
+ * Returns the EUID of the remote peer.
+ *
+ * @param connection
+ * The connection object which is to be examined.
+ *
+ * @result
+ * The EUID of the remote peer at the time the connection was made.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT
+uid_t
+xpc_connection_get_euid(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_get_egid
+ * Returns the EGID of the remote peer.
+ *
+ * @param connection
+ * The connection object which is to be examined.
+ *
+ * @result
+ * The EGID of the remote peer at the time the connection was made.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT
+gid_t
+xpc_connection_get_egid(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_get_pid
+ * Returns the PID of the remote peer.
+ *
+ * @param connection
+ * The connection object which is to be examined.
+ *
+ * @result
+ * The PID of the remote peer.
+ *
+ * @discussion
+ * A given PID is not guaranteed to be unique across an entire boot cycle.
+ * Great care should be taken when dealing with this information, as it can go
+ * stale after the connection is established. OS X recycles PIDs, and therefore
+ * another process could spawn and claim the PID before a message is actually
+ * received from the connection.
+ *
+ * XPC will deliver an error to your event handler if the remote process goes
+ * away, but there are no guarantees as to the timing of this notification's
+ * delivery either at the kernel layer or at the XPC layer.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT
+pid_t
+xpc_connection_get_pid(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_get_asid
+ * Returns the audit session identifier of the remote peer.
+ *
+ * @param connection
+ * The connection object which is to be examined.
+ *
+ * @result
+ * The audit session ID of the remote peer at the time the connection was made.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT
+au_asid_t
+xpc_connection_get_asid(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_set_context
+ * Sets context on an connection.
+ *
+ * @param connection
+ * The connection which is to be manipulated.
+ *
+ * @param context
+ * The context to associate with the connection.
+ *
+ * @discussion
+ * If you must manage the memory of the context object, you must set a finalizer
+ * to dispose of it. If this method is called on a connection which already has
+ * context associated with it, the finalizer will NOT be invoked. The finalizer
+ * is only invoked when the connection is being deallocated.
+ *
+ * It is recommended that, instead of changing the actual context pointer
+ * associated with the object, you instead change the state of the context
+ * object itself.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_connection_set_context(xpc_connection_t connection,
+	void * _Nullable context);
+
+/*!
+ * @function xpc_connection_get_context
+ * Returns the context associated with the connection.
+ *
+ * @param connection
+ * The connection which is to be examined.
+ *
+ * @result
+ * The context associated with the connection. NULL if there has been no context
+ * associated with the object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT
+void * _Nullable
+xpc_connection_get_context(xpc_connection_t connection);
+
+/*!
+ * @function xpc_connection_set_finalizer_f
+ * Sets the finalizer for the given connection.
+ *
+ * @param connection
+ * The connection on which to set the finalizer.
+ *
+ * @param finalizer
+ * The function that will be invoked when the connection's retain count has
+ * dropped to zero and is being torn down.
+ *
+ * @discussion
+ * This method disposes of the context value associated with a connection, as
+ * set by {@link xpc_connection_set_context}.
+ *
+ * For many uses of context objects, this API allows for a convenient shorthand
+ * for freeing them. For example, for a context object allocated with malloc(3):
+ *
+ * xpc_connection_set_finalizer_f(object, free);
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_connection_set_finalizer_f(xpc_connection_t connection,
+	xpc_finalizer_t _Nullable finalizer);
+
+/*!
+ * @function xpc_connection_set_peer_code_signing_requirement
+ * Requires that the connection peer satisfies a code signing requirement.
+ *
+ * @param connection
+ * The connection object which is to be modified.
+ *
+ * @param requirement
+ * The code signing requirement to be satisfied by the peer
+ * It is safe to deallocate the requirement string after calling `xpc_connection_set_peer_code_signing_requirement`
+ *
+ * @result
+ * 0 on success, non-zero on error
+ *
+ * @discussion
+ * This function will return an error promptly if the code signing requirement string is invalid.
+ *
+ * It is a programming error to call `xpc_connection_set_peer_code_signing_requirement` more than once per connection.
+ *
+ * All messages received on this connection will be checked to ensure they come from a peer who satisfies
+ * the code signing requirement. For a listener connection, requests that do not satisfy the requirement
+ * are dropped. When a reply is expected on the connection and the peer does not satisfy the requirement
+ * XPC_ERROR_PEER_CODE_SIGNING_REQUIREMENT will be delivered instead of the reply.
+ *
+ * This API is not supported on embedded platforms and will return ENOTSUP. 
+ *
+ * @see https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html
+ */
+__API_AVAILABLE(macos(12.0))
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT
+int
+xpc_connection_set_peer_code_signing_requirement(xpc_connection_t connection, const char *requirement);
+
+
+__END_DECLS
+XPC_ASSUME_NONNULL_END
+
+#endif // __XPC_CONNECTION_H__
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/xpc/rich_error.h b/lib/libc/include/any-macos.13-any/xpc/rich_error.h
new file mode 100644
index 0000000000000000000000000000000000000000..bea5c9a19f3d316377f9e4ba26beb69adc21f5db
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/xpc/rich_error.h
@@ -0,0 +1,52 @@
+#ifndef __XPC_RICH_ERROR_H__
+#define __XPC_RICH_ERROR_H__
+
+#ifndef __XPC_INDIRECT__
+#error "Please #include  instead of this file directly."
+// For HeaderDoc.
+#include 
+#endif // __XPC_INDIRECT__
+
+#ifndef __BLOCKS__
+#error "XPC Rich Errors require Blocks support."
+#endif // __BLOCKS__
+
+XPC_ASSUME_NONNULL_BEGIN
+__BEGIN_DECLS
+
+#pragma mark Properties
+/*!
+ * @function xpc_rich_error_copy_description
+ * Copy the string description of an error.
+ *
+ * @param error
+ * The error to be examined.
+ *
+ * @result
+ * The underlying C string for the provided error. This string should be
+ * disposed of with free(3) when done.
+ * 
+ * This will return NULL if a string description could not be generated.
+ */
+XPC_EXPORT XPC_WARN_RESULT
+char * _Nullable
+xpc_rich_error_copy_description(xpc_rich_error_t error);
+
+/*!
+ * @function xpc_rich_error_can_retry
+ * Whether the operation the error originated from can be retried.
+ *
+ * @param error
+ * The error to be inspected.
+ *
+ * @result
+ * Whether the operation the error originated from can be retried.
+ */
+XPC_EXPORT XPC_WARN_RESULT
+bool
+xpc_rich_error_can_retry(xpc_rich_error_t error);
+
+__END_DECLS
+XPC_ASSUME_NONNULL_END
+
+#endif // __XPC_RICH_ERROR_H__
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/xpc/session.h b/lib/libc/include/any-macos.13-any/xpc/session.h
new file mode 100644
index 0000000000000000000000000000000000000000..82885546ff74cc152374a3871b1c89de8da2c2ce
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/xpc/session.h
@@ -0,0 +1,346 @@
+#ifndef __XPC_SESSION_H__
+#define __XPC_SESSION_H__
+
+#ifndef __XPC_INDIRECT__
+#error "Please #include  instead of this file directly."
+// For HeaderDoc.
+#include 
+#endif // __XPC_INDIRECT__
+
+#ifndef __BLOCKS__
+#error "XPC Session require Blocks support."
+#endif // __BLOCKS__
+
+XPC_ASSUME_NONNULL_BEGIN
+__BEGIN_DECLS
+
+#pragma mark Constants
+/*!
+ * @typedef xpc_session_create_flags_t
+ * Constants representing different options available when creating an XPC
+ * Session.
+ *
+ * @const XPC_SESSION_CREATE_INACTIVE
+ * Indicates that the session should not be activated during its creation. The
+ * returned session must be manually activated using
+ * {@link xpc_session_activate} before it can be used.
+ *
+ * @const XPC_SESSION_CREATE_MACH_PRIVILEGED
+ * Passed to {@link xpc_session_create_mach_service} to indicate that the job
+ * advertising the service name in its launchd.plist(5) should be in the
+ * privileged Mach bootstrap. This is typically accomplished by placing your
+ * launchd.plist(5) in /Library/LaunchDaemons.
+ */
+XPC_FLAGS_ENUM(xpc_session_create_flags, uint64_t,
+	XPC_SESSION_CREATE_NONE XPC_SWIFT_NAME("none") = 0,
+	XPC_SESSION_CREATE_INACTIVE XPC_SWIFT_NAME("inactive") = (1 << 0),
+	XPC_SESSION_CREATE_MACH_PRIVILEGED XPC_SWIFT_NAME("privileged") = (1 << 1)
+);
+
+#pragma mark Handlers
+typedef void (^xpc_session_cancel_handler_t)(xpc_rich_error_t error);
+typedef void (^xpc_session_incoming_message_handler_t)(xpc_object_t message);
+typedef void (^xpc_session_reply_handler_t)(xpc_object_t _Nullable reply,
+		xpc_rich_error_t _Nullable error);
+
+#pragma mark Helpers
+/*!
+ * @function xpc_session_copy_description
+ * Copy the string description of the session.
+ *
+ * @param session
+ * The session to be examined.
+ *
+ * @result
+ * The underlying C string description for the provided session. This string
+ * should be disposed of with free(3) when done. This will return NULL if a
+ * string description could not be generated.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT XPC_WARN_RESULT
+char * _Nullable
+xpc_session_copy_description(xpc_session_t session);
+
+#pragma mark Client Session Creation
+/*!
+ * @function xpc_session_create_xpc_service
+ * Creates a new session object representing a connection to the named service.
+ *
+ * @param name
+ * The name of the service to create a session with.
+ *
+ * @param target_queue
+ * The GCD queue onto which session events will be submitted. This may be a
+ * concurrent queue. This parameter may be NULL, in which case the target queue
+ * will be libdispatch's default target queue, defined as
+ * DISPATCH_TARGET_QUEUE_DEFAULT.
+ *
+ * @param flags
+ * Additional attributes which which to create the session.
+ *
+ * @param error_out
+ * An out-parameter that, if set and in the event of an error, will point to an
+ * {@link xpc_rich_error_t} describing the details of any errors that occurred.
+ *
+ * @result
+ * On success this returns a new session object. The returned session is
+ * activated by default and can be used to send messages. The caller is
+ * responsible for disposing of the returned object with {@link xpc_release}
+ * when it is no longer needed. On failure this will return NULL and if set,
+ * error_out will be set to an error describing the failure.
+ *
+ * @discussion
+ * This will fail if the specified XPC service is either not found or is
+ * unavailable.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_session_t _Nullable
+xpc_session_create_xpc_service(const char *name,
+		dispatch_queue_t _Nullable target_queue,
+		xpc_session_create_flags_t flags,
+		xpc_rich_error_t _Nullable * _Nullable error_out);
+
+/*!
+ * @function xpc_session_create_mach_service
+ * Creates a session with the service defined by the provided Mach service name.
+ *
+ * @param mach_service
+ * The Mach service to create a session with. The service name must exist in the
+ * Mach bootstrap that is accessible to the process and be advertised in a
+ * launchd.plist.
+ *
+ * @param target_queue
+ * The GCD queue onto which session events will be submitted. This may be a
+ * concurrent queue. This parameter may be NULL, in which case the target queue
+ * will be libdispatch's default target queue, defined as
+ * DISPATCH_TARGET_QUEUE_DEFAULT.
+ *
+ * @param flags
+ * Additional attributes which which to create the session.
+ *
+ * @param error_out
+ * An out-parameter that, if set and in the event of an error, will point to an
+ * {@link xpc_rich_error_t} describing the details of any errors that occurred.
+ *
+ * @param cancel_handler
+ * The cancel handler block that will be executed when this session is canceled.
+ *
+ * @result
+ * On success this returns a new session object. The returned session is
+ * activated by default and can be used to send messages. The caller is
+ * responsible for disposing of the returned object with {@link xpc_release}
+ * when it is no longer needed. On failure this will return NULL and if set,
+ * error_out will be set to an error describing the failure.
+ *
+ * @discussion
+ * This will fail if the specified Mach service is either not found in the
+ * bootstrap or is otherwise unavailable.
+ *
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_session_t _Nullable
+xpc_session_create_mach_service(const char *mach_service,
+		dispatch_queue_t _Nullable target_queue,
+		xpc_session_create_flags_t flags,
+		xpc_rich_error_t _Nullable * _Nullable error_out);
+
+#pragma mark Session Configuration
+/*!
+ * @function xpc_session_set_incoming_message_handler
+ * Set an incoming message handler for a session.
+ *
+ * @param session
+ * The session to set the handler for.
+ *
+ * @param handler
+ * The handler block to be called when a message originated by the peer is
+ * received through the provided session.
+ *
+ * @discussion
+ * This can only be called on an inactive session. Calling this on a session
+ * with an existing event handler will replace it.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT
+void
+xpc_session_set_incoming_message_handler(xpc_session_t session,
+		xpc_session_incoming_message_handler_t handler);
+
+/*!
+ * @function xpc_session_set_cancel_handler
+ * Set the cancel handler for a session.
+ *
+ * @param session
+ * The session to set the cancel handler for.
+ *
+ * @param cancel_handler
+ * The cancel handler block that will be executed when this session is canceled.
+ *
+ * @discussion
+ * This can only be called on an inactive session. Calling this on a session
+ * with an existing cancel handler will replace the existing cancel handler with
+ * the one provided.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT
+void
+xpc_session_set_cancel_handler(xpc_session_t session,
+		xpc_session_cancel_handler_t cancel_handler);
+
+#pragma mark Lifecycle
+/*!
+ * @function xpc_session_activate
+ * Activates a session.
+ *
+ * @param session
+ * The session object to activate.
+ *
+ * @param error_out
+ * An out-parameter that, if set and in the event of an error, will point to an
+ * {@link xpc_rich_error_t} describing the details of any errors that occurred.
+ *
+ * @result
+ * Returns whether session activation succeeded.
+ *
+ * @discussion
+ * xpc_session_activate must not be called on a session that has been already
+ * activated. Releasing the last reference on an inactive session that was
+ * created with an xpc_session_create*() is undefined.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT
+bool
+xpc_session_activate(xpc_session_t session,
+		xpc_rich_error_t _Nullable * _Nullable error_out);
+
+/*!
+ * @function xpc_session_cancel
+ * Cancels the session. After this call, any messages that have not yet been
+ * sent will be discarded, and the connection will be unwound. If there are
+ * messages that are awaiting replies, they will have their reply handlers
+ * invoked with an appropriate {@link xpc_rich_error_t}.
+ *
+ * @param session
+ * The session object to cancel.
+ *
+ * @discussion
+ * Session must have been activated to be canceled. Cancellation is asynchronous
+ * and non-preemptive.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT
+void
+xpc_session_cancel(xpc_session_t session);
+
+#pragma mark Message Send
+/*!
+ * @function xpc_session_send_message
+ * Sends a message over the session to the destination service.
+ *
+ * @param session
+ * The session to send the message over.
+ *
+ * @param message
+ * The message to send. This must be a dictionary object.
+ *
+ * @result
+ * In the event of an error this will return an {@link xpc_rich_error_t}
+ * detailing the reasons for the failure. On success this return value will be
+ * NULL.
+ *
+ * @discussion
+ * Messages are delivered in FIFO order. This API is safe to call from multiple
+ * GCD queues. There is no indication that a message was delivered successfully.
+ * This is because even once the message has been successfully enqueued on the
+ * remote end, there are no guarantees about when the runtime will dequeue the
+ * message and invoke the other session's event handler block.
+ *
+ * If this is invoked on an inactive session, one created using the
+ * XPC_SESSION_CREATE_INACTIVE flag and hasn't yet been activated, the process
+ * will crash.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_rich_error_t _Nullable
+xpc_session_send_message(xpc_session_t session, xpc_object_t message);
+
+/*!
+ * @function xpc_session_send_message_with_reply_sync
+ * Sends a message over the session to the destination service and blocks the
+ * caller until a reply is received.
+ *
+ * @param session
+ * The session over which the message will be sent.
+ *
+ * @param message
+ * The message to send. This must be a dictionary object.
+ *
+ * @param error_out
+ * If this parameter is provided, in the event of a failure it will point to an
+ * {@link xpc_rich_error_t} describing the details of the error.
+ *
+ * @result
+ * On success, this will return the reply message as an {@link xpc_object_t}.
+ * Otherwise NULL is returned.
+ *
+ * @discussion
+ * This API supports priority inversion avoidance and should be used instead of
+ * combining xpc_session_send_message_with_reply_async with a semaphore.
+ *
+ * If this is invoked on an inactive session, for example one created using the
+ * XPC_SESSION_CREATE_INACTIVE flag that hasn't yet been activated, the process
+ * will crash.
+ * 
+ * Invoking this API while the target queue is blocked would lead to deadlocks
+ * in certain scenarios. For that reason, invoking it from the target queue
+ * results in a crash.
+ *
+ * Be judicious about your use of this API. It can block indefinitely, so if you
+ * are using it to implement an API that can be called from the main queue, you
+ * may wish to consider allowing the API to take a queue and callback block so
+ * that results may be delivered asynchronously if possible.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t _Nullable
+xpc_session_send_message_with_reply_sync(xpc_session_t session,
+		xpc_object_t message, xpc_rich_error_t _Nullable * _Nullable error_out);
+
+/*!
+ * @function xpc_session_send_message_with_reply_async
+ * Sends a message over the session to the destination service and executes the
+ * provided callback when a reply is received.
+ *
+ * @param session
+ * The session over which the message will be sent.
+ *
+ * @param message
+ * The message to send. This must be a dictionary object.
+ *
+ * @param reply_handler
+ * The handler block to invoke when a reply to the message is received from the
+ * session. If the session is torn down before the reply was received, for
+ * example if the remote service exits prematurely, this handler will be
+ * executed and passed an appropriate {@link xpc_rich_error_t} object describing
+ * the failure.
+ *
+ * @discussion
+ * If this is invoked on an inactive session, for example one created using the
+ * XPC_SESSION_CREATE_INACTIVE flag that hasn't yet been activated, the process
+ * will crash.
+ *
+ * If this is invoked on a cancelled session, this will generate a simulated
+ * crash.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0))
+XPC_EXPORT
+void
+xpc_session_send_message_with_reply_async(xpc_session_t session,
+		xpc_object_t message, xpc_session_reply_handler_t reply_handler);
+
+__END_DECLS
+XPC_ASSUME_NONNULL_END
+
+#endif // __XPC_SESSION_H__
\ No newline at end of file
diff --git a/lib/libc/include/any-macos.13-any/xpc/xpc.h b/lib/libc/include/any-macos.13-any/xpc/xpc.h
new file mode 100644
index 0000000000000000000000000000000000000000..af3f49853e65a629223ce498da0ab93d3f3489bb
--- /dev/null
+++ b/lib/libc/include/any-macos.13-any/xpc/xpc.h
@@ -0,0 +1,2735 @@
+// Copyright (c) 2009-2020 Apple Inc. All rights reserved. 
+
+#ifndef __XPC_H__
+#define __XPC_H__
+
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#ifndef __XPC_INDIRECT__
+#define __XPC_INDIRECT__
+#endif // __XPC_INDIRECT__
+
+#include 
+
+#if __has_include()
+#include 
+#else // __has_include()
+#define XPC_TRANSACTION_DEPRECATED
+#endif // __has_include()
+
+XPC_ASSUME_NONNULL_BEGIN
+__BEGIN_DECLS
+
+#ifndef __OSX_AVAILABLE_STARTING
+#define __OSX_AVAILABLE_STARTING(x, y)
+#endif // __OSX_AVAILABLE_STARTING
+
+#define XPC_API_VERSION 20200610
+
+/*!
+ * @typedef xpc_type_t
+ * A type that describes XPC object types.
+ */
+typedef const struct _xpc_type_s * xpc_type_t;
+#ifndef XPC_TYPE
+#define XPC_TYPE(type) const struct _xpc_type_s type
+#endif // XPC_TYPE
+
+/*!
+ * @typedef xpc_object_t
+ * A type that can describe all XPC objects. Dictionaries, arrays, strings, etc.
+ * are all described by this type.
+ *
+ * XPC objects are created with a retain count of 1, and therefore it is the
+ * caller's responsibility to call xpc_release() on them when they are no longer
+ * needed.
+ */
+
+#if OS_OBJECT_USE_OBJC
+/* By default, XPC objects are declared as Objective-C types when building with
+ * an Objective-C compiler. This allows them to participate in ARC, in RR
+ * management by the Blocks runtime and in leaks checking by the static
+ * analyzer, and enables them to be added to Cocoa collections.
+ *
+ * See  for details.
+ */
+OS_OBJECT_DECL(xpc_object);
+#ifndef XPC_DECL
+#define XPC_DECL(name) typedef xpc_object_t name##_t
+#endif // XPC_DECL
+
+#define XPC_GLOBAL_OBJECT(object) ((OS_OBJECT_BRIDGE xpc_object_t)&(object))
+#define XPC_RETURNS_RETAINED OS_OBJECT_RETURNS_RETAINED
+XPC_INLINE XPC_NONNULL_ALL
+void
+_xpc_object_validate(xpc_object_t object) {
+	(void)*(unsigned long volatile *)(OS_OBJECT_BRIDGE void *)object;
+}
+#else // OS_OBJECT_USE_OBJC
+typedef void * xpc_object_t;
+#define XPC_DECL(name) typedef struct _##name##_s * name##_t
+#define XPC_GLOBAL_OBJECT(object) (&(object))
+#define XPC_RETURNS_RETAINED
+#endif // OS_OBJECT_USE_OBJC 
+
+/*!
+ * @typedef xpc_handler_t
+ * The type of block that is accepted by the XPC connection APIs.
+ *
+ * @param object
+ * An XPC object that is to be handled. If there was an error, this object will
+ * be equal to one of the well-known XPC_ERROR_* dictionaries and can be
+ * compared with the equality operator.
+ *
+ * @discussion
+ * You are not responsible for releasing the event object.
+ */
+#if __BLOCKS__
+typedef void (^xpc_handler_t)(xpc_object_t object);
+#endif // __BLOCKS__ 
+
+/*!
+ * @define XPC_TYPE_CONNECTION
+ * A type representing a connection to a named service. This connection is
+ * bidirectional and can be used to both send and receive messages. A
+ * connection carries the credentials of the remote service provider.
+ */
+#define XPC_TYPE_CONNECTION (&_xpc_type_connection)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_connection);
+XPC_DECL(xpc_connection);
+
+/*!
+ * @typedef xpc_connection_handler_t
+ * The type of the function that will be invoked for a bundled XPC service when
+ * there is a new connection on the service.
+ *
+ * @param connection
+ * A new connection that is equivalent to one received by a listener connection.
+ * See the documentation for {@link xpc_connection_set_event_handler} for the
+ * semantics associated with the received connection.
+ */
+typedef void (*xpc_connection_handler_t)(xpc_connection_t connection);
+
+/*!
+ * @define XPC_TYPE_ENDPOINT
+ * A type representing a connection in serialized form. Unlike a connection, an
+ * endpoint is an inert object that does not have any runtime activity
+ * associated with it. Thus, it is safe to pass an endpoint in a message. Upon
+ * receiving an endpoint, the recipient can use
+ * xpc_connection_create_from_endpoint() to create as many distinct connections
+ * as desired. 
+ */
+#define XPC_TYPE_ENDPOINT (&_xpc_type_endpoint)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_endpoint);
+XPC_DECL(xpc_endpoint);
+
+/*!
+ * @define XPC_TYPE_NULL
+ * A type representing a null object. This type is useful for disambiguating
+ * an unset key in a dictionary and one which has been reserved but set empty.
+ * Also, this type is a way to represent a "null" value in dictionaries, which
+ * do not accept NULL.
+ */
+#define XPC_TYPE_NULL (&_xpc_type_null)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_null);
+
+/*!
+ * @define XPC_TYPE_BOOL
+ * A type representing a Boolean value.
+ */
+#define XPC_TYPE_BOOL (&_xpc_type_bool)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_bool);
+
+/*!
+ * @define XPC_BOOL_TRUE
+ * A constant representing a Boolean value of true. You may compare a Boolean
+ * object against this constant to determine its value.
+ */
+#define XPC_BOOL_TRUE XPC_GLOBAL_OBJECT(_xpc_bool_true)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+const struct _xpc_bool_s _xpc_bool_true;
+
+/*!
+ * @define XPC_BOOL_FALSE
+ * A constant representing a Boolean value of false. You may compare a Boolean
+ * object against this constant to determine its value.
+ */
+#define XPC_BOOL_FALSE XPC_GLOBAL_OBJECT(_xpc_bool_false)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+const struct _xpc_bool_s _xpc_bool_false;
+
+/*!
+ * @define XPC_TYPE_INT64
+ * A type representing a signed, 64-bit integer value.
+ */
+#define XPC_TYPE_INT64 (&_xpc_type_int64)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_int64);
+
+/*!
+ * @define XPC_TYPE_UINT64
+ * A type representing an unsigned, 64-bit integer value.
+ */
+#define XPC_TYPE_UINT64 (&_xpc_type_uint64)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_uint64);
+
+/*!
+ * @define XPC_TYPE_DOUBLE
+ * A type representing an IEEE-compliant, double-precision floating point value.
+ */
+#define XPC_TYPE_DOUBLE (&_xpc_type_double)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_double);
+
+/*!
+ * @define XPC_TYPE_DATE
+ * A type representing a date interval. The interval is with respect to the
+ * Unix epoch. XPC dates are in Unix time and are thus unaware of local time
+ * or leap seconds.
+ */
+#define XPC_TYPE_DATE (&_xpc_type_date)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_date);
+
+/*!
+ * @define XPC_TYPE_DATA
+ * A type representing a an arbitrary buffer of bytes.
+ */
+#define XPC_TYPE_DATA (&_xpc_type_data)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_data);
+
+/*!
+ * @define XPC_TYPE_STRING
+ * A type representing a NUL-terminated C-string.
+ */
+#define XPC_TYPE_STRING (&_xpc_type_string)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_string);
+
+/*!
+ * @define XPC_TYPE_UUID
+ * A type representing a Universally Unique Identifier as defined by uuid(3). 
+ */
+#define XPC_TYPE_UUID (&_xpc_type_uuid)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_uuid);
+
+/*!
+ * @define XPC_TYPE_FD
+ * A type representing a POSIX file descriptor.
+ */
+#define XPC_TYPE_FD (&_xpc_type_fd)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_fd);
+
+/*!
+ * @define XPC_TYPE_SHMEM
+ * A type representing a region of shared memory.
+ */
+#define XPC_TYPE_SHMEM (&_xpc_type_shmem)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_shmem);
+
+/*!
+ * @define XPC_TYPE_ARRAY
+ * A type representing an array of XPC objects. This array must be contiguous,
+ * i.e. it cannot contain NULL values. If you wish to indicate that a slot
+ * is empty, you can insert a null object. The array will grow as needed to
+ * accommodate more objects.
+ */
+#define XPC_TYPE_ARRAY (&_xpc_type_array)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_array);
+
+/*!
+ * @define XPC_TYPE_DICTIONARY
+ * A type representing a dictionary of XPC objects, keyed off of C-strings.
+ * You may insert NULL values into this collection. The dictionary will grow
+ * as needed to accommodate more key/value pairs.
+ */
+#define XPC_TYPE_DICTIONARY (&_xpc_type_dictionary)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_dictionary);
+
+/*!
+ * @define XPC_TYPE_ERROR
+ * A type representing an error object. Errors in XPC are dictionaries, but
+ * xpc_get_type() will return this type when given an error object. You
+ * cannot create an error object directly; XPC will only give them to handlers.
+ * These error objects have pointer values that are constant across the lifetime
+ * of your process and can be safely compared.
+ *
+ * These constants are enumerated in the header for the connection object. Error
+ * dictionaries may reserve keys so that they can be queried to obtain more
+ * detailed information about the error. Currently, the only reserved key is
+ * XPC_ERROR_KEY_DESCRIPTION.
+ */
+#define XPC_TYPE_ERROR (&_xpc_type_error)
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_error);
+
+/*!
+ * @define XPC_ERROR_KEY_DESCRIPTION
+ * In an error dictionary, querying for this key will return a string object
+ * that describes the error in a human-readable way.
+ */
+#define XPC_ERROR_KEY_DESCRIPTION _xpc_error_key_description
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+const char * const _xpc_error_key_description;
+
+/*!
+ * @define XPC_EVENT_KEY_NAME
+ * In an event dictionary, this querying for this key will return a string
+ * object that describes the event.
+ */
+#define XPC_EVENT_KEY_NAME _xpc_event_key_name
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+const char * const _xpc_event_key_name;
+
+/*!
+ * @define XPC_TYPE_SESSION
+ *
+ * @discussion
+ * Sessions represent a stateful connection between a client and a service. When either end of the connection
+ * disconnects, the entire session will be invalidated. In this case the system will make no attempt to
+ * reestablish the connection or relaunch the service.
+ *
+ * Clients can initiate a session with a service that accepts xpc_connection_t connections but session
+ * semantics will be maintained.
+ *
+ */
+#define XPC_TYPE_SESSION (&_xpc_type_session)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_session);
+XPC_DECL(xpc_session);
+
+/*!
+ * @define XPC_TYPE_RICH_ERROR
+ *
+ * @discussion
+ * Rich errors provide a simple dynamic error type that can indicate whether an
+ * error is retry-able or not.
+ */
+#define XPC_TYPE_RICH_ERROR (&_xpc_type_rich_error)
+XPC_EXPORT
+XPC_TYPE(_xpc_type_rich_error);
+XPC_DECL(xpc_rich_error);
+
+XPC_ASSUME_NONNULL_END
+#if !defined(__XPC_BUILDING_XPC__) || !__XPC_BUILDING_XPC__
+#include 
+#include 
+#if __BLOCKS__
+#include 
+#include 
+#include 
+#include 
+#endif // __BLOCKS__
+#undef __XPC_INDIRECT__
+#include 
+#endif // !defined(__XPC_BUILDING_XPC__) || !__XPC_BUILDING_XPC__
+XPC_ASSUME_NONNULL_BEGIN
+
+#pragma mark XPC Object Protocol
+/*!
+ * @function xpc_retain
+ *
+ * @abstract
+ * Increments the reference count of an object.
+ *
+ * @param object
+ * The object which is to be manipulated.
+ *
+ * @result
+ * The object which was given.
+ *
+ * @discussion
+ * Calls to xpc_retain() must be balanced with calls to xpc_release()
+ * to avoid leaking memory.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+xpc_object_t
+xpc_retain(xpc_object_t object);
+#if OS_OBJECT_USE_OBJC_RETAIN_RELEASE
+#undef xpc_retain
+#define xpc_retain(object) ({ xpc_object_t _o = (object); \
+		_xpc_object_validate(_o); [_o retain]; })
+#endif // OS_OBJECT_USE_OBJC_RETAIN_RELEASE
+
+/*!
+ * @function xpc_release
+ *
+ * @abstract
+ * Decrements the reference count of an object.
+ *
+ * @param object
+ * The object which is to be manipulated.
+ *
+ * @discussion
+ * The caller must take care to balance retains and releases. When creating or
+ * retaining XPC objects, the creator obtains a reference on the object. Thus,
+ * it is the caller's responsibility to call xpc_release() on those objects when
+ * they are no longer needed.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_release(xpc_object_t object);
+#if OS_OBJECT_USE_OBJC_RETAIN_RELEASE
+#undef xpc_release
+#define xpc_release(object) ({ xpc_object_t _o = (object); \
+		_xpc_object_validate(_o); [_o release]; })
+#endif // OS_OBJECT_USE_OBJC_RETAIN_RELEASE
+
+/*!
+ * @function xpc_get_type
+ *
+ * @abstract
+ * Returns the type of an object.
+ *
+ * @param object
+ * The object to examine.
+ *
+ * @result
+ * An opaque pointer describing the type of the object. This pointer is suitable
+ * direct comparison to exported type constants with the equality operator.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT
+xpc_type_t
+xpc_get_type(xpc_object_t object);
+
+/*!
+ * @function xpc_type_get_name
+ *
+ * @abstract
+ * Returns a string describing an XPC object type.
+ *
+ * @param type
+ * The type to describe.
+ *
+ * @result
+ * A string describing the type of an object, like "string" or "int64".
+ * This string should not be freed or modified.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_15, __IPHONE_13_0)
+XPC_EXPORT XPC_NONNULL1
+const char *
+xpc_type_get_name(xpc_type_t type);
+
+/*!
+ * @function xpc_copy
+ *
+ * @abstract
+ * Creates a copy of the object.
+ *
+ * @param object
+ * The object to copy.
+ *
+ * @result
+ * The new object. NULL if the object type does not support copying or if
+ * sufficient memory for the copy could not be allocated. Service objects do
+ * not support copying.
+ *
+ * @discussion
+ * When called on an array or dictionary, xpc_copy() will perform a deep copy.
+ *
+ * The object returned is not necessarily guaranteed to be a new object, and
+ * whether it is will depend on the implementation of the object being copied.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT XPC_RETURNS_RETAINED
+xpc_object_t _Nullable
+xpc_copy(xpc_object_t object);
+
+/*!
+ * @function xpc_equal
+ *
+ * @abstract
+ * Compares two objects for equality.
+ *
+ * @param object1
+ * The first object to compare.
+ *
+ * @param object2
+ * The second object to compare.
+ *
+ * @result
+ * Returns true if the objects are equal, otherwise false. Two objects must be
+ * of the same type in order to be equal.
+ *
+ * For two arrays to be equal, they must contain the same values at the 
+ * same indexes. For two dictionaries to be equal, they must contain the same
+ * values for the same keys.
+ *
+ * Two objects being equal implies that their hashes (as returned by xpc_hash())
+ * are also equal.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_WARN_RESULT
+bool
+xpc_equal(xpc_object_t object1, xpc_object_t object2);
+
+/*!
+ * @function xpc_hash
+ *
+ * @abstract
+ * Calculates a hash value for the given object.
+ *
+ * @param object
+ * The object for which to calculate a hash value. This value may be modded
+ * with a table size for insertion into a dictionary-like data structure.
+ *
+ * @result
+ * The calculated hash value.
+ *
+ * @discussion
+ * Note that the computed hash values for any particular type and value of an 
+ * object can change from across releases and platforms and should not be
+ * assumed to be constant across all time and space or stored persistently.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_WARN_RESULT
+size_t
+xpc_hash(xpc_object_t object);
+
+/*!
+ * @function xpc_copy_description
+ *
+ * @abstract
+ * Copies a debug string describing the object.
+ *
+ * @param object
+ * The object which is to be examined.
+ *
+ * @result
+ * A string describing object which contains information useful for debugging.
+ * This string should be disposed of with free(3) when done.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_WARN_RESULT XPC_NONNULL1
+char *
+xpc_copy_description(xpc_object_t object);
+
+#pragma mark XPC Object Types
+#pragma mark Null
+/*!
+ * @function xpc_null_create
+ *
+ * @abstract
+ * Creates an XPC object representing the null object.
+ *
+ * @result
+ * A new null object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_null_create(void);
+
+#pragma mark Boolean
+/*!
+ * @function xpc_bool_create
+ *
+ * @abstract
+ * Creates an XPC Boolean object.
+ *
+ * @param value
+ * The Boolean primitive value which is to be boxed.
+ *
+ * @result
+ * A new Boolean object. 
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_bool_create(bool value);
+
+/*!
+ * @function xpc_bool_get_value
+ *
+ * @abstract
+ * Returns the underlying Boolean value from the object.
+ *
+ * @param xbool
+ * The Boolean object which is to be examined.
+ *
+ * @result
+ * The underlying Boolean value or false if the given object was not an XPC
+ * Boolean object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT
+bool
+xpc_bool_get_value(xpc_object_t xbool);
+
+#pragma mark Signed Integer
+/*!
+ * @function xpc_int64_create
+ *
+ * @abstract
+ * Creates an XPC signed integer object.
+ *
+ * @param value
+ * The signed integer value which is to be boxed.
+ *
+ * @result
+ * A new signed integer object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_int64_create(int64_t value);
+
+/*!
+ * @function xpc_int64_get_value
+ *
+ * @abstract
+ * Returns the underlying signed 64-bit integer value from an object.
+ *
+ * @param xint
+ * The signed integer object which is to be examined.
+ *
+ * @result
+ * The underlying signed 64-bit value or 0 if the given object was not an XPC
+ * integer object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+int64_t
+xpc_int64_get_value(xpc_object_t xint);
+
+#pragma mark Unsigned Integer
+/*!
+ * @function xpc_uint64_create
+ *
+ * @abstract
+ * Creates an XPC unsigned integer object.
+ *
+ * @param value
+ * The unsigned integer value which is to be boxed.
+ *
+ * @result
+ * A new unsigned integer object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_uint64_create(uint64_t value);
+
+/*!
+ * @function xpc_uint64_get_value
+ *
+ * @abstract
+ * Returns the underlying unsigned 64-bit integer value from an object.
+ *
+ * @param xuint
+ * The unsigned integer object which is to be examined.
+ *
+ * @result
+ * The underlying unsigned integer value or 0 if the given object was not an XPC
+ * unsigned integer object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+uint64_t
+xpc_uint64_get_value(xpc_object_t xuint);
+
+#pragma mark Double
+/*!
+ * @function xpc_double_create
+ *
+ * @abstract
+ * Creates an XPC double object.
+ *
+ * @param value
+ * The floating point quantity which is to be boxed.
+ *
+ * @result
+ * A new floating point object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_double_create(double value);
+
+/*!
+ * @function xpc_double_get_value
+ *
+ * @abstract
+ * Returns the underlying double-precision floating point value from an object.
+ *
+ * @param xdouble
+ * The floating point object which is to be examined.
+ *
+ * @result
+ * The underlying floating point value or NAN if the given object was not an XPC
+ * floating point object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+double
+xpc_double_get_value(xpc_object_t xdouble);
+
+#pragma mark Date
+/*!
+ * @function xpc_date_create
+ *
+ * @abstract
+ * Creates an XPC date object.
+ *
+ * @param interval
+ * The date interval which is to be boxed. Negative values indicate the number
+ * of nanoseconds before the epoch. Positive values indicate the number of
+ * nanoseconds after the epoch.
+ *
+ * @result
+ * A new date object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_date_create(int64_t interval);
+
+/*!
+ * @function xpc_date_create_from_current
+ *
+ * @abstract
+ * Creates an XPC date object representing the current date.
+ *
+ * @result
+ * A new date object representing the current date.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_date_create_from_current(void);
+
+/*!
+ * @function xpc_date_get_value
+ *
+ * @abstract
+ * Returns the underlying date interval from an object.
+ *
+ * @param xdate
+ * The date object which is to be examined.
+ *
+ * @result
+ * The underlying date interval or 0 if the given object was not an XPC date
+ * object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+int64_t
+xpc_date_get_value(xpc_object_t xdate);
+
+#pragma mark Data
+/*!
+ * @function xpc_data_create
+ *
+ * @abstract
+ * Creates an XPC object representing buffer of bytes.
+ *
+ * @param bytes
+ * The buffer of bytes which is to be boxed. You may create an empty data object
+ * by passing NULL for this parameter and 0 for the length. Passing NULL with
+ * any other length will result in undefined behavior.
+ *
+ * @param length
+ * The number of bytes which are to be boxed.
+ *
+ * @result
+ * A new data object. 
+ *
+ * @discussion
+ * This method will copy the buffer given into internal storage. After calling
+ * this method, it is safe to dispose of the given buffer.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_data_create(const void * _Nullable XPC_SIZEDBY(length) bytes, size_t length);
+
+/*!
+ * @function xpc_data_create_with_dispatch_data
+ *
+ * @abstract
+ * Creates an XPC object representing buffer of bytes described by the given GCD
+ * data object.
+ *
+ * @param ddata
+ * The GCD data object containing the bytes which are to be boxed. This object
+ * is retained by the data object.
+ *
+ * @result
+ * A new data object. 
+ *
+ * @discussion
+ * The object returned by this method will refer to the buffer returned by
+ * dispatch_data_create_map(). The point where XPC will make the call to
+ * dispatch_data_create_map() is undefined.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
+xpc_object_t
+xpc_data_create_with_dispatch_data(dispatch_data_t ddata);
+
+/*!
+ * @function xpc_data_get_length
+ *
+ * @abstract
+ * Returns the length of the data encapsulated by an XPC data object.
+ *
+ * @param xdata
+ * The data object which is to be examined.
+ *
+ * @result
+ * The length of the underlying boxed data or 0 if the given object was not an
+ * XPC data object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+size_t
+xpc_data_get_length(xpc_object_t xdata);
+
+/*!
+ * @function xpc_data_get_bytes_ptr
+ *
+ * @abstract
+ * Returns a pointer to the internal storage of a data object.
+ *
+ * @param xdata
+ * The data object which is to be examined.
+ *
+ * @result
+ * A pointer to the underlying boxed data or NULL if the given object was not an
+ * XPC data object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+const void * _Nullable
+xpc_data_get_bytes_ptr(xpc_object_t xdata);
+
+/*!
+ * @function xpc_data_get_bytes
+ *
+ * @abstract
+ * Copies the bytes stored in an data objects into the specified buffer.
+ *
+ * @param xdata
+ * The data object which is to be examined.
+ *
+ * @param buffer
+ * The buffer in which to copy the data object's bytes.
+ *
+ * @param off
+ * The offset at which to begin the copy. If this offset is greater than the 
+ * length of the data element, nothing is copied. Pass 0 to start the copy
+ * at the beginning of the buffer.
+ *
+ * @param length
+ * The length of the destination buffer.
+ *
+ * @result
+ * The number of bytes that were copied into the buffer or 0 if the given object
+ * was not an XPC data object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2
+size_t
+xpc_data_get_bytes(xpc_object_t xdata, 
+	void *buffer, size_t off, size_t length);
+
+#pragma mark String
+/*!
+ * @function xpc_string_create
+ *
+ * @abstract
+ * Creates an XPC object representing a NUL-terminated C-string.
+ *
+ * @param string
+ * The C-string which is to be boxed.
+ *
+ * @result
+ * A new string object. 
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
+xpc_object_t
+xpc_string_create(const char *string);
+
+/*!
+ * @function xpc_string_create_with_format
+ *
+ * @abstract
+ * Creates an XPC object representing a C-string that is generated from the
+ * given format string and arguments.
+ *
+ * @param fmt
+ * The printf(3)-style format string from which to construct the final C-string
+ * to be boxed.
+ *
+ * @param ...
+ * The arguments which correspond to those specified in the format string.
+ *
+ * @result
+ * A new string object. 
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
+XPC_PRINTF(1, 2)
+xpc_object_t
+xpc_string_create_with_format(const char *fmt, ...);
+
+/*!
+ * @function xpc_string_create_with_format_and_arguments
+ *
+ * @abstract
+ * Creates an XPC object representing a C-string that is generated from the
+ * given format string and argument list pointer.
+ *
+ * @param fmt
+ * The printf(3)-style format string from which to construct the final C-string
+ * to be boxed.
+ *
+ * @param ap
+ * A pointer to the arguments which correspond to those specified in the format
+ * string.
+ *
+ * @result
+ * A new string object. 
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
+XPC_PRINTF(1, 0)
+xpc_object_t
+xpc_string_create_with_format_and_arguments(const char *fmt, va_list ap);
+
+/*!
+ * @function xpc_string_get_length
+ *
+ * @abstract
+ * Returns the length of the underlying string.
+ *
+ * @param xstring
+ * The string object which is to be examined.
+ *
+ * @result
+ * The length of the underlying string, not including the NUL-terminator, or 0 
+ * if the given object was not an XPC string object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+size_t
+xpc_string_get_length(xpc_object_t xstring);
+
+/*!
+ * @function xpc_string_get_string_ptr
+ *
+ * @abstract
+ * Returns a pointer to the internal storage of a string object.
+ *
+ * @param xstring
+ * The string object which is to be examined.
+ *
+ * @result
+ * A pointer to the string object's internal storage or NULL if the given object
+ * was not an XPC string object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+const char * _Nullable
+xpc_string_get_string_ptr(xpc_object_t xstring);
+
+#pragma mark UUID
+/*!
+ * @function xpc_uuid_create
+ *
+ * @abstract
+ * Creates an XPC object representing a universally-unique identifier (UUID) as
+ * described by uuid(3).
+ *
+ * @param uuid
+ * The UUID which is to be boxed.
+ *
+ * @result
+ * A new UUID object. 
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
+xpc_object_t
+xpc_uuid_create(const uuid_t XPC_NONNULL_ARRAY uuid);
+
+/*!
+ * @function xpc_uuid_get_bytes
+ *
+ * @abstract
+ * Returns a pointer to the the boxed UUID bytes in an XPC UUID object.
+ *
+ * @param xuuid
+ * The UUID object which is to be examined.
+ * 
+ * @result
+ * The underlying uuid_t bytes or NULL if the given object was not
+ * an XPC UUID object. The returned pointer may be safely passed to the uuid(3)
+ * APIs.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+const uint8_t * _Nullable
+xpc_uuid_get_bytes(xpc_object_t xuuid);
+
+#pragma mark File Descriptors
+/*!
+ * @function xpc_fd_create
+ *
+ * @abstract
+ * Creates an XPC object representing a POSIX file descriptor.
+ *
+ * @param fd
+ * The file descriptor which is to be boxed.
+ *
+ * @result
+ * A new file descriptor object. NULL if sufficient memory could not be
+ * allocated or if the given file descriptor was not valid.
+ *
+ * @discussion
+ * This method performs the equivalent of a dup(2) on the descriptor, and thus
+ * it is safe to call close(2) on the descriptor after boxing it with a file
+ * descriptor object.
+ *
+ * IMPORTANT: Pointer equality is the ONLY valid test for equality between two
+ * file descriptor objects. There is no reliable way to determine whether two
+ * file descriptors refer to the same inode with the same capabilities, so two
+ * file descriptor objects created from the same underlying file descriptor
+ * number will not compare equally with xpc_equal(). This is also true of a
+ * file descriptor object created using xpc_copy() and the original.
+ *
+ * This also implies that two collections containing file descriptor objects
+ * cannot be equal unless the exact same object was inserted into both.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t _Nullable
+xpc_fd_create(int fd);
+
+/*!
+ * @function xpc_fd_dup
+ *
+ * @abstract
+ * Returns a file descriptor that is equivalent to the one boxed by the file
+ * file descriptor object.
+ *
+ * @param xfd
+ * The file descriptor object which is to be examined.
+ *
+ * @result
+ * A file descriptor that is equivalent to the one originally given to
+ * xpc_fd_create(). If the descriptor could not be created or if the given 
+ * object was not an XPC file descriptor, -1 is returned.
+ *
+ * @discussion
+ * Multiple invocations of xpc_fd_dup() will not return the same file descriptor
+ * number, but they will return descriptors that are equivalent, as though they
+ * had been created by dup(2).
+ *
+ * The caller is responsible for calling close(2) on the returned descriptor.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+int
+xpc_fd_dup(xpc_object_t xfd);
+
+#pragma mark Shared Memory
+/*!
+ * @function xpc_shmem_create
+ *
+ * @abstract
+ * Creates an XPC object representing the given shared memory region.
+ *
+ * @param region
+ * A pointer to a region of shared memory, created through a call to mmap(2)
+ * with the MAP_SHARED flag, which is to be boxed.
+ *
+ * @param length
+ * The length of the region.
+ *
+ * @result
+ * A new shared memory object.
+ *
+ * @discussion
+ * Only memory regions whose exact characteristics are known to the caller
+ * should be boxed using this API. Memory returned from malloc(3) may not be
+ * safely shared on either OS X or iOS because the underlying virtual memory
+ * objects for malloc(3)ed allocations are owned by the malloc(3) subsystem and
+ * not the caller of malloc(3).
+ *
+ * If you wish to share a memory region that you receive from another subsystem,
+ * part of the interface contract with that other subsystem must include how to
+ * create the region of memory, or sharing it may be unsafe.
+ *
+ * Certain operations may internally fragment a region of memory in a way that
+ * would truncate the range detected by the shared memory object. vm_copy(), for
+ * example, may split the region into multiple parts to avoid copying certain
+ * page ranges. For this reason, it is recommended that you delay all VM
+ * operations until the shared memory object has been created so that the VM
+ * system knows that the entire range is intended for sharing.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
+xpc_object_t
+xpc_shmem_create(void *region, size_t length);
+
+/*!
+ * @function xpc_shmem_map
+ *
+ * @abstract
+ * Maps the region boxed by the XPC shared memory object into the caller's
+ * address space.
+ *
+ * @param xshmem
+ * The shared memory object to be examined.
+ *
+ * @param region
+ * On return, this will point to the region at which the shared memory was
+ * mapped.
+ *
+ * @result
+ * The length of the region that was mapped. If the mapping failed or if the
+ * given object was not an XPC shared memory object, 0 is returned. The length 
+ * of the mapped region will always be an integral page size, even if the
+ * creator of the region specified a non-integral page size.
+ *
+ * @discussion
+ * The resulting region must be disposed of with munmap(2).
+ *
+ * It is the responsibility of the caller to manage protections on the new
+ * region accordingly. 
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+size_t
+xpc_shmem_map(xpc_object_t xshmem, void * _Nullable * _Nonnull region);
+
+#pragma mark Array
+/*!
+ * @typedef xpc_array_applier_t
+ * A block to be invoked for every value in the array.
+ *
+ * @param index
+ * The current index in the iteration.
+ *
+ * @param value
+ * The current value in the iteration.
+ *
+ * @result
+ * A Boolean indicating whether iteration should continue.
+ */
+#ifdef __BLOCKS__
+typedef bool (^xpc_array_applier_t)(size_t index, xpc_object_t _Nonnull value);
+#endif // __BLOCKS__ 
+
+/*!
+ * @function xpc_array_create
+ *
+ * @abstract
+ * Creates an XPC object representing an array of XPC objects.
+ *
+ * @discussion
+ * This array must be contiguous and cannot contain any NULL values. If you
+ * wish to insert the equivalent of a NULL value, you may use the result of
+ * {@link xpc_null_create}.
+ *
+ * @param objects
+ * An array of XPC objects which is to be boxed. The order of this array is
+ * preserved in the object. If this array contains a NULL value, the behavior
+ * is undefined. This parameter may be NULL only if the count is 0.
+ *
+ * @param count
+ * The number of objects in the given array. If the number passed is less than
+ * the actual number of values in the array, only the specified number of items
+ * are inserted into the resulting array. If the number passed is more than
+ * the the actual number of values, the behavior is undefined.
+ *
+ * @result
+ * A new array object. 
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_array_create(
+	const xpc_object_t _Nonnull *XPC_COUNTEDBY(count) _Nullable objects,
+	size_t count);
+
+/*!
+ * @function xpc_array_create_empty
+ *
+ * @abstract
+ * Creates an XPC object representing an array of XPC objects.
+ *
+ * @result
+ * A new array object.
+ *
+ * @see
+ * xpc_array_create
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_array_create_empty(void);
+
+/*!
+ * @function xpc_array_set_value
+ *
+ * @abstract
+ * Inserts the specified object into the array at the specified index.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array).
+ * If the index is outside that range, the behavior is undefined.
+ * 
+ * @param value
+ * The object to insert. This value is retained by the array and cannot be
+ * NULL. If there is already a value at the specified index, it is released,
+ * and the new value is inserted in its place.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
+void
+xpc_array_set_value(xpc_object_t xarray, size_t index, xpc_object_t value);
+
+/*!
+ * @function xpc_array_append_value
+ *
+ * @abstract
+ * Appends an object to an XPC array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param value
+ * The object to append. This object is retained by the array.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
+void
+xpc_array_append_value(xpc_object_t xarray, xpc_object_t value);
+
+/*!
+ * @function xpc_array_get_count
+ *
+ * @abstract
+ * Returns the count of values currently in the array.
+ *
+ * @param xarray
+ * The array object which is to be examined.
+ *
+ * @result
+ * The count of values in the array or 0 if the given object was not an XPC 
+ * array.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+size_t
+xpc_array_get_count(xpc_object_t xarray);
+
+/*!
+ * @function xpc_array_get_value
+ *
+ * @abstract
+ * Returns the value at the specified index in the array.
+ *
+ * @param xarray
+ * The array object which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the range of
+ * indexes as specified in xpc_array_set_value().
+ * 
+ * @result
+ * The object at the specified index within the array or NULL if the given
+ * object was not an XPC array.
+ *
+ * @discussion
+ * This method does not grant the caller a reference to the underlying object,
+ * and thus the caller is not responsible for releasing the object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+xpc_object_t
+xpc_array_get_value(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_apply
+ *
+ * @abstract
+ * Invokes the given block for every value in the array.
+ *
+ * @param xarray
+ * The array object which is to be examined.
+ *
+ * @param applier
+ * The block which this function applies to every element in the array.
+ * 
+ * @result
+ * A Boolean indicating whether iteration of the array completed successfully.
+ * Iteration will only fail if the applier block returns false.
+ *
+ * @discussion
+ * You should not modify an array's contents during iteration. The array indexes
+ * are iterated in order.
+ */
+#ifdef __BLOCKS__
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+bool
+xpc_array_apply(xpc_object_t xarray, XPC_NOESCAPE xpc_array_applier_t applier);
+#endif // __BLOCKS__ 
+
+#pragma mark Array Primitive Setters
+/*!
+ * @define XPC_ARRAY_APPEND
+ * A constant that may be passed as the destination index to the class of
+ * primitive XPC array setters indicating that the given primitive should be
+ * appended to the array.
+ */
+#define XPC_ARRAY_APPEND ((size_t)(-1))
+
+/*!
+ * @function xpc_array_set_bool
+ *
+ * @abstract
+ * Inserts a bool (primitive) value into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param value
+ * The bool value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_array_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_array_set_bool(xpc_object_t xarray, size_t index, bool value);
+
+/*!
+ * @function xpc_array_set_int64
+ *
+ * @abstract
+ * Inserts an int64_t (primitive) value into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param value
+ * The int64_t value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_array_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_array_set_int64(xpc_object_t xarray, size_t index, int64_t value);
+
+/*!
+ * @function xpc_array_set_uint64
+ *
+ * @abstract
+ * Inserts a uint64_t (primitive) value into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param value
+ * The uint64_t value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_array_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_array_set_uint64(xpc_object_t xarray, size_t index, uint64_t value);
+
+/*!
+ * @function xpc_array_set_double
+ *
+ * @abstract
+ * Inserts a double (primitive) value into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param value
+ * The double value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_array_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_array_set_double(xpc_object_t xarray, size_t index, double value);
+
+/*!
+ * @function xpc_array_set_date
+ *
+ * @abstract
+ * Inserts a date value into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param value
+ * The date value to insert, represented as an int64_t. After 
+ * calling this method, the XPC object corresponding to the primitive value 
+ * inserted may be safely retrieved with {@link xpc_array_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_array_set_date(xpc_object_t xarray, size_t index, int64_t value);
+
+/*!
+ * @function xpc_array_set_data
+ *
+ * @abstract
+ * Inserts a raw data value into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param bytes
+ * The raw data to insert. After calling this method, the XPC object
+ * corresponding to the primitive value inserted may be safely retrieved with
+ * {@link xpc_array_get_value()}.
+ *
+ * @param length
+ * The length of the data.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
+void
+xpc_array_set_data(xpc_object_t xarray, size_t index,
+	const void *XPC_SIZEDBY(length) bytes, size_t length);
+
+/*!
+ * @function xpc_array_set_string
+ *
+ * @abstract
+ * Inserts a C string into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param string
+ * The C string to insert. After calling this method, the XPC object
+ * corresponding to the primitive value inserted may be safely retrieved with
+ * {@link xpc_array_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
+void
+xpc_array_set_string(xpc_object_t xarray, size_t index, const char *string);
+
+/*!
+ * @function xpc_array_set_uuid
+ *
+ * @abstract
+ * Inserts a uuid_t (primitive) value into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param uuid
+ * The UUID primitive to insert. After calling this method, the XPC object
+ * corresponding to the primitive value inserted may be safely retrieved with
+ * {@link xpc_array_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
+void
+xpc_array_set_uuid(xpc_object_t xarray, size_t index,
+	const uuid_t XPC_NONNULL_ARRAY uuid);
+
+/*!
+ * @function xpc_array_set_fd
+ *
+ * @abstract
+ * Inserts a file descriptor into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param fd
+ * The file descriptor to insert. After calling this method, the XPC object
+ * corresponding to the primitive value inserted may be safely retrieved with
+ * {@link xpc_array_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1
+void
+xpc_array_set_fd(xpc_object_t xarray, size_t index, int fd);
+
+/*!
+ * @function xpc_array_set_connection
+ *
+ * @abstract
+ * Inserts a connection into an array.
+ *
+ * @param xarray
+ * The array object which is to be manipulated.
+ *
+ * @param index
+ * The index at which to insert the value. This value must lie within the index
+ * space of the array (0 to N-1 inclusive, where N is the count of the array) or
+ * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is
+ * undefined.
+ *
+ * @param connection
+ * The connection to insert. After calling this method, the XPC object
+ * corresponding to the primitive value inserted may be safely retrieved with
+ * {@link xpc_array_get_value()}. The connection is NOT retained by the array.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
+void
+xpc_array_set_connection(xpc_object_t xarray, size_t index,
+	xpc_connection_t connection);
+
+#pragma mark Array Primitive Getters
+/*!
+ * @function xpc_array_get_bool
+ *
+ * @abstract
+ * Gets a bool primitive value from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * The underlying bool value at the specified index. false if the
+ * value at the specified index is not a Boolean value.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+bool
+xpc_array_get_bool(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_get_int64
+ *
+ * @abstract
+ * Gets an int64_t primitive value from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * The underlying int64_t value at the specified index. 0 if the
+ * value at the specified index is not a signed integer value. 
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+int64_t
+xpc_array_get_int64(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_get_uint64
+ *
+ * @abstract
+ * Gets a uint64_t primitive value from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * The underlying uint64_t value at the specified index. 0 if the
+ * value at the specified index is not an unsigned integer value.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+uint64_t
+xpc_array_get_uint64(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_get_double
+ *
+ * @abstract
+ * Gets a double primitive value from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * The underlying double value at the specified index. NAN if the
+ * value at the specified index is not a floating point value.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+double
+xpc_array_get_double(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_get_date
+ *
+ * @abstract
+ * Gets a date interval from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * The underlying date interval at the specified index. 0 if the value at the
+ * specified index is not a date value.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+int64_t
+xpc_array_get_date(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_get_data
+ *
+ * @abstract
+ * Gets a pointer to the raw bytes of a data object from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @param length
+ * Upon return output, will contain the length of the data corresponding to the
+ * specified key.
+ *
+ * @result
+ * The underlying bytes at the specified index. NULL if the value at the
+ * specified index is not a data value.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+const void * _Nullable
+xpc_array_get_data(xpc_object_t xarray, size_t index,
+	size_t * _Nullable length);
+
+/*!
+ * @function xpc_array_get_string
+ *
+ * @abstract
+ * Gets a C string value from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * The underlying C string at the specified index. NULL if the value at the
+ * specified index is not a C string value.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+const char * _Nullable
+xpc_array_get_string(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_get_uuid
+ *
+ * @abstract
+ * Gets a uuid_t value from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * The underlying uuid_t value at the specified index. The null
+ * UUID if the value at the specified index is not a UUID value. The returned
+ * pointer may be safely passed to the uuid(3) APIs.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+const uint8_t * _Nullable
+xpc_array_get_uuid(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_dup_fd
+ *
+ * @abstract
+ * Gets a file descriptor from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * A new file descriptor created from the value at the specified index. You are
+ * responsible for close(2)ing this descriptor. -1 if the value at the specified
+ * index is not a file descriptor value.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+int
+xpc_array_dup_fd(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_create_connection
+ *
+ * @abstract
+ * Creates a connection object from an array directly.
+ *
+ * @param xarray
+ * The array which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the index space
+ * of the array (0 to N-1 inclusive, where N is the count of the array). If the
+ * index is outside that range, the behavior is undefined.
+ *
+ * @result
+ * A new connection created from the value at the specified index. You are
+ * responsible for calling xpc_release() on the returned connection. NULL if the
+ * value at the specified index is not an endpoint containing a connection. Each
+ * call to this method for the same index in the same array will yield a
+ * different connection. See {@link xpc_connection_create_from_endpoint()} for
+ * discussion as to the responsibilities when dealing with the returned
+ * connection.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
+xpc_connection_t _Nullable
+xpc_array_create_connection(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_get_dictionary
+ *
+ * @abstract
+ * Returns the dictionary at the specified index in the array.
+ *
+ * @param xarray
+ * The array object which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the range of
+ * indexes as specified in xpc_array_set_value().
+ * 
+ * @result
+ * The object at the specified index within the array or NULL if the given
+ * object was not an XPC array or if the the value at the specified index was
+ * not a dictionary.
+ *
+ * @discussion
+ * This method does not grant the caller a reference to the underlying object,
+ * and thus the caller is not responsible for releasing the object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+xpc_object_t _Nullable
+xpc_array_get_dictionary(xpc_object_t xarray, size_t index);
+
+/*!
+ * @function xpc_array_get_array
+ *
+ * @abstract
+ * Returns the array at the specified index in the array.
+ *
+ * @param xarray
+ * The array object which is to be examined.
+ *
+ * @param index
+ * The index of the value to obtain. This value must lie within the range of
+ * indexes as specified in xpc_array_set_value().
+ * 
+ * @result
+ * The object at the specified index within the array or NULL if the given
+ * object was not an XPC array or if the the value at the specified index was
+ * not an array.
+ *
+ * @discussion
+ * This method does not grant the caller a reference to the underlying object,
+ * and thus the caller is not responsible for releasing the object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+xpc_object_t _Nullable
+xpc_array_get_array(xpc_object_t xarray, size_t index);
+
+#pragma mark Dictionary
+/*!
+ * @typedef xpc_dictionary_applier_t
+ * A block to be invoked for every key/value pair in the dictionary.
+ *
+ * @param key
+ * The current key in the iteration.
+ *
+ * @param value
+ * The current value in the iteration.
+ *
+ * @result
+ * A Boolean indicating whether iteration should continue.
+ */
+#ifdef __BLOCKS__
+typedef bool (^xpc_dictionary_applier_t)(const char * _Nonnull key,
+		xpc_object_t _Nonnull value);
+#endif // __BLOCKS__ 
+
+/*!
+ * @function xpc_dictionary_create
+ *
+ * @abstract
+ * Creates an XPC object representing a dictionary of XPC objects keyed to
+ * C-strings.
+ *
+ * @param keys
+ * An array of C-strings that are to be the keys for the values to be inserted.
+ * Each element of this array is copied into the dictionary's internal storage.
+ * Elements of this array may NOT be NULL.
+ *
+ * @param values
+ * A C-array that is parallel to the array of keys, consisting of objects that
+ * are to be inserted. Each element in this array is retained. Elements in this
+ * array may be NULL.
+ *
+ * @param count
+ * The number of key/value pairs in the given arrays. If the count is less than
+ * the actual count of values, only that many key/value pairs will be inserted
+ * into the dictionary.
+ *
+ * If the count is more than the the actual count of key/value pairs, the
+ * behavior is undefined. If one array is NULL and the other is not, the 
+ * behavior is undefined. If both arrays are NULL and the count is non-0, the
+ * behavior is undefined.
+ *
+ * @result
+ * The new dictionary object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_dictionary_create(
+	const char *XPC_CSTRING _Nonnull const *XPC_COUNTEDBY(count) _Nullable keys,
+	const xpc_object_t _Nullable *XPC_COUNTEDBY(count) _Nullable values, size_t count);
+
+/*!
+ * @function xpc_dictionary_create_empty
+ *
+ * @abstract
+ * Creates an XPC object representing a dictionary of XPC objects keyed to
+ * C-strings.
+ *
+ * @result
+ * The new dictionary object.
+ *
+ * @see
+ * xpc_dictionary_create
+ */
+API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT
+xpc_object_t
+xpc_dictionary_create_empty(void);
+
+/*!
+ * @function xpc_dictionary_create_reply
+ * 
+ * @abstract
+ * Creates a dictionary that is in reply to the given dictionary.
+ *
+ * @param original
+ * The original dictionary that is to be replied to.
+ *
+ * @result
+ * The new dictionary object. NULL if the object was not a dictionary with a
+ * reply context.
+ *
+ * @discussion
+ * After completing successfully on a dictionary, this method may not be called
+ * again on that same dictionary. Attempts to do so will return NULL.
+ *
+ * When this dictionary is sent across the reply connection, the remote end's
+ * reply handler is invoked.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL
+xpc_object_t _Nullable
+xpc_dictionary_create_reply(xpc_object_t original);
+
+/*!
+ * @function xpc_dictionary_set_value
+ *
+ * @abstract
+ * Sets the value for the specified key to the specified object.
+ *
+ * @param xdict
+ * The dictionary object which is to be manipulated.
+ *
+ * @param key
+ * The key for which the value shall be set.
+ *
+ * @param value
+ * The object to insert. The object is retained by the dictionary. If there
+ * already exists a value for the specified key, the old value is released
+ * and overwritten by the new value. This parameter may be NULL, in which case
+ * the value corresponding to the specified key is deleted if present.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
+void
+xpc_dictionary_set_value(xpc_object_t xdict, const char *key,
+	xpc_object_t _Nullable value);
+
+/*!
+ * @function xpc_dictionary_get_value
+ *
+ * @abstract
+ * Returns the value for the specified key.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ * 
+ * @result
+ * The object for the specified key within the dictionary. NULL if there is no
+ * value associated with the specified key or if the given object was not an
+ * XPC dictionary.
+ *
+ * @discussion
+ * This method does not grant the caller a reference to the underlying object,
+ * and thus the caller is not responsible for releasing the object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2
+xpc_object_t _Nullable
+xpc_dictionary_get_value(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_count
+ *
+ * @abstract
+ * Returns the number of values stored in the dictionary.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @result
+ * The number of values stored in the dictionary or 0 if the given object was 
+ * not an XPC dictionary. Calling xpc_dictionary_set_value() with a non-NULL
+ * value will increment the count. Calling xpc_dictionary_set_value() with a 
+ * NULL value will decrement the count.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+size_t
+xpc_dictionary_get_count(xpc_object_t xdict);
+
+/*!
+ * @function xpc_dictionary_apply
+ *
+ * @abstract
+ * Invokes the given block for every key/value pair in the dictionary.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param applier
+ * The block which this function applies to every key/value pair in the 
+ * dictionary.
+ * 
+ * @result
+ * A Boolean indicating whether iteration of the dictionary completed
+ * successfully. Iteration will only fail if the applier block returns false.
+ *
+ * @discussion
+ * You should not modify a dictionary's contents during iteration. There is no
+ * guaranteed order of iteration over dictionaries.
+ */
+#ifdef __BLOCKS__
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL_ALL
+bool
+xpc_dictionary_apply(xpc_object_t xdict,
+		XPC_NOESCAPE xpc_dictionary_applier_t applier);
+#endif // __BLOCKS__ 
+
+/*!
+ * @function xpc_dictionary_get_remote_connection
+ *
+ * @abstract
+ * Returns the connection from which the dictionary was received.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @result
+ * If the dictionary was received by a connection event handler or a dictionary
+ * created through xpc_dictionary_create_reply(), a connection object over which
+ * a reply message can be sent is returned. For any other dictionary, NULL is
+ * returned.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+xpc_connection_t _Nullable
+xpc_dictionary_get_remote_connection(xpc_object_t xdict);
+
+#pragma mark Dictionary Primitive Setters
+/*!
+ * @function xpc_dictionary_set_bool
+ *
+ * @abstract
+ * Inserts a bool (primitive) value into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param value
+ * The bool value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_dictionary_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
+void
+xpc_dictionary_set_bool(xpc_object_t xdict, const char *key, bool value);
+
+/*!
+ * @function xpc_dictionary_set_int64
+ *
+ * @abstract
+ * Inserts an int64_t (primitive) value into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param value
+ * The int64_t value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_dictionary_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
+void
+xpc_dictionary_set_int64(xpc_object_t xdict, const char *key, int64_t value);
+
+/*!
+ * @function xpc_dictionary_set_uint64
+ *
+ * @abstract
+ * Inserts a uint64_t (primitive) value into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param value
+ * The uint64_t value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_dictionary_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
+void
+xpc_dictionary_set_uint64(xpc_object_t xdict, const char *key, uint64_t value);
+
+/*!
+ * @function xpc_dictionary_set_double
+ *
+ * @abstract
+ * Inserts a double (primitive) value into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param value
+ * The double value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_dictionary_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
+void
+xpc_dictionary_set_double(xpc_object_t xdict, const char *key, double value);
+
+/*!
+ * @function xpc_dictionary_set_date
+ *
+ * @abstract
+ * Inserts a date (primitive) value into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param value
+ * The date value to insert. After calling this method, the XPC object
+ * corresponding to the primitive value inserted may be safely retrieved with
+ * {@link xpc_dictionary_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
+void
+xpc_dictionary_set_date(xpc_object_t xdict, const char *key, int64_t value);
+
+/*!
+ * @function xpc_dictionary_set_data
+ *
+ * @abstract
+ * Inserts a raw data value into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param bytes
+ * The bytes to insert. After calling this method, the XPC object corresponding
+ * to the primitive value inserted may be safely retrieved with
+ * {@link xpc_dictionary_get_value()}.
+ *
+ * @param length
+ * The length of the data.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3
+void
+xpc_dictionary_set_data(xpc_object_t xdict, const char *key,
+	const void *XPC_SIZEDBY(length) bytes, size_t length);
+
+/*!
+ * @function xpc_dictionary_set_string
+ *
+ * @abstract
+ * Inserts a C string value into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param string
+ * The C string to insert. After calling this method, the XPC object 
+ * corresponding to the primitive value inserted may be safely retrieved with
+ * {@link xpc_dictionary_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3
+void
+xpc_dictionary_set_string(xpc_object_t xdict, const char *key,
+	const char *string);
+
+/*!
+ * @function xpc_dictionary_set_uuid
+ *
+ * @abstract
+ * Inserts a uuid (primitive) value into an array.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param uuid
+ * The uuid_t value to insert. After calling this method, the XPC
+ * object corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_dictionary_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3
+void
+xpc_dictionary_set_uuid(xpc_object_t xdict, const char *key,
+	const uuid_t XPC_NONNULL_ARRAY uuid);
+
+/*!
+ * @function xpc_dictionary_set_fd
+ *
+ * @abstract
+ * Inserts a file descriptor into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param fd
+ * The file descriptor to insert. After calling this method, the XPC object
+ * corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_dictionary_get_value()}.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
+void
+xpc_dictionary_set_fd(xpc_object_t xdict, const char *key, int fd);
+
+/*!
+ * @function xpc_dictionary_set_connection
+ *
+ * @abstract
+ * Inserts a connection into a dictionary.
+ *
+ * @param xdict
+ * The dictionary which is to be manipulated.
+ *
+ * @param key
+ * The key for which the primitive value shall be set.
+ *
+ * @param connection
+ * The connection to insert. After calling this method, the XPC object
+ * corresponding to the primitive value inserted may be safely retrieved
+ * with {@link xpc_dictionary_get_value()}. The connection is NOT retained by
+ * the dictionary.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3
+void
+xpc_dictionary_set_connection(xpc_object_t xdict, const char *key,
+	xpc_connection_t connection);
+
+#pragma mark Dictionary Primitive Getters
+/*!
+ * @function xpc_dictionary_get_bool
+ *
+ * @abstract
+ * Gets a bool primitive value from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * The underlying bool value for the specified key. false if the
+ * the value for the specified key is not a Boolean value or if there is no
+ * value for the specified key.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+bool
+xpc_dictionary_get_bool(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_int64
+ *
+ * @abstract
+ * Gets an int64 primitive value from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * The underlying int64_t value for the specified key. 0 if the
+ * value for the specified key is not a signed integer value or if there is no
+ * value for the specified key.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+int64_t
+xpc_dictionary_get_int64(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_uint64
+ *
+ * @abstract
+ * Gets a uint64 primitive value from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * The underlying uint64_t value for the specified key. 0 if the
+ * value for the specified key is not an unsigned integer value or if there is
+ * no value for the specified key.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+uint64_t
+xpc_dictionary_get_uint64(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_double
+ *
+ * @abstract
+ * Gets a double primitive value from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * The underlying double value for the specified key. NAN if the
+ * value for the specified key is not a floating point value or if there is no
+ * value for the specified key.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+double
+xpc_dictionary_get_double(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_date
+ *
+ * @abstract
+ * Gets a date value from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * The underlying date interval for the specified key. 0 if the value for the
+ * specified key is not a date value or if there is no value for the specified
+ * key.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+int64_t
+xpc_dictionary_get_date(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_data
+ *
+ * @abstract
+ * Gets a raw data value from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @param length
+ * For the data type, the third parameter, upon output, will contain the length
+ * of the data corresponding to the specified key. May be NULL.
+ *
+ * @result
+ * The underlying raw data for the specified key. NULL if the value for the
+ * specified key is not a data value or if there is no value for the specified
+ * key.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
+const void * _Nullable
+xpc_dictionary_get_data(xpc_object_t xdict, const char *key,
+	size_t * _Nullable length);
+
+/*!
+ * @function xpc_dictionary_get_string
+ *
+ * @abstract
+ * Gets a C string value from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * The underlying C string for the specified key. NULL if the value for the
+ * specified key is not a C string value or if there is no value for the
+ * specified key.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+const char * _Nullable
+xpc_dictionary_get_string(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_uuid
+ *
+ * @abstract
+ * Gets a uuid value from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * The underlying uuid_t value for the specified key. NULL is the
+ * value at the specified index is not a UUID value. The returned pointer may be
+ * safely passed to the uuid(3) APIs.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2
+const uint8_t * _Nullable
+xpc_dictionary_get_uuid(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_dup_fd
+ *
+ * @abstract
+ * Creates a file descriptor from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * A new file descriptor created from the value for the specified key. You are
+ * responsible for close(2)ing this descriptor. -1 if the value for the
+ * specified key is not a file descriptor value or if there is no value for the
+ * specified key.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+int
+xpc_dictionary_dup_fd(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_create_connection
+ *
+ * @abstract
+ * Creates a connection from a dictionary directly.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ *
+ * @result
+ * A new connection created from the value for the specified key. You are
+ * responsible for calling xpc_release() on the returned connection. NULL if the
+ * value for the specified key is not an endpoint containing a connection or if
+ * there is no value for the specified key. Each call to this method for the
+ * same key in the same dictionary will yield a different connection. See
+ * {@link xpc_connection_create_from_endpoint()} for discussion as to the
+ * responsibilities when dealing with the returned connection.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL
+xpc_connection_t _Nullable
+xpc_dictionary_create_connection(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_dictionary
+ *
+ * @abstract
+ * Returns the dictionary value for the specified key.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ * 
+ * @result
+ * The object for the specified key within the dictionary. NULL if there is no
+ * value associated with the specified key, if the given object was not an
+ * XPC dictionary, or if the object for the specified key is not a dictionary.
+ *
+ * @discussion
+ * This method does not grant the caller a reference to the underlying object,
+ * and thus the caller is not responsible for releasing the object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+xpc_object_t _Nullable
+xpc_dictionary_get_dictionary(xpc_object_t xdict, const char *key);
+
+/*!
+ * @function xpc_dictionary_get_array
+ *
+ * @abstract
+ * Returns the array value for the specified key.
+ *
+ * @param xdict
+ * The dictionary object which is to be examined.
+ *
+ * @param key
+ * The key whose value is to be obtained.
+ * 
+ * @result
+ * The object for the specified key within the dictionary. NULL if there is no
+ * value associated with the specified key, if the given object was not an
+ * XPC dictionary, or if the object for the specified key is not an array.
+ *
+ * @discussion
+ * This method does not grant the caller a reference to the underlying object,
+ * and thus the caller is not responsible for releasing the object.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
+XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
+xpc_object_t _Nullable
+xpc_dictionary_get_array(xpc_object_t xdict, const char *key);
+
+#pragma mark Runtime
+/*!
+ * @function xpc_main
+ * The springboard into the XPCService runtime. This function will set up your
+ * service bundle's listener connection and manage it automatically. After this
+ * initial setup, this function will, by default, call dispatch_main(). You may
+ * override this behavior by setting the RunLoopType key in your XPC service
+ * bundle's Info.plist under the XPCService dictionary.
+ *
+ * @param handler
+ * The handler with which to accept new connections.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NORETURN XPC_NONNULL1
+void
+xpc_main(xpc_connection_handler_t handler);
+
+#pragma mark Transactions
+/*!
+ * @function xpc_transaction_begin
+ * Informs the XPC runtime that a transaction has begun and that the service
+ * should not exit due to inactivity.
+ * 
+ * @discussion
+ * A service with no outstanding transactions may automatically exit due to
+ * inactivity as determined by the system.
+ *
+ * This function may be used to manually manage transactions in cases where
+ * their automatic management (as described below) does not meet the needs of an
+ * XPC service. This function also updates the transaction count used for sudden
+ * termination, i.e. vproc_transaction_begin(), and these two interfaces may be
+ * used in combination.
+ *
+ * The XPC runtime will automatically begin a transaction on behalf of a service
+ * when a new message is received. If no reply message is expected, the
+ * transaction is automatically ended when the last reference to the message is released.
+ * If a reply message is created, the transaction will end when the reply
+ * message is sent or released. An XPC service may use xpc_transaction_begin()
+ * and xpc_transaction_end() to inform the XPC runtime about activity that
+ * occurs outside of this common pattern.
+ *
+ * On macOS, when the XPC runtime has determined that the service should exit,
+ * the event handlers for all active peer connections will receive
+ * {@link XPC_ERROR_TERMINATION_IMMINENT} as an indication that they should
+ * unwind their existing transactions. After this error is delivered to a
+ * connection's event handler, no more messages will be delivered to the
+ * connection.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_TRANSACTION_DEPRECATED
+XPC_EXPORT
+void
+xpc_transaction_begin(void);
+
+/*!
+ * @function xpc_transaction_end
+ * Informs the XPC runtime that a transaction has ended.
+ * 
+ * @discussion
+ * As described in {@link xpc_transaction_begin()}, this API may be used
+ * interchangeably with vproc_transaction_end().
+ *
+ * See the discussion for {@link xpc_transaction_begin()} for details regarding
+ * the XPC runtime's idle-exit policy.
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_TRANSACTION_DEPRECATED
+XPC_EXPORT
+void
+xpc_transaction_end(void);
+
+#pragma mark XPC Event Stream
+/*!
+ * @function xpc_set_event_stream_handler
+ * Sets the event handler to invoke when streamed events are received.
+ *
+ * @param stream
+ * The name of the event stream for which this handler will be invoked.
+ *
+ * @param targetq
+ * The GCD queue to which the event handler block will be submitted. This
+ * parameter may be NULL, in which case the connection's target queue will be
+ * libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT.
+ * 
+ * @param handler
+ * The event handler block. The event which this block receives as its first
+ * parameter will always be a dictionary which contains the XPC_EVENT_KEY_NAME
+ * key. The value for this key will be a string whose value is the name assigned
+ * to the XPC event specified in the launchd.plist. Future keys may be added to
+ * this dictionary.
+ *
+ * @discussion
+ * Multiple calls to this function for the same event stream will result in
+ * undefined behavior.
+ *
+ * There is no API to pause delivery of XPC events. If a process that
+ * has set an XPC event handler exits, events may be dropped due to races
+ * between the event handler running and the process exiting.
+ */
+#if __BLOCKS__
+__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
+XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3
+void
+xpc_set_event_stream_handler(const char *stream,
+	dispatch_queue_t _Nullable targetq, xpc_handler_t handler);
+#endif // __BLOCKS__ 
+
+__END_DECLS
+XPC_ASSUME_NONNULL_END
+
+#endif // __XPC_H__
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/AssertMacros.h b/lib/libc/include/x86_64-macos.10-none/AssertMacros.h
deleted file mode 100644
index 7dc2e589af56cdcb50b9f9ff4e909ea867392f83..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/AssertMacros.h
+++ /dev/null
@@ -1,1441 +0,0 @@
-/*
- * Copyright (c) 2002-2017 by 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@
- */
-
-
-/*
-	File:       AssertMacros.h
- 
-	Contains:   This file defines structured error handling and assertion macros for
-				programming in C. Originally used in QuickDraw GX and later enhanced.
-				These macros are used throughout Apple's software.
-	
-				New code may not want to begin adopting these macros and instead use
-				existing language functionality.
-	
-				See "Living In an Exceptional World" by Sean Parent
-				(develop, The Apple Technical Journal, Issue 11, August/September 1992)
-				 or
-				
-				for the methodology behind these error handling and assertion macros.
-	
-	Bugs?:      For bug reports, consult the following page on
-				the World Wide Web:
-
-	 http://developer.apple.com/bugreporter/ 
-*/
-#ifndef __ASSERTMACROS__
-#define __ASSERTMACROS__
-
-#ifdef DEBUG_ASSERT_CONFIG_INCLUDE
-    #include DEBUG_ASSERT_CONFIG_INCLUDE
-#endif
-
-/*
- *  Macro overview:
- *  
- *      check(assertion)
- *         In production builds, pre-processed away  
- *         In debug builds, if assertion evaluates to false, calls DEBUG_ASSERT_MESSAGE
- *  
- *      verify(assertion)
- *         In production builds, evaluates assertion and does nothing
- *         In debug builds, if assertion evaluates to false, calls DEBUG_ASSERT_MESSAGE
- *  
- *      require(assertion, exceptionLabel)
- *         In production builds, if the assertion expression evaluates to false, goto exceptionLabel
- *         In debug builds, if the assertion expression evaluates to false, calls DEBUG_ASSERT_MESSAGE
- *                          and jumps to exceptionLabel
- *  
- *      In addition the following suffixes are available:
- * 
- *         _noerr     Adds "!= 0" to assertion.  Useful for asserting and OSStatus or OSErr is noErr (zero)
- *         _action    Adds statement to be executued if assertion fails
- *         _quiet     Suppress call to DEBUG_ASSERT_MESSAGE
- *         _string    Allows you to add explanitory message to DEBUG_ASSERT_MESSAGE
- *  
- *        For instance, require_noerr_string(resultCode, label, msg) will do nothing if 
- *        resultCode is zero, otherwise it will call DEBUG_ASSERT_MESSAGE with msg
- *        and jump to label.
- *
- *  Configuration:
- *
- *      By default all macros generate "production code" (i.e non-debug).  If  
- *      DEBUG_ASSERT_PRODUCTION_CODE is defined to zero or DEBUG is defined to non-zero
- *      while this header is included, the macros will generated debug code.
- *
- *      If DEBUG_ASSERT_COMPONENT_NAME_STRING is defined, all debug messages will
- *      be prefixed with it.
- *
- *      By default, all messages write to stderr.  If you would like to write a custom
- *      error message formater, defined DEBUG_ASSERT_MESSAGE to your function name.
- *
- *      Each individual macro will only be defined if it is not already defined, so
- *      you can redefine their behavior singly by providing your own definition before
- *      this file is included.
- *
- *      If you define __ASSERTMACROS__ before this file is included, then nothing in
- *      this file will take effect.
- *
- *      Prior to Mac OS X 10.6 the macro names used in this file conflicted with some
- *      user code, including libraries in boost and the proposed C++ standards efforts,
- *      and there was no way for a client of this header to resolve this conflict. Because
- *      of this, most of the macros have been changed so that they are prefixed with 
- *      __ and contain at least one capital letter, which should alleviate the current
- *      and future conflicts.  However, to allow current sources to continue to compile,
- *      compatibility macros are defined at the end with the old names.  A tops script 
- *      at the end of this file will convert all of the old macro names used in a directory
- *      to the new names.  Clients are recommended to migrate over to these new macros as
- *      they update their sources because a future release of Mac OS X will remove the
- *      old macro definitions ( without the double-underscore prefix ).  Clients who
- *      want to compile without the old macro definitions can define the macro
- *      __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES to 0 before this file is
- *      included.
- */
-
-
-/*
- *  Before including this file, #define DEBUG_ASSERT_COMPONENT_NAME_STRING to
- *  a C-string containing the name of your client. This string will be passed to
- *  the DEBUG_ASSERT_MESSAGE macro for inclusion in any assertion messages.
- *
- *  If you do not define DEBUG_ASSERT_COMPONENT_NAME_STRING, the default
- *  DEBUG_ASSERT_COMPONENT_NAME_STRING value, an empty string, will be used by
- *  the assertion macros.
- */
-#ifndef DEBUG_ASSERT_COMPONENT_NAME_STRING
-    #define DEBUG_ASSERT_COMPONENT_NAME_STRING ""
-#endif
-
-
-/*
- *  To activate the additional assertion code and messages for non-production builds,
- *  #define DEBUG_ASSERT_PRODUCTION_CODE to zero before including this file.
- *
- *  If you do not define DEBUG_ASSERT_PRODUCTION_CODE, the default value 1 will be used
- *  (production code = no assertion code and no messages).
- */
-#ifndef DEBUG_ASSERT_PRODUCTION_CODE
-   #define DEBUG_ASSERT_PRODUCTION_CODE !DEBUG
-#endif
-
-
-/*
- *  DEBUG_ASSERT_MESSAGE(component, assertion, label, error, file, line, errorCode)
- *
- *  Summary:
- *    All assertion messages are routed through this macro. If you wish to use your
- *    own routine to display assertion messages, you can override DEBUG_ASSERT_MESSAGE
- *    by #defining DEBUG_ASSERT_MESSAGE before including this file.
- *
- *  Parameters:
- *
- *    componentNameString:
- *      A pointer to a string constant containing the name of the
- *      component this code is part of. This must be a string constant
- *      (and not a string variable or NULL) because the preprocessor
- *      concatenates it with other string constants.
- *
- *    assertionString:
- *      A pointer to a string constant containing the assertion.
- *      This must be a string constant (and not a string variable or
- *      NULL) because the Preprocessor concatenates it with other
- *      string constants.
- *    
- *    exceptionLabelString:
- *      A pointer to a string containing the exceptionLabel, or NULL.
- *    
- *    errorString:
- *      A pointer to the error string, or NULL. DEBUG_ASSERT_MESSAGE macros
- *      must not attempt to concatenate this string with constant
- *      character strings.
- *    
- *    fileName:
- *      A pointer to the fileName or pathname (generated by the
- *      preprocessor __FILE__ identifier), or NULL.
- *    
- *    lineNumber:
- *      The line number in the file (generated by the preprocessor
- *      __LINE__ identifier), or 0 (zero).
- *    
- *    errorCode:
- *      A value associated with the assertion, or 0.
- *
- *  Here is an example of a DEBUG_ASSERT_MESSAGE macro and a routine which displays
- *  assertion messsages:
- *
- *      #define DEBUG_ASSERT_COMPONENT_NAME_STRING "MyCoolProgram"
- *
- *      #define DEBUG_ASSERT_MESSAGE(componentNameString, assertionString,                           \
- *                                   exceptionLabelString, errorString, fileName, lineNumber, errorCode) \
- *              MyProgramDebugAssert(componentNameString, assertionString,                           \
- *                                   exceptionLabelString, errorString, fileName, lineNumber, errorCode)
- *
- *      static void
- *      MyProgramDebugAssert(const char *componentNameString, const char *assertionString, 
- *                           const char *exceptionLabelString, const char *errorString, 
- *                           const char *fileName, long lineNumber, int errorCode)
- *      {
- *          if ( (assertionString != NULL) && (*assertionString != '\0') )
- *              fprintf(stderr, "Assertion failed: %s: %s\n", componentNameString, assertionString);
- *          else
- *              fprintf(stderr, "Check failed: %s:\n", componentNameString);
- *          if ( exceptionLabelString != NULL )
- *              fprintf(stderr, "    %s\n", exceptionLabelString);
- *          if ( errorString != NULL )
- *              fprintf(stderr, "    %s\n", errorString);
- *          if ( fileName != NULL )
- *              fprintf(stderr, "    file: %s\n", fileName);
- *          if ( lineNumber != 0 )
- *              fprintf(stderr, "    line: %ld\n", lineNumber);
- *          if ( errorCode != 0 )
- *              fprintf(stderr, "    error: %d\n", errorCode);
- *      }
- *
- *  If you do not define DEBUG_ASSERT_MESSAGE, a simple printf to stderr will be used.
- */
-#ifndef DEBUG_ASSERT_MESSAGE
-   #ifdef KERNEL
-      #include 
-      #define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \
-                                  printf( "AssertMacros: %s, %s file: %s, line: %d, value: %ld\n", assertion, (message!=0) ? message : "", file, line, (long) (value));
-   #else
-      #include 
-      #define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \
-                                  fprintf(stderr, "AssertMacros: %s, %s file: %s, line: %d, value: %ld\n", assertion, (message!=0) ? message : "", file, line, (long) (value));
-   #endif
-#endif
-
-
-
-
-
-/*
- *  __Debug_String(message)
- *
- *  Summary:
- *    Production builds: does nothing and produces no code.
- *
- *    Non-production builds: call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    message:
- *      The C string to display.
- *
- */
-#ifndef __Debug_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Debug_String(message)
-	#else
-	   #define __Debug_String(message)                                             \
-		  do                                                                      \
-		  {                                                                       \
-			  DEBUG_ASSERT_MESSAGE(                                               \
-				  DEBUG_ASSERT_COMPONENT_NAME_STRING,                             \
-				  "",                                                             \
-				  0,                                                              \
-				  message,                                                        \
-				  __FILE__,                                                       \
-				  __LINE__,                                                       \
-				  0);                                                             \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Check(assertion)
- *
- *  Summary:
- *    Production builds: does nothing and produces no code.
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- */
-#ifndef __Check
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Check(assertion)
-	#else
-	   #define __Check(assertion)                                                 \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #assertion, 0, 0, __FILE__, __LINE__, 0 );                  \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-#ifndef __nCheck
-	#define __nCheck(assertion)  __Check(!(assertion))
-#endif
-
-/*
- *  __Check_String(assertion, message)
- *
- *  Summary:
- *    Production builds: does nothing and produces no code.
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    message:
- *      The C string to display.
- */
-#ifndef __Check_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Check_String(assertion, message)
-	#else
-	   #define __Check_String(assertion, message)                                 \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #assertion, 0, message, __FILE__, __LINE__, 0 );            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-#ifndef __nCheck_String
-	#define __nCheck_String(assertion, message)  __Check_String(!(assertion), message)
-#endif
-
-/*
- *  __Check_noErr(errorCode)
- *
- *  Summary:
- *    Production builds: does nothing and produces no code.
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The errorCode expression to compare with 0.
- */
-#ifndef __Check_noErr
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Check_noErr(errorCode)
-	#else
-	   #define __Check_noErr(errorCode)                                           \
-		  do                                                                      \
-		  {                                                                       \
-			  long evalOnceErrorCode = (errorCode);                               \
-			  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #errorCode " == 0 ", 0, 0, __FILE__, __LINE__, evalOnceErrorCode ); \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Check_noErr_String(errorCode, message)
- *
- *  Summary:
- *    Production builds: check_noerr_string() does nothing and produces
- *    no code.
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The errorCode expression to compare to 0.
- *
- *    message:
- *      The C string to display.
- */
-#ifndef __Check_noErr_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Check_noErr_String(errorCode, message)
-	#else
-	   #define __Check_noErr_String(errorCode, message)                           \
-		  do                                                                      \
-		  {                                                                       \
-			  long evalOnceErrorCode = (errorCode);                               \
-			  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #errorCode " == 0 ", 0, message, __FILE__, __LINE__, evalOnceErrorCode ); \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Verify(assertion)
- *
- *  Summary:
- *    Production builds: evaluate the assertion expression, but ignore
- *    the result.
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- */
-#ifndef __Verify
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Verify(assertion)                                                \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( !(assertion) )                                                 \
-			  {                                                                   \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Verify(assertion)                                                \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #assertion, 0, 0, __FILE__, __LINE__, 0 );                  \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-#ifndef __nVerify
-	#define __nVerify(assertion)	__Verify(!(assertion))
-#endif
-
-/*
- *  __Verify_String(assertion, message)
- *
- *  Summary:
- *    Production builds: evaluate the assertion expression, but ignore
- *    the result.
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    message:
- *      The C string to display.
- */
-#ifndef __Verify_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Verify_String(assertion, message)                                \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( !(assertion) )                                                 \
-			  {                                                                   \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Verify_String(assertion, message)                                \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #assertion, 0, message, __FILE__, __LINE__, 0 );            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-#ifndef __nVerify_String
-	#define __nVerify_String(assertion, message)  __Verify_String(!(assertion), message)
-#endif
-
-/*
- *  __Verify_noErr(errorCode)
- *
- *  Summary:
- *    Production builds: evaluate the errorCode expression, but ignore
- *    the result.
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- */
-#ifndef __Verify_noErr
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Verify_noErr(errorCode)                                          \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( 0 != (errorCode) )                                             \
-			  {                                                                   \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Verify_noErr(errorCode)                                          \
-		  do                                                                      \
-		  {                                                                       \
-			  long evalOnceErrorCode = (errorCode);                               \
-			  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #errorCode " == 0 ", 0, 0, __FILE__, __LINE__, evalOnceErrorCode ); \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Verify_noErr_String(errorCode, message)
- *
- *  Summary:
- *    Production builds: evaluate the errorCode expression, but ignore
- *    the result.
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- *
- *    message:
- *      The C string to display.
- */
-#ifndef __Verify_noErr_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Verify_noErr_String(errorCode, message)                          \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( 0 != (errorCode) )                                             \
-			  {                                                                   \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Verify_noErr_String(errorCode, message)                          \
-		  do                                                                      \
-		  {                                                                       \
-			  long evalOnceErrorCode = (errorCode);                               \
-			  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #errorCode " == 0 ", 0, message, __FILE__, __LINE__, evalOnceErrorCode ); \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Verify_noErr_Action(errorCode, action)
- *
- *  Summary:
- *    Production builds: if the errorCode expression does not equal 0 (noErr),
- *    execute the action statement or compound statement (block).
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE and then execute the action statement or compound
- *    statement (block).
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- *
- *    action:
- *      The statement or compound statement (block).
- */
-#ifndef __Verify_noErr_Action
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Verify_noErr_Action(errorCode, action)                          \
-		  if ( 0 != (errorCode) ) {                                              \
-			  action;                                                            \
-		  }                                                                      \
-		  else do {} while (0)
-	#else
-	   #define __Verify_noErr_Action(errorCode, action)                          \
-               do {                                                                   \
-		  long evalOnceErrorCode = (errorCode);                                  \
-		  if ( __builtin_expect(0 != evalOnceErrorCode, 0) ) {                   \
-			  DEBUG_ASSERT_MESSAGE(                                              \
-				  DEBUG_ASSERT_COMPONENT_NAME_STRING,                            \
-				  #errorCode " == 0 ", 0, 0, __FILE__, __LINE__, evalOnceErrorCode );            \
-			  action;                                                            \
-		  }                                                                      \
-	       } while (0)
-	#endif
-#endif
-
-/*
- *  __Verify_Action(assertion, action)
- *
- *  Summary:
- *    Production builds: if the assertion expression evaluates to false,
- *    then execute the action statement or compound statement (block).
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE and then execute the action statement or compound
- *    statement (block).
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    action:
- *      The statement or compound statement (block).
- */
-#ifndef __Verify_Action
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Verify_Action(assertion, action)                                \
-		  if ( __builtin_expect(!(assertion), 0) ) {                             \
-			action;                                                              \
-		  }                                                                      \
-		  else do {} while (0)
-	#else
-	   #define __Verify_Action(assertion, action)                                \
-		  if ( __builtin_expect(!(assertion), 0) ) {                             \
-			  DEBUG_ASSERT_MESSAGE(                                              \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                        \
-					  #assertion, 0, 0, __FILE__, __LINE__, 0 );                 \
-			  action;                                                            \
-		  }                                                                      \
-		  else do {} while (0)
-	#endif
-#endif
-
-/*
- *  __Require(assertion, exceptionLabel)
- *
- *  Summary:
- *    Production builds: if the assertion expression evaluates to false,
- *    goto exceptionLabel.
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE and then goto exceptionLabel.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    exceptionLabel:
- *      The label.
- */
-#ifndef __Require
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Require(assertion, exceptionLabel)                               \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Require(assertion, exceptionLabel)                               \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) ) {                          \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #assertion, #exceptionLabel, 0, __FILE__, __LINE__,  0);    \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-#ifndef __nRequire
-	#define __nRequire(assertion, exceptionLabel)  __Require(!(assertion), exceptionLabel)
-#endif
-
-/*
- *  __Require_Action(assertion, exceptionLabel, action)
- *
- *  Summary:
- *    Production builds: if the assertion expression evaluates to false,
- *    execute the action statement or compound statement (block) and then
- *    goto exceptionLabel.
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE, execute the action statement or compound
- *    statement (block), and then goto exceptionLabel.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    exceptionLabel:
- *      The label.
- *
- *    action:
- *      The statement or compound statement (block).
- */
-#ifndef __Require_Action
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Require_Action(assertion, exceptionLabel, action)                \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  {                                                               \
-					  action;                                                     \
-				  }                                                               \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Require_Action(assertion, exceptionLabel, action)                \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #assertion, #exceptionLabel, 0,   __FILE__, __LINE__, 0);   \
-				  {                                                               \
-					  action;                                                     \
-				  }                                                               \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-#ifndef __nRequire_Action
-	#define __nRequire_Action(assertion, exceptionLabel, action)                  \
-	__Require_Action(!(assertion), exceptionLabel, action)
-#endif
-
-/*
- *  __Require_Quiet(assertion, exceptionLabel)
- *
- *  Summary:
- *    If the assertion expression evaluates to false, goto exceptionLabel.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    exceptionLabel:
- *      The label.
- */
-#ifndef __Require_Quiet
-	#define __Require_Quiet(assertion, exceptionLabel)                            \
-	  do                                                                          \
-	  {                                                                           \
-		  if ( __builtin_expect(!(assertion), 0) )                                \
-		  {                                                                       \
-			  goto exceptionLabel;                                                \
-		  }                                                                       \
-	  } while ( 0 )
-#endif
-
-#ifndef __nRequire_Quiet
-	#define __nRequire_Quiet(assertion, exceptionLabel)  __Require_Quiet(!(assertion), exceptionLabel)
-#endif
-
-/*
- *  __Require_Action_Quiet(assertion, exceptionLabel, action)
- *
- *  Summary:
- *    If the assertion expression evaluates to false, execute the action
- *    statement or compound statement (block), and goto exceptionLabel.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    exceptionLabel:
- *      The label.
- *
- *    action:
- *      The statement or compound statement (block).
- */
-#ifndef __Require_Action_Quiet
-	#define __Require_Action_Quiet(assertion, exceptionLabel, action)             \
-	  do                                                                          \
-	  {                                                                           \
-		  if ( __builtin_expect(!(assertion), 0) )                                \
-		  {                                                                       \
-			  {                                                                   \
-				  action;                                                         \
-			  }                                                                   \
-			  goto exceptionLabel;                                                \
-		  }                                                                       \
-	  } while ( 0 )
-#endif
-
-#ifndef __nRequire_Action_Quiet
-	#define __nRequire_Action_Quiet(assertion, exceptionLabel, action)              \
-		__Require_Action_Quiet(!(assertion), exceptionLabel, action)
-#endif
-
-/*
- *  __Require_String(assertion, exceptionLabel, message)
- *
- *  Summary:
- *    Production builds: if the assertion expression evaluates to false,
- *    goto exceptionLabel.
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE, and then goto exceptionLabel.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    exceptionLabel:
- *      The label.
- *
- *    message:
- *      The C string to display.
- */
-#ifndef __Require_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Require_String(assertion, exceptionLabel, message)               \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Require_String(assertion, exceptionLabel, message)               \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #assertion, #exceptionLabel,  message,  __FILE__, __LINE__, 0); \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-#ifndef __nRequire_String
-	#define __nRequire_String(assertion, exceptionLabel, string)                  \
-		__Require_String(!(assertion), exceptionLabel, string)
-#endif
-
-/*
- *  __Require_Action_String(assertion, exceptionLabel, action, message)
- *
- *  Summary:
- *    Production builds: if the assertion expression evaluates to false,
- *    execute the action statement or compound statement (block), and then
- *    goto exceptionLabel.
- *
- *    Non-production builds: if the assertion expression evaluates to false,
- *    call DEBUG_ASSERT_MESSAGE, execute the action statement or compound
- *    statement (block), and then goto exceptionLabel.
- *
- *  Parameters:
- *
- *    assertion:
- *      The assertion expression.
- *
- *    exceptionLabel:
- *      The label.
- *
- *    action:
- *      The statement or compound statement (block).
- *
- *    message:
- *      The C string to display.
- */
-#ifndef __Require_Action_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Require_Action_String(assertion, exceptionLabel, action, message)  \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  {                                                               \
-					  action;                                                     \
-				  }                                                               \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Require_Action_String(assertion, exceptionLabel, action, message)  \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(!(assertion), 0) )                            \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #assertion, #exceptionLabel,  message,  __FILE__,  __LINE__, 0); \
-				  {                                                               \
-					  action;                                                     \
-				  }                                                               \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-#ifndef __nRequire_Action_String
-	#define __nRequire_Action_String(assertion, exceptionLabel, action, message)    \
-		__Require_Action_String(!(assertion), exceptionLabel, action, message)
-#endif
-
-/*
- *  __Require_noErr(errorCode, exceptionLabel)
- *
- *  Summary:
- *    Production builds: if the errorCode expression does not equal 0 (noErr),
- *    goto exceptionLabel.
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE and then goto exceptionLabel.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- *
- *    exceptionLabel:
- *      The label.
- */
-#ifndef __Require_noErr
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Require_noErr(errorCode, exceptionLabel)                         \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(0 != (errorCode), 0) )                        \
-			  {                                                                   \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Require_noErr(errorCode, exceptionLabel)                         \
-		  do                                                                      \
-		  {                                                                       \
-			  long evalOnceErrorCode = (errorCode);                               \
-			  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #errorCode " == 0 ",  #exceptionLabel,  0,  __FILE__, __LINE__, evalOnceErrorCode); \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Require_noErr_Action(errorCode, exceptionLabel, action)
- *
- *  Summary:
- *    Production builds: if the errorCode expression does not equal 0 (noErr),
- *    execute the action statement or compound statement (block) and
- *    goto exceptionLabel.
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE, execute the action statement or
- *    compound statement (block), and then goto exceptionLabel.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- *
- *    exceptionLabel:
- *      The label.
- *
- *    action:
- *      The statement or compound statement (block).
- */
-#ifndef __Require_noErr_Action
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Require_noErr_Action(errorCode, exceptionLabel, action)          \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(0 != (errorCode), 0) )                        \
-			  {                                                                   \
-				  {                                                               \
-					  action;                                                     \
-				  }                                                               \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Require_noErr_Action(errorCode, exceptionLabel, action)          \
-		  do                                                                      \
-		  {                                                                       \
-			  long evalOnceErrorCode = (errorCode);                               \
-			  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #errorCode " == 0 ", #exceptionLabel,  0,  __FILE__, __LINE__,  evalOnceErrorCode); \
-				  {                                                               \
-					  action;                                                     \
-				  }                                                               \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Require_noErr_Quiet(errorCode, exceptionLabel)
- *
- *  Summary:
- *    If the errorCode expression does not equal 0 (noErr),
- *    goto exceptionLabel.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- *
- *    exceptionLabel:
- *      The label.
- */
-#ifndef __Require_noErr_Quiet
-	#define __Require_noErr_Quiet(errorCode, exceptionLabel)                      \
-	  do                                                                          \
-	  {                                                                           \
-		  if ( __builtin_expect(0 != (errorCode), 0) )                            \
-		  {                                                                       \
-			  goto exceptionLabel;                                                \
-		  }                                                                       \
-	  } while ( 0 )
-#endif
-
-/*
- *  __Require_noErr_Action_Quiet(errorCode, exceptionLabel, action)
- *
- *  Summary:
- *    If the errorCode expression does not equal 0 (noErr),
- *    execute the action statement or compound statement (block) and
- *    goto exceptionLabel.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- *
- *    exceptionLabel:
- *      The label.
- *
- *    action:
- *      The statement or compound statement (block).
- */
-#ifndef __Require_noErr_Action_Quiet
-	#define __Require_noErr_Action_Quiet(errorCode, exceptionLabel, action)       \
-	  do                                                                          \
-	  {                                                                           \
-		  if ( __builtin_expect(0 != (errorCode), 0) )                            \
-		  {                                                                       \
-			  {                                                                   \
-				  action;                                                         \
-			  }                                                                   \
-			  goto exceptionLabel;                                                \
-		  }                                                                       \
-	  } while ( 0 )
-#endif
-
-/*
- *  __Require_noErr_String(errorCode, exceptionLabel, message)
- *
- *  Summary:
- *    Production builds: if the errorCode expression does not equal 0 (noErr),
- *    goto exceptionLabel.
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE, and then goto exceptionLabel.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- *
- *    exceptionLabel:
- *      The label.
- *
- *    message:
- *      The C string to display.
- */
-#ifndef __Require_noErr_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Require_noErr_String(errorCode, exceptionLabel, message)         \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(0 != (errorCode), 0) )                        \
-			  {                                                                   \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Require_noErr_String(errorCode, exceptionLabel, message)         \
-		  do                                                                      \
-		  {                                                                       \
-			  long evalOnceErrorCode = (errorCode);                               \
-			  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #errorCode " == 0 ",  #exceptionLabel, message, __FILE__,  __LINE__,  evalOnceErrorCode); \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Require_noErr_Action_String(errorCode, exceptionLabel, action, message)
- *
- *  Summary:
- *    Production builds: if the errorCode expression does not equal 0 (noErr),
- *    execute the action statement or compound statement (block) and
- *    goto exceptionLabel.
- *
- *    Non-production builds: if the errorCode expression does not equal 0 (noErr),
- *    call DEBUG_ASSERT_MESSAGE, execute the action statement or compound
- *    statement (block), and then goto exceptionLabel.
- *
- *  Parameters:
- *
- *    errorCode:
- *      The expression to compare to 0.
- *
- *    exceptionLabel:
- *      The label.
- *
- *    action:
- *      The statement or compound statement (block).
- *
- *    message:
- *      The C string to display.
- */
-#ifndef __Require_noErr_Action_String
-	#if DEBUG_ASSERT_PRODUCTION_CODE
-	   #define __Require_noErr_Action_String(errorCode, exceptionLabel, action, message) \
-		  do                                                                      \
-		  {                                                                       \
-			  if ( __builtin_expect(0 != (errorCode), 0) )                        \
-			  {                                                                   \
-				  {                                                               \
-					  action;                                                     \
-				  }                                                               \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#else
-	   #define __Require_noErr_Action_String(errorCode, exceptionLabel, action, message) \
-		  do                                                                      \
-		  {                                                                       \
-			  long evalOnceErrorCode = (errorCode);                               \
-			  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \
-			  {                                                                   \
-				  DEBUG_ASSERT_MESSAGE(                                           \
-					  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \
-					  #errorCode " == 0 ", #exceptionLabel, message, __FILE__, __LINE__, evalOnceErrorCode); \
-				  {                                                               \
-					  action;                                                     \
-				  }                                                               \
-				  goto exceptionLabel;                                            \
-			  }                                                                   \
-		  } while ( 0 )
-	#endif
-#endif
-
-/*
- *  __Check_Compile_Time(expr)
- *
- *  Summary:
- *    any build: if the expression is not true, generated a compile time error.
- *
- *  Parameters:
- *
- *    expr:
- *      The compile time expression that should evaluate to non-zero.
- *
- *  Discussion:
- *     This declares an array with a size that is determined by a compile-time expression.
- *     If false, it declares a negatively sized array, which generates a compile-time error.
- *
- * Examples:
- *     __Check_Compile_Time( sizeof( int ) == 4 );
- *     __Check_Compile_Time( offsetof( MyStruct, myField ) == 4 );
- *     __Check_Compile_Time( ( kMyBufferSize % 512 ) == 0 );
- *
- *  Note: This only works with compile-time expressions.
- *  Note: This only works in places where extern declarations are allowed (e.g. global scope).
- */
-#ifndef __Check_Compile_Time
-    #ifdef __GNUC__ 
-     #if (__cplusplus >= 201103L)
-        #define __Check_Compile_Time( expr )    static_assert( expr , "__Check_Compile_Time")        
-     #elif (__STDC_VERSION__ >= 201112L)
-        #define __Check_Compile_Time( expr )    _Static_assert( expr , "__Check_Compile_Time")
-     #else
-        #define __Check_Compile_Time( expr )    \
-            extern int compile_time_assert_failed[ ( expr ) ? 1 : -1 ] __attribute__( ( unused ) )
-     #endif
-    #else
-        #define __Check_Compile_Time( expr )    \
-            extern int compile_time_assert_failed[ ( expr ) ? 1 : -1 ]
-    #endif
-#endif
-
-/*
- *	For time immemorial, Mac OS X has defined version of most of these macros without the __ prefix, which
- *	could collide with similarly named functions or macros in user code, including new functionality in
- *	Boost and the C++ standard library.
- *
- *  macOS High Sierra and iOS 11 will now require that clients move to the new macros as defined above.
- *
- *  If you would like to enable the macros for use within your own project, you can define the
- *  __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES macro via an Xcode Build Configuration.
- *  See "Add a build configuration (xcconfig) file" in Xcode Help. 
- *
- *  To aid users of these macros in converting their sources, the following tops script will convert usages
- *  of the old macros into the new equivalents.  To do so, in Terminal go into the directory containing the
- *  sources to be converted and run this command.
- *
-    find -E . -regex '.*\.(c|cc|cp|cpp|m|mm|h)' -print0 |  xargs -0 tops -verbose \
-      replace "check()" with "__Check()" \
-      replace "check_noerr()" with "__Check_noErr()" \
-      replace "check_noerr_string()" with "__Check_noErr_String()" \
-      replace "check_string()" with "__Check_String()" \
-      replace "require()" with "__Require()" \
-      replace "require_action()" with "__Require_Action()" \
-      replace "require_action_string()" with "__Require_Action_String()" \
-      replace "require_noerr()" with "__Require_noErr()" \
-      replace "require_noerr_action()" with "__Require_noErr_Action()" \
-      replace "require_noerr_action_string()" with "__Require_noErr_Action_String()" \
-      replace "require_noerr_string()" with "__Require_noErr_String()" \
-      replace "require_string()" with "__Require_String()" \
-      replace "verify()" with "__Verify()" \
-      replace "verify_action()" with "__Verify_Action()" \
-      replace "verify_noerr()" with "__Verify_noErr()" \
-      replace "verify_noerr_action()" with "__Verify_noErr_Action()" \
-      replace "verify_noerr_string()" with "__Verify_noErr_String()" \
-      replace "verify_string()" with "__Verify_String()" \
-      replace "ncheck()" with "__nCheck()" \
-      replace "ncheck_string()" with "__nCheck_String()" \
-      replace "nrequire()" with "__nRequire()" \
-      replace "nrequire_action()" with "__nRequire_Action()" \
-      replace "nrequire_action_quiet()" with "__nRequire_Action_Quiet()" \
-      replace "nrequire_action_string()" with "__nRequire_Action_String()" \
-      replace "nrequire_quiet()" with "__nRequire_Quiet()" \
-      replace "nrequire_string()" with "__nRequire_String()" \
-      replace "nverify()" with "__nVerify()" \
-      replace "nverify_string()" with "__nVerify_String()" \
-      replace "require_action_quiet()" with "__Require_Action_Quiet()" \
-      replace "require_noerr_action_quiet()" with "__Require_noErr_Action_Quiet()" \
-      replace "require_noerr_quiet()" with "__Require_noErr_Quiet()" \
-      replace "require_quiet()" with "__Require_Quiet()" \
-      replace "check_compile_time()" with "__Check_Compile_Time()" \
-      replace "debug_string()" with "__Debug_String()"
- *
- */
-
-#ifndef __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES
-    #if __has_include()
-        #include 
-    #else 
-        /* In  macOS High Sierra and iOS 11, if we haven't set this yet, it now defaults to off. */
-        #define	__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES	0
-    #endif
-#endif
-
-#if	__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES
-
-	#ifndef check
-	#define check(assertion)  __Check(assertion)
-	#endif
-
-	#ifndef check_noerr
-	#define check_noerr(errorCode)  __Check_noErr(errorCode)
-	#endif
-
-	#ifndef check_noerr_string
-		#define check_noerr_string(errorCode, message)  __Check_noErr_String(errorCode, message)
-	#endif
-
-	#ifndef check_string
-		#define check_string(assertion, message)  __Check_String(assertion, message)
-	#endif
-
-	#ifndef require
-		#define require(assertion, exceptionLabel)  __Require(assertion, exceptionLabel)
-	#endif
-
-	#ifndef require_action
-		#define require_action(assertion, exceptionLabel, action)  __Require_Action(assertion, exceptionLabel, action)
-	#endif
-
-	#ifndef require_action_string
-		#define require_action_string(assertion, exceptionLabel, action, message)  __Require_Action_String(assertion, exceptionLabel, action, message)
-	#endif
-
-	#ifndef require_noerr
-		#define require_noerr(errorCode, exceptionLabel)  __Require_noErr(errorCode, exceptionLabel)
-	#endif
-
-	#ifndef require_noerr_action
-		#define require_noerr_action(errorCode, exceptionLabel, action)  __Require_noErr_Action(errorCode, exceptionLabel, action)
-	#endif
-
-	#ifndef require_noerr_action_string
-		#define require_noerr_action_string(errorCode, exceptionLabel, action, message)  __Require_noErr_Action_String(errorCode, exceptionLabel, action, message)
-	#endif
-
-	#ifndef require_noerr_string
-		#define require_noerr_string(errorCode, exceptionLabel, message)  __Require_noErr_String(errorCode, exceptionLabel, message)
-	#endif
-
-	#ifndef require_string
-		#define require_string(assertion, exceptionLabel, message)  __Require_String(assertion, exceptionLabel, message)
-	#endif
-
-	#ifndef verify
-		#define verify(assertion) __Verify(assertion)
-	#endif
-
-	#ifndef verify_action
-		#define verify_action(assertion, action)  __Verify_Action(assertion, action)
-	#endif
-
-	#ifndef verify_noerr
-		#define verify_noerr(errorCode)  __Verify_noErr(errorCode)
-	#endif
-
-	#ifndef verify_noerr_action
-		#define verify_noerr_action(errorCode, action)  __Verify_noErr_Action(errorCode, action)
-	#endif
-
-	#ifndef verify_noerr_string
-		#define verify_noerr_string(errorCode, message)  __Verify_noErr_String(errorCode, message)
-	#endif
-
-	#ifndef verify_string
-		#define verify_string(assertion, message)  __Verify_String(assertion, message)
-	#endif
-
-	#ifndef ncheck
-		#define ncheck(assertion)  __nCheck(assertion)
-	#endif
-
-	#ifndef ncheck_string
-		#define ncheck_string(assertion, message)  __nCheck_String(assertion, message)
-	#endif
-
-	#ifndef nrequire
-		#define nrequire(assertion, exceptionLabel)  __nRequire(assertion, exceptionLabel)
-	#endif
-
-	#ifndef nrequire_action
-		#define nrequire_action(assertion, exceptionLabel, action)  __nRequire_Action(assertion, exceptionLabel, action)
-	#endif
-
-	#ifndef nrequire_action_quiet
-		#define nrequire_action_quiet(assertion, exceptionLabel, action)  __nRequire_Action_Quiet(assertion, exceptionLabel, action)
-	#endif
-
-	#ifndef nrequire_action_string
-		#define nrequire_action_string(assertion, exceptionLabel, action, message)  __nRequire_Action_String(assertion, exceptionLabel, action, message)
-	#endif
-
-	#ifndef nrequire_quiet
-		#define nrequire_quiet(assertion, exceptionLabel)  __nRequire_Quiet(assertion, exceptionLabel)
-	#endif
-
-	#ifndef nrequire_string
-		#define nrequire_string(assertion, exceptionLabel, string)  __nRequire_String(assertion, exceptionLabel, string)
-	#endif
-
-	#ifndef nverify
-		#define nverify(assertion)  __nVerify(assertion)
-	#endif
-
-	#ifndef nverify_string
-		#define nverify_string(assertion, message)  __nVerify_String(assertion, message)
-	#endif
-
-	#ifndef require_action_quiet
-		#define require_action_quiet(assertion, exceptionLabel, action)  __Require_Action_Quiet(assertion, exceptionLabel, action)
-	#endif
-
-	#ifndef require_noerr_action_quiet
-		#define require_noerr_action_quiet(errorCode, exceptionLabel, action)  __Require_noErr_Action_Quiet(errorCode, exceptionLabel, action)
-	#endif
-
-	#ifndef require_noerr_quiet
-		#define require_noerr_quiet(errorCode, exceptionLabel)  __Require_noErr_Quiet(errorCode, exceptionLabel)
-	#endif
-
-	#ifndef require_quiet
-		#define require_quiet(assertion, exceptionLabel)  __Require_Quiet(assertion, exceptionLabel)
-	#endif
-
-	#ifndef check_compile_time
-		#define check_compile_time( expr )  __Check_Compile_Time( expr )
-	#endif
-
-	#ifndef debug_string
-		#define debug_string(message)  __Debug_String(message)
-	#endif
-	
-#endif	/* ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES */
-
-
-#endif /* __ASSERTMACROS__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/Availability.h b/lib/libc/include/x86_64-macos.10-none/Availability.h
deleted file mode 100644
index bdfd794d89a22d6456ad2a87692a1b63d5ec5d8c..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/Availability.h
+++ /dev/null
@@ -1,605 +0,0 @@
-/*
- * Copyright (c) 2007-2016 by 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@
- */
- 
-#ifndef __AVAILABILITY__
-#define __AVAILABILITY__
- /*     
-    These macros are for use in OS header files. They enable function prototypes
-    and Objective-C methods to be tagged with the OS version in which they
-    were first available; and, if applicable, the OS version in which they 
-    became deprecated.  
-     
-    The desktop Mac OS X and iOS each have different version numbers.
-    The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop
-    and iOS version numbers.  For instance:
-        __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)
-    means the function/method was first available on Mac OS X 10.2 on the desktop
-    and first available in iOS 2.0 on the iPhone.
-    
-    If a function is available on one platform, but not the other a _NA (not
-    applicable) parameter is used.  For instance:
-            __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)
-    means that the function/method was first available on Mac OS X 10.3, and it
-    currently not implemented on the iPhone.
-
-    At some point, a function/method may be deprecated.  That means Apple
-    recommends applications stop using the function, either because there is a 
-    better replacement or the functionality is being phased out.  Deprecated
-    functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()
-    macro which specifies the OS version where the function became available
-    as well as the OS version in which it became deprecated.  For instance:
-        __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)
-    means that the function/method was introduced in Mac OS X 10.0, then
-    became deprecated beginning in Mac OS X 10.5.  On iOS the function 
-    has never been available.  
-    
-    For these macros to function properly, a program must specify the OS version range 
-    it is targeting.  The min OS version is specified as an option to the compiler:
-    -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z
-    when building for the iPhone.  The upper bound for the OS version is rarely needed,
-    but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for
-    Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.  
-    
-    Examples:
-
-        A function available in Mac OS X 10.5 and later, but not on the phone:
-        
-            extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
-
-
-        An Objective-C method in Mac OS X 10.5 and later, but not on the phone:
-        
-            @interface MyClass : NSObject
-            -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);
-            @end
-
-        
-        An enum available on the phone, but not available on Mac OS X:
-        
-            #if __IPHONE_OS_VERSION_MIN_REQUIRED
-                enum { myEnum = 1 };
-            #endif
-           Note: this works when targeting the Mac OS X platform because 
-           __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero. 
-        
-
-        An enum with values added in different iPhoneOS versions:
-		
-			enum {
-			    myX  = 1,	// Usable on iPhoneOS 2.1 and later
-			    myY  = 2,	// Usable on iPhoneOS 3.0 and later
-			    myZ  = 3,	// Usable on iPhoneOS 3.0 and later
-				...
-		      Note: you do not want to use #if with enumeration values
-			  when a client needs to see all values at compile time
-			  and use runtime logic to only use the viable values.
-			  
-
-    It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one
-    source base that can be compiled to target a range of OS versions.  It is best
-    to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.
-    That is because you might get compiled on an old OS that does not define a later
-    OS version macro, and in the C preprocessor undefined values evaluate to zero
-    in expresssions, which could cause the #if expression to evaluate in an unexpected
-    way.
-    
-        #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
-            // code only compiled when targeting Mac OS X and not iPhone
-            // note use of 1050 instead of __MAC_10_5
-            #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
-                // code in here might run on pre-Leopard OS
-            #else
-                // code here can assume Leopard or later
-            #endif
-        #endif
-
-
-*/
-
-/* 
- * __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated 
- * in an upcoming release. This soft deprecation is an intermediate step before formal 
- * deprecation to notify developers about the API before compiler warnings are generated.
- * You can find all places in your code that use soft deprecated API by redefining the 
- * value of this macro to your current minimum deployment target, for example:
- * (macOS)
- *   clang -D__API_TO_BE_DEPRECATED=10.12 
- * (iOS)
- *   clang -D__API_TO_BE_DEPRECATED=11.0 
- */
- 
-#ifndef __API_TO_BE_DEPRECATED
-#define __API_TO_BE_DEPRECATED 100000
-#endif
-
-#ifndef __MAC_10_0
-#define __MAC_10_0            1000
-#define __MAC_10_1            1010
-#define __MAC_10_2            1020
-#define __MAC_10_3            1030
-#define __MAC_10_4            1040
-#define __MAC_10_5            1050
-#define __MAC_10_6            1060
-#define __MAC_10_7            1070
-#define __MAC_10_8            1080
-#define __MAC_10_9            1090
-#define __MAC_10_10         101000
-#define __MAC_10_10_2       101002
-#define __MAC_10_10_3       101003
-#define __MAC_10_11         101100
-#define __MAC_10_11_2       101102
-#define __MAC_10_11_3       101103
-#define __MAC_10_11_4       101104
-#define __MAC_10_12         101200
-#define __MAC_10_12_1       101201
-#define __MAC_10_12_2       101202
-#define __MAC_10_12_4       101204
-#define __MAC_10_13         101300
-#define __MAC_10_13_1       101301
-#define __MAC_10_13_2       101302
-#define __MAC_10_13_4       101304
-#define __MAC_10_14         101400
-#define __MAC_10_14_1       101401
-#define __MAC_10_14_4       101404
-#define __MAC_10_15         101500
-#define __MAC_10_15_1       101501
-#define __MAC_10_15_4       101504
-/* __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable */
-
-#define __IPHONE_2_0      20000
-#define __IPHONE_2_1      20100
-#define __IPHONE_2_2      20200
-#define __IPHONE_3_0      30000
-#define __IPHONE_3_1      30100
-#define __IPHONE_3_2      30200
-#define __IPHONE_4_0      40000
-#define __IPHONE_4_1      40100
-#define __IPHONE_4_2      40200
-#define __IPHONE_4_3      40300
-#define __IPHONE_5_0      50000
-#define __IPHONE_5_1      50100
-#define __IPHONE_6_0      60000
-#define __IPHONE_6_1      60100
-#define __IPHONE_7_0      70000
-#define __IPHONE_7_1      70100
-#define __IPHONE_8_0      80000
-#define __IPHONE_8_1      80100
-#define __IPHONE_8_2      80200
-#define __IPHONE_8_3      80300
-#define __IPHONE_8_4      80400
-#define __IPHONE_9_0      90000
-#define __IPHONE_9_1      90100
-#define __IPHONE_9_2      90200
-#define __IPHONE_9_3      90300
-#define __IPHONE_10_0    100000
-#define __IPHONE_10_1    100100
-#define __IPHONE_10_2    100200
-#define __IPHONE_10_3    100300
-#define __IPHONE_11_0    110000
-#define __IPHONE_11_1    110100
-#define __IPHONE_11_2    110200
-#define __IPHONE_11_3    110300
-#define __IPHONE_11_4    110400
-#define __IPHONE_12_0    120000
-#define __IPHONE_12_1    120100
-#define __IPHONE_12_2    120200
-#define __IPHONE_12_3    120300
-#define __IPHONE_13_0    130000
-#define __IPHONE_13_1    130100
-#define __IPHONE_13_2    130200
-#define __IPHONE_13_3    130300
-#define __IPHONE_13_4    130400
-#define __IPHONE_13_5    130500
-#define __IPHONE_13_6    130600
-/* __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable */
-
-#define __TVOS_9_0        90000
-#define __TVOS_9_1        90100
-#define __TVOS_9_2        90200
-#define __TVOS_10_0      100000
-#define __TVOS_10_0_1    100001
-#define __TVOS_10_1      100100
-#define __TVOS_10_2      100200
-#define __TVOS_11_0      110000
-#define __TVOS_11_1      110100
-#define __TVOS_11_2      110200
-#define __TVOS_11_3      110300
-#define __TVOS_11_4      110400
-#define __TVOS_12_0      120000
-#define __TVOS_12_1      120100
-#define __TVOS_12_2      120200
-#define __TVOS_12_3      120300
-#define __TVOS_13_0      130000
-#define __TVOS_13_2      130200
-#define __TVOS_13_3      130300
-#define __TVOS_13_4      130400
-
-#define __WATCHOS_1_0     10000
-#define __WATCHOS_2_0     20000
-#define __WATCHOS_2_1     20100
-#define __WATCHOS_2_2     20200
-#define __WATCHOS_3_0     30000
-#define __WATCHOS_3_1     30100
-#define __WATCHOS_3_1_1   30101
-#define __WATCHOS_3_2     30200
-#define __WATCHOS_4_0     40000
-#define __WATCHOS_4_1     40100
-#define __WATCHOS_4_2     40200
-#define __WATCHOS_4_3     40300
-#define __WATCHOS_5_0     50000
-#define __WATCHOS_5_1     50100
-#define __WATCHOS_5_2     50200
-#define __WATCHOS_6_0     60000
-#define __WATCHOS_6_1     60100
-#define __WATCHOS_6_2     60200
-
-#define __DRIVERKIT_19_0 190000
-#endif /* __MAC_10_0 */
-
-#include 
-
-#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
-    #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_ios
-    #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \
-                                                    __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep
-    #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \
-                                                    __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep##_MSG(_msg)
-
-#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
-
-   #if defined(__has_builtin)
-    #if __has_builtin(__is_target_arch)
-     #if __has_builtin(__is_target_vendor)
-      #if __has_builtin(__is_target_os)
-       #if __has_builtin(__is_target_environment)
-        #if __has_builtin(__is_target_variant_os)
-         #if __has_builtin(__is_target_variant_environment)
-          #if (__is_target_arch(x86_64) && __is_target_vendor(apple) && ((__is_target_os(ios) && __is_target_environment(macabi)) || (__is_target_variant_os(ios) && __is_target_variant_environment(macabi))))
-            #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_osx __AVAILABILITY_INTERNAL##_ios
-            #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \
-                                                            __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep
-            #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \
-                                                            __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep##_MSG(_msg) __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep##_MSG(_msg)
-          #endif /* # if __is_target_arch... */
-         #endif /* #if __has_builtin(__is_target_variant_environment) */
-        #endif /* #if __has_builtin(__is_target_variant_os) */
-       #endif /* #if __has_builtin(__is_target_environment) */
-      #endif /* #if __has_builtin(__is_target_os) */
-     #endif /* #if __has_builtin(__is_target_vendor) */
-    #endif /* #if __has_builtin(__is_target_arch) */
-   #endif /* #if defined(__has_builtin) */
-
-    #ifndef __OSX_AVAILABLE_STARTING
-      #if defined(__has_attribute) && defined(__has_feature)
-          #if __has_attribute(availability)      
-        #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_osx
-        #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \
-                                                        __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep
-        #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \
-                                                        __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep##_MSG(_msg)
-        #else
-        #define __OSX_AVAILABLE_STARTING(_osx, _ios)
-        #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)
-        #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)
-        #endif
-      #else
-      #define __OSX_AVAILABLE_STARTING(_osx, _ios)
-      #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)
-      #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)
-    #endif
-#endif /* __OSX_AVAILABLE_STARTING */
-
-#else
-    #define __OSX_AVAILABLE_STARTING(_osx, _ios)
-    #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)
-    #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)
-#endif
-
-
-#if defined(__has_feature)
-  #if __has_feature(attribute_availability_with_message)
-    #define __OS_AVAILABILITY(_target, _availability)            __attribute__((availability(_target,_availability)))
-    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)  __attribute__((availability(_target,_availability,message=_msg)))
-  #elif __has_feature(attribute_availability)
-    #define __OS_AVAILABILITY(_target, _availability)            __attribute__((availability(_target,_availability)))
-    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)  __attribute__((availability(_target,_availability)))
-  #else
-    #define __OS_AVAILABILITY(_target, _availability)
-    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)
-  #endif
-#else
-    #define __OS_AVAILABILITY(_target, _availability)
-    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)
-#endif
-
-
-/* for use to document app extension usage */
-#if defined(__has_feature)
-  #if __has_feature(attribute_availability_app_extension)
-    #define __OSX_EXTENSION_UNAVAILABLE(_msg)  __OS_AVAILABILITY_MSG(macosx_app_extension,unavailable,_msg)
-    #define __IOS_EXTENSION_UNAVAILABLE(_msg)  __OS_AVAILABILITY_MSG(ios_app_extension,unavailable,_msg)
-  #else
-    #define __OSX_EXTENSION_UNAVAILABLE(_msg)
-    #define __IOS_EXTENSION_UNAVAILABLE(_msg)
-  #endif
-#else
-    #define __OSX_EXTENSION_UNAVAILABLE(_msg)
-    #define __IOS_EXTENSION_UNAVAILABLE(_msg)
-#endif
-
-#define __OS_EXTENSION_UNAVAILABLE(_msg)  __OSX_EXTENSION_UNAVAILABLE(_msg) __IOS_EXTENSION_UNAVAILABLE(_msg)
-
-
-
-/* for use marking APIs available info for Mac OSX */
-#if defined(__has_attribute)
-  #if __has_attribute(availability)
-    #define __OSX_UNAVAILABLE                    __OS_AVAILABILITY(macosx,unavailable)
-    #define __OSX_AVAILABLE(_vers)               __OS_AVAILABILITY(macosx,introduced=_vers)
-    #define __OSX_DEPRECATED(_start, _dep, _msg) __OSX_AVAILABLE(_start) __OS_AVAILABILITY_MSG(macosx,deprecated=_dep,_msg)
-  #endif
-#endif
-
-#ifndef __OSX_UNAVAILABLE
-  #define __OSX_UNAVAILABLE
-#endif
-
-#ifndef __OSX_AVAILABLE
-  #define __OSX_AVAILABLE(_vers)
-#endif
-
-#ifndef __OSX_DEPRECATED
-  #define __OSX_DEPRECATED(_start, _dep, _msg)
-#endif
-
-
-/* for use marking APIs available info for iOS */
-#if defined(__has_attribute)
-  #if __has_attribute(availability)
-    #define __IOS_UNAVAILABLE                    __OS_AVAILABILITY(ios,unavailable)
-    #define __IOS_PROHIBITED                     __OS_AVAILABILITY(ios,unavailable)
-    #define __IOS_AVAILABLE(_vers)               __OS_AVAILABILITY(ios,introduced=_vers)
-    #define __IOS_DEPRECATED(_start, _dep, _msg) __IOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(ios,deprecated=_dep,_msg)
-  #endif
-#endif
-
-#ifndef __IOS_UNAVAILABLE
-  #define __IOS_UNAVAILABLE
-#endif
-
-#ifndef __IOS_PROHIBITED
-  #define __IOS_PROHIBITED
-#endif
-
-#ifndef __IOS_AVAILABLE
-  #define __IOS_AVAILABLE(_vers)
-#endif
-
-#ifndef __IOS_DEPRECATED
-  #define __IOS_DEPRECATED(_start, _dep, _msg)
-#endif
-
-
-/* for use marking APIs available info for tvOS */
-#if defined(__has_feature)
-  #if __has_feature(attribute_availability_tvos)
-    #define __TVOS_UNAVAILABLE                    __OS_AVAILABILITY(tvos,unavailable)
-    #define __TVOS_PROHIBITED                     __OS_AVAILABILITY(tvos,unavailable)
-    #define __TVOS_AVAILABLE(_vers)               __OS_AVAILABILITY(tvos,introduced=_vers)
-    #define __TVOS_DEPRECATED(_start, _dep, _msg) __TVOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(tvos,deprecated=_dep,_msg)
-  #endif
-#endif
-
-#ifndef __TVOS_UNAVAILABLE
-  #define __TVOS_UNAVAILABLE
-#endif
-
-#ifndef __TVOS_PROHIBITED
-  #define __TVOS_PROHIBITED
-#endif
-
-#ifndef __TVOS_AVAILABLE
-  #define __TVOS_AVAILABLE(_vers)
-#endif
-
-#ifndef __TVOS_DEPRECATED
-  #define __TVOS_DEPRECATED(_start, _dep, _msg)
-#endif
-
-
-/* for use marking APIs available info for Watch OS */
-#if defined(__has_feature)
-  #if __has_feature(attribute_availability_watchos)
-    #define __WATCHOS_UNAVAILABLE                    __OS_AVAILABILITY(watchos,unavailable)
-    #define __WATCHOS_PROHIBITED                     __OS_AVAILABILITY(watchos,unavailable)
-    #define __WATCHOS_AVAILABLE(_vers)               __OS_AVAILABILITY(watchos,introduced=_vers)
-    #define __WATCHOS_DEPRECATED(_start, _dep, _msg) __WATCHOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(watchos,deprecated=_dep,_msg)
-  #endif
-#endif
-
-#ifndef __WATCHOS_UNAVAILABLE
-  #define __WATCHOS_UNAVAILABLE
-#endif
-
-#ifndef __WATCHOS_PROHIBITED
-  #define __WATCHOS_PROHIBITED
-#endif
-
-#ifndef __WATCHOS_AVAILABLE
-  #define __WATCHOS_AVAILABLE(_vers)
-#endif
-
-#ifndef __WATCHOS_DEPRECATED
-  #define __WATCHOS_DEPRECATED(_start, _dep, _msg)
-#endif
-
-
-/* for use marking APIs unavailable for swift */
-#if defined(__has_feature)
-  #if __has_feature(attribute_availability_swift)
-    #define __SWIFT_UNAVAILABLE                   __OS_AVAILABILITY(swift,unavailable)
-    #define __SWIFT_UNAVAILABLE_MSG(_msg)         __OS_AVAILABILITY_MSG(swift,unavailable,_msg)
-  #endif
-#endif
-
-#ifndef __SWIFT_UNAVAILABLE
-  #define __SWIFT_UNAVAILABLE
-#endif
-
-#ifndef __SWIFT_UNAVAILABLE_MSG
-  #define __SWIFT_UNAVAILABLE_MSG(_msg)
-#endif
-
-/*
- Macros for defining which versions/platform a given symbol can be used.
- 
- @see http://clang.llvm.org/docs/AttributeReference.html#availability
- 
- * Note that these macros are only compatible with clang compilers that
- * support the following target selection options:
- *
- * -mmacosx-version-min
- * -miphoneos-version-min
- * -mwatchos-version-min
- * -mtvos-version-min
- */
-
-#if defined(__has_feature) && defined(__has_attribute)
- #if __has_attribute(availability)
-
-    /*
-     * API Introductions
-     *
-     * Use to specify the release that a particular API became available.
-     *
-     * Platform names:
-     *   macos, ios, tvos, watchos
-     *
-     * Examples:
-     *    __API_AVAILABLE(macos(10.10))
-     *    __API_AVAILABLE(macos(10.9), ios(10.0))
-     *    __API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0))
-     *    __API_AVAILABLE(driverkit(19.0))
-     */
-    #define __API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE7, __API_AVAILABLE6, __API_AVAILABLE5, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1, 0)(__VA_ARGS__)
-    
-    #define __API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN7, __API_AVAILABLE_BEGIN6, __API_AVAILABLE_BEGIN5, __API_AVAILABLE_BEGIN4, __API_AVAILABLE_BEGIN3, __API_AVAILABLE_BEGIN2, __API_AVAILABLE_BEGIN1, 0)(__VA_ARGS__)
-    #define __API_AVAILABLE_END _Pragma("clang attribute pop")
-
-    /*
-     * API Deprecations
-     *
-     * Use to specify the release that a particular API became unavailable.
-     *
-     * Platform names:
-     *   macos, ios, tvos, watchos
-     *
-     * Examples:
-     *
-     *    __API_DEPRECATED("No longer supported", macos(10.4, 10.8))
-     *    __API_DEPRECATED("No longer supported", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0))
-     *
-     *    __API_DEPRECATED_WITH_REPLACEMENT("-setName:", tvos(10.0, 10.4), ios(9.0, 10.0))
-     *    __API_DEPRECATED_WITH_REPLACEMENT("SomeClassName", macos(10.4, 10.6), watchos(2.0, 3.0))
-     */
-    #define __API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1, 0)(__VA_ARGS__)
-    #define __API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1, 0)(__VA_ARGS__)
-
-    #define __API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_MSG8,__API_DEPRECATED_BEGIN_MSG7, __API_DEPRECATED_BEGIN_MSG6, __API_DEPRECATED_BEGIN_MSG5, __API_DEPRECATED_BEGIN_MSG4, __API_DEPRECATED_BEGIN_MSG3, __API_DEPRECATED_BEGIN_MSG2, __API_DEPRECATED_BEGIN_MSG1, 0)(__VA_ARGS__)
-    #define __API_DEPRECATED_END _Pragma("clang attribute pop")
-
-    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_REP8,__API_DEPRECATED_BEGIN_REP7, __API_DEPRECATED_BEGIN_REP6, __API_DEPRECATED_BEGIN_REP5, __API_DEPRECATED_BEGIN_REP4, __API_DEPRECATED_BEGIN_REP3, __API_DEPRECATED_BEGIN_REP2, __API_DEPRECATED_BEGIN_REP1, 0)(__VA_ARGS__)
-    #define __API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop")
-
-    /*
-     * API Unavailability
-     * Use to specify that an API is unavailable for a particular platform.
-     *
-     * Example:
-     *    __API_UNAVAILABLE(macos)
-     *    __API_UNAVAILABLE(watchos, tvos)
-     */
-    #define __API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__)
-
-    #define __API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6, __API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_ARGS__)
-    #define __API_UNAVAILABLE_END _Pragma("clang attribute pop")
- #else 
-
-    /* 
-     * Evaluate to nothing for compilers that don't support availability.
-     */
-    
-    #define __API_AVAILABLE(...)
-    #define __API_AVAILABLE_BEGIN(...)
-    #define __API_AVAILABLE_END
-    #define __API_DEPRECATED(...)
-    #define __API_DEPRECATED_WITH_REPLACEMENT(...)
-    #define __API_DEPRECATED_BEGIN(...)
-    #define __API_DEPRECATED_END
-    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
-    #define __API_DEPRECATED_WITH_REPLACEMENT_END
-    #define __API_UNAVAILABLE(...)
-    #define __API_UNAVAILABLE_BEGIN(...)
-    #define __API_UNAVAILABLE_END
- #endif /* __has_attribute(availability) */
-#else
-
-    /* 
-     * Evaluate to nothing for compilers that don't support clang language extensions.
-     */
-    
-    #define __API_AVAILABLE(...)
-    #define __API_AVAILABLE_BEGIN(...)
-    #define __API_AVAILABLE_END
-    #define __API_DEPRECATED(...)
-    #define __API_DEPRECATED_WITH_REPLACEMENT(...)
-    #define __API_DEPRECATED_BEGIN(...)
-    #define __API_DEPRECATED_END
-    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)
-    #define __API_DEPRECATED_WITH_REPLACEMENT_END
-    #define __API_UNAVAILABLE(...)
-    #define __API_UNAVAILABLE_BEGIN(...)
-    #define __API_UNAVAILABLE_END
-#endif /*  #if defined(__has_feature) && defined(__has_attribute) */
-
-#if __has_include()
-  #include 
-#endif
-
-/*
- * If SPI decorations have not been defined elsewhere, disable them.
- */
-
-#ifndef __SPI_AVAILABLE
-  #define __SPI_AVAILABLE(...)
-#endif
-
-#ifndef __SPI_DEPRECATED
-  #define __SPI_DEPRECATED(...)
-#endif
-
-#ifndef __SPI_DEPRECATED_WITH_REPLACEMENT
-  #define __SPI_DEPRECATED_WITH_REPLACEMENT(...)
-#endif
-
-#endif /* __AVAILABILITY__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/AvailabilityInternal.h b/lib/libc/include/x86_64-macos.10-none/AvailabilityInternal.h
deleted file mode 100644
index 11e6d1ed170150c9d5cf38a818012a175eadf8ab..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/AvailabilityInternal.h
+++ /dev/null
@@ -1,4672 +0,0 @@
-/*
- * Copyright (c) 2007-2016 by 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@
- */
-
-/*
-    File:       AvailabilityInternal.h
- 
-    Contains:   implementation details of __OSX_AVAILABLE_* macros from 
-
-*/
-#ifndef __AVAILABILITY_INTERNAL__
-#define __AVAILABILITY_INTERNAL__
-
-#if __has_include()
-  #include 
-#endif
-
-#ifndef __MAC_OS_X_VERSION_MIN_REQUIRED
-    #ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
-        /* compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ */
-        #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
-    #endif
-#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED*/
-
-#ifndef __IPHONE_OS_VERSION_MIN_REQUIRED
-    #ifdef __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
-        /* compiler sets __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ when -miphoneos-version-min is used */
-        #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
-    #endif
-#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED */
-
-#ifndef __TV_OS_VERSION_MIN_REQUIRED
-    #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_13_0 
-        /* for compatibility with existing code.  New code should use platform specific checks */
-        #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
-    #endif
-#endif
-
-#ifndef __WATCH_OS_VERSION_MIN_REQUIRED
-    #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 60000
-        /* for compatibility with existing code.  New code should use platform specific checks */
-        #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
-    #endif
-#endif
-
-#ifndef __BRIDGE_OS_VERSION_MIN_REQUIRED
-    #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 20000
-        /* for compatibility with existing code.  New code should use platform specific checks */
-        #define __IPHONE_OS_VERSION_MIN_REQUIRED 110000
-    #endif
-#endif
-
-#ifndef __DRIVERKIT_VERSION_MIN_REQUIRED
-    #ifdef __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__
-        #define __DRIVERKIT_VERSION_MIN_REQUIRED __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__
-    #endif
-#endif
-
-#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_10_15
-    #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_13_0
-    #endif
-    /* make sure a valid min is set */
-    #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0
-        #undef __IPHONE_OS_VERSION_MIN_REQUIRED
-        #define __IPHONE_OS_VERSION_MIN_REQUIRED    __IPHONE_2_0
-    #endif
-#endif
-
-#define __AVAILABILITY_INTERNAL_DEPRECATED            __attribute__((deprecated))
-#ifdef __has_feature
-    #if __has_feature(attribute_deprecated_with_message)
-        #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated(_msg)))
-    #else
-        #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated))
-    #endif
-#elif defined(__GNUC__) && ((__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)))
-    #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated(_msg)))
-#else
-    #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated))
-#endif
-#define __AVAILABILITY_INTERNAL_UNAVAILABLE           __attribute__((unavailable))
-#define __AVAILABILITY_INTERNAL_WEAK_IMPORT           __attribute__((weak_import))
-#define __AVAILABILITY_INTERNAL_REGULAR            
-
-#if defined(__has_builtin)
- #if __has_builtin(__is_target_arch)
-  #if __has_builtin(__is_target_vendor)
-   #if __has_builtin(__is_target_os)
-    #if __has_builtin(__is_target_environment)
-     #if __has_builtin(__is_target_variant_os)
-      #if __has_builtin(__is_target_variant_environment)
-       #if (__is_target_arch(x86_64) && __is_target_vendor(apple) && ((__is_target_os(ios) && __is_target_environment(macabi)) || (__is_target_variant_os(ios) && __is_target_variant_environment(macabi))))
-         #define __ENABLE_LEGACY_IPHONE_AVAILABILITY 1
-         #define __ENABLE_LEGACY_MAC_AVAILABILITY 1
-       #endif /* # if __is_target_arch... */
-      #endif /* #if __has_builtin(__is_target_variant_environment) */
-     #endif /* #if __has_builtin(__is_target_variant_os) */
-    #endif /* #if __has_builtin(__is_target_environment) */
-   #endif /* #if __has_builtin(__is_target_os) */
-  #endif /* #if __has_builtin(__is_target_vendor) */
- #endif /* #if __has_builtin(__is_target_arch) */
-#endif /* #if defined(__has_builtin) */
-
-#ifndef __ENABLE_LEGACY_IPHONE_AVAILABILITY
- #ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
-  #define __ENABLE_LEGACY_IPHONE_AVAILABILITY 1
- #elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
-  #define __ENABLE_LEGACY_MAC_AVAILABILITY 1
- #endif
-#endif /* __ENABLE_LEGACY_IPHONE_AVAILABILITY */
-
-#ifdef __ENABLE_LEGACY_IPHONE_AVAILABILITY
-    #if defined(__has_attribute) && defined(__has_feature)
-        #if __has_attribute(availability)
-            /* use better attributes if possible */
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0                    __attribute__((availability(ios,introduced=2.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=2.0,deprecated=11.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0   __attribute__((availability(ios,introduced=2.0,deprecated=2.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1   __attribute__((availability(ios,introduced=2.0,deprecated=2.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.0,deprecated=2.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.0,deprecated=3.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.0,deprecated=3.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.0,deprecated=3.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.0,deprecated=4.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.0,deprecated=4.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.0,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.0,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.0,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.0,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.0,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.0,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.0,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.0,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.0,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.0,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.0,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.0,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.0,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.0,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.0,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.0,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.0,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1                    __attribute__((availability(ios,introduced=2.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.1,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1   __attribute__((availability(ios,introduced=2.1,deprecated=2.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.1,deprecated=2.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.1,deprecated=3.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.1,deprecated=3.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.1,deprecated=3.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.1,deprecated=4.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.1,deprecated=4.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.1,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.1,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.1,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.1,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.1,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.1,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.1,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.1,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.1,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.1,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.1,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.1,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.1,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.1,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.1,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.1,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.1,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2                    __attribute__((availability(ios,introduced=2.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.2,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.2,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.2,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.2,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.2,deprecated=2.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=2.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=2.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.2,deprecated=3.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.2,deprecated=3.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.2,deprecated=3.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.2,deprecated=4.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.2,deprecated=4.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.2,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.2,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.2,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.2,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.2,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.2,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.2,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.2,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.2,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.2,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.2,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.2,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.2,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.2,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.2,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.2,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.2,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0                    __attribute__((availability(ios,introduced=3.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=3.0,deprecated=3.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=3.0,deprecated=3.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.0,deprecated=3.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.0,deprecated=4.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.0,deprecated=4.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.0,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.0,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.0,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.0,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.0,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.0,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.0,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.0,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.0,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.0,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.0,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.0,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.0,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.0,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.0,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.0,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.0,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1                    __attribute__((availability(ios,introduced=3.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.1,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=3.1,deprecated=3.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.1,deprecated=3.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.1,deprecated=4.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.1,deprecated=4.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.1,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.1,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.1,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.1,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.1,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.1,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.1,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.1,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.1,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.1,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.1,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.1,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.1,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.1,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.1,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.1,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.1,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2                    __attribute__((availability(ios,introduced=3.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.2,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.2,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.2,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.2,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.2,deprecated=3.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=3.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=3.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.2,deprecated=4.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.2,deprecated=4.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.2,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.2,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.2,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.2,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.2,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.2,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.2,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.2,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.2,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.2,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.2,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.2,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.2,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.2,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.2,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.2,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.2,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0                    __attribute__((availability(ios,introduced=4.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=12.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=12.0)))
-            #endif            
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=4.0,deprecated=4.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.0,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.0,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.0,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.0,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.0,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.0,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.0,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.0,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.0,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.0,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.0,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.0,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.0,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.0,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.0,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.0,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.0,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1                    __attribute__((availability(ios,introduced=4.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.1,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=4.1,deprecated=4.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.1,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.1,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.1,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.1,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.1,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.1,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.1,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.1,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.1,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.1,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.1,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.1,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.1,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.1,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.1,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.1,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.1,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2                    __attribute__((availability(ios,introduced=4.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.2,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.2,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.2,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.2,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.2,deprecated=4.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.2,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.2,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.2,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.2,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.2,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.2,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.2,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.2,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.2,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.2,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.2,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.2,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.2,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.2,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.2,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.2,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3                    __attribute__((availability(ios,introduced=4.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.3,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.3,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.3,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.3,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.3,deprecated=4.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=4.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=4.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.3,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.3,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.3,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.3,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.3,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.3,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.3,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.3,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.3,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.3,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.3,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.3,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.3,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.3,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.3,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0                    __attribute__((availability(ios,introduced=5.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=5.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=5.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=5.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=5.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=5.0,deprecated=11.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=5.0,deprecated=5.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=5.0,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=5.0,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=5.0,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=5.0,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=5.0,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=5.0,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=5.0,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=5.0,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=5.0,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=5.0,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=5.0,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=5.0,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=5.0,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=5.0,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=5.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=5.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1                    __attribute__((availability(ios,introduced=5.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=5.1,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=5.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=5.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=5.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=5.1,deprecated=5.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=5.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=5.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=5.1,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=5.1,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=5.1,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=5.1,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=5.1,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=5.1,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=5.1,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=5.1,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=5.1,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=5.1,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=5.1,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=5.1,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=5.1,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=5.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=5.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0                    __attribute__((availability(ios,introduced=6.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=6.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=6.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=6.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=6.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=6.0,deprecated=6.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=6.0,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=6.0,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=6.0,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=6.0,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=6.0,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=6.0,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=6.0,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=6.0,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=6.0,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=6.0,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=6.0,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=6.0,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=6.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=6.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1                    __attribute__((availability(ios,introduced=6.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=6.1,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=6.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=6.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=6.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=6.1,deprecated=6.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=6.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=6.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=6.1,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=6.1,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=6.1,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=6.1,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=6.1,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=6.1,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=6.1,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=6.1,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=6.1,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=6.1,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=6.1,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=6.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=6.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0                    __attribute__((availability(ios,introduced=7.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=7.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=7.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=7.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=7.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=7.0,deprecated=11.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_11_3   __attribute__((availability(ios,introduced=7.0,deprecated=11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=12.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=12.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=7.0,deprecated=7.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=7.0,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=7.0,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=7.0,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=7.0,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=7.0,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=7.0,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=7.0,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=7.0,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=7.0,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=7.0,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=7.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=7.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1                    __attribute__((availability(ios,introduced=7.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=7.1,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=7.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=7.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=7.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=7.1,deprecated=7.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=7.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=7.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=7.1,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=7.1,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=7.1,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=7.1,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=7.1,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=7.1,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=7.1,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=7.1,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=7.1,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=7.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=7.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0                    __attribute__((availability(ios,introduced=8.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_3   __attribute__((availability(ios,introduced=8.0,deprecated=11.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_12_0   __attribute__((availability(ios,introduced=8.0,deprecated=12.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=8.0,deprecated=8.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=8.0,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.0,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.0,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.0,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.0,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.0,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.0,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.0,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1                    __attribute__((availability(ios,introduced=8.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.1,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=8.1,deprecated=8.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.1,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.1,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.1,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.1,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.1,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.1,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.1,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2                    __attribute__((availability(ios,introduced=8.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.2,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.2,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.2,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.2,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.2,deprecated=8.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.2,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.2,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.2,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.2,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.2,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.2,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3                    __attribute__((availability(ios,introduced=8.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.3,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.3,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.3,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.3,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.3,deprecated=8.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.3,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.3,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.3,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.3,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.3,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4                    __attribute__((availability(ios,introduced=8.4)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.4,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.4,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.4,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.4,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.4,deprecated=8.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=8.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=8.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.4,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.4,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.4,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.4,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.4)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.4)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0                    __attribute__((availability(ios,introduced=9.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=9.0,deprecated=9.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=9.0,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.0,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.0,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1                    __attribute__((availability(ios,introduced=9.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.1,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=9.1,deprecated=9.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.1,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.1,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2                    __attribute__((availability(ios,introduced=9.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.2,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.2,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.2,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.2,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.2,deprecated=9.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.2,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_3                    __attribute__((availability(ios,introduced=9.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.3,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.3,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.3,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.3,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.3,deprecated=9.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=9.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=9.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0                    __attribute__((availability(ios,introduced=10.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=10.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=10.0,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=10.0,deprecated=11.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_12_0   __attribute__((availability(ios,introduced=10.0,deprecated=12.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_1                    __attribute__((availability(ios,introduced=10.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=10.1,deprecated=10.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.1)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_2                    __attribute__((availability(ios,introduced=10.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.2,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.2,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.2)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_3                    __attribute__((availability(ios,introduced=10.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.3,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.3,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.3,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_11                    __attribute__((availability(ios,introduced=11)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_11_0                    __attribute__((availability(ios,introduced=11.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_11_3                    __attribute__((availability(ios,introduced=11.3)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_12_0                    __attribute__((availability(ios,introduced=12.0)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_13_0                    __attribute__((availability(ios,introduced=13.0)))
-
-            #define __AVAILABILITY_INTERNAL__IPHONE_NA                      __attribute__((availability(ios,unavailable)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_NA__IPHONE_NA           __attribute__((availability(ios,unavailable)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA       __attribute__((availability(ios,unavailable)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA_MSG(_msg) __attribute__((availability(ios,unavailable)))
-
-            #if __has_builtin(__is_target_arch)
-             #if __has_builtin(__is_target_vendor)
-              #if __has_builtin(__is_target_os)
-               #if __has_builtin(__is_target_environment)
-                #if __has_builtin(__is_target_variant_os)
-                 #if __has_builtin(__is_target_variant_environment)
-                  #if (__is_target_arch(x86_64) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(macabi))
-                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION __attribute__((availability(ios,introduced=4.0)))
-                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION               __attribute__((availability(ios,unavailable)))
-                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)     __attribute__((availability(ios,unavailable)))
-                  #endif
-                 #endif /* #if __has_builtin(__is_target_variant_environment) */
-                #endif /* #if __has_builtin(__is_target_variant_os) */
-               #endif /* #if __has_builtin(__is_target_environment) */
-              #endif /* #if __has_builtin(__is_target_os) */
-             #endif /* #if __has_builtin(__is_target_vendor) */
-            #endif /* #if __has_builtin(__is_target_arch) */
-
-            #ifndef __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION
-                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION __attribute__((availability(ios,introduced=4.0)))
-                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))
-                #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0,message=_msg)))
-                #else
-                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))
-                #endif
-            #endif /* __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION */
-        #endif
-    #endif
-#endif
-
-#if __ENABLE_LEGACY_MAC_AVAILABILITY
-    #if defined(__has_attribute) && defined(__has_feature)
-        #if __has_attribute(availability)
-            /* use better attributes if possible */
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_2                    __attribute__((availability(macosx,introduced=10.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.2,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.2,deprecated=10.13)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_3                    __attribute__((availability(macosx,introduced=10.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.3,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.3,deprecated=10.13)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_4                    __attribute__((availability(macosx,introduced=10.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.4,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.4,deprecated=10.13)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_5                    __attribute__((availability(macosx,introduced=10.5)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEPRECATED__MAC_10_7                    __attribute__((availability(macosx,introduced=10.5.DEPRECATED..MAC.10.7)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.5,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.5)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_6                    __attribute__((availability(macosx,introduced=10.6)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.6,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.6,deprecated=10.13)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.6)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_7                    __attribute__((availability(macosx,introduced=10.7)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.7,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_13_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.13.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.7)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_8                    __attribute__((availability(macosx,introduced=10.8)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.8,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.8,deprecated=10.13)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.8)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9                    __attribute__((availability(macosx,introduced=10.9)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.9,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.9,deprecated=10.13)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.9,deprecated=10.14)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.9)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_0                    __attribute__((availability(macosx,introduced=10.0)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.0)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_1                    __attribute__((availability(macosx,introduced=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10                    __attribute__((availability(macosx,introduced=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2                    __attribute__((availability(macosx,introduced=10.10.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3                    __attribute__((availability(macosx,introduced=10.10.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.10,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11                    __attribute__((availability(macosx,introduced=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2                    __attribute__((availability(macosx,introduced=10.11.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3                    __attribute__((availability(macosx,introduced=10.11.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_4                    __attribute__((availability(macosx,introduced=10.11.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.11,deprecated=10.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12                    __attribute__((availability(macosx,introduced=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_1                    __attribute__((availability(macosx,introduced=10.12.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_2                    __attribute__((availability(macosx,introduced=10.12.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_4                    __attribute__((availability(macosx,introduced=10.12.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4)))
-            #endif
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13)))
-            #if __has_feature(attribute_availability_with_message)
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13,message=_msg)))
-            #else
-                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13)))
-            #endif
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_4   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.12,deprecated=10.14)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_13                    __attribute__((availability(macosx,introduced=10.13)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_13_4                    __attribute__((availability(macosx,introduced=10.13.4)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_14                    __attribute__((availability(macosx,introduced=10.14)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_14_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.14,deprecated=10.14)))
-            #define __AVAILABILITY_INTERNAL__MAC_10_15                    __attribute__((availability(macosx,introduced=10.15)))
-
-            #define __AVAILABILITY_INTERNAL__MAC_NA                        __attribute__((availability(macosx,unavailable)))
-            #define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA            __attribute__((availability(macosx,unavailable)))
-            #define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA_MSG(_msg)  __attribute__((availability(macosx,unavailable)))
-
-            #define __AVAILABILITY_INTERNAL__IPHONE_NA                      __attribute__((availability(ios,unavailable)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_NA__IPHONE_NA           __attribute__((availability(ios,unavailable)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA       __attribute__((availability(ios,unavailable)))
-            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA_MSG(_msg) __attribute__((availability(ios,unavailable)))
-
-            #ifndef __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION
-             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION                                          __attribute__((availability(ios,unavailable)))
-             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION               __attribute__((availability(ios,unavailable)))
-             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)     __attribute__((availability(ios,unavailable)))
-            #endif /* __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION */
-        #endif
-    #endif
-#endif /* __ENABLE_LEGACY_MAC_AVAILABILITY */
-
-/*
- Macros for defining which versions/platform a given symbol can be used.
- 
- @see http://clang.llvm.org/docs/AttributeReference.html#availability
- */
-
-#if defined(__has_feature) && defined(__has_attribute)
- #if __has_attribute(availability)
-
-    
-    #define __API_AVAILABLE_PLATFORM_macos(x) macos,introduced=x
-    #define __API_AVAILABLE_PLATFORM_macosx(x) macosx,introduced=x
-    #define __API_AVAILABLE_PLATFORM_ios(x) ios,introduced=x
-    #define __API_AVAILABLE_PLATFORM_watchos(x) watchos,introduced=x
-    #define __API_AVAILABLE_PLATFORM_tvos(x) tvos,introduced=x
-    
-    #define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x
-    #define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x
-    #ifndef __API_AVAILABLE_PLATFORM_uikitformac
-     #define __API_AVAILABLE_PLATFORM_uikitformac(x) uikitformac,introduced=x
-    #endif
-    #define __API_AVAILABLE_PLATFORM_driverkit(x) driverkit,introduced=x
-
-    #if defined(__has_attribute)
-      #if __has_attribute(availability)
-        #define __API_A(x) __attribute__((availability(__API_AVAILABLE_PLATFORM_##x)))
-      #else
-        #define __API_A(x)
-      #endif
-    #else
-        #define __API_A(x)
-    #endif
-    
-    #define __API_AVAILABLE1(x) __API_A(x)
-    #define __API_AVAILABLE2(x,y) __API_A(x) __API_A(y)
-    #define __API_AVAILABLE3(x,y,z)  __API_A(x) __API_A(y) __API_A(z)
-    #define __API_AVAILABLE4(x,y,z,t) __API_A(x) __API_A(y) __API_A(z) __API_A(t)
-    #define __API_AVAILABLE5(x,y,z,t,b) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b)
-    #define __API_AVAILABLE6(x,y,z,t,b,m) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m)
-    #define __API_AVAILABLE7(x,y,z,t,b,m,d) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m) __API_A(d)
-    #define __API_AVAILABLE_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME
-
-    #define __API_APPLY_TO any(record, enum, enum_constant, function, objc_method, objc_category, objc_protocol, objc_interface, objc_property, type_alias, variable, field)
-    #define __API_RANGE_STRINGIFY(x) __API_RANGE_STRINGIFY2(x)
-    #define __API_RANGE_STRINGIFY2(x) #x 
-    
-    #define __API_A_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_AVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO)))
-
-    #define __API_AVAILABLE_BEGIN1(a) __API_A_BEGIN(a)
-    #define __API_AVAILABLE_BEGIN2(a,b) __API_A_BEGIN(a) __API_A_BEGIN(b)
-    #define __API_AVAILABLE_BEGIN3(a,b,c) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c)
-    #define __API_AVAILABLE_BEGIN4(a,b,c,d) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d)
-    #define __API_AVAILABLE_BEGIN5(a,b,c,d,e) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e)
-    #define __API_AVAILABLE_BEGIN6(a,b,c,d,e,f) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f)
-    #define __API_AVAILABLE_BEGIN7(a,b,c,d,e,f,g) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f) __API_A_BEGIN(g)
-    #define __API_AVAILABLE_BEGIN_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME
-
-    
-    #define __API_DEPRECATED_PLATFORM_macos(x,y) macos,introduced=x,deprecated=y
-    #define __API_DEPRECATED_PLATFORM_macosx(x,y) macosx,introduced=x,deprecated=y
-    #define __API_DEPRECATED_PLATFORM_ios(x,y) ios,introduced=x,deprecated=y
-    #define __API_DEPRECATED_PLATFORM_watchos(x,y) watchos,introduced=x,deprecated=y
-    #define __API_DEPRECATED_PLATFORM_tvos(x,y) tvos,introduced=x,deprecated=y
-    
-    #define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y
-    #define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y
-    #ifndef __API_DEPRECATED_PLATFORM_uikitformac
-     #define __API_DEPRECATED_PLATFORM_uikitformac(x) uikitformac,introduced=x,deprecated=y
-    #endif
-    #define __API_DEPRECATED_PLATFORM_driverkit(x,y) driverkit,introduced=x,deprecated=y
-
-    #if defined(__has_attribute)
-      #if __has_attribute(availability)
-        #define __API_D(msg,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg)))
-      #else
-        #define __API_D(msg,x)
-      #endif
-    #else
-        #define __API_D(msg,x)
-    #endif
-    
-    #define __API_DEPRECATED_MSG2(msg,x) __API_D(msg,x)
-    #define __API_DEPRECATED_MSG3(msg,x,y) __API_D(msg,x) __API_D(msg,y)
-    #define __API_DEPRECATED_MSG4(msg,x,y,z) __API_DEPRECATED_MSG3(msg,x,y) __API_D(msg,z)
-    #define __API_DEPRECATED_MSG5(msg,x,y,z,t) __API_DEPRECATED_MSG4(msg,x,y,z) __API_D(msg,t)
-    #define __API_DEPRECATED_MSG6(msg,x,y,z,t,b) __API_DEPRECATED_MSG5(msg,x,y,z,t) __API_D(msg,b)
-    #define __API_DEPRECATED_MSG7(msg,x,y,z,t,b,m) __API_DEPRECATED_MSG6(msg,x,y,z,t,b) __API_D(msg,m)
-    #define __API_DEPRECATED_MSG8(msg,x,y,z,t,b,m,d) __API_DEPRECATED_MSG7(msg,x,y,z,t,b,m) __API_D(msg,d)
-    #define __API_DEPRECATED_MSG_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
-
-    #define __API_D_BEGIN(msg, x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg))), apply_to = __API_APPLY_TO)))
-
-    #define __API_DEPRECATED_BEGIN_MSG2(msg,a) __API_D_BEGIN(msg,a)
-    #define __API_DEPRECATED_BEGIN_MSG3(msg,a,b) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b)
-    #define __API_DEPRECATED_BEGIN_MSG4(msg,a,b,c) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c)
-    #define __API_DEPRECATED_BEGIN_MSG5(msg,a,b,c,d) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d)
-    #define __API_DEPRECATED_BEGIN_MSG6(msg,a,b,c,d,e) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e)
-    #define __API_DEPRECATED_BEGIN_MSG7(msg,a,b,c,d,e,f) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f)
-    #define __API_DEPRECATED_BEGIN_MSG8(msg,a,b,c,d,e,f,g) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f) __API_D_BEGIN(msg,g)
-    #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
-
-    #if __has_feature(attribute_availability_with_replacement)
-        #define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep)))
-    #else
-        #define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x)))
-    #endif
-
-    #define __API_DEPRECATED_REP2(rep,x) __API_R(rep,x)
-    #define __API_DEPRECATED_REP3(rep,x,y) __API_R(rep,x) __API_R(rep,y)
-    #define __API_DEPRECATED_REP4(rep,x,y,z)  __API_DEPRECATED_REP3(rep,x,y) __API_R(rep,z)
-    #define __API_DEPRECATED_REP5(rep,x,y,z,t) __API_DEPRECATED_REP4(rep,x,y,z) __API_R(rep,t)
-    #define __API_DEPRECATED_REP6(rep,x,y,z,t,b) __API_DEPRECATED_REP5(rep,x,y,z,t) __API_R(rep,b)
-    #define __API_DEPRECATED_REP7(rep,x,y,z,t,b,m) __API_DEPRECATED_REP6(rep,x,y,z,t,b) __API_R(rep,m)
-    #define __API_DEPRECATED_REP8(rep,x,y,z,t,b,m,d) __API_DEPRECATED_REP7(rep,x,y,z,t,b,m) __API_R(rep,d)
-    #define __API_DEPRECATED_REP_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
-
-    #if __has_feature(attribute_availability_with_replacement)
-        #define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))), apply_to = __API_APPLY_TO)))    
-    #else
-        #define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x))), apply_to = __API_APPLY_TO)))    
-    #endif
-
-    #define __API_DEPRECATED_BEGIN_REP2(rep,a) __API_R_BEGIN(rep,a)
-    #define __API_DEPRECATED_BEGIN_REP3(rep,a,b) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b)
-    #define __API_DEPRECATED_BEGIN_REP4(rep,a,b,c) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c)
-    #define __API_DEPRECATED_BEGIN_REP5(rep,a,b,c,d) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d)
-    #define __API_DEPRECATED_BEGIN_REP6(rep,a,b,c,d,e) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e)
-    #define __API_DEPRECATED_BEGIN_REP7(rep,a,b,c,d,e,f) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f)
-    #define __API_DEPRECATED_BEGIN_REP8(rep,a,b,c,d,e,f,g) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f) __API_R_BEGIN(rep,g)
-    #define __API_DEPRECATED_BEGIN_REP_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
-
-    /*
-     * API Unavailability
-     * Use to specify that an API is unavailable for a particular platform.
-     *
-     * Example:
-     *    __API_UNAVAILABLE(macos)
-     *    __API_UNAVAILABLE(watchos, tvos)
-     */
-    #define __API_UNAVAILABLE_PLATFORM_macos macos,unavailable
-    #define __API_UNAVAILABLE_PLATFORM_macosx macosx,unavailable
-    #define __API_UNAVAILABLE_PLATFORM_ios ios,unavailable
-    #define __API_UNAVAILABLE_PLATFORM_watchos watchos,unavailable
-    #define __API_UNAVAILABLE_PLATFORM_tvos tvos,unavailable
-    
-    #define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable
-    #define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable
-    #ifndef __API_UNAVAILABLE_PLATFORM_uikitformac
-     #define __API_UNAVAILABLE_PLATFORM_uikitformac(x) uikitformac,unavailable
-    #endif
-    #define __API_UNAVAILABLE_PLATFORM_driverkit driverkit,unavailable
-
-    #if defined(__has_attribute)
-      #if __has_attribute(availability)
-        #define __API_U(x) __attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x)))
-      #else
-        #define __API_U(x)
-      #endif
-    #else
-        #define __API_U(x)
-    #endif
-    
-    #define __API_UNAVAILABLE1(x) __API_U(x)
-    #define __API_UNAVAILABLE2(x,y) __API_U(x) __API_U(y)
-    #define __API_UNAVAILABLE3(x,y,z) __API_UNAVAILABLE2(x,y) __API_U(z)
-    #define __API_UNAVAILABLE4(x,y,z,t) __API_UNAVAILABLE3(x,y,z) __API_U(t)
-    #define __API_UNAVAILABLE5(x,y,z,t,b) __API_UNAVAILABLE4(x,y,z,t) __API_U(b)
-    #define __API_UNAVAILABLE6(x,y,z,t,b,m) __API_UNAVAILABLE5(x,y,z,t,b) __API_U(m)
-    #define __API_UNAVAILABLE7(x,y,z,t,b,m,d) __API_UNAVAILABLE6(x,y,z,t,b,m) __API_U(d)
-    #define __API_UNAVAILABLE_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME
-
-    #define __API_U_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO)))
-
-    #define __API_UNAVAILABLE_BEGIN1(a) __API_U_BEGIN(a)
-    #define __API_UNAVAILABLE_BEGIN2(a,b) __API_U_BEGIN(a) __API_U_BEGIN(b)
-    #define __API_UNAVAILABLE_BEGIN3(a,b,c) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c)
-    #define __API_UNAVAILABLE_BEGIN4(a,b,c,d) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d)
-    #define __API_UNAVAILABLE_BEGIN5(a,b,c,d,e) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e)
-    #define __API_UNAVAILABLE_BEGIN6(a,b,c,d,e,f) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f)
-    #define __API_UNAVAILABLE_BEGIN7(a,b,c,d,e,f) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f) __API_U_BEGIN(g)
-    #define __API_UNAVAILABLE_BEGIN_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME
- #else 
-
- /* 
-  * Evaluate to nothing for compilers that don't support availability.
-  */
-    
-  #define __API_AVAILABLE_GET_MACRO(...)
-  #define __API_AVAILABLE_BEGIN_GET_MACRO(...)
-  #define __API_DEPRECATED_MSG_GET_MACRO(...)
-  #define __API_DEPRECATED_REP_GET_MACRO(...)
-  #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(...)
-  #define __API_DEPRECATED_BEGIN_REP_GET_MACRO
-  #define __API_UNAVAILABLE_GET_MACRO(...)
-  #define __API_UNAVAILABLE_BEGIN_GET_MACRO(...)
- #endif /* __has_attribute(availability) */
-#else
-
-    /* 
-     * Evaluate to nothing for compilers that don't support clang language extensions.
-     */
-    
-    #define __API_AVAILABLE_GET_MACRO(...)
-    #define __API_AVAILABLE_BEGIN_GET_MACRO(...)
-    #define __API_DEPRECATED_MSG_GET_MACRO(...)
-    #define __API_DEPRECATED_REP_GET_MACRO(...)
-    #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(...)
-    #define __API_DEPRECATED_BEGIN_REP_GET_MACRO
-    #define __API_UNAVAILABLE_GET_MACRO(...)
-    #define __API_UNAVAILABLE_BEGIN_GET_MACRO(...)
-#endif /* #if defined(__has_feature) && defined(__has_attribute) */
-
-/*
- * Swift compiler version
- * Allows for project-agnostic “epochs” for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
- * Example:
- *
- *  #if __swift_compiler_version_at_least(800, 2, 20)
- *  - (nonnull NSString *)description;
- *  #else
- *  - (NSString *)description;
- *  #endif
- */
- 
-#ifdef __SWIFT_COMPILER_VERSION
-    #define __swift_compiler_version_at_least_impl(X, Y, Z, a, b, ...) \
-    __SWIFT_COMPILER_VERSION >= ((X * UINT64_C(1000) * 1000 * 1000) + (Z * 1000 * 1000) + (a * 1000) + b)
-    #define __swift_compiler_version_at_least(...) __swift_compiler_version_at_least_impl(__VA_ARGS__, 0, 0, 0, 0)
-#else
-    #define __swift_compiler_version_at_least(...) 1
-#endif
-
-/*
- * If __SPI_AVAILABLE has not been defined elsewhere, disable it.
- */
- 
-#ifndef __SPI_AVAILABLE
-  #define __SPI_AVAILABLE(...)
-#endif
-
-#endif /* __AVAILABILITY_INTERNAL__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/AvailabilityMacros.h b/lib/libc/include/x86_64-macos.10-none/AvailabilityMacros.h
deleted file mode 100644
index 9cc7100ffee0faa4950c602ebc00ffa85eb8ec8d..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/AvailabilityMacros.h
+++ /dev/null
@@ -1,4013 +0,0 @@
-/*
- * Copyright (c) 2001-2010 by 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@
- */
-
-/*
-     File:       AvailabilityMacros.h
- 
-     More Info:  See the SDK Compatibility Guide
-
-     Contains:   Autoconfiguration of AVAILABLE_ macros for Mac OS X
-
-                 This header enables a developer to specify build time
-                 constraints on what Mac OS X versions the resulting
-                 application will be run.  There are two bounds a developer
-                 can specify:
-                 
-                      MAC_OS_X_VERSION_MIN_REQUIRED
-                      MAC_OS_X_VERSION_MAX_ALLOWED
-                      
-                The lower bound controls which calls to OS functions will 
-                be weak-importing (allowed to be unresolved at launch time).
-                The upper bound controls which OS functionality, if used,
-                will result in a compiler error because that functionality is
-                not available on any OS in the specifed range.
-                
-                For example, suppose an application is compiled with:
-                
-                      MAC_OS_X_VERSION_MIN_REQUIRED = MAC_OS_X_VERSION_10_2
-                      MAC_OS_X_VERSION_MAX_ALLOWED  = MAC_OS_X_VERSION_10_3
-                     
-                and an OS header contains:
-                
-                     extern void funcA(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER;
-                     extern void funcB(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2;
-                     extern void funcC(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3;
-                     extern void funcD(void) AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER;
-                     extern void funcE(void) AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER;
-                     extern void funcF(void) AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER;
-                     extern void funcG(void) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
-                     
-                     typedef long TypeA DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER;
-                     typedef long TypeB DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER;
-                     typedef long TypeC DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER;
-                     typedef long TypeD DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER;
-                     typedef long TypeE DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER;
-
-                Any application code which uses these declarations will get the following:
-                
-                                compile         link          run 
-                                -------         ------        -------
-                     funcA:     normal          normal        normal
-                     funcB:     warning         normal        normal
-                     funcC:     normal          normal        normal
-                     funcD:     normal          normal        normal
-                     funcE:     normal          normal        normal
-                     funcF:     normal          weak          on 10.3 normal, on 10.2 (&funcF == NULL)
-                     funcG:     error           error         n/a
-                     typeA:     warning
-                     typeB:     warning
-                     typeC:     warning
-                     typeD:     normal
-                     typeE:     normal
-                  
-  
-*/
-#ifndef __AVAILABILITYMACROS__
-#define __AVAILABILITYMACROS__
-
-/*
- * Set up standard Mac OS X versions
- */
-#define MAC_OS_X_VERSION_10_0         1000
-#define MAC_OS_X_VERSION_10_1         1010
-#define MAC_OS_X_VERSION_10_2         1020
-#define MAC_OS_X_VERSION_10_3         1030
-#define MAC_OS_X_VERSION_10_4         1040
-#define MAC_OS_X_VERSION_10_5         1050
-#define MAC_OS_X_VERSION_10_6         1060
-#define MAC_OS_X_VERSION_10_7         1070
-#define MAC_OS_X_VERSION_10_8         1080
-#define MAC_OS_X_VERSION_10_9         1090
-#define MAC_OS_X_VERSION_10_10      101000
-#define MAC_OS_X_VERSION_10_10_2    101002
-#define MAC_OS_X_VERSION_10_10_3    101003
-#define MAC_OS_X_VERSION_10_11      101100
-#define MAC_OS_X_VERSION_10_11_2    101102
-#define MAC_OS_X_VERSION_10_11_3    101103
-#define MAC_OS_X_VERSION_10_11_4    101104
-#define MAC_OS_X_VERSION_10_12      101200
-#define MAC_OS_X_VERSION_10_12_1    101201
-#define MAC_OS_X_VERSION_10_12_2    101202
-#define MAC_OS_X_VERSION_10_12_4    101204
-#define MAC_OS_X_VERSION_10_13      101300
-#define MAC_OS_X_VERSION_10_13_1    101301
-#define MAC_OS_X_VERSION_10_13_2    101302
-#define MAC_OS_X_VERSION_10_13_4    101304
-#define MAC_OS_X_VERSION_10_14      101400
-#define MAC_OS_X_VERSION_10_14_1    101401
-#define MAC_OS_X_VERSION_10_14_4    101404
-#define MAC_OS_X_VERSION_10_15      101500
-#define MAC_OS_X_VERSION_10_15_1    101501
-
-/*
- * If min OS not specified, assume 10.4 for intel
- * Note: compiler driver may set _ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED_ based on MACOSX_DEPLOYMENT_TARGET environment variable
- */
-#ifndef MAC_OS_X_VERSION_MIN_REQUIRED
-    #ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
-        #if (__i386__ || __x86_64__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < MAC_OS_X_VERSION_10_4)
-            #warning Building for Intel with Mac OS X Deployment Target < 10.4 is invalid.
-        #endif
-        #define MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
-    #else
-        #if __i386__ || __x86_64__
-            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_4
-        #elif __arm__ || __arm64__
-            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_5
-        #else
-            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_1
-        #endif
-     #endif
-#endif
-
-/*
- * 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_X_VERSION_10_15
-        #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_MIN_REQUIRED
-    #else
-        #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_10_15
-    #endif
-#endif
-
-/*
- * Error on bad values
- */
-#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_MIN_REQUIRED
-    #error MAC_OS_X_VERSION_MAX_ALLOWED must be >= MAC_OS_X_VERSION_MIN_REQUIRED
-#endif
-#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_0
-    #error MAC_OS_X_VERSION_MIN_REQUIRED must be >= MAC_OS_X_VERSION_10_0
-#endif
-
-/*
- * only certain compilers support __attribute__((weak_import))
- */
-#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1020)
-    #define WEAK_IMPORT_ATTRIBUTE __attribute__((weak_import))
-#elif defined(__MWERKS__) && (__MWERKS__ >= 0x3205) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1020) && !defined(__INTEL__)
-    #define WEAK_IMPORT_ATTRIBUTE __attribute__((weak_import))
-#else
-    #define WEAK_IMPORT_ATTRIBUTE
-#endif
-
-/*
- * only certain compilers support __attribute__((deprecated))
- */
-#if defined(__has_feature) && defined(__has_attribute)
-    #if __has_attribute(deprecated)
-        #define DEPRECATED_ATTRIBUTE        __attribute__((deprecated))
-        #if __has_feature(attribute_deprecated_with_message)
-            #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated(s)))
-        #else
-            #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated))
-        #endif
-    #else
-        #define DEPRECATED_ATTRIBUTE
-        #define DEPRECATED_MSG_ATTRIBUTE(s)
-    #endif
-#elif defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
-    #define DEPRECATED_ATTRIBUTE        __attribute__((deprecated))
-    #if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))
-        #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated(s)))
-    #else
-        #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated))
-    #endif
-#else
-    #define DEPRECATED_ATTRIBUTE
-    #define DEPRECATED_MSG_ATTRIBUTE(s)
-#endif
-
-/*
- * only certain compilers support __attribute__((unavailable))
- */
-#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
-    #define UNAVAILABLE_ATTRIBUTE __attribute__((unavailable))
-#else
-    #define UNAVAILABLE_ATTRIBUTE
-#endif
-
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
- * 
- * Used on functions introduced in Mac OS X 10.0 
- */
-#define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED
- * 
- * Used on functions introduced in Mac OS X 10.0, 
- * and deprecated in Mac OS X 10.0
- */
-#define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER
- * 
- * Used on types deprecated in Mac OS X 10.0 
- */
-#define DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER     DEPRECATED_ATTRIBUTE
-
-#ifndef __AVAILABILITY_MACROS_USES_AVAILABILITY
-	#ifdef __has_attribute
-		#if __has_attribute(availability)
-			#include 
-			#define __AVAILABILITY_MACROS_USES_AVAILABILITY 1
-		#endif
-	#endif
-#endif
-
-#if TARGET_OS_OSX
-#define __IPHONE_COMPAT_VERSION  __IPHONE_NA
-#elif TARGET_OS_MACCATALYST
-#define __IPHONE_COMPAT_VERSION  __IPHONE_NA
-#else
-#define __IPHONE_COMPAT_VERSION  __IPHONE_4_0
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.1 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * and deprecated in Mac OS X 10.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.2 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * and deprecated in Mac OS X 10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.3 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_3, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * and deprecated in Mac OS X 10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.4 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * and deprecated in Mac OS X 10.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.5 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * and deprecated in Mac OS X 10.5
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.5
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.5
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.5
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.5
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.5
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.6 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * and deprecated in Mac OS X 10.6
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.6
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.6
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.6
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.6
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.6
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.6
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.7 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * and deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.13
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_13, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    DEPRECATED_ATTRIBUTE
-#else
-#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.8 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * and deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.9 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * and deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.10 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * and deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.10.2 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10_2, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * and deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.10.3 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10_3, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * and deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.11 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.11,
- * and deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * but later deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.11.2 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_2, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.11.2,
- * and deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2
- *
- * Used on declarations introduced in Mac OS X 10.11,
- * but later deprecated in Mac OS X 10.11.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.11.3 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_3, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.11.3,
- * and deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.11,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3
- *
- * Used on declarations introduced in Mac OS X 10.11.2,
- * but later deprecated in Mac OS X 10.11.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.11.4 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_4, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.11.4,
- * and deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.11,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.11.2,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4
- *
- * Used on declarations introduced in Mac OS X 10.11.3,
- * but later deprecated in Mac OS X 10.11.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.12 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.12,
- * and deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.11,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.11.2,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.11.3,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12
- *
- * Used on declarations introduced in Mac OS X 10.11.4,
- * but later deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.12.1 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_1, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.12.1,
- * and deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.11,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.11.2,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.11.3,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.11.4,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1
- *
- * Used on declarations introduced in Mac OS X 10.12,
- * but later deprecated in Mac OS X 10.12.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.12.2 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_2, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.12.2,
- * and deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.11,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.11.2,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.11.3,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.11.4,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.12,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2
- *
- * Used on declarations introduced in Mac OS X 10.12.1,
- * but later deprecated in Mac OS X 10.12.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.12.4 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_4, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED
- *
- * Used on declarations introduced in Mac OS X 10.12.4,
- * and deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.0,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.1,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.2,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.3,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.4,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.5,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.6,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.7,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.8,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.9,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.10,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.10.2,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.10.3,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.11,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.11.2,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.11.3,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.11.4,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.12,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.12.1,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4
- *
- * Used on declarations introduced in Mac OS X 10.12.2,
- * but later deprecated in Mac OS X 10.12.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.13 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_13, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_13
-    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_13
-    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.14 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_14, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_14
-    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_14
-    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER
-#endif
-
-/*
- * AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER
- * 
- * Used on declarations introduced in Mac OS X 10.15 
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_15, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_15
-    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     UNAVAILABLE_ATTRIBUTE
-#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_15
-    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     WEAK_IMPORT_ATTRIBUTE
-#else
-    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.1
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.2
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.3
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER
-#endif
-
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.5
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.6
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.7
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.8
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.9
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.10
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.11
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.12
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.13
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_13, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER
-#endif
-
-/*
- * DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER
- *
- * Used on types deprecated in Mac OS X 10.14.4
- */
-#if __AVAILABILITY_MACROS_USES_AVAILABILITY
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_14_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)
-#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_14_4
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER    DEPRECATED_ATTRIBUTE
-#else
-    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER
-#endif
-
-#endif  /* __AVAILABILITYMACROS__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/TargetConditionals.h b/lib/libc/include/x86_64-macos.10-none/TargetConditionals.h
deleted file mode 100644
index 896956f33d34cec3f4a4b9107b54b45f2cbf39c1..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/TargetConditionals.h
+++ /dev/null
@@ -1,502 +0,0 @@
-/*
- * Copyright (c) 2000-2014 by 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@
- */
- 
-/*
-     File:       TargetConditionals.h
- 
-     Contains:   Autoconfiguration of TARGET_ conditionals for Mac OS X and iPhone
-     
-                 Note:  TargetConditionals.h in 3.4 Universal Interfaces works
-                        with all compilers.  This header only recognizes compilers
-                        known to run on Mac OS X.
-  
-*/
-
-#ifndef __TARGETCONDITIONALS__
-#define __TARGETCONDITIONALS__
-
-/****************************************************************************************************
-
-    TARGET_CPU_*    
-    These conditionals specify which microprocessor instruction set is being
-    generated.  At most one of these is true, the rest are false.
-
-        TARGET_CPU_PPC          - Compiler is generating PowerPC instructions for 32-bit mode
-        TARGET_CPU_PPC64        - Compiler is generating PowerPC instructions for 64-bit mode
-        TARGET_CPU_68K          - Compiler is generating 680x0 instructions
-        TARGET_CPU_X86          - Compiler is generating x86 instructions for 32-bit mode
-        TARGET_CPU_X86_64       - Compiler is generating x86 instructions for 64-bit mode
-        TARGET_CPU_ARM          - Compiler is generating ARM instructions for 32-bit mode
-        TARGET_CPU_ARM64        - Compiler is generating ARM instructions for 64-bit mode
-        TARGET_CPU_MIPS         - Compiler is generating MIPS instructions
-        TARGET_CPU_SPARC        - Compiler is generating Sparc instructions
-        TARGET_CPU_ALPHA        - Compiler is generating Dec Alpha instructions
-
-
-    TARGET_OS_* 
-    These conditionals specify in which Operating System the generated code will
-    run.  Indention is used to show which conditionals are evolutionary subclasses.  
-    
-    The MAC/WIN32/UNIX conditionals are mutually exclusive.
-    The IOS/TV/WATCH conditionals are mutually exclusive.
-    
-    
-        TARGET_OS_WIN32           - Generated code will run under 32-bit Windows
-        TARGET_OS_UNIX            - Generated code will run under some Unix (not OSX) 
-        TARGET_OS_MAC             - Generated code will run under Mac OS X variant
-           TARGET_OS_OSX          - Generated code will run under OS X devices
-           TARGET_OS_IPHONE          - Generated code for firmware, devices, or simulator
-              TARGET_OS_IOS             - Generated code will run under iOS 
-              TARGET_OS_TV              - Generated code will run under Apple TV OS
-              TARGET_OS_WATCH           - Generated code will run under Apple Watch OS
-              TARGET_OS_BRIDGE          - Generated code will run under Bridge devices
-              TARGET_OS_MACCATALYST     - Generated code will run under macOS
-           TARGET_OS_SIMULATOR      - Generated code will run under a simulator
-       
-        TARGET_OS_EMBEDDED        - DEPRECATED: Use TARGET_OS_IPHONE and/or TARGET_OS_SIMULATOR instead
-        TARGET_IPHONE_SIMULATOR   - DEPRECATED: Same as TARGET_OS_SIMULATOR
-        TARGET_OS_NANO            - DEPRECATED: Same as TARGET_OS_WATCH
-
-      +----------------------------------------------------------------+
-      |                TARGET_OS_MAC                                   |
-      | +---+  +-----------------------------------------------------+ |
-      | |   |  |          TARGET_OS_IPHONE                           | |
-      | |OSX|  | +-----+ +----+ +-------+ +--------+ +-------------+ | |
-      | |   |  | | IOS | | TV | | WATCH | | BRIDGE | | MACCATALYST | | |
-      | |   |  | +-----+ +----+ +-------+ +--------+ +-------------+ | |
-      | +---+  +-----------------------------------------------------+ |
-      +----------------------------------------------------------------+
-
-    TARGET_RT_* 
-    These conditionals specify in which runtime the generated code will
-    run. This is needed when the OS and CPU support more than one runtime
-    (e.g. Mac OS X supports CFM and mach-o).
-
-        TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers
-        TARGET_RT_BIG_ENDIAN    - Generated code uses big endian format for integers    
-        TARGET_RT_64_BIT        - Generated code uses 64-bit pointers    
-        TARGET_RT_MAC_CFM       - TARGET_OS_MAC is true and CFM68K or PowerPC CFM (TVectors) are used
-        TARGET_RT_MAC_MACHO     - TARGET_OS_MAC is true and Mach-O/dlyd runtime is used
-        
-
-****************************************************************************************************/
- 
- /*
- * TARGET_OS conditionals can be enabled via clang preprocessor extensions:
- *
- *      __is_target_arch
- *      __is_target_vendor
- *      __is_target_os
- *      __is_target_environment
- *
- *  “-target=x86_64-apple-ios12-macabi”
- *      TARGET_OS_MAC=1
- *      TARGET_OS_IPHONE=1
- *      TARGET_OS_IOS=1
- *      TARGET_OS_MACCATALYST=1
- *
- *  “-target=x86_64-apple-ios12-simulator”
- *      TARGET_OS_MAC=1
- *      TARGET_OS_IPHONE=1
- *      TARGET_OS_IOS=1
- *      TARGET_OS_SIMULATOR=1
- *
- * DYNAMIC_TARGETS_ENABLED indicates that the core TARGET_OS macros were enabled via clang preprocessor extensions.
- * If this value is not set, the macro enablements will fall back to the static behavior.
- * It is disabled by default.
- */
-
-#if defined(__has_builtin)
- #if __has_builtin(__is_target_arch)
-  #if __has_builtin(__is_target_vendor)
-   #if __has_builtin(__is_target_os)
-    #if __has_builtin(__is_target_environment)
-
-    /* “-target=x86_64-apple-ios12-macabi” */
-    #if __is_target_arch(x86_64) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(macabi)
-        #define TARGET_OS_OSX               0
-        #define TARGET_OS_IPHONE            1
-        #define TARGET_OS_IOS               1
-        #define TARGET_OS_WATCH             0
-        
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_SIMULATOR         0
-        #define TARGET_OS_EMBEDDED          0    
-        #define TARGET_OS_RTKIT             0
-        #define TARGET_OS_MACCATALYST       1
-        #define TARGET_OS_MACCATALYST            1
-        #ifndef TARGET_OS_UIKITFORMAC
-         #define TARGET_OS_UIKITFORMAC      1
-        #endif
-        #define TARGET_OS_DRIVERKIT         0
-        #define DYNAMIC_TARGETS_ENABLED     1
-    #endif 
-
-    /* “-target=x86_64-apple-ios12-simulator” */
-    #if __is_target_arch(x86_64) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(simulator)
-        #define TARGET_OS_OSX               0
-        #define TARGET_OS_IPHONE            1
-        #define TARGET_OS_IOS               1
-        #define TARGET_OS_WATCH             0
-        
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_SIMULATOR         1
-        #define TARGET_OS_EMBEDDED          0    
-        #define TARGET_OS_RTKIT             0
-        #define TARGET_OS_MACCATALYST       0
-        #define TARGET_OS_MACCATALYST            0
-        #ifndef TARGET_OS_UIKITFORMAC
-         #define TARGET_OS_UIKITFORMAC      0
-        #endif
-        #define TARGET_OS_DRIVERKIT         0
-        #define DYNAMIC_TARGETS_ENABLED     1
-    #endif 
-
-    /* -target=x86_64-apple-driverkit19.0 */
-    #if __is_target_arch(x86_64) && __is_target_vendor(apple) && __is_target_os(driverkit)
-        #define TARGET_OS_OSX               0
-        #define TARGET_OS_IPHONE            0
-        #define TARGET_OS_IOS               0
-        #define TARGET_OS_WATCH             0
-        
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_SIMULATOR         0
-        #define TARGET_OS_EMBEDDED          0
-        #define TARGET_OS_RTKIT             0
-        #define TARGET_OS_MACCATALYST       0
-        #define TARGET_OS_MACCATALYST            0
-        #ifndef TARGET_OS_UIKITFORMAC
-         #define TARGET_OS_UIKITFORMAC      0
-        #endif
-        #define TARGET_OS_DRIVERKIT         1
-        #define DYNAMIC_TARGETS_ENABLED     1
-    #endif
-
-    #endif /* #if __has_builtin(__is_target_environment) */
-   #endif /* #if __has_builtin(__is_target_os) */
-  #endif /* #if __has_builtin(__is_target_vendor) */
- #endif /* #if __has_builtin(__is_target_arch) */
-#endif /* #if defined(__has_builtin) */
-
-
-#ifndef DYNAMIC_TARGETS_ENABLED
- #define DYNAMIC_TARGETS_ENABLED   0
-#endif /* DYNAMIC_TARGETS_ENABLED */
-
-/*
- *    gcc based compiler used on Mac OS X
- */
-#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )
-    #define TARGET_OS_MAC               1
-    #define TARGET_OS_WIN32             0
-    #define TARGET_OS_UNIX              0
-
-    #if !DYNAMIC_TARGETS_ENABLED
-        #define TARGET_OS_OSX               1
-        #define TARGET_OS_IPHONE            0
-        #define TARGET_OS_IOS               0
-        #define TARGET_OS_WATCH             0
-        
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_MACCATALYST       0
-        #define TARGET_OS_MACCATALYST            0
-        #ifndef TARGET_OS_UIKITFORMAC
-         #define TARGET_OS_UIKITFORMAC      0
-        #endif
-        #define TARGET_OS_SIMULATOR         0
-        #define TARGET_OS_EMBEDDED          0 
-        #define TARGET_OS_RTKIT             0 
-        #define TARGET_OS_DRIVERKIT         0
-    #endif
-    
-    #define TARGET_IPHONE_SIMULATOR     TARGET_OS_SIMULATOR /* deprecated */
-    #define TARGET_OS_NANO              TARGET_OS_WATCH /* deprecated */ 
-    #define TARGET_ABI_USES_IOS_VALUES  (TARGET_OS_IPHONE && !TARGET_OS_MACCATALYST)
-    #if defined(__ppc__)
-        #define TARGET_CPU_PPC          1
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0   
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_LITTLE_ENDIAN 0
-        #define TARGET_RT_BIG_ENDIAN    1
-        #define TARGET_RT_64_BIT        0
-        #ifdef __MACOS_CLASSIC__
-           #define TARGET_RT_MAC_CFM    1
-           #define TARGET_RT_MAC_MACHO  0
-        #else
-           #define TARGET_RT_MAC_CFM    0
-           #define TARGET_RT_MAC_MACHO  1
-       #endif
-    #elif defined(__ppc64__) 
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        1
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0   
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_LITTLE_ENDIAN 0
-        #define TARGET_RT_BIG_ENDIAN    1
-        #define TARGET_RT_64_BIT        1
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-    #elif defined(__i386__) 
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          1
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #define TARGET_RT_64_BIT        0
-    #elif defined(__x86_64__) 
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       1
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #define TARGET_RT_64_BIT        1
-    #elif defined(__arm__) 
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          1
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #define TARGET_RT_64_BIT        0
-    #elif defined(__arm64__)
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       0
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        1
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #if __LP64__
-          #define TARGET_RT_64_BIT      1
-        #else
-          #define TARGET_RT_64_BIT      0
-        #endif
-    #else
-        #error unrecognized GNU C compiler
-    #endif
-
-
-
-/*
- *   CodeWarrior compiler from Metrowerks/Motorola
- */
-#elif defined(__MWERKS__)
-    #define TARGET_OS_MAC               1
-    #define TARGET_OS_WIN32             0
-    #define TARGET_OS_UNIX              0
-    #define TARGET_OS_EMBEDDED          0
-    #if defined(__POWERPC__)
-        #define TARGET_CPU_PPC          1
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_LITTLE_ENDIAN 0
-        #define TARGET_RT_BIG_ENDIAN    1
-    #elif defined(__INTEL__)
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          1
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-    #else
-        #error unknown Metrowerks CPU type
-    #endif
-    #define TARGET_RT_64_BIT            0
-    #ifdef __MACH__
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-    #else
-        #define TARGET_RT_MAC_CFM       1
-        #define TARGET_RT_MAC_MACHO     0
-    #endif
-
-/*
- *   unknown compiler
- */
-#else
-    #if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_PPC64) && TARGET_CPU_PPC64
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_X86) && TARGET_CPU_X86
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_X86_64) && TARGET_CPU_X86_64
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_ARM) && TARGET_CPU_ARM
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_ARM64    0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #elif defined(TARGET_CPU_ARM64) && TARGET_CPU_ARM64
-        #define TARGET_CPU_PPC      0
-        #define TARGET_CPU_PPC64    0
-        #define TARGET_CPU_X86      0
-        #define TARGET_CPU_X86_64   0
-        #define TARGET_CPU_68K      0
-        #define TARGET_CPU_ARM      0
-        #define TARGET_CPU_MIPS     0
-        #define TARGET_CPU_SPARC    0
-        #define TARGET_CPU_ALPHA    0
-    #else
-        /*
-            NOTE:   If your compiler errors out here then support for your compiler 
-            has not yet been added to TargetConditionals.h.  
-            
-            TargetConditionals.h is designed to be plug-and-play.  It auto detects
-            which compiler is being run and configures the TARGET_ conditionals
-            appropriately.  
-            
-            The short term work around is to set the TARGET_CPU_ and TARGET_OS_
-            on the command line to the compiler (e.g. -DTARGET_CPU_MIPS=1 -DTARGET_OS_UNIX=1)
-            
-            The long term solution is to add a new case to this file which
-            auto detects your compiler and sets up the TARGET_ conditionals.
-            Then submit the changes to Apple Computer.
-        */
-        #error TargetConditionals.h: unknown compiler (see comment above)
-        #define TARGET_CPU_PPC    0
-        #define TARGET_CPU_68K    0
-        #define TARGET_CPU_X86    0
-        #define TARGET_CPU_ARM    0
-        #define TARGET_CPU_ARM64  0
-        #define TARGET_CPU_MIPS   0
-        #define TARGET_CPU_SPARC  0
-        #define TARGET_CPU_ALPHA  0
-    #endif
-    #define TARGET_OS_MAC                1
-    #define TARGET_OS_WIN32              0
-    #define TARGET_OS_UNIX               0
-    #define TARGET_OS_EMBEDDED           0
-    #if TARGET_CPU_PPC || TARGET_CPU_PPC64
-        #define TARGET_RT_BIG_ENDIAN     1
-        #define TARGET_RT_LITTLE_ENDIAN  0
-    #else
-        #define TARGET_RT_BIG_ENDIAN     0
-        #define TARGET_RT_LITTLE_ENDIAN  1
-    #endif
-    #if TARGET_CPU_PPC64 || TARGET_CPU_X86_64
-        #define TARGET_RT_64_BIT         1
-    #else
-        #define TARGET_RT_64_BIT         0
-    #endif
-    #ifdef __MACH__
-        #define TARGET_RT_MAC_MACHO      1
-        #define TARGET_RT_MAC_CFM        0
-    #else
-        #define TARGET_RT_MAC_MACHO      0
-        #define TARGET_RT_MAC_CFM        1
-    #endif
-    
-#endif
-
-#endif  /* __TARGETCONDITIONALS__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/_ctermid.h b/lib/libc/include/x86_64-macos.10-none/_ctermid.h
deleted file mode 100644
index b941ea10d49d711f47f0155464b885c16d6c6892..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/_ctermid.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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@
- */
-
-#ifndef _CTERMID_H_
-#define _CTERMID_H_
-char    *ctermid(char *);
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/assert.h b/lib/libc/include/x86_64-macos.10-none/assert.h
deleted file mode 100644
index e08d52cb28cc6563f233c0137f0bbeef859a55d0..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/assert.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*-
- * Copyright (c) 1992, 1993
- *	The Regents of the University of California.  All rights reserved.
- * (c) UNIX System Laboratories, Inc.
- * All or some portions of this file are derived from material licensed
- * to the University of California by American Telephone and Telegraph
- * Co. or Unix System Laboratories, Inc. and are reproduced herein with
- * the permission of UNIX System Laboratories, Inc.
- *
- * 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.
- *
- *	@(#)assert.h	8.2 (Berkeley) 1/21/94
- * $FreeBSD: src/include/assert.h,v 1.4 2002/03/23 17:24:53 imp Exp $
- */
-
-#include 
-#ifdef __cplusplus
-#include 
-#endif /* __cplusplus */
-
-/*
- * Unlike other ANSI header files,  may usefully be included
- * multiple times, with and without NDEBUG defined.
- */
-
-#undef assert
-#undef __assert
-
-#ifdef NDEBUG
-#define	assert(e)	((void)0)
-#else
-
-#ifndef __GNUC__
-
-__BEGIN_DECLS
-#ifndef __cplusplus
-void abort(void) __dead2 __cold;
-#endif /* !__cplusplus */
-int  printf(const char * __restrict, ...);
-__END_DECLS
-
-#define assert(e)  \
-    ((void) ((e) ? ((void)0) : __assert (#e, __FILE__, __LINE__)))
-#define __assert(e, file, line) \
-    ((void)printf ("%s:%d: failed assertion `%s'\n", file, line, e), abort())
-
-#else /* __GNUC__ */
-
-__BEGIN_DECLS
-void __assert_rtn(const char *, const char *, int, const char *) __dead2 __cold __disable_tail_calls;
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) < 1070)
-void __eprintf(const char *, const char *, unsigned, const char *) __dead2 __cold;
-#endif
-__END_DECLS
-
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) < 1070)
-#define __assert(e, file, line) \
-    __eprintf ("%s:%d: failed assertion `%s'\n", file, line, e)
-#else
-/* 8462256: modified __assert_rtn() replaces deprecated __eprintf() */
-#define __assert(e, file, line) \
-    __assert_rtn ((const char *)-1L, file, line, e)
-#endif
-
-#if __DARWIN_UNIX03
-#define	assert(e) \
-    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
-#else /* !__DARWIN_UNIX03 */
-#define assert(e)  \
-    (__builtin_expect(!(e), 0) ? __assert (#e, __FILE__, __LINE__) : (void)0)
-#endif /* __DARWIN_UNIX03 */
-
-#endif /* __GNUC__ */
-#endif /* NDEBUG */
-
-#ifndef _ASSERT_H_
-#define _ASSERT_H_
-
-#ifndef __cplusplus
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
-#define static_assert _Static_assert
-#endif /* __STDC_VERSION__ */
-#endif /* !__cplusplus */
-
-#endif /* _ASSERT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/bsm/audit.h b/lib/libc/include/x86_64-macos.10-none/bsm/audit.h
deleted file mode 100644
index e65ccbfab6ec3a560969b271c76571c5a3f5d805..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/bsm/audit.h
+++ /dev/null
@@ -1,378 +0,0 @@
-/*-
- * Copyright (c) 2005-2009 Apple Inc.
- * 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.  Neither the name of Apple Inc. ("Apple") 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 APPLE AND ITS 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 APPLE OR ITS 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.
- *
- * $P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#10 $
- */
-
-#ifndef _BSM_AUDIT_H
-#define _BSM_AUDIT_H
-
-#include 
-#include 
-
-#define AUDIT_RECORD_MAGIC      0x828a0f1b
-#define MAX_AUDIT_RECORDS       20
-#define MAXAUDITDATA            (0x8000 - 1)
-#define MAX_AUDIT_RECORD_SIZE   MAXAUDITDATA
-#define MIN_AUDIT_FILE_SIZE     (512 * 1024)
-
-/*
- * Minimum noumber of free blocks on the filesystem containing the audit
- * log necessary to avoid a hard log rotation. DO NOT SET THIS VALUE TO 0
- * as the kernel does an unsigned compare, plus we want to leave a few blocks
- * free so userspace can terminate the log, etc.
- */
-#define AUDIT_HARD_LIMIT_FREE_BLOCKS    4
-
-/*
- * Triggers for the audit daemon.
- */
-#define AUDIT_TRIGGER_MIN               1
-#define AUDIT_TRIGGER_LOW_SPACE         1       /* Below low watermark. */
-#define AUDIT_TRIGGER_ROTATE_KERNEL     2       /* Kernel requests rotate. */
-#define AUDIT_TRIGGER_READ_FILE         3       /* Re-read config file. */
-#define AUDIT_TRIGGER_CLOSE_AND_DIE     4       /* Terminate audit. */
-#define AUDIT_TRIGGER_NO_SPACE          5       /* Below min free space. */
-#define AUDIT_TRIGGER_ROTATE_USER       6       /* User requests rotate. */
-#define AUDIT_TRIGGER_INITIALIZE        7       /* User initialize of auditd. */
-#define AUDIT_TRIGGER_EXPIRE_TRAILS     8       /* User expiration of trails. */
-#define AUDIT_TRIGGER_MAX               8
-
-/*
- * The special device filename (FreeBSD).
- */
-#define AUDITDEV_FILENAME       "audit"
-#define AUDIT_TRIGGER_FILE      ("/dev/" AUDITDEV_FILENAME)
-
-/*
- * Pre-defined audit IDs
- */
-#define AU_DEFAUDITID   (uid_t)(-1)
-#define AU_DEFAUDITSID   0
-#define AU_ASSIGN_ASID  -1
-
-/*
- * IPC types.
- */
-#define AT_IPC_MSG      ((unsigned char)1)      /* Message IPC id. */
-#define AT_IPC_SEM      ((unsigned char)2)      /* Semaphore IPC id. */
-#define AT_IPC_SHM      ((unsigned char)3)      /* Shared mem IPC id. */
-
-/*
- * Audit conditions.
- */
-#define AUC_UNSET               0
-#define AUC_AUDITING            1
-#define AUC_NOAUDIT             2
-#define AUC_DISABLED            -1
-
-/*
- * auditon(2) commands.
- */
-#define A_OLDGETPOLICY  2
-#define A_OLDSETPOLICY  3
-#define A_GETKMASK      4
-#define A_SETKMASK      5
-#define A_OLDGETQCTRL   6
-#define A_OLDSETQCTRL   7
-#define A_GETCWD        8
-#define A_GETCAR        9
-#define A_GETSTAT       12
-#define A_SETSTAT       13
-#define A_SETUMASK      14
-#define A_SETSMASK      15
-#define A_OLDGETCOND    20
-#define A_OLDSETCOND    21
-#define A_GETCLASS      22
-#define A_SETCLASS      23
-#define A_GETPINFO      24
-#define A_SETPMASK      25
-#define A_SETFSIZE      26
-#define A_GETFSIZE      27
-#define A_GETPINFO_ADDR 28
-#define A_GETKAUDIT     29
-#define A_SETKAUDIT     30
-#define A_SENDTRIGGER   31
-#define A_GETSINFO_ADDR 32
-#define A_GETPOLICY     33
-#define A_SETPOLICY     34
-#define A_GETQCTRL      35
-#define A_SETQCTRL      36
-#define A_GETCOND       37
-#define A_SETCOND       38
-#define A_GETSFLAGS     39
-#define A_SETSFLAGS     40
-#define A_GETCTLMODE    41
-#define A_SETCTLMODE    42
-#define A_GETEXPAFTER   43
-#define A_SETEXPAFTER   44
-
-/*
- * Audit policy controls.
- */
-#define AUDIT_CNT       0x0001
-#define AUDIT_AHLT      0x0002
-#define AUDIT_ARGV      0x0004
-#define AUDIT_ARGE      0x0008
-#define AUDIT_SEQ       0x0010
-#define AUDIT_WINDATA   0x0020
-#define AUDIT_USER      0x0040
-#define AUDIT_GROUP     0x0080
-#define AUDIT_TRAIL     0x0100
-#define AUDIT_PATH      0x0200
-#define AUDIT_SCNT      0x0400
-#define AUDIT_PUBLIC    0x0800
-#define AUDIT_ZONENAME  0x1000
-#define AUDIT_PERZONE   0x2000
-
-/*
- * Default audit queue control parameters.
- */
-#define AQ_HIWATER      100
-#define AQ_MAXHIGH      10000
-#define AQ_LOWATER      10
-#define AQ_BUFSZ        MAXAUDITDATA
-#define AQ_MAXBUFSZ     1048576
-
-/*
- * Default minimum percentage free space on file system.
- */
-#define AU_FS_MINFREE   20
-
-/*
- * Type definitions used indicating the length of variable length addresses
- * in tokens containing addresses, such as header fields.
- */
-#define AU_IPv4         4
-#define AU_IPv6         16
-
-/*
- * Reserved audit class mask indicating which classes are unable to have
- * events added or removed by unentitled processes.
- */
-#define AU_CLASS_MASK_RESERVED 0x10000000
-
-/*
- * Audit control modes
- */
-#define AUDIT_CTLMODE_NORMAL ((unsigned char)1)
-#define AUDIT_CTLMODE_EXTERNAL ((unsigned char)2)
-
-/*
- * Audit file expire_after op modes
- */
-#define AUDIT_EXPIRE_OP_AND ((unsigned char)0)
-#define AUDIT_EXPIRE_OP_OR ((unsigned char)1)
-
-__BEGIN_DECLS
-
-typedef uid_t           au_id_t;
-typedef pid_t           au_asid_t;
-typedef u_int16_t       au_event_t;
-typedef u_int16_t       au_emod_t;
-typedef u_int32_t       au_class_t;
-typedef u_int64_t       au_asflgs_t __attribute__ ((aligned(8)));
-typedef unsigned char   au_ctlmode_t;
-
-struct au_tid {
-	dev_t           port;
-	u_int32_t       machine;
-};
-typedef struct au_tid   au_tid_t;
-
-struct au_tid_addr {
-	dev_t           at_port;
-	u_int32_t       at_type;
-	u_int32_t       at_addr[4];
-};
-typedef struct au_tid_addr      au_tid_addr_t;
-
-struct au_mask {
-	unsigned int    am_success;     /* Success bits. */
-	unsigned int    am_failure;     /* Failure bits. */
-};
-typedef struct au_mask  au_mask_t;
-
-struct auditinfo {
-	au_id_t         ai_auid;        /* Audit user ID. */
-	au_mask_t       ai_mask;        /* Audit masks. */
-	au_tid_t        ai_termid;      /* Terminal ID. */
-	au_asid_t       ai_asid;        /* Audit session ID. */
-};
-typedef struct auditinfo        auditinfo_t;
-
-struct auditinfo_addr {
-	au_id_t         ai_auid;        /* Audit user ID. */
-	au_mask_t       ai_mask;        /* Audit masks. */
-	au_tid_addr_t   ai_termid;      /* Terminal ID. */
-	au_asid_t       ai_asid;        /* Audit session ID. */
-	au_asflgs_t     ai_flags;       /* Audit session flags. */
-};
-typedef struct auditinfo_addr   auditinfo_addr_t;
-
-struct auditpinfo {
-	pid_t           ap_pid;         /* ID of target process. */
-	au_id_t         ap_auid;        /* Audit user ID. */
-	au_mask_t       ap_mask;        /* Audit masks. */
-	au_tid_t        ap_termid;      /* Terminal ID. */
-	au_asid_t       ap_asid;        /* Audit session ID. */
-};
-typedef struct auditpinfo       auditpinfo_t;
-
-struct auditpinfo_addr {
-	pid_t           ap_pid;         /* ID of target process. */
-	au_id_t         ap_auid;        /* Audit user ID. */
-	au_mask_t       ap_mask;        /* Audit masks. */
-	au_tid_addr_t   ap_termid;      /* Terminal ID. */
-	au_asid_t       ap_asid;        /* Audit session ID. */
-	au_asflgs_t     ap_flags;       /* Audit session flags. */
-};
-typedef struct auditpinfo_addr  auditpinfo_addr_t;
-
-struct au_session {
-	auditinfo_addr_t        *as_aia_p;      /* Ptr to full audit info. */
-	au_mask_t                as_mask;       /* Process Audit Masks. */
-};
-typedef struct au_session       au_session_t;
-
-struct au_expire_after {
-	time_t age;             /* Age after which trail files should be expired */
-	size_t size;    /* Aggregate trail size when files should be expired */
-	unsigned char op_type; /* Operator used with the above values to determine when files should be expired */
-};
-typedef struct au_expire_after au_expire_after_t;
-
-/*
- * Contents of token_t are opaque outside of libbsm.
- */
-typedef struct au_token token_t;
-
-/*
- * Kernel audit queue control parameters:
- *                      Default:		Maximum:
- *      aq_hiwater:	AQ_HIWATER (100)	AQ_MAXHIGH (10000)
- *      aq_lowater:	AQ_LOWATER (10)		
-
-/*
- * getaudit()/setaudit() are deprecated and have been replaced with
- * wrappers to the getaudit_addr()/setaudit_addr() syscalls above.
- */
-
-int     getaudit(struct auditinfo *)
-__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8,
-    __IPHONE_2_0, __IPHONE_6_0);
-int     setaudit(const struct auditinfo *)
-__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8,
-    __IPHONE_2_0, __IPHONE_6_0);
-#else
-
-int     getaudit(struct auditinfo *);
-int     setaudit(const struct auditinfo *);
-#endif /* !__APPLE__ */
-
-#ifdef __APPLE_API_PRIVATE
-#include 
-mach_port_name_t audit_session_self(void);
-au_asid_t        audit_session_join(mach_port_name_t port);
-int              audit_session_port(au_asid_t asid, mach_port_name_t *portname);
-#endif /* __APPLE_API_PRIVATE */
-
-#endif /* defined(_KERNEL) || defined(KERNEL) */
-
-__END_DECLS
-
-#endif /* !_BSM_AUDIT_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/device/device_types.h b/lib/libc/include/x86_64-macos.10-none/device/device_types.h
deleted file mode 100644
index 2878666853489189f7f71d134b8942bbc19adf5a..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/device/device_types.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	Author: David B. Golub, Carnegie Mellon University
- *	Date:   3/89
- */
-
-#ifndef DEVICE_TYPES_H
-#define DEVICE_TYPES_H
-
-/*
- * Types for device interface.
- */
-#include 
-#include 
-#include 
-#include 
-
-
-
-/*
- * IO buffer - out-of-line array of characters.
- */
-typedef char *  io_buf_ptr_t;
-
-/*
- * Some types for IOKit.
- */
-
-#ifdef IOKIT
-
-/* must match device_types.defs */
-typedef char                    io_name_t[128];
-typedef char                    io_string_t[512];
-typedef char                    io_string_inband_t[4096];
-typedef char                    io_struct_inband_t[4096];
-
-#if   __LP64__
-typedef uint64_t                io_user_scalar_t;
-typedef uint64_t                io_user_reference_t;
-typedef io_user_scalar_t        io_scalar_inband_t[16];
-typedef io_user_reference_t     io_async_ref_t[8];
-typedef io_user_scalar_t        io_scalar_inband64_t[16];
-typedef io_user_reference_t     io_async_ref64_t[8];
-#else
-typedef int                     io_user_scalar_t;
-typedef natural_t               io_user_reference_t;
-typedef io_user_scalar_t        io_scalar_inband_t[16];
-typedef io_user_reference_t     io_async_ref_t[8];
-typedef uint64_t                io_scalar_inband64_t[16];
-typedef uint64_t                io_async_ref64_t[8];
-#endif // __LP64__
-
-
-#ifndef __IOKIT_PORTS_DEFINED__
-#define __IOKIT_PORTS_DEFINED__
-typedef mach_port_t     io_object_t;
-#endif  /* __IOKIT_PORTS_DEFINED__ */
-
-
-#endif  /* IOKIT */
-
-#endif  /* DEVICE_TYPES_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/base.h b/lib/libc/include/x86_64-macos.10-none/dispatch/base.h
deleted file mode 100644
index 86ed15d144b5207cf800c6bcc29059eac2f3392e..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/base.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright (c) 2008-2012 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_BASE__
-#define __DISPATCH_BASE__
-
-#ifndef __DISPATCH_INDIRECT__
-#error "Please #include  instead of this file directly."
-#endif
-
-#ifndef __has_builtin
-#define __has_builtin(x) 0
-#endif
-#ifndef __has_include
-#define __has_include(x) 0
-#endif
-#ifndef __has_feature
-#define __has_feature(x) 0
-#endif
-#ifndef __has_attribute
-#define __has_attribute(x) 0
-#endif
-#ifndef __has_extension
-#define __has_extension(x) 0
-#endif
-
-#if __GNUC__
-#define DISPATCH_NORETURN __attribute__((__noreturn__))
-#define DISPATCH_NOTHROW __attribute__((__nothrow__))
-#define DISPATCH_NONNULL1 __attribute__((__nonnull__(1)))
-#define DISPATCH_NONNULL2 __attribute__((__nonnull__(2)))
-#define DISPATCH_NONNULL3 __attribute__((__nonnull__(3)))
-#define DISPATCH_NONNULL4 __attribute__((__nonnull__(4)))
-#define DISPATCH_NONNULL5 __attribute__((__nonnull__(5)))
-#define DISPATCH_NONNULL6 __attribute__((__nonnull__(6)))
-#define DISPATCH_NONNULL7 __attribute__((__nonnull__(7)))
-#if __clang__ && __clang_major__ < 3
-// rdar://problem/6857843
-#define DISPATCH_NONNULL_ALL
-#else
-#define DISPATCH_NONNULL_ALL __attribute__((__nonnull__))
-#endif
-#define DISPATCH_SENTINEL __attribute__((__sentinel__))
-#define DISPATCH_PURE __attribute__((__pure__))
-#define DISPATCH_CONST __attribute__((__const__))
-#define DISPATCH_WARN_RESULT __attribute__((__warn_unused_result__))
-#define DISPATCH_MALLOC __attribute__((__malloc__))
-#define DISPATCH_ALWAYS_INLINE __attribute__((__always_inline__))
-#define DISPATCH_UNAVAILABLE __attribute__((__unavailable__))
-#define DISPATCH_UNAVAILABLE_MSG(msg) __attribute__((__unavailable__(msg)))
-#elif defined(_MSC_VER)
-#define DISPATCH_NORETURN __declspec(noreturn)
-#define DISPATCH_NOTHROW __declspec(nothrow)
-#define DISPATCH_NONNULL1
-#define DISPATCH_NONNULL2
-#define DISPATCH_NONNULL3
-#define DISPATCH_NONNULL4
-#define DISPATCH_NONNULL5
-#define DISPATCH_NONNULL6
-#define DISPATCH_NONNULL7
-#define DISPATCH_NONNULL_ALL
-#define DISPATCH_SENTINEL
-#define DISPATCH_PURE
-#define DISPATCH_CONST
-#if (_MSC_VER >= 1700)
-#define DISPATCH_WARN_RESULT _Check_return_
-#else
-#define DISPATCH_WARN_RESULT
-#endif
-#define DISPATCH_MALLOC
-#define DISPATCH_ALWAYS_INLINE __forceinline
-#define DISPATCH_UNAVAILABLE
-#define DISPATCH_UNAVAILABLE_MSG(msg)
-#else
-/*! @parseOnly */
-#define DISPATCH_NORETURN
-/*! @parseOnly */
-#define DISPATCH_NOTHROW
-/*! @parseOnly */
-#define DISPATCH_NONNULL1
-/*! @parseOnly */
-#define DISPATCH_NONNULL2
-/*! @parseOnly */
-#define DISPATCH_NONNULL3
-/*! @parseOnly */
-#define DISPATCH_NONNULL4
-/*! @parseOnly */
-#define DISPATCH_NONNULL5
-/*! @parseOnly */
-#define DISPATCH_NONNULL6
-/*! @parseOnly */
-#define DISPATCH_NONNULL7
-/*! @parseOnly */
-#define DISPATCH_NONNULL_ALL
-/*! @parseOnly */
-#define DISPATCH_SENTINEL
-/*! @parseOnly */
-#define DISPATCH_PURE
-/*! @parseOnly */
-#define DISPATCH_CONST
-/*! @parseOnly */
-#define DISPATCH_WARN_RESULT
-/*! @parseOnly */
-#define DISPATCH_MALLOC
-/*! @parseOnly */
-#define DISPATCH_ALWAYS_INLINE
-/*! @parseOnly */
-#define DISPATCH_UNAVAILABLE
-/*! @parseOnly */
-#define DISPATCH_UNAVAILABLE_MSG(msg)
-#endif
-
-#define DISPATCH_LINUX_UNAVAILABLE()
-
-#ifdef __FreeBSD__
-#define DISPATCH_FREEBSD_UNAVAILABLE() \
-		DISPATCH_UNAVAILABLE_MSG( \
-		"This interface is unavailable on FreeBSD systems")
-#else
-#define DISPATCH_FREEBSD_UNAVAILABLE()
-#endif
-
-#ifndef DISPATCH_ALIAS_V2
-#if TARGET_OS_MAC
-#define DISPATCH_ALIAS_V2(sym)	 __asm__("_" #sym "$V2")
-#else
-#define DISPATCH_ALIAS_V2(sym)
-#endif
-#endif
-
-#if defined(_WIN32)
-#if defined(__cplusplus)
-#define DISPATCH_EXPORT extern "C" __declspec(dllimport)
-#else
-#define DISPATCH_EXPORT extern __declspec(dllimport)
-#endif
-#elif __GNUC__
-#define DISPATCH_EXPORT extern __attribute__((visibility("default")))
-#else
-#define DISPATCH_EXPORT extern
-#endif
-
-#if __GNUC__
-#define DISPATCH_INLINE static __inline__
-#else
-#define DISPATCH_INLINE static inline
-#endif
-
-#if __GNUC__
-#define DISPATCH_EXPECT(x, v) __builtin_expect((x), (v))
-#define dispatch_compiler_barrier()  __asm__ __volatile__("" ::: "memory")
-#else
-#define DISPATCH_EXPECT(x, v) (x)
-#define dispatch_compiler_barrier()  do { } while (0)
-#endif
-
-#if __has_attribute(not_tail_called)
-#define DISPATCH_NOT_TAIL_CALLED __attribute__((__not_tail_called__))
-#else
-#define DISPATCH_NOT_TAIL_CALLED
-#endif
-
-#if __has_builtin(__builtin_assume)
-#define DISPATCH_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr)
-#else
-#define DISPATCH_COMPILER_CAN_ASSUME(expr) ((void)(expr))
-#endif
-
-#if __has_attribute(noescape)
-#define DISPATCH_NOESCAPE __attribute__((__noescape__))
-#else
-#define DISPATCH_NOESCAPE
-#endif
-
-#if __has_attribute(cold)
-#define DISPATCH_COLD __attribute__((__cold__))
-#else
-#define DISPATCH_COLD
-#endif
-
-#if __has_feature(assume_nonnull)
-#define DISPATCH_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
-#define DISPATCH_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
-#else
-#define DISPATCH_ASSUME_NONNULL_BEGIN
-#define DISPATCH_ASSUME_NONNULL_END
-#endif
-
-#if !__has_feature(nullability)
-#ifndef _Nullable
-#define _Nullable
-#endif
-#ifndef _Nonnull
-#define _Nonnull
-#endif
-#ifndef _Null_unspecified
-#define _Null_unspecified
-#endif
-#endif
-
-#ifndef DISPATCH_RETURNS_RETAINED_BLOCK
-#if __has_attribute(ns_returns_retained)
-#define DISPATCH_RETURNS_RETAINED_BLOCK __attribute__((__ns_returns_retained__))
-#else
-#define DISPATCH_RETURNS_RETAINED_BLOCK
-#endif
-#endif
-
-#if __has_attribute(enum_extensibility)
-#define __DISPATCH_ENUM_ATTR __attribute__((__enum_extensibility__(open)))
-#define __DISPATCH_ENUM_ATTR_CLOSED __attribute__((__enum_extensibility__(closed)))
-#else
-#define __DISPATCH_ENUM_ATTR
-#define __DISPATCH_ENUM_ATTR_CLOSED
-#endif // __has_attribute(enum_extensibility)
-
-#if __has_attribute(flag_enum)
-#define __DISPATCH_OPTIONS_ATTR __attribute__((__flag_enum__))
-#else
-#define __DISPATCH_OPTIONS_ATTR
-#endif // __has_attribute(flag_enum)
-
-
-#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums) || \
-		__has_extension(cxx_fixed_enum) || defined(_WIN32)
-#define DISPATCH_ENUM(name, type, ...) \
-		typedef enum : type { __VA_ARGS__ } __DISPATCH_ENUM_ATTR name##_t
-#define DISPATCH_OPTIONS(name, type, ...) \
-		typedef enum : type { __VA_ARGS__ } __DISPATCH_OPTIONS_ATTR __DISPATCH_ENUM_ATTR name##_t
-#else
-#define DISPATCH_ENUM(name, type, ...) \
-		enum { __VA_ARGS__ } __DISPATCH_ENUM_ATTR; typedef type name##_t
-#define DISPATCH_OPTIONS(name, type, ...) \
-		enum { __VA_ARGS__ } __DISPATCH_OPTIONS_ATTR __DISPATCH_ENUM_ATTR; typedef type name##_t
-#endif // __has_feature(objc_fixed_enum) ...
-
-
-
-#if __has_feature(enumerator_attributes)
-#define DISPATCH_ENUM_API_AVAILABLE(...) API_AVAILABLE(__VA_ARGS__)
-#define DISPATCH_ENUM_API_DEPRECATED(...) API_DEPRECATED(__VA_ARGS__)
-#define DISPATCH_ENUM_API_DEPRECATED_WITH_REPLACEMENT(...) \
-		API_DEPRECATED_WITH_REPLACEMENT(__VA_ARGS__)
-#else
-#define DISPATCH_ENUM_API_AVAILABLE(...)
-#define DISPATCH_ENUM_API_DEPRECATED(...)
-#define DISPATCH_ENUM_API_DEPRECATED_WITH_REPLACEMENT(...)
-#endif
-
-#ifdef __swift__
-#define DISPATCH_SWIFT3_OVERLAY 1
-#else // __swift__
-#define DISPATCH_SWIFT3_OVERLAY 0
-#endif // __swift__
-
-#if __has_feature(attribute_availability_swift)
-#define DISPATCH_SWIFT_UNAVAILABLE(_msg) \
-		__attribute__((__availability__(swift, unavailable, message=_msg)))
-#else
-#define DISPATCH_SWIFT_UNAVAILABLE(_msg)
-#endif
-
-#if DISPATCH_SWIFT3_OVERLAY
-#define DISPATCH_SWIFT3_UNAVAILABLE(_msg) DISPATCH_SWIFT_UNAVAILABLE(_msg)
-#else
-#define DISPATCH_SWIFT3_UNAVAILABLE(_msg)
-#endif
-
-#if __has_attribute(swift_private)
-#define DISPATCH_REFINED_FOR_SWIFT __attribute__((__swift_private__))
-#else
-#define DISPATCH_REFINED_FOR_SWIFT
-#endif
-
-#if __has_attribute(swift_name)
-#define DISPATCH_SWIFT_NAME(_name) __attribute__((__swift_name__(#_name)))
-#else
-#define DISPATCH_SWIFT_NAME(_name)
-#endif
-
-#ifndef __cplusplus
-#define DISPATCH_TRANSPARENT_UNION __attribute__((__transparent_union__))
-#else
-#define DISPATCH_TRANSPARENT_UNION
-#endif
-
-typedef void (*dispatch_function_t)(void *_Nullable);
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/block.h b/lib/libc/include/x86_64-macos.10-none/dispatch/block.h
deleted file mode 100644
index 5a28f48ce4fceb0d62b72dee70c7fb9fddf9559c..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/block.h
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * Copyright (c) 2014 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_BLOCK__
-#define __DISPATCH_BLOCK__
-
-#ifndef __DISPATCH_INDIRECT__
-#error "Please #include  instead of this file directly."
-#include  // for HeaderDoc
-#endif
-
-#ifdef __BLOCKS__
-
-/*!
- * @group Dispatch block objects
- */
-
-DISPATCH_ASSUME_NONNULL_BEGIN
-
-__BEGIN_DECLS
-
-/*!
- * @typedef dispatch_block_flags_t
- * Flags to pass to the dispatch_block_create* functions.
- *
- * @const DISPATCH_BLOCK_BARRIER
- * Flag indicating that a dispatch block object should act as a barrier block
- * when submitted to a DISPATCH_QUEUE_CONCURRENT queue.
- * See dispatch_barrier_async() for details.
- * This flag has no effect when the dispatch block object is invoked directly.
- *
- * @const DISPATCH_BLOCK_DETACHED
- * Flag indicating that a dispatch block object should execute disassociated
- * from current execution context attributes such as os_activity_t
- * and properties of the current IPC request (if any). With regard to QoS class,
- * the behavior is the same as for DISPATCH_BLOCK_NO_QOS. If invoked directly,
- * the block object will remove the other attributes from the calling thread for
- * the duration of the block body (before applying attributes assigned to the
- * block object, if any). If submitted to a queue, the block object will be
- * executed with the attributes of the queue (or any attributes specifically
- * assigned to the block object).
- *
- * @const DISPATCH_BLOCK_ASSIGN_CURRENT
- * Flag indicating that a dispatch block object should be assigned the execution
- * context attributes that are current at the time the block object is created.
- * This applies to attributes such as QOS class, os_activity_t and properties of
- * the current IPC request (if any). If invoked directly, the block object will
- * apply these attributes to the calling thread for the duration of the block
- * body. If the block object is submitted to a queue, this flag replaces the
- * default behavior of associating the submitted block instance with the
- * execution context attributes that are current at the time of submission.
- * If a specific QOS class is assigned with DISPATCH_BLOCK_NO_QOS_CLASS or
- * dispatch_block_create_with_qos_class(), that QOS class takes precedence over
- * the QOS class assignment indicated by this flag.
- *
- * @const DISPATCH_BLOCK_NO_QOS_CLASS
- * Flag indicating that a dispatch block object should be not be assigned a QOS
- * class. If invoked directly, the block object will be executed with the QOS
- * class of the calling thread. If the block object is submitted to a queue,
- * this replaces the default behavior of associating the submitted block
- * instance with the QOS class current at the time of submission.
- * This flag is ignored if a specific QOS class is assigned with
- * dispatch_block_create_with_qos_class().
- *
- * @const DISPATCH_BLOCK_INHERIT_QOS_CLASS
- * Flag indicating that execution of a dispatch block object submitted to a
- * queue should prefer the QOS class assigned to the queue over the QOS class
- * assigned to the block (resp. associated with the block at the time of
- * submission). The latter will only be used if the queue in question does not
- * have an assigned QOS class, as long as doing so does not result in a QOS
- * class lower than the QOS class inherited from the queue's target queue.
- * This flag is the default when a dispatch block object is submitted to a queue
- * for asynchronous execution and has no effect when the dispatch block object
- * is invoked directly. It is ignored if DISPATCH_BLOCK_ENFORCE_QOS_CLASS is
- * also passed.
- *
- * @const DISPATCH_BLOCK_ENFORCE_QOS_CLASS
- * Flag indicating that execution of a dispatch block object submitted to a
- * queue should prefer the QOS class assigned to the block (resp. associated
- * with the block at the time of submission) over the QOS class assigned to the
- * queue, as long as doing so will not result in a lower QOS class.
- * This flag is the default when a dispatch block object is submitted to a queue
- * for synchronous execution or when the dispatch block object is invoked
- * directly.
- */
-DISPATCH_OPTIONS(dispatch_block_flags, unsigned long,
-	DISPATCH_BLOCK_BARRIER
-			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x1,
-	DISPATCH_BLOCK_DETACHED
-			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x2,
-	DISPATCH_BLOCK_ASSIGN_CURRENT
-			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x4,
-	DISPATCH_BLOCK_NO_QOS_CLASS
-			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x8,
-	DISPATCH_BLOCK_INHERIT_QOS_CLASS
-			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x10,
-	DISPATCH_BLOCK_ENFORCE_QOS_CLASS
-			DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x20,
-);
-
-/*!
- * @function dispatch_block_create
- *
- * @abstract
- * Create a new dispatch block object on the heap from an existing block and
- * the given flags.
- *
- * @discussion
- * The provided block is Block_copy'ed to the heap and retained by the newly
- * created dispatch block object.
- *
- * The returned dispatch block object is intended to be submitted to a dispatch
- * queue with dispatch_async() and related functions, but may also be invoked
- * directly. Both operations can be performed an arbitrary number of times but
- * only the first completed execution of a dispatch block object can be waited
- * on with dispatch_block_wait() or observed with dispatch_block_notify().
- *
- * If the returned dispatch block object is submitted to a dispatch queue, the
- * submitted block instance will be associated with the QOS class current at the
- * time of submission, unless one of the following flags assigned a specific QOS
- * class (or no QOS class) at the time of block creation:
- *  - DISPATCH_BLOCK_ASSIGN_CURRENT
- *  - DISPATCH_BLOCK_NO_QOS_CLASS
- *  - DISPATCH_BLOCK_DETACHED
- * The QOS class the block object will be executed with also depends on the QOS
- * class assigned to the queue and which of the following flags was specified or
- * defaulted to:
- *  - DISPATCH_BLOCK_INHERIT_QOS_CLASS (default for asynchronous execution)
- *  - DISPATCH_BLOCK_ENFORCE_QOS_CLASS (default for synchronous execution)
- * See description of dispatch_block_flags_t for details.
- *
- * If the returned dispatch block object is submitted directly to a serial queue
- * and is configured to execute with a specific QOS class, the system will make
- * a best effort to apply the necessary QOS overrides to ensure that blocks
- * submitted earlier to the serial queue are executed at that same QOS class or
- * higher.
- *
- * @param flags
- * Configuration flags for the block object.
- * Passing a value that is not a bitwise OR of flags from dispatch_block_flags_t
- * results in NULL being returned.
- *
- * @param block
- * The block to create the dispatch block object from.
- *
- * @result
- * The newly created dispatch block object, or NULL.
- * When not building with Objective-C ARC, must be released with a -[release]
- * message or the Block_release() function.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_RETURNS_RETAINED_BLOCK
-DISPATCH_WARN_RESULT DISPATCH_NOTHROW
-dispatch_block_t
-dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
-
-/*!
- * @function dispatch_block_create_with_qos_class
- *
- * @abstract
- * Create a new dispatch block object on the heap from an existing block and
- * the given flags, and assign it the specified QOS class and relative priority.
- *
- * @discussion
- * The provided block is Block_copy'ed to the heap and retained by the newly
- * created dispatch block object.
- *
- * The returned dispatch block object is intended to be submitted to a dispatch
- * queue with dispatch_async() and related functions, but may also be invoked
- * directly. Both operations can be performed an arbitrary number of times but
- * only the first completed execution of a dispatch block object can be waited
- * on with dispatch_block_wait() or observed with dispatch_block_notify().
- *
- * If invoked directly, the returned dispatch block object will be executed with
- * the assigned QOS class as long as that does not result in a lower QOS class
- * than what is current on the calling thread.
- *
- * If the returned dispatch block object is submitted to a dispatch queue, the
- * QOS class it will be executed with depends on the QOS class assigned to the
- * block, the QOS class assigned to the queue and which of the following flags
- * was specified or defaulted to:
- *  - DISPATCH_BLOCK_INHERIT_QOS_CLASS: default for asynchronous execution
- *  - DISPATCH_BLOCK_ENFORCE_QOS_CLASS: default for synchronous execution
- * See description of dispatch_block_flags_t for details.
- *
- * If the returned dispatch block object is submitted directly to a serial queue
- * and is configured to execute with a specific QOS class, the system will make
- * a best effort to apply the necessary QOS overrides to ensure that blocks
- * submitted earlier to the serial queue are executed at that same QOS class or
- * higher.
- *
- * @param flags
- * Configuration flags for the new block object.
- * Passing a value that is not a bitwise OR of flags from dispatch_block_flags_t
- * results in NULL being returned.
- *
- * @param qos_class
- * A QOS class value:
- *  - QOS_CLASS_USER_INTERACTIVE
- *  - QOS_CLASS_USER_INITIATED
- *  - QOS_CLASS_DEFAULT
- *  - QOS_CLASS_UTILITY
- *  - QOS_CLASS_BACKGROUND
- *  - QOS_CLASS_UNSPECIFIED
- * Passing QOS_CLASS_UNSPECIFIED is equivalent to specifying the
- * DISPATCH_BLOCK_NO_QOS_CLASS flag. Passing any other value results in NULL
- * being returned.
- *
- * @param relative_priority
- * A relative priority within the QOS class. This value is a negative
- * offset from the maximum supported scheduler priority for the given class.
- * Passing a value greater than zero or less than QOS_MIN_RELATIVE_PRIORITY
- * results in NULL being returned.
- *
- * @param block
- * The block to create the dispatch block object from.
- *
- * @result
- * The newly created dispatch block object, or NULL.
- * When not building with Objective-C ARC, must be released with a -[release]
- * message or the Block_release() function.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_NONNULL4 DISPATCH_RETURNS_RETAINED_BLOCK
-DISPATCH_WARN_RESULT DISPATCH_NOTHROW
-dispatch_block_t
-dispatch_block_create_with_qos_class(dispatch_block_flags_t flags,
-		dispatch_qos_class_t qos_class, int relative_priority,
-		dispatch_block_t block);
-
-/*!
- * @function dispatch_block_perform
- *
- * @abstract
- * Create, synchronously execute and release a dispatch block object from the
- * specified block and flags.
- *
- * @discussion
- * Behaves identically to the sequence
- * 
- * dispatch_block_t b = dispatch_block_create(flags, block);
- * b();
- * Block_release(b);
- * 
- * but may be implemented more efficiently internally by not requiring a copy
- * to the heap of the specified block or the allocation of a new block object.
- *
- * @param flags
- * Configuration flags for the temporary block object.
- * The result of passing a value that is not a bitwise OR of flags from
- * dispatch_block_flags_t is undefined.
- *
- * @param block
- * The block to create the temporary block object from.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NOTHROW
-void
-dispatch_block_perform(dispatch_block_flags_t flags,
-		DISPATCH_NOESCAPE dispatch_block_t block);
-
-/*!
- * @function dispatch_block_wait
- *
- * @abstract
- * Wait synchronously until execution of the specified dispatch block object has
- * completed or until the specified timeout has elapsed.
- *
- * @discussion
- * This function will return immediately if execution of the block object has
- * already completed.
- *
- * It is not possible to wait for multiple executions of the same block object
- * with this interface; use dispatch_group_wait() for that purpose. A single
- * dispatch block object may either be waited on once and executed once,
- * or it may be executed any number of times. The behavior of any other
- * combination is undefined. Submission to a dispatch queue counts as an
- * execution, even if cancellation (dispatch_block_cancel) means the block's
- * code never runs.
- *
- * The result of calling this function from multiple threads simultaneously
- * with the same dispatch block object is undefined, but note that doing so
- * would violate the rules described in the previous paragraph.
- *
- * If this function returns indicating that the specified timeout has elapsed,
- * then that invocation does not count as the one allowed wait.
- *
- * If at the time this function is called, the specified dispatch block object
- * has been submitted directly to a serial queue, the system will make a best
- * effort to apply the necessary QOS overrides to ensure that the block and any
- * blocks submitted earlier to that serial queue are executed at the QOS class
- * (or higher) of the thread calling dispatch_block_wait().
- *
- * @param block
- * The dispatch block object to wait on.
- * The result of passing NULL or a block object not returned by one of the
- * dispatch_block_create* functions is undefined.
- *
- * @param timeout
- * When to timeout (see dispatch_time). As a convenience, there are the
- * DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER constants.
- *
- * @result
- * Returns zero on success (the dispatch block object completed within the
- * specified timeout) or non-zero on error (i.e. timed out).
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-long
-dispatch_block_wait(dispatch_block_t block, dispatch_time_t timeout);
-
-/*!
- * @function dispatch_block_notify
- *
- * @abstract
- * Schedule a notification block to be submitted to a queue when the execution
- * of a specified dispatch block object has completed.
- *
- * @discussion
- * This function will submit the notification block immediately if execution of
- * the observed block object has already completed.
- *
- * It is not possible to be notified of multiple executions of the same block
- * object with this interface, use dispatch_group_notify() for that purpose.
- *
- * A single dispatch block object may either be observed one or more times
- * and executed once, or it may be executed any number of times. The behavior
- * of any other combination is undefined. Submission to a dispatch queue
- * counts as an execution, even if cancellation (dispatch_block_cancel) means
- * the block's code never runs.
- *
- * If multiple notification blocks are scheduled for a single block object,
- * there is no defined order in which the notification blocks will be submitted
- * to their associated queues.
- *
- * @param block
- * The dispatch block object to observe.
- * The result of passing NULL or a block object not returned by one of the
- * dispatch_block_create* functions is undefined.
- *
- * @param queue
- * The queue to which the supplied notification block will be submitted when
- * the observed block completes.
- *
- * @param notification_block
- * The notification block to submit when the observed block object completes.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_block_notify(dispatch_block_t block, dispatch_queue_t queue,
-		dispatch_block_t notification_block);
-
-/*!
- * @function dispatch_block_cancel
- *
- * @abstract
- * Asynchronously cancel the specified dispatch block object.
- *
- * @discussion
- * Cancellation causes any future execution of the dispatch block object to
- * return immediately, but does not affect any execution of the block object
- * that is already in progress.
- *
- * Release of any resources associated with the block object will be delayed
- * until execution of the block object is next attempted (or any execution
- * already in progress completes).
- *
- * NOTE: care needs to be taken to ensure that a block object that may be
- *       canceled does not capture any resources that require execution of the
- *       block body in order to be released (e.g. memory allocated with
- *       malloc(3) that the block body calls free(3) on). Such resources will
- *       be leaked if the block body is never executed due to cancellation.
- *
- * @param block
- * The dispatch block object to cancel.
- * The result of passing NULL or a block object not returned by one of the
- * dispatch_block_create* functions is undefined.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_block_cancel(dispatch_block_t block);
-
-/*!
- * @function dispatch_block_testcancel
- *
- * @abstract
- * Tests whether the given dispatch block object has been canceled.
- *
- * @param block
- * The dispatch block object to test.
- * The result of passing NULL or a block object not returned by one of the
- * dispatch_block_create* functions is undefined.
- *
- * @result
- * Non-zero if canceled and zero if not canceled.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
-DISPATCH_NOTHROW
-long
-dispatch_block_testcancel(dispatch_block_t block);
-
-__END_DECLS
-
-DISPATCH_ASSUME_NONNULL_END
-
-#endif // __BLOCKS__
-
-#endif // __DISPATCH_BLOCK__
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/dispatch.h b/lib/libc/include/x86_64-macos.10-none/dispatch/dispatch.h
deleted file mode 100644
index 7d5356aab6e70db12b67062a0bbde74bcfabbc15..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/dispatch.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_PUBLIC__
-#define __DISPATCH_PUBLIC__
-
-#ifdef __APPLE__
-#include 
-#include 
-#include 
-#include 
-#elif defined(_WIN32)
-#include 
-#elif defined(__unix__)
-#include 
-#endif
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
-#include 
-#endif
-#include 
-
-#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__has_feature)
-#if __has_feature(modules)
-#if !defined(__arm__)
-#include  // for off_t (to match Glibc.modulemap)
-#endif
-#endif
-#endif
-
-#define DISPATCH_API_VERSION 20181008
-
-#ifndef __DISPATCH_INDIRECT__
-#define __DISPATCH_INDIRECT__
-#endif
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#undef __DISPATCH_INDIRECT__
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/group.h b/lib/libc/include/x86_64-macos.10-none/dispatch/group.h
deleted file mode 100644
index bb9bad30e354094fdf6a14bbe7bfeebad3558436..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/group.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_GROUP__
-#define __DISPATCH_GROUP__
-
-#ifndef __DISPATCH_INDIRECT__
-#error "Please #include  instead of this file directly."
-#include  // for HeaderDoc
-#endif
-
-DISPATCH_ASSUME_NONNULL_BEGIN
-
-/*!
- * @typedef dispatch_group_t
- * @abstract
- * A group of blocks submitted to queues for asynchronous invocation.
- */
-DISPATCH_DECL(dispatch_group);
-
-__BEGIN_DECLS
-
-/*!
- * @function dispatch_group_create
- *
- * @abstract
- * Creates new group with which blocks may be associated.
- *
- * @discussion
- * This function creates a new group with which blocks may be associated.
- * The dispatch group may be used to wait for the completion of the blocks it
- * references. The group object memory is freed with dispatch_release().
- *
- * @result
- * The newly created group, or NULL on failure.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-dispatch_group_t
-dispatch_group_create(void);
-
-/*!
- * @function dispatch_group_async
- *
- * @abstract
- * Submits a block to a dispatch queue and associates the block with the given
- * dispatch group.
- *
- * @discussion
- * Submits a block to a dispatch queue and associates the block with the given
- * dispatch group. The dispatch group may be used to wait for the completion
- * of the blocks it references.
- *
- * @param group
- * A dispatch group to associate with the submitted block.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param queue
- * The dispatch queue to which the block will be submitted for asynchronous
- * invocation.
- *
- * @param block
- * The block to perform asynchronously.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_group_async(dispatch_group_t group,
-	dispatch_queue_t queue,
-	dispatch_block_t block);
-#endif /* __BLOCKS__ */
-
-/*!
- * @function dispatch_group_async_f
- *
- * @abstract
- * Submits a function to a dispatch queue and associates the block with the
- * given dispatch group.
- *
- * @discussion
- * See dispatch_group_async() for details.
- *
- * @param group
- * A dispatch group to associate with the submitted function.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param queue
- * The dispatch queue to which the function will be submitted for asynchronous
- * invocation.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_group_async_f().
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL2 DISPATCH_NONNULL4
-DISPATCH_NOTHROW
-void
-dispatch_group_async_f(dispatch_group_t group,
-	dispatch_queue_t queue,
-	void *_Nullable context,
-	dispatch_function_t work);
-
-/*!
- * @function dispatch_group_wait
- *
- * @abstract
- * Wait synchronously until all the blocks associated with a group have
- * completed or until the specified timeout has elapsed.
- *
- * @discussion
- * This function waits for the completion of the blocks associated with the
- * given dispatch group, and returns after all blocks have completed or when
- * the specified timeout has elapsed.
- *
- * This function will return immediately if there are no blocks associated
- * with the dispatch group (i.e. the group is empty).
- *
- * The result of calling this function from multiple threads simultaneously
- * with the same dispatch group is undefined.
- *
- * After the successful return of this function, the dispatch group is empty.
- * It may either be released with dispatch_release() or re-used for additional
- * blocks. See dispatch_group_async() for more information.
- *
- * @param group
- * The dispatch group to wait on.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param timeout
- * When to timeout (see dispatch_time). As a convenience, there are the
- * DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER constants.
- *
- * @result
- * Returns zero on success (all blocks associated with the group completed
- * within the specified timeout) or non-zero on error (i.e. timed out).
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-long
-dispatch_group_wait(dispatch_group_t group, dispatch_time_t timeout);
-
-/*!
- * @function dispatch_group_notify
- *
- * @abstract
- * Schedule a block to be submitted to a queue when all the blocks associated
- * with a group have completed.
- *
- * @discussion
- * This function schedules a notification block to be submitted to the specified
- * queue once all blocks associated with the dispatch group have completed.
- *
- * If no blocks are associated with the dispatch group (i.e. the group is empty)
- * then the notification block will be submitted immediately.
- *
- * The group will be empty at the time the notification block is submitted to
- * the target queue. The group may either be released with dispatch_release()
- * or reused for additional operations.
- * See dispatch_group_async() for more information.
- *
- * @param group
- * The dispatch group to observe.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param queue
- * The queue to which the supplied block will be submitted when the group
- * completes.
- *
- * @param block
- * The block to submit when the group completes.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_group_notify(dispatch_group_t group,
-	dispatch_queue_t queue,
-	dispatch_block_t block);
-#endif /* __BLOCKS__ */
-
-/*!
- * @function dispatch_group_notify_f
- *
- * @abstract
- * Schedule a function to be submitted to a queue when all the blocks
- * associated with a group have completed.
- *
- * @discussion
- * See dispatch_group_notify() for details.
- *
- * @param group
- * The dispatch group to observe.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_group_notify_f().
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL2 DISPATCH_NONNULL4
-DISPATCH_NOTHROW
-void
-dispatch_group_notify_f(dispatch_group_t group,
-	dispatch_queue_t queue,
-	void *_Nullable context,
-	dispatch_function_t work);
-
-/*!
- * @function dispatch_group_enter
- *
- * @abstract
- * Manually indicate a block has entered the group
- *
- * @discussion
- * Calling this function indicates another block has joined the group through
- * a means other than dispatch_group_async(). Calls to this function must be
- * balanced with dispatch_group_leave().
- *
- * @param group
- * The dispatch group to update.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_group_enter(dispatch_group_t group);
-
-/*!
- * @function dispatch_group_leave
- *
- * @abstract
- * Manually indicate a block in the group has completed
- *
- * @discussion
- * Calling this function indicates block has completed and left the dispatch
- * group by a means other than dispatch_group_async().
- *
- * @param group
- * The dispatch group to update.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_group_leave(dispatch_group_t group);
-
-__END_DECLS
-
-DISPATCH_ASSUME_NONNULL_END
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/object.h b/lib/libc/include/x86_64-macos.10-none/dispatch/object.h
deleted file mode 100644
index 3d89eb1fe63f021f0d1272d1bbc0f30e5720cb87..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/object.h
+++ /dev/null
@@ -1,606 +0,0 @@
-/*
- * Copyright (c) 2008-2012 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_OBJECT__
-#define __DISPATCH_OBJECT__
-
-#ifndef __DISPATCH_INDIRECT__
-#error "Please #include  instead of this file directly."
-#include  // for HeaderDoc
-#endif
-
-#if __has_include()
-#include 
-#endif
-
-DISPATCH_ASSUME_NONNULL_BEGIN
-
-/*!
- * @typedef dispatch_object_t
- *
- * @abstract
- * Abstract base type for all dispatch objects.
- * The details of the type definition are language-specific.
- *
- * @discussion
- * Dispatch objects are reference counted via calls to dispatch_retain() and
- * dispatch_release().
- */
-
-#if OS_OBJECT_USE_OBJC
-/*
- * By default, dispatch objects are declared as Objective-C types when building
- * with an Objective-C compiler. This allows them to participate in ARC, in RR
- * management by the Blocks runtime and in leaks checking by the static
- * analyzer, and enables them to be added to Cocoa collections.
- * See  for details.
- */
-OS_OBJECT_DECL_CLASS(dispatch_object);
-
-#if OS_OBJECT_SWIFT3
-#define DISPATCH_DECL(name) OS_OBJECT_DECL_SUBCLASS_SWIFT(name, dispatch_object)
-#define DISPATCH_DECL_SUBCLASS(name, base) OS_OBJECT_DECL_SUBCLASS_SWIFT(name, base)
-#else // OS_OBJECT_SWIFT3
-#define DISPATCH_DECL(name) OS_OBJECT_DECL_SUBCLASS(name, dispatch_object)
-#define DISPATCH_DECL_SUBCLASS(name, base) OS_OBJECT_DECL_SUBCLASS(name, base)
-
-DISPATCH_INLINE DISPATCH_ALWAYS_INLINE DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-_dispatch_object_validate(dispatch_object_t object)
-{
-	void *isa = *(void *volatile*)(OS_OBJECT_BRIDGE void*)object;
-	(void)isa;
-}
-#endif // OS_OBJECT_SWIFT3
-
-#define DISPATCH_GLOBAL_OBJECT(type, object) ((OS_OBJECT_BRIDGE type)&(object))
-#define DISPATCH_RETURNS_RETAINED OS_OBJECT_RETURNS_RETAINED
-#elif defined(__cplusplus) && !defined(__DISPATCH_BUILDING_DISPATCH__)
-/*
- * Dispatch objects are NOT C++ objects. Nevertheless, we can at least keep C++
- * aware of type compatibility.
- */
-typedef struct dispatch_object_s {
-private:
-	dispatch_object_s();
-	~dispatch_object_s();
-	dispatch_object_s(const dispatch_object_s &);
-	void operator=(const dispatch_object_s &);
-} *dispatch_object_t;
-#define DISPATCH_DECL(name) \
-		typedef struct name##_s : public dispatch_object_s {} *name##_t
-#define DISPATCH_DECL_SUBCLASS(name, base) \
-		typedef struct name##_s : public base##_s {} *name##_t
-#define DISPATCH_GLOBAL_OBJECT(type, object) (static_cast(&(object)))
-#define DISPATCH_RETURNS_RETAINED
-#else /* Plain C */
-typedef union {
-	struct _os_object_s *_os_obj;
-	struct dispatch_object_s *_do;
-	struct dispatch_queue_s *_dq;
-	struct dispatch_queue_attr_s *_dqa;
-	struct dispatch_group_s *_dg;
-	struct dispatch_source_s *_ds;
-	struct dispatch_channel_s *_dch;
-	struct dispatch_mach_s *_dm;
-	struct dispatch_mach_msg_s *_dmsg;
-	struct dispatch_semaphore_s *_dsema;
-	struct dispatch_data_s *_ddata;
-	struct dispatch_io_s *_dchannel;
-} dispatch_object_t DISPATCH_TRANSPARENT_UNION;
-#define DISPATCH_DECL(name) typedef struct name##_s *name##_t
-#define DISPATCH_DECL_SUBCLASS(name, base) typedef base##_t name##_t
-#define DISPATCH_GLOBAL_OBJECT(type, object) ((type)&(object))
-#define DISPATCH_RETURNS_RETAINED
-#endif
-
-#if OS_OBJECT_SWIFT3 && OS_OBJECT_USE_OBJC
-#define DISPATCH_SOURCE_TYPE_DECL(name) \
-		DISPATCH_EXPORT struct dispatch_source_type_s \
-				_dispatch_source_type_##name; \
-		OS_OBJECT_DECL_PROTOCOL(dispatch_source_##name, ); \
-		OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL( \
-				dispatch_source, dispatch_source_##name)
-#define DISPATCH_SOURCE_DECL(name) \
-		DISPATCH_DECL(name); \
-		OS_OBJECT_DECL_PROTOCOL(name, ); \
-		OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL(name, name)
-#ifndef DISPATCH_DATA_DECL
-#define DISPATCH_DATA_DECL(name) OS_OBJECT_DECL_SWIFT(name)
-#endif // DISPATCH_DATA_DECL
-#else
-#define DISPATCH_SOURCE_DECL(name) \
-		DISPATCH_DECL(name);
-#define DISPATCH_DATA_DECL(name) DISPATCH_DECL(name)
-#define DISPATCH_SOURCE_TYPE_DECL(name) \
-		DISPATCH_EXPORT const struct dispatch_source_type_s \
-		_dispatch_source_type_##name
-#endif
-
-#ifdef __BLOCKS__
-/*!
- * @typedef dispatch_block_t
- *
- * @abstract
- * The type of blocks submitted to dispatch queues, which take no arguments
- * and have no return value.
- *
- * @discussion
- * When not building with Objective-C ARC, a block object allocated on or
- * copied to the heap must be released with a -[release] message or the
- * Block_release() function.
- *
- * The declaration of a block literal allocates storage on the stack.
- * Therefore, this is an invalid construct:
- * 
- * dispatch_block_t block;
- * if (x) {
- *     block = ^{ printf("true\n"); };
- * } else {
- *     block = ^{ printf("false\n"); };
- * }
- * block(); // unsafe!!!
- * 
- *
- * What is happening behind the scenes:
- * 
- * if (x) {
- *     struct Block __tmp_1 = ...; // setup details
- *     block = &__tmp_1;
- * } else {
- *     struct Block __tmp_2 = ...; // setup details
- *     block = &__tmp_2;
- * }
- * 
- *
- * As the example demonstrates, the address of a stack variable is escaping the
- * scope in which it is allocated. That is a classic C bug.
- *
- * Instead, the block literal must be copied to the heap with the Block_copy()
- * function or by sending it a -[copy] message.
- */
-typedef void (^dispatch_block_t)(void);
-#endif // __BLOCKS__
-
-__BEGIN_DECLS
-
-/*!
- * @typedef dispatch_qos_class_t
- * Alias for qos_class_t type.
- */
-#if __has_include()
-typedef qos_class_t dispatch_qos_class_t;
-#else
-typedef unsigned int dispatch_qos_class_t;
-#endif
-
-/*!
- * @function dispatch_retain
- *
- * @abstract
- * Increment the reference count of a dispatch object.
- *
- * @discussion
- * Calls to dispatch_retain() must be balanced with calls to
- * dispatch_release().
- *
- * @param object
- * The object to retain.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-DISPATCH_SWIFT_UNAVAILABLE("Can't be used with ARC")
-void
-dispatch_retain(dispatch_object_t object);
-#if OS_OBJECT_USE_OBJC_RETAIN_RELEASE
-#undef dispatch_retain
-#define dispatch_retain(object) \
-		__extension__({ dispatch_object_t _o = (object); \
-		_dispatch_object_validate(_o); (void)[_o retain]; })
-#endif
-
-/*!
- * @function dispatch_release
- *
- * @abstract
- * Decrement the reference count of a dispatch object.
- *
- * @discussion
- * A dispatch object is asynchronously deallocated once all references are
- * released (i.e. the reference count becomes zero). The system does not
- * guarantee that a given client is the last or only reference to a given
- * object.
- *
- * @param object
- * The object to release.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-DISPATCH_SWIFT_UNAVAILABLE("Can't be used with ARC")
-void
-dispatch_release(dispatch_object_t object);
-#if OS_OBJECT_USE_OBJC_RETAIN_RELEASE
-#undef dispatch_release
-#define dispatch_release(object) \
-		__extension__({ dispatch_object_t _o = (object); \
-		_dispatch_object_validate(_o); [_o release]; })
-#endif
-
-/*!
- * @function dispatch_get_context
- *
- * @abstract
- * Returns the application defined context of the object.
- *
- * @param object
- * The result of passing NULL in this parameter is undefined.
- *
- * @result
- * The context of the object; may be NULL.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_PURE DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-void *_Nullable
-dispatch_get_context(dispatch_object_t object);
-
-/*!
- * @function dispatch_set_context
- *
- * @abstract
- * Associates an application defined context with the object.
- *
- * @param object
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The new client defined context for the object. This may be NULL.
- *
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NOTHROW
-void
-dispatch_set_context(dispatch_object_t object, void *_Nullable context);
-
-/*!
- * @function dispatch_set_finalizer_f
- *
- * @abstract
- * Set the finalizer function for a dispatch object.
- *
- * @param object
- * The dispatch object to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param finalizer
- * The finalizer function pointer.
- *
- * @discussion
- * A dispatch object's finalizer will be invoked on the object's target queue
- * after all references to the object have been released. This finalizer may be
- * used by the application to release any resources associated with the object,
- * such as freeing the object's context.
- * The context parameter passed to the finalizer function is the current
- * context of the dispatch object at the time the finalizer call is made.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NOTHROW
-void
-dispatch_set_finalizer_f(dispatch_object_t object,
-		dispatch_function_t _Nullable finalizer);
-
-/*!
- * @function dispatch_activate
- *
- * @abstract
- * Activates the specified dispatch object.
- *
- * @discussion
- * Dispatch objects such as queues and sources may be created in an inactive
- * state. Objects in this state have to be activated before any blocks
- * associated with them will be invoked.
- *
- * The target queue of inactive objects can be changed using
- * dispatch_set_target_queue(). Change of target queue is no longer permitted
- * once an initially inactive object has been activated.
- *
- * Calling dispatch_activate() on an active object has no effect.
- * Releasing the last reference count on an inactive object is undefined.
- *
- * @param object
- * The object to be activated.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_activate(dispatch_object_t object);
-
-/*!
- * @function dispatch_suspend
- *
- * @abstract
- * Suspends the invocation of blocks on a dispatch object.
- *
- * @discussion
- * A suspended object will not invoke any blocks associated with it. The
- * suspension of an object will occur after any running block associated with
- * the object completes.
- *
- * Calls to dispatch_suspend() must be balanced with calls
- * to dispatch_resume().
- *
- * @param object
- * The object to be suspended.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_suspend(dispatch_object_t object);
-
-/*!
- * @function dispatch_resume
- *
- * @abstract
- * Resumes the invocation of blocks on a dispatch object.
- *
- * @discussion
- * Dispatch objects can be suspended with dispatch_suspend(), which increments
- * an internal suspension count. dispatch_resume() is the inverse operation,
- * and consumes suspension counts. When the last suspension count is consumed,
- * blocks associated with the object will be invoked again.
- *
- * For backward compatibility reasons, dispatch_resume() on an inactive and not
- * otherwise suspended dispatch source object has the same effect as calling
- * dispatch_activate(). For new code, using dispatch_activate() is preferred.
- *
- * If the specified object has zero suspension count and is not an inactive
- * source, this function will result in an assertion and the process being
- * terminated.
- *
- * @param object
- * The object to be resumed.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_resume(dispatch_object_t object);
-
-/*!
- * @function dispatch_set_qos_class_floor
- *
- * @abstract
- * Sets the QOS class floor on a dispatch queue, source or workloop.
- *
- * @discussion
- * The QOS class of workitems submitted to this object asynchronously will be
- * elevated to at least the specified QOS class floor. The QOS of the workitem
- * will be used if higher than the floor even when the workitem has been created
- * without "ENFORCE" semantics.
- *
- * Setting the QOS class floor is equivalent to the QOS effects of configuring
- * a queue whose target queue has a QoS class set to the same value.
- *
- * @param object
- * A dispatch queue, workloop, or source to configure.
- * The object must be inactive.
- *
- * Passing another object type or an object that has been activated is undefined
- * and will cause the process to be terminated.
- *
- * @param qos_class
- * A QOS class value:
- *  - QOS_CLASS_USER_INTERACTIVE
- *  - QOS_CLASS_USER_INITIATED
- *  - QOS_CLASS_DEFAULT
- *  - QOS_CLASS_UTILITY
- *  - QOS_CLASS_BACKGROUND
- * Passing any other value is undefined.
- *
- * @param relative_priority
- * A relative priority within the QOS class. This value is a negative
- * offset from the maximum supported scheduler priority for the given class.
- * Passing a value greater than zero or less than QOS_MIN_RELATIVE_PRIORITY
- * is undefined.
- */
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-DISPATCH_EXPORT DISPATCH_NOTHROW
-void
-dispatch_set_qos_class_floor(dispatch_object_t object,
-		dispatch_qos_class_t qos_class, int relative_priority);
-
-#ifdef __BLOCKS__
-/*!
- * @function dispatch_wait
- *
- * @abstract
- * Wait synchronously for an object or until the specified timeout has elapsed.
- *
- * @discussion
- * Type-generic macro that maps to dispatch_block_wait, dispatch_group_wait or
- * dispatch_semaphore_wait, depending on the type of the first argument.
- * See documentation for these functions for more details.
- * This function is unavailable for any other object type.
- *
- * @param object
- * The object to wait on.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param timeout
- * When to timeout (see dispatch_time). As a convenience, there are the
- * DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER constants.
- *
- * @result
- * Returns zero on success or non-zero on error (i.e. timed out).
- */
-DISPATCH_UNAVAILABLE
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-long
-dispatch_wait(void *object, dispatch_time_t timeout);
-#if __has_extension(c_generic_selections)
-#define dispatch_wait(object, timeout) \
-		_Generic((object), \
-			dispatch_block_t:dispatch_block_wait, \
-			dispatch_group_t:dispatch_group_wait, \
-			dispatch_semaphore_t:dispatch_semaphore_wait \
-		)((object),(timeout))
-#endif
-
-/*!
- * @function dispatch_notify
- *
- * @abstract
- * Schedule a notification block to be submitted to a queue when the execution
- * of a specified object has completed.
- *
- * @discussion
- * Type-generic macro that maps to dispatch_block_notify or
- * dispatch_group_notify, depending on the type of the first argument.
- * See documentation for these functions for more details.
- * This function is unavailable for any other object type.
- *
- * @param object
- * The object to observe.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param queue
- * The queue to which the supplied notification block will be submitted when
- * the observed object completes.
- *
- * @param notification_block
- * The block to submit when the observed object completes.
- */
-DISPATCH_UNAVAILABLE
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_notify(void *object, dispatch_object_t queue,
-		dispatch_block_t notification_block);
-#if __has_extension(c_generic_selections)
-#define dispatch_notify(object, queue, notification_block) \
-		_Generic((object), \
-			dispatch_block_t:dispatch_block_notify, \
-			dispatch_group_t:dispatch_group_notify \
-		)((object),(queue), (notification_block))
-#endif
-
-/*!
- * @function dispatch_cancel
- *
- * @abstract
- * Cancel the specified object.
- *
- * @discussion
- * Type-generic macro that maps to dispatch_block_cancel or
- * dispatch_source_cancel, depending on the type of the first argument.
- * See documentation for these functions for more details.
- * This function is unavailable for any other object type.
- *
- * @param object
- * The object to cancel.
- * The result of passing NULL in this parameter is undefined.
- */
-DISPATCH_UNAVAILABLE
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_cancel(void *object);
-#if __has_extension(c_generic_selections)
-#define dispatch_cancel(object) \
-		_Generic((object), \
-			dispatch_block_t:dispatch_block_cancel, \
-			dispatch_source_t:dispatch_source_cancel \
-		)((object))
-#endif
-
-/*!
- * @function dispatch_testcancel
- *
- * @abstract
- * Test whether the specified object has been canceled
- *
- * @discussion
- * Type-generic macro that maps to dispatch_block_testcancel or
- * dispatch_source_testcancel, depending on the type of the first argument.
- * See documentation for these functions for more details.
- * This function is unavailable for any other object type.
- *
- * @param object
- * The object to test.
- * The result of passing NULL in this parameter is undefined.
- *
- * @result
- * Non-zero if canceled and zero if not canceled.
- */
-DISPATCH_UNAVAILABLE
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
-DISPATCH_NOTHROW
-long
-dispatch_testcancel(void *object);
-#if __has_extension(c_generic_selections)
-#define dispatch_testcancel(object) \
-		_Generic((object), \
-			dispatch_block_t:dispatch_block_testcancel, \
-			dispatch_source_t:dispatch_source_testcancel \
-		)((object))
-#endif
-#endif // __BLOCKS__
-
-/*!
- * @function dispatch_debug
- *
- * @abstract
- * Programmatically log debug information about a dispatch object.
- *
- * @discussion
- * Programmatically log debug information about a dispatch object. By default,
- * the log output is sent to syslog at notice level. In the debug version of
- * the library, the log output is sent to a file in /var/tmp.
- * The log output destination can be configured via the LIBDISPATCH_LOG
- * environment variable, valid values are: YES, NO, syslog, stderr, file.
- *
- * This function is deprecated and will be removed in a future release.
- * Objective-C callers may use -debugDescription instead.
- *
- * @param object
- * The object to introspect.
- *
- * @param message
- * The message to log above and beyond the introspection.
- */
-API_DEPRECATED("unsupported interface", macos(10.6,10.9), ios(4.0,6.0))
-DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NOTHROW DISPATCH_COLD
-__attribute__((__format__(printf,2,3)))
-void
-dispatch_debug(dispatch_object_t object, const char *message, ...);
-
-API_DEPRECATED("unsupported interface", macos(10.6,10.9), ios(4.0,6.0))
-DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NOTHROW DISPATCH_COLD
-__attribute__((__format__(printf,2,0)))
-void
-dispatch_debugv(dispatch_object_t object, const char *message, va_list ap);
-
-__END_DECLS
-
-DISPATCH_ASSUME_NONNULL_END
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/queue.h b/lib/libc/include/x86_64-macos.10-none/dispatch/queue.h
deleted file mode 100644
index f644b0266d7eadd4be7fbfd91d7b8d8dab4567d4..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/queue.h
+++ /dev/null
@@ -1,1674 +0,0 @@
-/*
- * Copyright (c) 2008-2014 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_QUEUE__
-#define __DISPATCH_QUEUE__
-
-#ifndef __DISPATCH_INDIRECT__
-#error "Please #include  instead of this file directly."
-#include  // for HeaderDoc
-#endif
-
-DISPATCH_ASSUME_NONNULL_BEGIN
-
-/*!
- * @header
- *
- * Dispatch is an abstract model for expressing concurrency via simple but
- * powerful API.
- *
- * At the core, dispatch provides serial FIFO queues to which blocks may be
- * submitted. Blocks submitted to these dispatch queues are invoked on a pool
- * of threads fully managed by the system. No guarantee is made regarding
- * which thread a block will be invoked on; however, it is guaranteed that only
- * one block submitted to the FIFO dispatch queue will be invoked at a time.
- *
- * When multiple queues have blocks to be processed, the system is free to
- * allocate additional threads to invoke the blocks concurrently. When the
- * queues become empty, these threads are automatically released.
- */
-
-/*!
- * @typedef dispatch_queue_t
- *
- * @abstract
- * Dispatch queues invoke workitems submitted to them.
- *
- * @discussion
- * Dispatch queues come in many flavors, the most common one being the dispatch
- * serial queue (See dispatch_queue_serial_t).
- *
- * The system manages a pool of threads which process dispatch queues and invoke
- * workitems submitted to them.
- *
- * Conceptually a dispatch queue may have its own thread of execution, and
- * interaction between queues is highly asynchronous.
- *
- * Dispatch queues are reference counted via calls to dispatch_retain() and
- * dispatch_release(). Pending workitems submitted to a queue also hold a
- * reference to the queue until they have finished. Once all references to a
- * queue have been released, the queue will be deallocated by the system.
- */
-DISPATCH_DECL(dispatch_queue);
-
-/*!
- * @typedef dispatch_queue_global_t
- *
- * @abstract
- * Dispatch global concurrent queues are an abstraction around the system thread
- * pool which invokes workitems that are submitted to dispatch queues.
- *
- * @discussion
- * Dispatch global concurrent queues provide buckets of priorities on top of the
- * thread pool the system manages. The system will decide how many threads
- * to allocate to this pool depending on demand and system load. In particular,
- * the system tries to maintain a good level of concurrency for this resource,
- * and will create new threads when too many existing worker threads block in
- * system calls.
- *
- * The global concurrent queues are a shared resource and as such it is the
- * responsiblity of every user of this resource to not submit an unbounded
- * amount of work to this pool, especially work that may block, as this can
- * cause the system to spawn very large numbers of threads (aka. thread
- * explosion).
- *
- * Work items submitted to the global concurrent queues have no ordering
- * guarantee with respect to the order of submission, and workitems submitted
- * to these queues may be invoked concurrently.
- *
- * Dispatch global concurrent queues are well-known global objects that are
- * returned by dispatch_get_global_queue(). These objects cannot be modified.
- * Calls to dispatch_suspend(), dispatch_resume(), dispatch_set_context(), etc.,
- * will have no effect when used with queues of this type.
- */
-DISPATCH_DECL_SUBCLASS(dispatch_queue_global, dispatch_queue);
-
-/*!
- * @typedef dispatch_queue_serial_t
- *
- * @abstract
- * Dispatch serial queues invoke workitems submitted to them serially in FIFO
- * order.
- *
- * @discussion
- * Dispatch serial queues are lightweight objects to which workitems may be
- * submitted to be invoked in FIFO order. A serial queue will only invoke one
- * workitem at a time, but independent serial queues may each invoke their work
- * items concurrently with respect to each other.
- *
- * Serial queues can target each other (See dispatch_set_target_queue()). The
- * serial queue at the bottom of a queue hierarchy provides an exclusion
- * context: at most one workitem submitted to any of the queues in such
- * a hiearchy will run at any given time.
- *
- * Such hierarchies provide a natural construct to organize an application
- * subsystem around.
- *
- * Serial queues are created by passing a dispatch queue attribute derived from
- * DISPATCH_QUEUE_SERIAL to dispatch_queue_create_with_target().
- */
-DISPATCH_DECL_SUBCLASS(dispatch_queue_serial, dispatch_queue);
-
-/*!
- * @typedef dispatch_queue_main_t
- *
- * @abstract
- * The type of the default queue that is bound to the main thread.
- *
- * @discussion
- * The main queue is a serial queue (See dispatch_queue_serial_t) which is bound
- * to the main thread of an application.
- *
- * In order to invoke workitems submitted to the main queue, the application
- * must call dispatch_main(), NSApplicationMain(), or use a CFRunLoop on the
- * main thread.
- *
- * The main queue is a well known global object that is made automatically on
- * behalf of the main thread during process initialization and is returned by
- * dispatch_get_main_queue(). This object cannot be modified.  Calls to
- * dispatch_suspend(), dispatch_resume(), dispatch_set_context(), etc., will
- * have no effect when used on the main queue.
- */
-DISPATCH_DECL_SUBCLASS(dispatch_queue_main, dispatch_queue_serial);
-
-/*!
- * @typedef dispatch_queue_concurrent_t
- *
- * @abstract
- * Dispatch concurrent queues invoke workitems submitted to them concurrently,
- * and admit a notion of barrier workitems.
- *
- * @discussion
- * Dispatch concurrent queues are lightweight objects to which regular and
- * barrier workitems may be submited. Barrier workitems are invoked in
- * exclusion of any other kind of workitem in FIFO order.
- *
- * Regular workitems can be invoked concurrently for the same concurrent queue,
- * in any order. However, regular workitems will not be invoked before any
- * barrier workitem submited ahead of them has been invoked.
- *
- * In other words, if a serial queue is equivalent to a mutex in the Dispatch
- * world, a concurrent queue is equivalent to a reader-writer lock, where
- * regular items are readers and barriers are writers.
- *
- * Concurrent queues are created by passing a dispatch queue attribute derived
- * from DISPATCH_QUEUE_CONCURRENT to dispatch_queue_create_with_target().
- *
- * Caveat:
- * Dispatch concurrent queues at this time do not implement priority inversion
- * avoidance when lower priority regular workitems (readers) are being invoked
- * and are preventing a higher priority barrier (writer) from being invoked.
- */
-DISPATCH_DECL_SUBCLASS(dispatch_queue_concurrent, dispatch_queue);
-
-__BEGIN_DECLS
-
-/*!
- * @function dispatch_async
- *
- * @abstract
- * Submits a block for asynchronous execution on a dispatch queue.
- *
- * @discussion
- * The dispatch_async() function is the fundamental mechanism for submitting
- * blocks to a dispatch queue.
- *
- * Calls to dispatch_async() always return immediately after the block has
- * been submitted, and never wait for the block to be invoked.
- *
- * The target queue determines whether the block will be invoked serially or
- * concurrently with respect to other blocks submitted to that same queue.
- * Serial queues are processed concurrently with respect to each other.
- *
- * @param queue
- * The target dispatch queue to which the block is submitted.
- * The system will hold a reference on the target queue until the block
- * has finished.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param block
- * The block to submit to the target dispatch queue. This function performs
- * Block_copy() and Block_release() on behalf of callers.
- * The result of passing NULL in this parameter is undefined.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
-#endif
-
-/*!
- * @function dispatch_async_f
- *
- * @abstract
- * Submits a function for asynchronous execution on a dispatch queue.
- *
- * @discussion
- * See dispatch_async() for details.
- *
- * @param queue
- * The target dispatch queue to which the function is submitted.
- * The system will hold a reference on the target queue until the function
- * has returned.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_async_f().
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
-void
-dispatch_async_f(dispatch_queue_t queue,
-		void *_Nullable context, dispatch_function_t work);
-
-/*!
- * @function dispatch_sync
- *
- * @abstract
- * Submits a block for synchronous execution on a dispatch queue.
- *
- * @discussion
- * Submits a workitem to a dispatch queue like dispatch_async(), however
- * dispatch_sync() will not return until the workitem has finished.
- *
- * Work items submitted to a queue with dispatch_sync() do not observe certain
- * queue attributes of that queue when invoked (such as autorelease frequency
- * and QOS class).
- *
- * Calls to dispatch_sync() targeting the current queue will result
- * in dead-lock. Use of dispatch_sync() is also subject to the same
- * multi-party dead-lock problems that may result from the use of a mutex.
- * Use of dispatch_async() is preferred.
- *
- * Unlike dispatch_async(), no retain is performed on the target queue. Because
- * calls to this function are synchronous, the dispatch_sync() "borrows" the
- * reference of the caller.
- *
- * As an optimization, dispatch_sync() invokes the workitem on the thread which
- * submitted the workitem, except when the passed queue is the main queue or
- * a queue targetting it (See dispatch_queue_main_t,
- * dispatch_set_target_queue()).
- *
- * @param queue
- * The target dispatch queue to which the block is submitted.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param block
- * The block to be invoked on the target dispatch queue.
- * The result of passing NULL in this parameter is undefined.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_sync(dispatch_queue_t queue, DISPATCH_NOESCAPE dispatch_block_t block);
-#endif
-
-/*!
- * @function dispatch_sync_f
- *
- * @abstract
- * Submits a function for synchronous execution on a dispatch queue.
- *
- * @discussion
- * See dispatch_sync() for details.
- *
- * @param queue
- * The target dispatch queue to which the function is submitted.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_sync_f().
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
-void
-dispatch_sync_f(dispatch_queue_t queue,
-		void *_Nullable context, dispatch_function_t work);
-
-/*!
- * @function dispatch_async_and_wait
- *
- * @abstract
- * Submits a block for synchronous execution on a dispatch queue.
- *
- * @discussion
- * Submits a workitem to a dispatch queue like dispatch_async(), however
- * dispatch_async_and_wait() will not return until the workitem has finished.
- *
- * Like functions of the dispatch_sync family, dispatch_async_and_wait() is
- * subject to dead-lock (See dispatch_sync() for details).
- *
- * However, dispatch_async_and_wait() differs from functions of the
- * dispatch_sync family in two fundamental ways: how it respects queue
- * attributes and how it chooses the execution context invoking the workitem.
- *
- * Differences with dispatch_sync()
- *
- * Work items submitted to a queue with dispatch_async_and_wait() observe all
- * queue attributes of that queue when invoked (inluding autorelease frequency
- * or QOS class).
- *
- * When the runtime has brought up a thread to invoke the asynchronous workitems
- * already submitted to the specified queue, that servicing thread will also be
- * used to execute synchronous work submitted to the queue with
- * dispatch_async_and_wait().
- *
- * However, if the runtime has not brought up a thread to service the specified
- * queue (because it has no workitems enqueued, or only synchronous workitems),
- * then dispatch_async_and_wait() will invoke the workitem on the calling thread,
- * similar to the behaviour of functions in the dispatch_sync family.
- *
- * As an exception, if the queue the work is submitted to doesn't target
- * a global concurrent queue (for example because it targets the main queue),
- * then the workitem will never be invoked by the thread calling
- * dispatch_async_and_wait().
- *
- * In other words, dispatch_async_and_wait() is similar to submitting
- * a dispatch_block_create()d workitem to a queue and then waiting on it, as
- * shown in the code example below. However, dispatch_async_and_wait() is
- * significantly more efficient when a new thread is not required to execute
- * the workitem (as it will use the stack of the submitting thread instead of
- * requiring heap allocations).
- *
- * 
- *     dispatch_block_t b = dispatch_block_create(0, block);
- *     dispatch_async(queue, b);
- *     dispatch_block_wait(b, DISPATCH_TIME_FOREVER);
- *     Block_release(b);
- * 
- *
- * @param queue
- * The target dispatch queue to which the block is submitted.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param block
- * The block to be invoked on the target dispatch queue.
- * The result of passing NULL in this parameter is undefined.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_async_and_wait(dispatch_queue_t queue,
-		DISPATCH_NOESCAPE dispatch_block_t block);
-#endif
-
-/*!
- * @function dispatch_async_and_wait_f
- *
- * @abstract
- * Submits a function for synchronous execution on a dispatch queue.
- *
- * @discussion
- * See dispatch_async_and_wait() for details.
- *
- * @param queue
- * The target dispatch queue to which the function is submitted.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_async_and_wait_f().
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
-void
-dispatch_async_and_wait_f(dispatch_queue_t queue,
-		void *_Nullable context, dispatch_function_t work);
-
-
-#if defined(__APPLE__) && \
-		(defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && \
-		__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0) || \
-		(defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
-		__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_9)
-#define DISPATCH_APPLY_AUTO_AVAILABLE 0
-#define DISPATCH_APPLY_QUEUE_ARG_NULLABILITY _Nonnull
-#else
-#define DISPATCH_APPLY_AUTO_AVAILABLE 1
-#define DISPATCH_APPLY_QUEUE_ARG_NULLABILITY _Nullable
-#endif
-
-/*!
- * @constant DISPATCH_APPLY_AUTO
- *
- * @abstract
- * Constant to pass to dispatch_apply() or dispatch_apply_f() to request that
- * the system automatically use worker threads that match the configuration of
- * the current thread as closely as possible.
- *
- * @discussion
- * When submitting a block for parallel invocation, passing this constant as the
- * queue argument will automatically use the global concurrent queue that
- * matches the Quality of Service of the caller most closely.
- *
- * No assumptions should be made about which global concurrent queue will
- * actually be used.
- *
- * Using this constant deploys backward to macOS 10.9, iOS 7.0 and any tvOS or
- * watchOS version.
- */
-#if DISPATCH_APPLY_AUTO_AVAILABLE
-#define DISPATCH_APPLY_AUTO ((dispatch_queue_t _Nonnull)0)
-#endif
-
-/*!
- * @function dispatch_apply
- *
- * @abstract
- * Submits a block to a dispatch queue for parallel invocation.
- *
- * @discussion
- * Submits a block to a dispatch queue for parallel invocation. This function
- * waits for the task block to complete before returning. If the specified queue
- * is concurrent, the block may be invoked concurrently, and it must therefore
- * be reentrant safe.
- *
- * Each invocation of the block will be passed the current index of iteration.
- *
- * @param iterations
- * The number of iterations to perform.
- *
- * @param queue
- * The dispatch queue to which the block is submitted.
- * The preferred value to pass is DISPATCH_APPLY_AUTO to automatically use
- * a queue appropriate for the calling thread.
- *
- * @param block
- * The block to be invoked the specified number of iterations.
- * The result of passing NULL in this parameter is undefined.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL3 DISPATCH_NOTHROW
-void
-dispatch_apply(size_t iterations,
-		dispatch_queue_t DISPATCH_APPLY_QUEUE_ARG_NULLABILITY queue,
-		DISPATCH_NOESCAPE void (^block)(size_t));
-#endif
-
-/*!
- * @function dispatch_apply_f
- *
- * @abstract
- * Submits a function to a dispatch queue for parallel invocation.
- *
- * @discussion
- * See dispatch_apply() for details.
- *
- * @param iterations
- * The number of iterations to perform.
- *
- * @param queue
- * The dispatch queue to which the function is submitted.
- * The preferred value to pass is DISPATCH_APPLY_AUTO to automatically use
- * a queue appropriate for the calling thread.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the specified queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_apply_f(). The second parameter passed to this function is the
- * current index of iteration.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL4 DISPATCH_NOTHROW
-void
-dispatch_apply_f(size_t iterations,
-		dispatch_queue_t DISPATCH_APPLY_QUEUE_ARG_NULLABILITY queue,
-		void *_Nullable context, void (*work)(void *_Nullable, size_t));
-
-/*!
- * @function dispatch_get_current_queue
- *
- * @abstract
- * Returns the queue on which the currently executing block is running.
- *
- * @discussion
- * Returns the queue on which the currently executing block is running.
- *
- * When dispatch_get_current_queue() is called outside of the context of a
- * submitted block, it will return the default concurrent queue.
- *
- * Recommended for debugging and logging purposes only:
- * The code must not make any assumptions about the queue returned, unless it
- * is one of the global queues or a queue the code has itself created.
- * The code must not assume that synchronous execution onto a queue is safe
- * from deadlock if that queue is not the one returned by
- * dispatch_get_current_queue().
- *
- * When dispatch_get_current_queue() is called on the main thread, it may
- * or may not return the same value as dispatch_get_main_queue(). Comparing
- * the two is not a valid way to test whether code is executing on the
- * main thread (see dispatch_assert_queue() and dispatch_assert_queue_not()).
- *
- * This function is deprecated and will be removed in a future release.
- *
- * @result
- * Returns the current queue.
- */
-API_DEPRECATED("unsupported interface", macos(10.6,10.9), ios(4.0,6.0))
-DISPATCH_EXPORT DISPATCH_PURE DISPATCH_WARN_RESULT DISPATCH_NOTHROW
-dispatch_queue_t
-dispatch_get_current_queue(void);
-
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT
-struct dispatch_queue_s _dispatch_main_q;
-
-/*!
- * @function dispatch_get_main_queue
- *
- * @abstract
- * Returns the default queue that is bound to the main thread.
- *
- * @discussion
- * In order to invoke blocks submitted to the main queue, the application must
- * call dispatch_main(), NSApplicationMain(), or use a CFRunLoop on the main
- * thread.
- *
- * The main queue is meant to be used in application context to interact with
- * the main thread and the main runloop.
- *
- * Because the main queue doesn't behave entirely like a regular serial queue,
- * it may have unwanted side-effects when used in processes that are not UI apps
- * (daemons). For such processes, the main queue should be avoided.
- *
- * @see dispatch_queue_main_t
- *
- * @result
- * Returns the main queue. This queue is created automatically on behalf of
- * the main thread before main() is called.
- */
-DISPATCH_INLINE DISPATCH_ALWAYS_INLINE DISPATCH_CONST DISPATCH_NOTHROW
-dispatch_queue_main_t
-dispatch_get_main_queue(void)
-{
-	return DISPATCH_GLOBAL_OBJECT(dispatch_queue_main_t, _dispatch_main_q);
-}
-
-/*!
- * @typedef dispatch_queue_priority_t
- * Type of dispatch_queue_priority
- *
- * @constant DISPATCH_QUEUE_PRIORITY_HIGH
- * Items dispatched to the queue will run at high priority,
- * i.e. the queue will be scheduled for execution before
- * any default priority or low priority queue.
- *
- * @constant DISPATCH_QUEUE_PRIORITY_DEFAULT
- * Items dispatched to the queue will run at the default
- * priority, i.e. the queue will be scheduled for execution
- * after all high priority queues have been scheduled, but
- * before any low priority queues have been scheduled.
- *
- * @constant DISPATCH_QUEUE_PRIORITY_LOW
- * Items dispatched to the queue will run at low priority,
- * i.e. the queue will be scheduled for execution after all
- * default priority and high priority queues have been
- * scheduled.
- *
- * @constant DISPATCH_QUEUE_PRIORITY_BACKGROUND
- * Items dispatched to the queue will run at background priority, i.e. the queue
- * will be scheduled for execution after all higher priority queues have been
- * scheduled and the system will run items on this queue on a thread with
- * background status as per setpriority(2) (i.e. disk I/O is throttled and the
- * thread's scheduling priority is set to lowest value).
- */
-#define DISPATCH_QUEUE_PRIORITY_HIGH 2
-#define DISPATCH_QUEUE_PRIORITY_DEFAULT 0
-#define DISPATCH_QUEUE_PRIORITY_LOW (-2)
-#define DISPATCH_QUEUE_PRIORITY_BACKGROUND INT16_MIN
-
-typedef long dispatch_queue_priority_t;
-
-/*!
- * @function dispatch_get_global_queue
- *
- * @abstract
- * Returns a well-known global concurrent queue of a given quality of service
- * class.
- *
- * @discussion
- * See dispatch_queue_global_t.
- *
- * @param identifier
- * A quality of service class defined in qos_class_t or a priority defined in
- * dispatch_queue_priority_t.
- *
- * It is recommended to use quality of service class values to identify the
- * well-known global concurrent queues:
- *  - QOS_CLASS_USER_INTERACTIVE
- *  - QOS_CLASS_USER_INITIATED
- *  - QOS_CLASS_DEFAULT
- *  - QOS_CLASS_UTILITY
- *  - QOS_CLASS_BACKGROUND
- *
- * The global concurrent queues may still be identified by their priority,
- * which map to the following QOS classes:
- *  - DISPATCH_QUEUE_PRIORITY_HIGH:         QOS_CLASS_USER_INITIATED
- *  - DISPATCH_QUEUE_PRIORITY_DEFAULT:      QOS_CLASS_DEFAULT
- *  - DISPATCH_QUEUE_PRIORITY_LOW:          QOS_CLASS_UTILITY
- *  - DISPATCH_QUEUE_PRIORITY_BACKGROUND:   QOS_CLASS_BACKGROUND
- *
- * @param flags
- * Reserved for future use. Passing any value other than zero may result in
- * a NULL return value.
- *
- * @result
- * Returns the requested global queue or NULL if the requested global queue
- * does not exist.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_CONST DISPATCH_WARN_RESULT DISPATCH_NOTHROW
-dispatch_queue_global_t
-dispatch_get_global_queue(long identifier, unsigned long flags);
-
-/*!
- * @typedef dispatch_queue_attr_t
- *
- * @abstract
- * Attribute for dispatch queues.
- */
-DISPATCH_DECL(dispatch_queue_attr);
-
-/*!
- * @const DISPATCH_QUEUE_SERIAL
- *
- * @discussion
- * An attribute that can be used to create a dispatch queue that invokes blocks
- * serially in FIFO order.
- *
- * See dispatch_queue_serial_t.
- */
-#define DISPATCH_QUEUE_SERIAL NULL
-
-/*!
- * @const DISPATCH_QUEUE_SERIAL_INACTIVE
- *
- * @discussion
- * An attribute that can be used to create a dispatch queue that invokes blocks
- * serially in FIFO order, and that is initially inactive.
- *
- * See dispatch_queue_attr_make_initially_inactive().
- */
-#define DISPATCH_QUEUE_SERIAL_INACTIVE \
-		dispatch_queue_attr_make_initially_inactive(DISPATCH_QUEUE_SERIAL)
-
-/*!
- * @const DISPATCH_QUEUE_CONCURRENT
- *
- * @discussion
- * An attribute that can be used to create a dispatch queue that may invoke
- * blocks concurrently and supports barrier blocks submitted with the dispatch
- * barrier API.
- *
- * See dispatch_queue_concurrent_t.
- */
-#define DISPATCH_QUEUE_CONCURRENT \
-		DISPATCH_GLOBAL_OBJECT(dispatch_queue_attr_t, \
-		_dispatch_queue_attr_concurrent)
-API_AVAILABLE(macos(10.7), ios(4.3))
-DISPATCH_EXPORT
-struct dispatch_queue_attr_s _dispatch_queue_attr_concurrent;
-
-/*!
- * @const DISPATCH_QUEUE_CONCURRENT_INACTIVE
- *
- * @discussion
- * An attribute that can be used to create a dispatch queue that may invoke
- * blocks concurrently and supports barrier blocks submitted with the dispatch
- * barrier API, and that is initially inactive.
- *
- * See dispatch_queue_attr_make_initially_inactive().
- */
-#define DISPATCH_QUEUE_CONCURRENT_INACTIVE \
-		dispatch_queue_attr_make_initially_inactive(DISPATCH_QUEUE_CONCURRENT)
-
-/*!
- * @function dispatch_queue_attr_make_initially_inactive
- *
- * @abstract
- * Returns an attribute value which may be provided to dispatch_queue_create()
- * or dispatch_queue_create_with_target(), in order to make the created queue
- * initially inactive.
- *
- * @discussion
- * Dispatch queues may be created in an inactive state. Queues in this state
- * have to be activated before any blocks associated with them will be invoked.
- *
- * A queue in inactive state cannot be deallocated, dispatch_activate() must be
- * called before the last reference to a queue created with this attribute is
- * released.
- *
- * The target queue of a queue in inactive state can be changed using
- * dispatch_set_target_queue(). Change of target queue is no longer permitted
- * once an initially inactive queue has been activated.
- *
- * @param attr
- * A queue attribute value to be combined with the initially inactive attribute.
- *
- * @return
- * Returns an attribute value which may be provided to dispatch_queue_create()
- * and dispatch_queue_create_with_target().
- * The new value combines the attributes specified by the 'attr' parameter with
- * the initially inactive attribute.
- */
-API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
-DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_PURE DISPATCH_NOTHROW
-dispatch_queue_attr_t
-dispatch_queue_attr_make_initially_inactive(
-		dispatch_queue_attr_t _Nullable attr);
-
-/*!
- * @const DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL
- *
- * @discussion
- * A dispatch queue created with this attribute invokes blocks serially in FIFO
- * order, and surrounds execution of any block submitted asynchronously to it
- * with the equivalent of a individual Objective-C @autoreleasepool
- * scope.
- *
- * See dispatch_queue_attr_make_with_autorelease_frequency().
- */
-#define DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL \
-		dispatch_queue_attr_make_with_autorelease_frequency(\
-				DISPATCH_QUEUE_SERIAL, DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM)
-
-/*!
- * @const DISPATCH_QUEUE_CONCURRENT_WITH_AUTORELEASE_POOL
- *
- * @discussion
- * A dispatch queue created with this attribute may invokes blocks concurrently
- * and supports barrier blocks submitted with the dispatch barrier API. It also
- * surrounds execution of any block submitted asynchronously to it with the
- * equivalent of a individual Objective-C @autoreleasepool
- *
- * See dispatch_queue_attr_make_with_autorelease_frequency().
- */
-#define DISPATCH_QUEUE_CONCURRENT_WITH_AUTORELEASE_POOL \
-		dispatch_queue_attr_make_with_autorelease_frequency(\
-				DISPATCH_QUEUE_CONCURRENT, DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM)
-
-/*!
- * @typedef dispatch_autorelease_frequency_t
- * Values to pass to the dispatch_queue_attr_make_with_autorelease_frequency()
- * function.
- *
- * @const DISPATCH_AUTORELEASE_FREQUENCY_INHERIT
- * Dispatch queues with this autorelease frequency inherit the behavior from
- * their target queue. This is the default behavior for manually created queues.
- *
- * @const DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM
- * Dispatch queues with this autorelease frequency push and pop an autorelease
- * pool around the execution of every block that was submitted to it
- * asynchronously.
- * @see dispatch_queue_attr_make_with_autorelease_frequency().
- *
- * @const DISPATCH_AUTORELEASE_FREQUENCY_NEVER
- * Dispatch queues with this autorelease frequency never set up an individual
- * autorelease pool around the execution of a block that is submitted to it
- * asynchronously. This is the behavior of the global concurrent queues.
- */
-DISPATCH_ENUM(dispatch_autorelease_frequency, unsigned long,
-	DISPATCH_AUTORELEASE_FREQUENCY_INHERIT DISPATCH_ENUM_API_AVAILABLE(
-			macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) = 0,
-	DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM DISPATCH_ENUM_API_AVAILABLE(
-			macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) = 1,
-	DISPATCH_AUTORELEASE_FREQUENCY_NEVER DISPATCH_ENUM_API_AVAILABLE(
-			macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) = 2,
-);
-
-/*!
- * @function dispatch_queue_attr_make_with_autorelease_frequency
- *
- * @abstract
- * Returns a dispatch queue attribute value with the autorelease frequency
- * set to the specified value.
- *
- * @discussion
- * When a queue uses the per-workitem autorelease frequency (either directly
- * or inherithed from its target queue), any block submitted asynchronously to
- * this queue (via dispatch_async(), dispatch_barrier_async(),
- * dispatch_group_notify(), etc...) is executed as if surrounded by a individual
- * Objective-C @autoreleasepool scope.
- *
- * Autorelease frequency has no effect on blocks that are submitted
- * synchronously to a queue (via dispatch_sync(), dispatch_barrier_sync()).
- *
- * The global concurrent queues have the DISPATCH_AUTORELEASE_FREQUENCY_NEVER
- * behavior. Manually created dispatch queues use
- * DISPATCH_AUTORELEASE_FREQUENCY_INHERIT by default.
- *
- * Queues created with this attribute cannot change target queues after having
- * been activated. See dispatch_set_target_queue() and dispatch_activate().
- *
- * @param attr
- * A queue attribute value to be combined with the specified autorelease
- * frequency or NULL.
- *
- * @param frequency
- * The requested autorelease frequency.
- *
- * @return
- * Returns an attribute value which may be provided to dispatch_queue_create()
- * or NULL if an invalid autorelease frequency was requested.
- * This new value combines the attributes specified by the 'attr' parameter and
- * the chosen autorelease frequency.
- */
-API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
-DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_PURE DISPATCH_NOTHROW
-dispatch_queue_attr_t
-dispatch_queue_attr_make_with_autorelease_frequency(
-		dispatch_queue_attr_t _Nullable attr,
-		dispatch_autorelease_frequency_t frequency);
-
-/*!
- * @function dispatch_queue_attr_make_with_qos_class
- *
- * @abstract
- * Returns an attribute value which may be provided to dispatch_queue_create()
- * or dispatch_queue_create_with_target(), in order to assign a QOS class and
- * relative priority to the queue.
- *
- * @discussion
- * When specified in this manner, the QOS class and relative priority take
- * precedence over those inherited from the dispatch queue's target queue (if
- * any) as long that does not result in a lower QOS class and relative priority.
- *
- * The global queue priorities map to the following QOS classes:
- *  - DISPATCH_QUEUE_PRIORITY_HIGH:         QOS_CLASS_USER_INITIATED
- *  - DISPATCH_QUEUE_PRIORITY_DEFAULT:      QOS_CLASS_DEFAULT
- *  - DISPATCH_QUEUE_PRIORITY_LOW:          QOS_CLASS_UTILITY
- *  - DISPATCH_QUEUE_PRIORITY_BACKGROUND:   QOS_CLASS_BACKGROUND
- *
- * Example:
- * 
- *	dispatch_queue_t queue;
- *	dispatch_queue_attr_t attr;
- *	attr = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL,
- *			QOS_CLASS_UTILITY, 0);
- *	queue = dispatch_queue_create("com.example.myqueue", attr);
- * 
- *
- * The QOS class and relative priority set this way on a queue have no effect on
- * blocks that are submitted synchronously to a queue (via dispatch_sync(),
- * dispatch_barrier_sync()).
- *
- * @param attr
- * A queue attribute value to be combined with the QOS class, or NULL.
- *
- * @param qos_class
- * A QOS class value:
- *  - QOS_CLASS_USER_INTERACTIVE
- *  - QOS_CLASS_USER_INITIATED
- *  - QOS_CLASS_DEFAULT
- *  - QOS_CLASS_UTILITY
- *  - QOS_CLASS_BACKGROUND
- * Passing any other value results in NULL being returned.
- *
- * @param relative_priority
- * A relative priority within the QOS class. This value is a negative
- * offset from the maximum supported scheduler priority for the given class.
- * Passing a value greater than zero or less than QOS_MIN_RELATIVE_PRIORITY
- * results in NULL being returned.
- *
- * @return
- * Returns an attribute value which may be provided to dispatch_queue_create()
- * and dispatch_queue_create_with_target(), or NULL if an invalid QOS class was
- * requested.
- * The new value combines the attributes specified by the 'attr' parameter and
- * the new QOS class and relative priority.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_PURE DISPATCH_NOTHROW
-dispatch_queue_attr_t
-dispatch_queue_attr_make_with_qos_class(dispatch_queue_attr_t _Nullable attr,
-		dispatch_qos_class_t qos_class, int relative_priority);
-
-/*!
- * @const DISPATCH_TARGET_QUEUE_DEFAULT
- * @discussion Constant to pass to the dispatch_queue_create_with_target(),
- * dispatch_set_target_queue() and dispatch_source_create() functions to
- * indicate that the default target queue for the object type in question
- * should be used.
- */
-#define DISPATCH_TARGET_QUEUE_DEFAULT NULL
-
-/*!
- * @function dispatch_queue_create_with_target
- *
- * @abstract
- * Creates a new dispatch queue with a specified target queue.
- *
- * @discussion
- * Dispatch queues created with the DISPATCH_QUEUE_SERIAL or a NULL attribute
- * invoke blocks serially in FIFO order.
- *
- * Dispatch queues created with the DISPATCH_QUEUE_CONCURRENT attribute may
- * invoke blocks concurrently (similarly to the global concurrent queues, but
- * potentially with more overhead), and support barrier blocks submitted with
- * the dispatch barrier API, which e.g. enables the implementation of efficient
- * reader-writer schemes.
- *
- * When a dispatch queue is no longer needed, it should be released with
- * dispatch_release(). Note that any pending blocks submitted asynchronously to
- * a queue will hold a reference to that queue. Therefore a queue will not be
- * deallocated until all pending blocks have finished.
- *
- * When using a dispatch queue attribute @a attr specifying a QoS class (derived
- * from the result of dispatch_queue_attr_make_with_qos_class()), passing the
- * result of dispatch_get_global_queue() in @a target will ignore the QoS class
- * of that global queue and will use the global queue with the QoS class
- * specified by attr instead.
- *
- * Queues created with dispatch_queue_create_with_target() cannot have their
- * target queue changed, unless created inactive (See
- * dispatch_queue_attr_make_initially_inactive()), in which case the target
- * queue can be changed until the newly created queue is activated with
- * dispatch_activate().
- *
- * @param label
- * A string label to attach to the queue.
- * This parameter is optional and may be NULL.
- *
- * @param attr
- * A predefined attribute such as DISPATCH_QUEUE_SERIAL,
- * DISPATCH_QUEUE_CONCURRENT, or the result of a call to
- * a dispatch_queue_attr_make_with_* function.
- *
- * @param target
- * The target queue for the newly created queue. The target queue is retained.
- * If this parameter is DISPATCH_TARGET_QUEUE_DEFAULT, sets the queue's target
- * queue to the default target queue for the given queue type.
- *
- * @result
- * The newly created dispatch queue.
- */
-API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
-DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-dispatch_queue_t
-dispatch_queue_create_with_target(const char *_Nullable label,
-		dispatch_queue_attr_t _Nullable attr, dispatch_queue_t _Nullable target)
-		DISPATCH_ALIAS_V2(dispatch_queue_create_with_target);
-
-/*!
- * @function dispatch_queue_create
- *
- * @abstract
- * Creates a new dispatch queue to which blocks may be submitted.
- *
- * @discussion
- * Dispatch queues created with the DISPATCH_QUEUE_SERIAL or a NULL attribute
- * invoke blocks serially in FIFO order.
- *
- * Dispatch queues created with the DISPATCH_QUEUE_CONCURRENT attribute may
- * invoke blocks concurrently (similarly to the global concurrent queues, but
- * potentially with more overhead), and support barrier blocks submitted with
- * the dispatch barrier API, which e.g. enables the implementation of efficient
- * reader-writer schemes.
- *
- * When a dispatch queue is no longer needed, it should be released with
- * dispatch_release(). Note that any pending blocks submitted asynchronously to
- * a queue will hold a reference to that queue. Therefore a queue will not be
- * deallocated until all pending blocks have finished.
- *
- * Passing the result of the dispatch_queue_attr_make_with_qos_class() function
- * to the attr parameter of this function allows a quality of service class and
- * relative priority to be specified for the newly created queue.
- * The quality of service class so specified takes precedence over the quality
- * of service class of the newly created dispatch queue's target queue (if any)
- * as long that does not result in a lower QOS class and relative priority.
- *
- * When no quality of service class is specified, the target queue of a newly
- * created dispatch queue is the default priority global concurrent queue.
- *
- * @param label
- * A string label to attach to the queue.
- * This parameter is optional and may be NULL.
- *
- * @param attr
- * A predefined attribute such as DISPATCH_QUEUE_SERIAL,
- * DISPATCH_QUEUE_CONCURRENT, or the result of a call to
- * a dispatch_queue_attr_make_with_* function.
- *
- * @result
- * The newly created dispatch queue.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-dispatch_queue_t
-dispatch_queue_create(const char *_Nullable label,
-		dispatch_queue_attr_t _Nullable attr);
-
-/*!
- * @const DISPATCH_CURRENT_QUEUE_LABEL
- * @discussion Constant to pass to the dispatch_queue_get_label() function to
- * retrieve the label of the current queue.
- */
-#define DISPATCH_CURRENT_QUEUE_LABEL NULL
-
-/*!
- * @function dispatch_queue_get_label
- *
- * @abstract
- * Returns the label of the given queue, as specified when the queue was
- * created, or the empty string if a NULL label was specified.
- *
- * Passing DISPATCH_CURRENT_QUEUE_LABEL will return the label of the current
- * queue.
- *
- * @param queue
- * The queue to query, or DISPATCH_CURRENT_QUEUE_LABEL.
- *
- * @result
- * The label of the queue.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_PURE DISPATCH_WARN_RESULT DISPATCH_NOTHROW
-const char *
-dispatch_queue_get_label(dispatch_queue_t _Nullable queue);
-
-/*!
- * @function dispatch_queue_get_qos_class
- *
- * @abstract
- * Returns the QOS class and relative priority of the given queue.
- *
- * @discussion
- * If the given queue was created with an attribute value returned from
- * dispatch_queue_attr_make_with_qos_class(), this function returns the QOS
- * class and relative priority specified at that time; for any other attribute
- * value it returns a QOS class of QOS_CLASS_UNSPECIFIED and a relative
- * priority of 0.
- *
- * If the given queue is one of the global queues, this function returns its
- * assigned QOS class value as documented under dispatch_get_global_queue() and
- * a relative priority of 0; in the case of the main queue it returns the QOS
- * value provided by qos_class_main() and a relative priority of 0.
- *
- * @param queue
- * The queue to query.
- *
- * @param relative_priority_ptr
- * A pointer to an int variable to be filled with the relative priority offset
- * within the QOS class, or NULL.
- *
- * @return
- * A QOS class value:
- *	- QOS_CLASS_USER_INTERACTIVE
- *	- QOS_CLASS_USER_INITIATED
- *	- QOS_CLASS_DEFAULT
- *	- QOS_CLASS_UTILITY
- *	- QOS_CLASS_BACKGROUND
- *	- QOS_CLASS_UNSPECIFIED
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-DISPATCH_EXPORT DISPATCH_WARN_RESULT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-dispatch_qos_class_t
-dispatch_queue_get_qos_class(dispatch_queue_t queue,
-		int *_Nullable relative_priority_ptr);
-
-/*!
- * @function dispatch_set_target_queue
- *
- * @abstract
- * Sets the target queue for the given object.
- *
- * @discussion
- * An object's target queue is responsible for processing the object.
- *
- * When no quality of service class and relative priority is specified for a
- * dispatch queue at the time of creation, a dispatch queue's quality of service
- * class is inherited from its target queue. The dispatch_get_global_queue()
- * function may be used to obtain a target queue of a specific quality of
- * service class, however the use of dispatch_queue_attr_make_with_qos_class()
- * is recommended instead.
- *
- * Blocks submitted to a serial queue whose target queue is another serial
- * queue will not be invoked concurrently with blocks submitted to the target
- * queue or to any other queue with that same target queue.
- *
- * The result of introducing a cycle into the hierarchy of target queues is
- * undefined.
- *
- * A dispatch source's target queue specifies where its event handler and
- * cancellation handler blocks will be submitted.
- *
- * A dispatch I/O channel's target queue specifies where where its I/O
- * operations are executed. If the channel's target queue's priority is set to
- * DISPATCH_QUEUE_PRIORITY_BACKGROUND, then the I/O operations performed by
- * dispatch_io_read() or dispatch_io_write() on that queue will be
- * throttled when there is I/O contention.
- *
- * For all other dispatch object types, the only function of the target queue
- * is to determine where an object's finalizer function is invoked.
- *
- * In general, changing the target queue of an object is an asynchronous
- * operation that doesn't take effect immediately, and doesn't affect blocks
- * already associated with the specified object.
- *
- * However, if an object is inactive at the time dispatch_set_target_queue() is
- * called, then the target queue change takes effect immediately, and will
- * affect blocks already associated with the specified object. After an
- * initially inactive object has been activated, calling
- * dispatch_set_target_queue() results in an assertion and the process being
- * terminated.
- *
- * If a dispatch queue is active and targeted by other dispatch objects,
- * changing its target queue results in undefined behavior.
- *
- * @param object
- * The object to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param queue
- * The new target queue for the object. The queue is retained, and the
- * previous target queue, if any, is released.
- * If queue is DISPATCH_TARGET_QUEUE_DEFAULT, set the object's target queue
- * to the default target queue for the given object type.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NOTHROW
-void
-dispatch_set_target_queue(dispatch_object_t object,
-		dispatch_queue_t _Nullable queue);
-
-/*!
- * @function dispatch_main
- *
- * @abstract
- * Execute blocks submitted to the main queue.
- *
- * @discussion
- * This function "parks" the main thread and waits for blocks to be submitted
- * to the main queue. This function never returns.
- *
- * Applications that call NSApplicationMain() or CFRunLoopRun() on the
- * main thread do not need to call dispatch_main().
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NOTHROW DISPATCH_NORETURN
-void
-dispatch_main(void);
-
-/*!
- * @function dispatch_after
- *
- * @abstract
- * Schedule a block for execution on a given queue at a specified time.
- *
- * @discussion
- * Passing DISPATCH_TIME_NOW as the "when" parameter is supported, but not as
- * optimal as calling dispatch_async() instead. Passing DISPATCH_TIME_FOREVER
- * is undefined.
- *
- * @param when
- * A temporal milestone returned by dispatch_time() or dispatch_walltime().
- *
- * @param queue
- * A queue to which the given block will be submitted at the specified time.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param block
- * The block of code to execute.
- * The result of passing NULL in this parameter is undefined.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NONNULL3 DISPATCH_NOTHROW
-void
-dispatch_after(dispatch_time_t when, dispatch_queue_t queue,
-		dispatch_block_t block);
-#endif
-
-/*!
- * @function dispatch_after_f
- *
- * @abstract
- * Schedule a function for execution on a given queue at a specified time.
- *
- * @discussion
- * See dispatch_after() for details.
- *
- * @param when
- * A temporal milestone returned by dispatch_time() or dispatch_walltime().
- *
- * @param queue
- * A queue to which the given function will be submitted at the specified time.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_after_f().
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NONNULL4 DISPATCH_NOTHROW
-void
-dispatch_after_f(dispatch_time_t when, dispatch_queue_t queue,
-		void *_Nullable context, dispatch_function_t work);
-
-/*!
- * @functiongroup Dispatch Barrier API
- * The dispatch barrier API is a mechanism for submitting barrier blocks to a
- * dispatch queue, analogous to the dispatch_async()/dispatch_sync() API.
- * It enables the implementation of efficient reader/writer schemes.
- * Barrier blocks only behave specially when submitted to queues created with
- * the DISPATCH_QUEUE_CONCURRENT attribute; on such a queue, a barrier block
- * will not run until all blocks submitted to the queue earlier have completed,
- * and any blocks submitted to the queue after a barrier block will not run
- * until the barrier block has completed.
- * When submitted to a a global queue or to a queue not created with the
- * DISPATCH_QUEUE_CONCURRENT attribute, barrier blocks behave identically to
- * blocks submitted with the dispatch_async()/dispatch_sync() API.
- */
-
-/*!
- * @function dispatch_barrier_async
- *
- * @abstract
- * Submits a barrier block for asynchronous execution on a dispatch queue.
- *
- * @discussion
- * Submits a block to a dispatch queue like dispatch_async(), but marks that
- * block as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT queues).
- *
- * See dispatch_async() for details and "Dispatch Barrier API" for a description
- * of the barrier semantics.
- *
- * @param queue
- * The target dispatch queue to which the block is submitted.
- * The system will hold a reference on the target queue until the block
- * has finished.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param block
- * The block to submit to the target dispatch queue. This function performs
- * Block_copy() and Block_release() on behalf of callers.
- * The result of passing NULL in this parameter is undefined.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.7), ios(4.3))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_barrier_async(dispatch_queue_t queue, dispatch_block_t block);
-#endif
-
-/*!
- * @function dispatch_barrier_async_f
- *
- * @abstract
- * Submits a barrier function for asynchronous execution on a dispatch queue.
- *
- * @discussion
- * Submits a function to a dispatch queue like dispatch_async_f(), but marks
- * that function as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT
- * queues).
- *
- * See dispatch_async_f() for details and "Dispatch Barrier API" for a
- * description of the barrier semantics.
- *
- * @param queue
- * The target dispatch queue to which the function is submitted.
- * The system will hold a reference on the target queue until the function
- * has returned.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_barrier_async_f().
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.7), ios(4.3))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
-void
-dispatch_barrier_async_f(dispatch_queue_t queue,
-		void *_Nullable context, dispatch_function_t work);
-
-/*!
- * @function dispatch_barrier_sync
- *
- * @abstract
- * Submits a barrier block for synchronous execution on a dispatch queue.
- *
- * @discussion
- * Submits a block to a dispatch queue like dispatch_sync(), but marks that
- * block as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT queues).
- *
- * See dispatch_sync() for details and "Dispatch Barrier API" for a description
- * of the barrier semantics.
- *
- * @param queue
- * The target dispatch queue to which the block is submitted.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param block
- * The block to be invoked on the target dispatch queue.
- * The result of passing NULL in this parameter is undefined.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.7), ios(4.3))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_barrier_sync(dispatch_queue_t queue,
-		DISPATCH_NOESCAPE dispatch_block_t block);
-#endif
-
-/*!
- * @function dispatch_barrier_sync_f
- *
- * @abstract
- * Submits a barrier function for synchronous execution on a dispatch queue.
- *
- * @discussion
- * Submits a function to a dispatch queue like dispatch_sync_f(), but marks that
- * fuction as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT queues).
- *
- * See dispatch_sync_f() for details.
- *
- * @param queue
- * The target dispatch queue to which the function is submitted.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_barrier_sync_f().
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.7), ios(4.3))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
-void
-dispatch_barrier_sync_f(dispatch_queue_t queue,
-		void *_Nullable context, dispatch_function_t work);
-
-/*!
- * @function dispatch_barrier_async_and_wait
- *
- * @abstract
- * Submits a block for synchronous execution on a dispatch queue.
- *
- * @discussion
- * Submits a block to a dispatch queue like dispatch_async_and_wait(), but marks
- * that block as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT
- * queues).
- *
- * See "Dispatch Barrier API" for a description of the barrier semantics.
- *
- * @param queue
- * The target dispatch queue to which the block is submitted.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param work
- * The application-defined block to invoke on the target queue.
- * The result of passing NULL in this parameter is undefined.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_barrier_async_and_wait(dispatch_queue_t queue,
-		DISPATCH_NOESCAPE dispatch_block_t block);
-#endif
-
-/*!
- * @function dispatch_barrier_async_and_wait_f
- *
- * @abstract
- * Submits a function for synchronous execution on a dispatch queue.
- *
- * @discussion
- * Submits a function to a dispatch queue like dispatch_async_and_wait_f(), but
- * marks that function as a barrier (relevant only on DISPATCH_QUEUE_CONCURRENT
- * queues).
- *
- * See "Dispatch Barrier API" for a description of the barrier semantics.
- *
- * @param queue
- * The target dispatch queue to which the function is submitted.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param context
- * The application-defined context parameter to pass to the function.
- *
- * @param work
- * The application-defined function to invoke on the target queue. The first
- * parameter passed to this function is the context provided to
- * dispatch_barrier_async_and_wait_f().
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
-void
-dispatch_barrier_async_and_wait_f(dispatch_queue_t queue,
-		void *_Nullable context, dispatch_function_t work);
-
-/*!
- * @functiongroup Dispatch queue-specific contexts
- * This API allows different subsystems to associate context to a shared queue
- * without risk of collision and to retrieve that context from blocks executing
- * on that queue or any of its child queues in the target queue hierarchy.
- */
-
-/*!
- * @function dispatch_queue_set_specific
- *
- * @abstract
- * Associates a subsystem-specific context with a dispatch queue, for a key
- * unique to the subsystem.
- *
- * @discussion
- * The specified destructor will be invoked with the context on the default
- * priority global concurrent queue when a new context is set for the same key,
- * or after all references to the queue have been released.
- *
- * @param queue
- * The dispatch queue to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param key
- * The key to set the context for, typically a pointer to a static variable
- * specific to the subsystem. Keys are only compared as pointers and never
- * dereferenced. Passing a string constant directly is not recommended.
- * The NULL key is reserved and attempts to set a context for it are ignored.
- *
- * @param context
- * The new subsystem-specific context for the object. This may be NULL.
- *
- * @param destructor
- * The destructor function pointer. This may be NULL and is ignored if context
- * is NULL.
- */
-API_AVAILABLE(macos(10.7), ios(5.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-void
-dispatch_queue_set_specific(dispatch_queue_t queue, const void *key,
-		void *_Nullable context, dispatch_function_t _Nullable destructor);
-
-/*!
- * @function dispatch_queue_get_specific
- *
- * @abstract
- * Returns the subsystem-specific context associated with a dispatch queue, for
- * a key unique to the subsystem.
- *
- * @discussion
- * Returns the context for the specified key if it has been set on the specified
- * queue.
- *
- * @param queue
- * The dispatch queue to query.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param key
- * The key to get the context for, typically a pointer to a static variable
- * specific to the subsystem. Keys are only compared as pointers and never
- * dereferenced. Passing a string constant directly is not recommended.
- *
- * @result
- * The context for the specified key or NULL if no context was found.
- */
-API_AVAILABLE(macos(10.7), ios(5.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_PURE DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-void *_Nullable
-dispatch_queue_get_specific(dispatch_queue_t queue, const void *key);
-
-/*!
- * @function dispatch_get_specific
- *
- * @abstract
- * Returns the current subsystem-specific context for a key unique to the
- * subsystem.
- *
- * @discussion
- * When called from a block executing on a queue, returns the context for the
- * specified key if it has been set on the queue, otherwise returns the result
- * of dispatch_get_specific() executed on the queue's target queue or NULL
- * if the current queue is a global concurrent queue.
- *
- * @param key
- * The key to get the context for, typically a pointer to a static variable
- * specific to the subsystem. Keys are only compared as pointers and never
- * dereferenced. Passing a string constant directly is not recommended.
- *
- * @result
- * The context for the specified key or NULL if no context was found.
- */
-API_AVAILABLE(macos(10.7), ios(5.0))
-DISPATCH_EXPORT DISPATCH_PURE DISPATCH_WARN_RESULT DISPATCH_NOTHROW
-void *_Nullable
-dispatch_get_specific(const void *key);
-
-/*!
- * @functiongroup Dispatch assertion API
- *
- * This API asserts at runtime that code is executing in (or out of) the context
- * of a given queue. It can be used to check that a block accessing a resource
- * does so from the proper queue protecting the resource. It also can be used
- * to verify that a block that could cause a deadlock if run on a given queue
- * never executes on that queue.
- */
-
-/*!
- * @function dispatch_assert_queue
- *
- * @abstract
- * Verifies that the current block is executing on a given dispatch queue.
- *
- * @discussion
- * Some code expects to be run on a specific dispatch queue. This function
- * verifies that that expectation is true.
- *
- * If the currently executing block was submitted to the specified queue or to
- * any queue targeting it (see dispatch_set_target_queue()), this function
- * returns.
- *
- * If the currently executing block was submitted with a synchronous API
- * (dispatch_sync(), dispatch_barrier_sync(), ...), the context of the
- * submitting block is also evaluated (recursively).
- * If a synchronously submitting block is found that was itself submitted to
- * the specified queue or to any queue targeting it, this function returns.
- *
- * Otherwise this function asserts: it logs an explanation to the system log and
- * terminates the application.
- *
- * Passing the result of dispatch_get_main_queue() to this function verifies
- * that the current block was submitted to the main queue, or to a queue
- * targeting it, or is running on the main thread (in any context).
- *
- * When dispatch_assert_queue() is called outside of the context of a
- * submitted block (for example from the context of a thread created manually
- * with pthread_create()) then this function will also assert and terminate
- * the application.
- *
- * The variant dispatch_assert_queue_debug() is compiled out when the
- * preprocessor macro NDEBUG is defined. (See also assert(3)).
- *
- * @param queue
- * The dispatch queue that the current block is expected to run on.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1
-void
-dispatch_assert_queue(dispatch_queue_t queue)
-		DISPATCH_ALIAS_V2(dispatch_assert_queue);
-
-/*!
- * @function dispatch_assert_queue_barrier
- *
- * @abstract
- * Verifies that the current block is executing on a given dispatch queue,
- * and that the block acts as a barrier on that queue.
- *
- * @discussion
- * This behaves exactly like dispatch_assert_queue(), with the additional check
- * that the current block acts as a barrier on the specified queue, which is
- * always true if the specified queue is serial (see DISPATCH_BLOCK_BARRIER or
- * dispatch_barrier_async() for details).
- *
- * The variant dispatch_assert_queue_barrier_debug() is compiled out when the
- * preprocessor macro NDEBUG is defined. (See also assert()).
- *
- * @param queue
- * The dispatch queue that the current block is expected to run as a barrier on.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1
-void
-dispatch_assert_queue_barrier(dispatch_queue_t queue);
-
-/*!
- * @function dispatch_assert_queue_not
- *
- * @abstract
- * Verifies that the current block is not executing on a given dispatch queue.
- *
- * @discussion
- * This function is the equivalent of dispatch_assert_queue() with the test for
- * equality inverted. That means that it will terminate the application when
- * dispatch_assert_queue() would return, and vice-versa. See discussion there.
- *
- * The variant dispatch_assert_queue_not_debug() is compiled out when the
- * preprocessor macro NDEBUG is defined. (See also assert(3)).
- *
- * @param queue
- * The dispatch queue that the current block is expected not to run on.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1
-void
-dispatch_assert_queue_not(dispatch_queue_t queue)
-		DISPATCH_ALIAS_V2(dispatch_assert_queue_not);
-
-#ifdef NDEBUG
-#define dispatch_assert_queue_debug(q) ((void)(0 && (q)))
-#define dispatch_assert_queue_barrier_debug(q) ((void)(0 && (q)))
-#define dispatch_assert_queue_not_debug(q) ((void)(0 && (q)))
-#else
-#define dispatch_assert_queue_debug(q) dispatch_assert_queue(q)
-#define dispatch_assert_queue_barrier_debug(q) dispatch_assert_queue_barrier(q)
-#define dispatch_assert_queue_not_debug(q) dispatch_assert_queue_not(q)
-#endif
-
-__END_DECLS
-
-DISPATCH_ASSUME_NONNULL_END
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/semaphore.h b/lib/libc/include/x86_64-macos.10-none/dispatch/semaphore.h
deleted file mode 100644
index 156fb800f3a7177c539242a016f19586bd23902c..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/semaphore.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_SEMAPHORE__
-#define __DISPATCH_SEMAPHORE__
-
-#ifndef __DISPATCH_INDIRECT__
-#error "Please #include  instead of this file directly."
-#include  // for HeaderDoc
-#endif
-
-DISPATCH_ASSUME_NONNULL_BEGIN
-
-/*!
- * @typedef dispatch_semaphore_t
- *
- * @abstract
- * A counting semaphore.
- */
-DISPATCH_DECL(dispatch_semaphore);
-
-__BEGIN_DECLS
-
-/*!
- * @function dispatch_semaphore_create
- *
- * @abstract
- * Creates new counting semaphore with an initial value.
- *
- * @discussion
- * Passing zero for the value is useful for when two threads need to reconcile
- * the completion of a particular event. Passing a value greater than zero is
- * useful for managing a finite pool of resources, where the pool size is equal
- * to the value.
- *
- * @param value
- * The starting value for the semaphore. Passing a value less than zero will
- * cause NULL to be returned.
- *
- * @result
- * The newly created semaphore, or NULL on failure.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-dispatch_semaphore_t
-dispatch_semaphore_create(long value);
-
-/*!
- * @function dispatch_semaphore_wait
- *
- * @abstract
- * Wait (decrement) for a semaphore.
- *
- * @discussion
- * Decrement the counting semaphore. If the resulting value is less than zero,
- * this function waits for a signal to occur before returning.
- *
- * @param dsema
- * The semaphore. The result of passing NULL in this parameter is undefined.
- *
- * @param timeout
- * When to timeout (see dispatch_time). As a convenience, there are the
- * DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER constants.
- *
- * @result
- * Returns zero on success, or non-zero if the timeout occurred.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-long
-dispatch_semaphore_wait(dispatch_semaphore_t dsema, dispatch_time_t timeout);
-
-/*!
- * @function dispatch_semaphore_signal
- *
- * @abstract
- * Signal (increment) a semaphore.
- *
- * @discussion
- * Increment the counting semaphore. If the previous value was less than zero,
- * this function wakes a waiting thread before returning.
- *
- * @param dsema The counting semaphore.
- * The result of passing NULL in this parameter is undefined.
- *
- * @result
- * This function returns non-zero if a thread is woken. Otherwise, zero is
- * returned.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-long
-dispatch_semaphore_signal(dispatch_semaphore_t dsema);
-
-__END_DECLS
-
-DISPATCH_ASSUME_NONNULL_END
-
-#endif /* __DISPATCH_SEMAPHORE__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/source.h b/lib/libc/include/x86_64-macos.10-none/dispatch/source.h
deleted file mode 100644
index 968b9ff89e00ae03e4103ff58de5243a8ba62d07..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/source.h
+++ /dev/null
@@ -1,780 +0,0 @@
-/*
- * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_SOURCE__
-#define __DISPATCH_SOURCE__
-
-#ifndef __DISPATCH_INDIRECT__
-#error "Please #include  instead of this file directly."
-#include  // for HeaderDoc
-#endif
-
-#if TARGET_OS_MAC
-#include 
-#include 
-#endif
-
-#if !defined(_WIN32)
-#include 
-#endif
-
-DISPATCH_ASSUME_NONNULL_BEGIN
-
-/*!
- * @header
- * The dispatch framework provides a suite of interfaces for monitoring low-
- * level system objects (file descriptors, Mach ports, signals, VFS nodes, etc.)
- * for activity and automatically submitting event handler blocks to dispatch
- * queues when such activity occurs.
- *
- * This suite of interfaces is known as the Dispatch Source API.
- */
-
-/*!
- * @typedef dispatch_source_t
- *
- * @abstract
- * Dispatch sources are used to automatically submit event handler blocks to
- * dispatch queues in response to external events.
- */
-DISPATCH_SOURCE_DECL(dispatch_source);
-
-__BEGIN_DECLS
-
-/*!
- * @typedef dispatch_source_type_t
- *
- * @abstract
- * Constants of this type represent the class of low-level system object that
- * is being monitored by the dispatch source. Constants of this type are
- * passed as a parameter to dispatch_source_create() and determine how the
- * handle argument is interpreted (i.e. as a file descriptor, mach port,
- * signal number, process identifier, etc.), and how the mask argument is
- * interpreted.
- */
-typedef const struct dispatch_source_type_s *dispatch_source_type_t;
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_DATA_ADD
- * @discussion A dispatch source that coalesces data obtained via calls to
- * dispatch_source_merge_data(). An ADD is used to coalesce the data.
- * The handle is unused (pass zero for now).
- * The mask is unused (pass zero for now).
- */
-#define DISPATCH_SOURCE_TYPE_DATA_ADD (&_dispatch_source_type_data_add)
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_SOURCE_TYPE_DECL(data_add);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_DATA_OR
- * @discussion A dispatch source that coalesces data obtained via calls to
- * dispatch_source_merge_data(). A bitwise OR is used to coalesce the data.
- * The handle is unused (pass zero for now).
- * The mask is unused (pass zero for now).
- */
-#define DISPATCH_SOURCE_TYPE_DATA_OR (&_dispatch_source_type_data_or)
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_SOURCE_TYPE_DECL(data_or);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_DATA_REPLACE
- * @discussion A dispatch source that tracks data obtained via calls to
- * dispatch_source_merge_data(). Newly obtained data values replace existing
- * data values not yet delivered to the source handler
- *
- * A data value of zero will cause the source handler to not be invoked.
- *
- * The handle is unused (pass zero for now).
- * The mask is unused (pass zero for now).
- */
-#define DISPATCH_SOURCE_TYPE_DATA_REPLACE (&_dispatch_source_type_data_replace)
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0))
-DISPATCH_SOURCE_TYPE_DECL(data_replace);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_MACH_SEND
- * @discussion A dispatch source that monitors a Mach port for dead name
- * notifications (send right no longer has any corresponding receive right).
- * The handle is a Mach port with a send or send-once right (mach_port_t).
- * The mask is a mask of desired events from dispatch_source_mach_send_flags_t.
- */
-#define DISPATCH_SOURCE_TYPE_MACH_SEND (&_dispatch_source_type_mach_send)
-API_AVAILABLE(macos(10.6), ios(4.0)) DISPATCH_LINUX_UNAVAILABLE()
-DISPATCH_SOURCE_TYPE_DECL(mach_send);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_MACH_RECV
- * @discussion A dispatch source that monitors a Mach port for pending messages.
- * The handle is a Mach port with a receive right (mach_port_t).
- * The mask is a mask of desired events from dispatch_source_mach_recv_flags_t,
- * but no flags are currently defined (pass zero for now).
- */
-#define DISPATCH_SOURCE_TYPE_MACH_RECV (&_dispatch_source_type_mach_recv)
-API_AVAILABLE(macos(10.6), ios(4.0)) DISPATCH_LINUX_UNAVAILABLE()
-DISPATCH_SOURCE_TYPE_DECL(mach_recv);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_MEMORYPRESSURE
- * @discussion A dispatch source that monitors the system for changes in
- * memory pressure condition.
- * The handle is unused (pass zero for now).
- * The mask is a mask of desired events from
- * dispatch_source_memorypressure_flags_t.
- */
-#define DISPATCH_SOURCE_TYPE_MEMORYPRESSURE \
-		(&_dispatch_source_type_memorypressure)
-API_AVAILABLE(macos(10.9), ios(8.0)) DISPATCH_LINUX_UNAVAILABLE()
-DISPATCH_SOURCE_TYPE_DECL(memorypressure);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_PROC
- * @discussion A dispatch source that monitors an external process for events
- * defined by dispatch_source_proc_flags_t.
- * The handle is a process identifier (pid_t).
- * The mask is a mask of desired events from dispatch_source_proc_flags_t.
- */
-#define DISPATCH_SOURCE_TYPE_PROC (&_dispatch_source_type_proc)
-API_AVAILABLE(macos(10.6), ios(4.0)) DISPATCH_LINUX_UNAVAILABLE()
-DISPATCH_SOURCE_TYPE_DECL(proc);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_READ
- * @discussion A dispatch source that monitors a file descriptor for pending
- * bytes available to be read.
- * The handle is a file descriptor (int).
- * The mask is unused (pass zero for now).
- */
-#define DISPATCH_SOURCE_TYPE_READ (&_dispatch_source_type_read)
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_SOURCE_TYPE_DECL(read);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_SIGNAL
- * @discussion A dispatch source that monitors the current process for signals.
- * The handle is a signal number (int).
- * The mask is unused (pass zero for now).
- */
-#define DISPATCH_SOURCE_TYPE_SIGNAL (&_dispatch_source_type_signal)
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_SOURCE_TYPE_DECL(signal);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_TIMER
- * @discussion A dispatch source that submits the event handler block based
- * on a timer.
- * The handle is unused (pass zero for now).
- * The mask specifies which flags from dispatch_source_timer_flags_t to apply.
- */
-#define DISPATCH_SOURCE_TYPE_TIMER (&_dispatch_source_type_timer)
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_SOURCE_TYPE_DECL(timer);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_VNODE
- * @discussion A dispatch source that monitors a file descriptor for events
- * defined by dispatch_source_vnode_flags_t.
- * The handle is a file descriptor (int).
- * The mask is a mask of desired events from dispatch_source_vnode_flags_t.
- */
-#define DISPATCH_SOURCE_TYPE_VNODE (&_dispatch_source_type_vnode)
-API_AVAILABLE(macos(10.6), ios(4.0)) DISPATCH_LINUX_UNAVAILABLE()
-DISPATCH_SOURCE_TYPE_DECL(vnode);
-
-/*!
- * @const DISPATCH_SOURCE_TYPE_WRITE
- * @discussion A dispatch source that monitors a file descriptor for available
- * buffer space to write bytes.
- * The handle is a file descriptor (int).
- * The mask is unused (pass zero for now).
- */
-#define DISPATCH_SOURCE_TYPE_WRITE (&_dispatch_source_type_write)
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_SOURCE_TYPE_DECL(write);
-
-/*!
- * @typedef dispatch_source_mach_send_flags_t
- * Type of dispatch_source_mach_send flags
- *
- * @constant DISPATCH_MACH_SEND_DEAD
- * The receive right corresponding to the given send right was destroyed.
- */
-#define DISPATCH_MACH_SEND_DEAD	0x1
-
-typedef unsigned long dispatch_source_mach_send_flags_t;
-
-/*!
- * @typedef dispatch_source_mach_recv_flags_t
- * Type of dispatch_source_mach_recv flags
- */
-typedef unsigned long dispatch_source_mach_recv_flags_t;
-
-/*!
- * @typedef dispatch_source_memorypressure_flags_t
- * Type of dispatch_source_memorypressure flags
- *
- * @constant DISPATCH_MEMORYPRESSURE_NORMAL
- * The system memory pressure condition has returned to normal.
- *
- * @constant DISPATCH_MEMORYPRESSURE_WARN
- * The system memory pressure condition has changed to warning.
- *
- * @constant DISPATCH_MEMORYPRESSURE_CRITICAL
- * The system memory pressure condition has changed to critical.
- *
- * @discussion
- * Elevated memory pressure is a system-wide condition that applications
- * registered for this source should react to by changing their future memory
- * use behavior, e.g. by reducing cache sizes of newly initiated operations
- * until memory pressure returns back to normal.
- * NOTE: applications should NOT traverse and discard existing caches for past
- * operations when the system memory pressure enters an elevated state, as that
- * is likely to trigger VM operations that will further aggravate system memory
- * pressure.
- */
-
-#define DISPATCH_MEMORYPRESSURE_NORMAL		0x01
-#define DISPATCH_MEMORYPRESSURE_WARN		0x02
-#define DISPATCH_MEMORYPRESSURE_CRITICAL	0x04
-
-typedef unsigned long dispatch_source_memorypressure_flags_t;
-
-/*!
- * @typedef dispatch_source_proc_flags_t
- * Type of dispatch_source_proc flags
- *
- * @constant DISPATCH_PROC_EXIT
- * The process has exited (perhaps cleanly, perhaps not).
- *
- * @constant DISPATCH_PROC_FORK
- * The process has created one or more child processes.
- *
- * @constant DISPATCH_PROC_EXEC
- * The process has become another executable image via
- * exec*() or posix_spawn*().
- *
- * @constant DISPATCH_PROC_SIGNAL
- * A Unix signal was delivered to the process.
- */
-#define DISPATCH_PROC_EXIT		0x80000000
-#define DISPATCH_PROC_FORK		0x40000000
-#define DISPATCH_PROC_EXEC		0x20000000
-#define DISPATCH_PROC_SIGNAL	0x08000000
-
-typedef unsigned long dispatch_source_proc_flags_t;
-
-/*!
- * @typedef dispatch_source_vnode_flags_t
- * Type of dispatch_source_vnode flags
- *
- * @constant DISPATCH_VNODE_DELETE
- * The filesystem object was deleted from the namespace.
- *
- * @constant DISPATCH_VNODE_WRITE
- * The filesystem object data changed.
- *
- * @constant DISPATCH_VNODE_EXTEND
- * The filesystem object changed in size.
- *
- * @constant DISPATCH_VNODE_ATTRIB
- * The filesystem object metadata changed.
- *
- * @constant DISPATCH_VNODE_LINK
- * The filesystem object link count changed.
- *
- * @constant DISPATCH_VNODE_RENAME
- * The filesystem object was renamed in the namespace.
- *
- * @constant DISPATCH_VNODE_REVOKE
- * The filesystem object was revoked.
- *
- * @constant DISPATCH_VNODE_FUNLOCK
- * The filesystem object was unlocked.
- */
-
-#define DISPATCH_VNODE_DELETE	0x1
-#define DISPATCH_VNODE_WRITE	0x2
-#define DISPATCH_VNODE_EXTEND	0x4
-#define DISPATCH_VNODE_ATTRIB	0x8
-#define DISPATCH_VNODE_LINK		0x10
-#define DISPATCH_VNODE_RENAME	0x20
-#define DISPATCH_VNODE_REVOKE	0x40
-#define DISPATCH_VNODE_FUNLOCK	0x100
-
-typedef unsigned long dispatch_source_vnode_flags_t;
-
-/*!
- * @typedef dispatch_source_timer_flags_t
- * Type of dispatch_source_timer flags
- *
- * @constant DISPATCH_TIMER_STRICT
- * Specifies that the system should make a best effort to strictly observe the
- * leeway value specified for the timer via dispatch_source_set_timer(), even
- * if that value is smaller than the default leeway value that would be applied
- * to the timer otherwise. A minimal amount of leeway will be applied to the
- * timer even if this flag is specified.
- *
- * CAUTION: Use of this flag may override power-saving techniques employed by
- * the system and cause higher power consumption, so it must be used with care
- * and only when absolutely necessary.
- */
-
-#define DISPATCH_TIMER_STRICT 0x1
-
-typedef unsigned long dispatch_source_timer_flags_t;
-
-/*!
- * @function dispatch_source_create
- *
- * @abstract
- * Creates a new dispatch source to monitor low-level system objects and auto-
- * matically submit a handler block to a dispatch queue in response to events.
- *
- * @discussion
- * Dispatch sources are not reentrant. Any events received while the dispatch
- * source is suspended or while the event handler block is currently executing
- * will be coalesced and delivered after the dispatch source is resumed or the
- * event handler block has returned.
- *
- * Dispatch sources are created in an inactive state. After creating the
- * source and setting any desired attributes (i.e. the handler, context, etc.),
- * a call must be made to dispatch_activate() in order to begin event delivery.
- *
- * Calling dispatch_set_target_queue() on a source once it has been activated
- * is not allowed (see dispatch_activate() and dispatch_set_target_queue()).
- *
- * For backward compatibility reasons, dispatch_resume() on an inactive,
- * and not otherwise suspended source has the same effect as calling
- * dispatch_activate(). For new code, using dispatch_activate() is preferred.
- *
- * @param type
- * Declares the type of the dispatch source. Must be one of the defined
- * dispatch_source_type_t constants.
- *
- * @param handle
- * The underlying system handle to monitor. The interpretation of this argument
- * is determined by the constant provided in the type parameter.
- *
- * @param mask
- * A mask of flags specifying which events are desired. The interpretation of
- * this argument is determined by the constant provided in the type parameter.
- *
- * @param queue
- * The dispatch queue to which the event handler block will be submitted.
- * If queue is DISPATCH_TARGET_QUEUE_DEFAULT, the source will submit the event
- * handler block to the default priority global queue.
- *
- * @result
- * The newly created dispatch source. Or NULL if invalid arguments are passed.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-dispatch_source_t
-dispatch_source_create(dispatch_source_type_t type,
-	uintptr_t handle,
-	unsigned long mask,
-	dispatch_queue_t _Nullable queue);
-
-/*!
- * @function dispatch_source_set_event_handler
- *
- * @abstract
- * Sets the event handler block for the given dispatch source.
- *
- * @param source
- * The dispatch source to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param handler
- * The event handler block to submit to the source's target queue.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-void
-dispatch_source_set_event_handler(dispatch_source_t source,
-	dispatch_block_t _Nullable handler);
-#endif /* __BLOCKS__ */
-
-/*!
- * @function dispatch_source_set_event_handler_f
- *
- * @abstract
- * Sets the event handler function for the given dispatch source.
- *
- * @param source
- * The dispatch source to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param handler
- * The event handler function to submit to the source's target queue.
- * The context parameter passed to the event handler function is the context of
- * the dispatch source current at the time the event handler was set.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-void
-dispatch_source_set_event_handler_f(dispatch_source_t source,
-	dispatch_function_t _Nullable handler);
-
-/*!
- * @function dispatch_source_set_cancel_handler
- *
- * @abstract
- * Sets the cancellation handler block for the given dispatch source.
- *
- * @discussion
- * The cancellation handler (if specified) will be submitted to the source's
- * target queue in response to a call to dispatch_source_cancel() once the
- * system has released all references to the source's underlying handle and
- * the source's event handler block has returned.
- *
- * IMPORTANT:
- * Source cancellation and a cancellation handler are required for file
- * descriptor and mach port based sources in order to safely close the
- * descriptor or destroy the port.
- * Closing the descriptor or port before the cancellation handler is invoked may
- * result in a race condition. If a new descriptor is allocated with the same
- * value as the recently closed descriptor while the source's event handler is
- * still running, the event handler may read/write data to the wrong descriptor.
- *
- * @param source
- * The dispatch source to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param handler
- * The cancellation handler block to submit to the source's target queue.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-void
-dispatch_source_set_cancel_handler(dispatch_source_t source,
-	dispatch_block_t _Nullable handler);
-#endif /* __BLOCKS__ */
-
-/*!
- * @function dispatch_source_set_cancel_handler_f
- *
- * @abstract
- * Sets the cancellation handler function for the given dispatch source.
- *
- * @discussion
- * See dispatch_source_set_cancel_handler() for more details.
- *
- * @param source
- * The dispatch source to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param handler
- * The cancellation handler function to submit to the source's target queue.
- * The context parameter passed to the event handler function is the current
- * context of the dispatch source at the time the handler call is made.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-void
-dispatch_source_set_cancel_handler_f(dispatch_source_t source,
-	dispatch_function_t _Nullable handler);
-
-/*!
- * @function dispatch_source_cancel
- *
- * @abstract
- * Asynchronously cancel the dispatch source, preventing any further invocation
- * of its event handler block.
- *
- * @discussion
- * Cancellation prevents any further invocation of the event handler block for
- * the specified dispatch source, but does not interrupt an event handler
- * block that is already in progress.
- *
- * The cancellation handler is submitted to the source's target queue once the
- * the source's event handler has finished, indicating it is now safe to close
- * the source's handle (i.e. file descriptor or mach port).
- *
- * See dispatch_source_set_cancel_handler() for more information.
- *
- * @param source
- * The dispatch source to be canceled.
- * The result of passing NULL in this parameter is undefined.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_source_cancel(dispatch_source_t source);
-
-/*!
- * @function dispatch_source_testcancel
- *
- * @abstract
- * Tests whether the given dispatch source has been canceled.
- *
- * @param source
- * The dispatch source to be tested.
- * The result of passing NULL in this parameter is undefined.
- *
- * @result
- * Non-zero if canceled and zero if not canceled.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
-DISPATCH_NOTHROW
-long
-dispatch_source_testcancel(dispatch_source_t source);
-
-/*!
- * @function dispatch_source_get_handle
- *
- * @abstract
- * Returns the underlying system handle associated with this dispatch source.
- *
- * @param source
- * The result of passing NULL in this parameter is undefined.
- *
- * @result
- * The return value should be interpreted according to the type of the dispatch
- * source, and may be one of the following handles:
- *
- *  DISPATCH_SOURCE_TYPE_DATA_ADD:        n/a
- *  DISPATCH_SOURCE_TYPE_DATA_OR:         n/a
- *  DISPATCH_SOURCE_TYPE_DATA_REPLACE:    n/a
- *  DISPATCH_SOURCE_TYPE_MACH_SEND:       mach port (mach_port_t)
- *  DISPATCH_SOURCE_TYPE_MACH_RECV:       mach port (mach_port_t)
- *  DISPATCH_SOURCE_TYPE_MEMORYPRESSURE   n/a
- *  DISPATCH_SOURCE_TYPE_PROC:            process identifier (pid_t)
- *  DISPATCH_SOURCE_TYPE_READ:            file descriptor (int)
- *  DISPATCH_SOURCE_TYPE_SIGNAL:          signal number (int)
- *  DISPATCH_SOURCE_TYPE_TIMER:           n/a
- *  DISPATCH_SOURCE_TYPE_VNODE:           file descriptor (int)
- *  DISPATCH_SOURCE_TYPE_WRITE:           file descriptor (int)
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
-DISPATCH_NOTHROW
-uintptr_t
-dispatch_source_get_handle(dispatch_source_t source);
-
-/*!
- * @function dispatch_source_get_mask
- *
- * @abstract
- * Returns the mask of events monitored by the dispatch source.
- *
- * @param source
- * The result of passing NULL in this parameter is undefined.
- *
- * @result
- * The return value should be interpreted according to the type of the dispatch
- * source, and may be one of the following flag sets:
- *
- *  DISPATCH_SOURCE_TYPE_DATA_ADD:        n/a
- *  DISPATCH_SOURCE_TYPE_DATA_OR:         n/a
- *  DISPATCH_SOURCE_TYPE_DATA_REPLACE:    n/a
- *  DISPATCH_SOURCE_TYPE_MACH_SEND:       dispatch_source_mach_send_flags_t
- *  DISPATCH_SOURCE_TYPE_MACH_RECV:       dispatch_source_mach_recv_flags_t
- *  DISPATCH_SOURCE_TYPE_MEMORYPRESSURE   dispatch_source_memorypressure_flags_t
- *  DISPATCH_SOURCE_TYPE_PROC:            dispatch_source_proc_flags_t
- *  DISPATCH_SOURCE_TYPE_READ:            n/a
- *  DISPATCH_SOURCE_TYPE_SIGNAL:          n/a
- *  DISPATCH_SOURCE_TYPE_TIMER:           dispatch_source_timer_flags_t
- *  DISPATCH_SOURCE_TYPE_VNODE:           dispatch_source_vnode_flags_t
- *  DISPATCH_SOURCE_TYPE_WRITE:           n/a
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
-DISPATCH_NOTHROW
-unsigned long
-dispatch_source_get_mask(dispatch_source_t source);
-
-/*!
- * @function dispatch_source_get_data
- *
- * @abstract
- * Returns pending data for the dispatch source.
- *
- * @discussion
- * This function is intended to be called from within the event handler block.
- * The result of calling this function outside of the event handler callback is
- * undefined.
- *
- * @param source
- * The result of passing NULL in this parameter is undefined.
- *
- * @result
- * The return value should be interpreted according to the type of the dispatch
- * source, and may be one of the following:
- *
- *  DISPATCH_SOURCE_TYPE_DATA_ADD:        application defined data
- *  DISPATCH_SOURCE_TYPE_DATA_OR:         application defined data
- *  DISPATCH_SOURCE_TYPE_DATA_REPLACE:    application defined data
- *  DISPATCH_SOURCE_TYPE_MACH_SEND:       dispatch_source_mach_send_flags_t
- *  DISPATCH_SOURCE_TYPE_MACH_RECV:       dispatch_source_mach_recv_flags_t
- *  DISPATCH_SOURCE_TYPE_MEMORYPRESSURE   dispatch_source_memorypressure_flags_t
- *  DISPATCH_SOURCE_TYPE_PROC:            dispatch_source_proc_flags_t
- *  DISPATCH_SOURCE_TYPE_READ:            estimated bytes available to read
- *  DISPATCH_SOURCE_TYPE_SIGNAL:          number of signals delivered since
- *                                            the last handler invocation
- *  DISPATCH_SOURCE_TYPE_TIMER:           number of times the timer has fired
- *                                            since the last handler invocation
- *  DISPATCH_SOURCE_TYPE_VNODE:           dispatch_source_vnode_flags_t
- *  DISPATCH_SOURCE_TYPE_WRITE:           estimated buffer space available
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
-DISPATCH_NOTHROW
-unsigned long
-dispatch_source_get_data(dispatch_source_t source);
-
-/*!
- * @function dispatch_source_merge_data
- *
- * @abstract
- * Merges data into a dispatch source of type DISPATCH_SOURCE_TYPE_DATA_ADD,
- * DISPATCH_SOURCE_TYPE_DATA_OR or DISPATCH_SOURCE_TYPE_DATA_REPLACE,
- * and submits its event handler block to its target queue.
- *
- * @param source
- * The result of passing NULL in this parameter is undefined.
- *
- * @param value
- * The value to coalesce with the pending data using a logical OR or an ADD
- * as specified by the dispatch source type. A value of zero has no effect
- * and will not result in the submission of the event handler block.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_source_merge_data(dispatch_source_t source, unsigned long value);
-
-/*!
- * @function dispatch_source_set_timer
- *
- * @abstract
- * Sets a start time, interval, and leeway value for a timer source.
- *
- * @discussion
- * Once this function returns, any pending source data accumulated for the
- * previous timer values has been cleared; the next fire of the timer will
- * occur at 'start', and every 'interval' nanoseconds thereafter until the
- * timer source is canceled.
- *
- * Any fire of the timer may be delayed by the system in order to improve power
- * consumption and system performance. The upper limit to the allowable delay
- * may be configured with the 'leeway' argument, the lower limit is under the
- * control of the system.
- *
- * For the initial timer fire at 'start', the upper limit to the allowable
- * delay is set to 'leeway' nanoseconds. For the subsequent timer fires at
- * 'start' + N * 'interval', the upper limit is MIN('leeway','interval'/2).
- *
- * The lower limit to the allowable delay may vary with process state such as
- * visibility of application UI. If the specified timer source was created with
- * a mask of DISPATCH_TIMER_STRICT, the system will make a best effort to
- * strictly observe the provided 'leeway' value even if it is smaller than the
- * current lower limit. Note that a minimal amount of delay is to be expected
- * even if this flag is specified.
- *
- * The 'start' argument also determines which clock will be used for the timer:
- * If 'start' is DISPATCH_TIME_NOW or was created with dispatch_time(3), the
- * timer is based on up time (which is obtained from mach_absolute_time() on
- * Apple platforms). If 'start' was created with dispatch_walltime(3), the
- * timer is based on gettimeofday(3).
- *
- * Calling this function has no effect if the timer source has already been
- * canceled.
- *
- * @param start
- * The start time of the timer. See dispatch_time() and dispatch_walltime()
- * for more information.
- *
- * @param interval
- * The nanosecond interval for the timer. Use DISPATCH_TIME_FOREVER for a
- * one-shot timer.
- *
- * @param leeway
- * The nanosecond leeway for the timer.
- */
-API_AVAILABLE(macos(10.6), ios(4.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_source_set_timer(dispatch_source_t source,
-	dispatch_time_t start,
-	uint64_t interval,
-	uint64_t leeway);
-
-/*!
- * @function dispatch_source_set_registration_handler
- *
- * @abstract
- * Sets the registration handler block for the given dispatch source.
- *
- * @discussion
- * The registration handler (if specified) will be submitted to the source's
- * target queue once the corresponding kevent() has been registered with the
- * system, following the initial dispatch_resume() of the source.
- *
- * If a source is already registered when the registration handler is set, the
- * registration handler will be invoked immediately.
- *
- * @param source
- * The dispatch source to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param handler
- * The registration handler block to submit to the source's target queue.
- */
-#ifdef __BLOCKS__
-API_AVAILABLE(macos(10.7), ios(4.3))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-void
-dispatch_source_set_registration_handler(dispatch_source_t source,
-	dispatch_block_t _Nullable handler);
-#endif /* __BLOCKS__ */
-
-/*!
- * @function dispatch_source_set_registration_handler_f
- *
- * @abstract
- * Sets the registration handler function for the given dispatch source.
- *
- * @discussion
- * See dispatch_source_set_registration_handler() for more details.
- *
- * @param source
- * The dispatch source to modify.
- * The result of passing NULL in this parameter is undefined.
- *
- * @param handler
- * The registration handler function to submit to the source's target queue.
- * The context parameter passed to the registration handler function is the
- * current context of the dispatch source at the time the handler call is made.
- */
-API_AVAILABLE(macos(10.7), ios(4.3))
-DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
-void
-dispatch_source_set_registration_handler_f(dispatch_source_t source,
-	dispatch_function_t _Nullable handler);
-
-__END_DECLS
-
-DISPATCH_ASSUME_NONNULL_END
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/dispatch/workloop.h b/lib/libc/include/x86_64-macos.10-none/dispatch/workloop.h
deleted file mode 100644
index dcd1db43cc4bfd2458ab95cd19c5314ce02078f2..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/dispatch/workloop.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2017-2019 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __DISPATCH_WORKLOOP__
-#define __DISPATCH_WORKLOOP__
-
-#ifndef __DISPATCH_INDIRECT__
-#error "Please #include  instead of this file directly."
-#include  // for HeaderDoc
-#endif
-
-DISPATCH_ASSUME_NONNULL_BEGIN
-
-__BEGIN_DECLS
-
-/*!
- * @typedef dispatch_workloop_t
- *
- * @abstract
- * Dispatch workloops invoke workitems submitted to them in priority order.
- *
- * @discussion
- * A dispatch workloop is a flavor of dispatch_queue_t that is a priority
- * ordered queue (using the QOS class of the submitted workitems as the
- * ordering).
- *
- * Between each workitem invocation, the workloop will evaluate whether higher
- * priority workitems have since been submitted, either directly to the
- * workloop or to any queues that target the workloop, and execute these first.
- *
- * Serial queues targeting a workloop maintain FIFO execution of their
- * workitems. However, the workloop may reorder workitems submitted to
- * independent serial queues targeting it with respect to each other,
- * based on their priorities, while preserving FIFO execution with respect to
- * each serial queue.
- *
- * A dispatch workloop is a "subclass" of dispatch_queue_t which can be passed
- * to all APIs accepting a dispatch queue, except for functions from the
- * dispatch_sync() family. dispatch_async_and_wait() must be used for workloop
- * objects. Functions from the dispatch_sync() family on queues targeting
- * a workloop are still permitted but discouraged for performance reasons.
- */
-DISPATCH_DECL_SUBCLASS(dispatch_workloop, dispatch_queue);
-
-/*!
- * @function dispatch_workloop_create
- *
- * @abstract
- * Creates a new dispatch workloop to which workitems may be submitted.
- *
- * @param label
- * A string label to attach to the workloop.
- *
- * @result
- * The newly created dispatch workloop.
- */
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-dispatch_workloop_t
-dispatch_workloop_create(const char *_Nullable label);
-
-/*!
- * @function dispatch_workloop_create_inactive
- *
- * @abstract
- * Creates a new inactive dispatch workloop that can be setup and then
- * activated.
- *
- * @discussion
- * Creating an inactive workloop allows for it to receive further configuration
- * before it is activated, and workitems can be submitted to it.
- *
- * Submitting workitems to an inactive workloop is undefined and will cause the
- * process to be terminated.
- *
- * @param label
- * A string label to attach to the workloop.
- *
- * @result
- * The newly created dispatch workloop.
- */
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-DISPATCH_EXPORT DISPATCH_MALLOC DISPATCH_RETURNS_RETAINED DISPATCH_WARN_RESULT
-DISPATCH_NOTHROW
-dispatch_workloop_t
-dispatch_workloop_create_inactive(const char *_Nullable label);
-
-/*!
- * @function dispatch_workloop_set_autorelease_frequency
- *
- * @abstract
- * Sets the autorelease frequency of the workloop.
- *
- * @discussion
- * See dispatch_queue_attr_make_with_autorelease_frequency().
- * The default policy for a workloop is
- * DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM.
- *
- * @param workloop
- * The dispatch workloop to modify.
- *
- * This workloop must be inactive, passing an activated object is undefined
- * and will cause the process to be terminated.
- *
- * @param frequency
- * The requested autorelease frequency.
- */
-API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
-void
-dispatch_workloop_set_autorelease_frequency(dispatch_workloop_t workloop,
-		dispatch_autorelease_frequency_t frequency);
-
-__END_DECLS
-
-DISPATCH_ASSUME_NONNULL_END
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/execinfo.h b/lib/libc/include/x86_64-macos.10-none/execinfo.h
deleted file mode 100644
index 65d9d20486d06e92b797662a62e83d5e8108ca07..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/execinfo.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2007 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@
- */
-#ifndef _EXECINFO_H_
-#define _EXECINFO_H_ 1
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-__BEGIN_DECLS
-
-int backtrace(void**,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-
-API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-OS_EXPORT
-int backtrace_from_fp(void *startfp, void **array, int size);
-
-char** backtrace_symbols(void* const*,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-void backtrace_symbols_fd(void* const*,int,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-
-struct image_offset {
-	/*
-	 * The UUID of the image.
-	 */
-	uuid_t uuid;
-
-	/*
-	 * The offset is relative to the __TEXT section of the image.
-	 */
-	uint32_t offset;
-};
-
-API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0), watchos(5.0))
-OS_EXPORT
-void backtrace_image_offsets(void* const* array,
-		struct image_offset *image_offsets, int size);
-
-__END_DECLS
-
-#endif /* !_EXECINFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/gethostuuid.h b/lib/libc/include/x86_64-macos.10-none/gethostuuid.h
deleted file mode 100644
index cc7f47311822c6c39e9b9068c5024a425acb6b61..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/gethostuuid.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2013 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 __GETHOSTUUID_H
-#define __GETHOSTUUID_H
-
-#include 
-#include 
-#include 
-
-#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0)
-int gethostuuid(uuid_t, const struct timespec *) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_NA, __MAC_NA, __IPHONE_2_0, __IPHONE_5_0, "gethostuuid() is no longer supported");
-#else
-int gethostuuid(uuid_t, const struct timespec *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_NA);
-#endif
-
-#endif /* __GETHOSTUUID_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/_limits.h b/lib/libc/include/x86_64-macos.10-none/i386/_limits.h
deleted file mode 100644
index f942e7abd85a7eceac35fbc8308f6f70e6ab8b56..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/_limits.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2004 Apple Computer, 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 _I386__LIMITS_H_
-#define _I386__LIMITS_H_
-
-#define __DARWIN_CLK_TCK                100     /* ticks per second */
-
-#endif  /* _I386__LIMITS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/_mcontext.h b/lib/libc/include/x86_64-macos.10-none/i386/_mcontext.h
deleted file mode 100644
index 424ca21359ea0621406ebed2bf19dcefbbecc281..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/_mcontext.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (c) 2003-2012 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 __I386_MCONTEXT_H_
-#define __I386_MCONTEXT_H_
-
-#include  /* __DARWIN_UNIX03 */
-#include 
-#include 
-
-#ifndef _STRUCT_MCONTEXT32
-#if __DARWIN_UNIX03
-#define _STRUCT_MCONTEXT32      struct __darwin_mcontext32
-_STRUCT_MCONTEXT32
-{
-	_STRUCT_X86_EXCEPTION_STATE32   __es;
-	_STRUCT_X86_THREAD_STATE32      __ss;
-	_STRUCT_X86_FLOAT_STATE32       __fs;
-};
-
-#define _STRUCT_MCONTEXT_AVX32  struct __darwin_mcontext_avx32
-_STRUCT_MCONTEXT_AVX32
-{
-	_STRUCT_X86_EXCEPTION_STATE32   __es;
-	_STRUCT_X86_THREAD_STATE32      __ss;
-	_STRUCT_X86_AVX_STATE32         __fs;
-};
-
-#if defined(_STRUCT_X86_AVX512_STATE32)
-#define _STRUCT_MCONTEXT_AVX512_32      struct __darwin_mcontext_avx512_32
-_STRUCT_MCONTEXT_AVX512_32
-{
-	_STRUCT_X86_EXCEPTION_STATE32   __es;
-	_STRUCT_X86_THREAD_STATE32      __ss;
-	_STRUCT_X86_AVX512_STATE32      __fs;
-};
-#endif /* _STRUCT_X86_AVX512_STATE32 */
-
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_MCONTEXT32      struct mcontext32
-_STRUCT_MCONTEXT32
-{
-	_STRUCT_X86_EXCEPTION_STATE32   es;
-	_STRUCT_X86_THREAD_STATE32      ss;
-	_STRUCT_X86_FLOAT_STATE32       fs;
-};
-
-#define _STRUCT_MCONTEXT_AVX32  struct mcontext_avx32
-_STRUCT_MCONTEXT_AVX32
-{
-	_STRUCT_X86_EXCEPTION_STATE32   es;
-	_STRUCT_X86_THREAD_STATE32      ss;
-	_STRUCT_X86_AVX_STATE32         fs;
-};
-
-#if defined(_STRUCT_X86_AVX512_STATE32)
-#define _STRUCT_MCONTEXT_AVX512_32      struct mcontext_avx512_32
-_STRUCT_MCONTEXT_AVX512_32
-{
-	_STRUCT_X86_EXCEPTION_STATE32   es;
-	_STRUCT_X86_THREAD_STATE32      ss;
-	_STRUCT_X86_AVX512_STATE32      fs;
-};
-#endif /* _STRUCT_X86_AVX512_STATE32 */
-
-#endif /* __DARWIN_UNIX03 */
-#endif /* _STRUCT_MCONTEXT32 */
-
-#ifndef _STRUCT_MCONTEXT64
-#if __DARWIN_UNIX03
-#define _STRUCT_MCONTEXT64      struct __darwin_mcontext64
-_STRUCT_MCONTEXT64
-{
-	_STRUCT_X86_EXCEPTION_STATE64   __es;
-	_STRUCT_X86_THREAD_STATE64      __ss;
-	_STRUCT_X86_FLOAT_STATE64       __fs;
-};
-
-#define _STRUCT_MCONTEXT64_FULL      struct __darwin_mcontext64_full
-_STRUCT_MCONTEXT64_FULL
-{
-	_STRUCT_X86_EXCEPTION_STATE64   __es;
-	_STRUCT_X86_THREAD_FULL_STATE64 __ss;
-	_STRUCT_X86_FLOAT_STATE64       __fs;
-};
-
-#define _STRUCT_MCONTEXT_AVX64  struct __darwin_mcontext_avx64
-_STRUCT_MCONTEXT_AVX64
-{
-	_STRUCT_X86_EXCEPTION_STATE64   __es;
-	_STRUCT_X86_THREAD_STATE64      __ss;
-	_STRUCT_X86_AVX_STATE64         __fs;
-};
-
-#define _STRUCT_MCONTEXT_AVX64_FULL  struct __darwin_mcontext_avx64_full
-_STRUCT_MCONTEXT_AVX64_FULL
-{
-	_STRUCT_X86_EXCEPTION_STATE64   __es;
-	_STRUCT_X86_THREAD_FULL_STATE64 __ss;
-	_STRUCT_X86_AVX_STATE64         __fs;
-};
-
-#if defined(_STRUCT_X86_AVX512_STATE64)
-#define _STRUCT_MCONTEXT_AVX512_64      struct __darwin_mcontext_avx512_64
-_STRUCT_MCONTEXT_AVX512_64
-{
-	_STRUCT_X86_EXCEPTION_STATE64   __es;
-	_STRUCT_X86_THREAD_STATE64      __ss;
-	_STRUCT_X86_AVX512_STATE64      __fs;
-};
-
-#define _STRUCT_MCONTEXT_AVX512_64_FULL      struct __darwin_mcontext_avx512_64_full
-_STRUCT_MCONTEXT_AVX512_64_FULL
-{
-	_STRUCT_X86_EXCEPTION_STATE64   __es;
-	_STRUCT_X86_THREAD_FULL_STATE64 __ss;
-	_STRUCT_X86_AVX512_STATE64      __fs;
-};
-#endif /* _STRUCT_X86_AVX512_STATE64 */
-
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_MCONTEXT64      struct mcontext64
-_STRUCT_MCONTEXT64
-{
-	_STRUCT_X86_EXCEPTION_STATE64   es;
-	_STRUCT_X86_THREAD_STATE64      ss;
-	_STRUCT_X86_FLOAT_STATE64       fs;
-};
-
-#define _STRUCT_MCONTEXT64_FULL      struct mcontext64_full
-_STRUCT_MCONTEXT64_FULL
-{
-	_STRUCT_X86_EXCEPTION_STATE64   es;
-	_STRUCT_X86_THREAD_FULL_STATE64 ss;
-	_STRUCT_X86_FLOAT_STATE64       fs;
-};
-
-#define _STRUCT_MCONTEXT_AVX64  struct mcontext_avx64
-_STRUCT_MCONTEXT_AVX64
-{
-	_STRUCT_X86_EXCEPTION_STATE64   es;
-	_STRUCT_X86_THREAD_STATE64      ss;
-	_STRUCT_X86_AVX_STATE64         fs;
-};
-
-#define _STRUCT_MCONTEXT_AVX64_FULL  struct mcontext_avx64_full
-_STRUCT_MCONTEXT_AVX64_FULL
-{
-	_STRUCT_X86_EXCEPTION_STATE64   es;
-	_STRUCT_X86_THREAD_FULL_STATE64 ss;
-	_STRUCT_X86_AVX_STATE64         fs;
-};
-
-#if defined(_STRUCT_X86_AVX512_STATE64)
-#define _STRUCT_MCONTEXT_AVX512_64      struct mcontext_avx512_64
-_STRUCT_MCONTEXT_AVX512_64
-{
-	_STRUCT_X86_EXCEPTION_STATE64   es;
-	_STRUCT_X86_THREAD_STATE64      ss;
-	_STRUCT_X86_AVX512_STATE64      fs;
-};
-
-#define _STRUCT_MCONTEXT_AVX512_64_FULL      struct mcontext_avx512_64_full
-_STRUCT_MCONTEXT_AVX512_64_FULL
-{
-	_STRUCT_X86_EXCEPTION_STATE64   es;
-	_STRUCT_X86_THREAD_FULL_STATE64 ss;
-	_STRUCT_X86_AVX512_STATE64      fs;
-};
-#endif /* _STRUCT_X86_AVX512_STATE64 */
-
-#endif /* __DARWIN_UNIX03 */
-#endif /* _STRUCT_MCONTEXT64 */
-
-
-#ifndef _MCONTEXT_T
-#define _MCONTEXT_T
-#if defined(__LP64__)
-typedef _STRUCT_MCONTEXT64      *mcontext_t;
-#define _STRUCT_MCONTEXT _STRUCT_MCONTEXT64
-#else
-typedef _STRUCT_MCONTEXT32      *mcontext_t;
-#define _STRUCT_MCONTEXT        _STRUCT_MCONTEXT32
-#endif
-#endif /* _MCONTEXT_T */
-
-#endif /* __I386_MCONTEXT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/_param.h b/lib/libc/include/x86_64-macos.10-none/i386/_param.h
deleted file mode 100644
index d8f7b3d4bfb4323018567a02e9db53a45e93c1e4..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/_param.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2008 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 _I386__PARAM_H_
-#define _I386__PARAM_H_
-
-#include 
-
-/*
- * Round p (pointer or byte index) up to a correctly-aligned value for all
- * data types (int, long, ...).   The result is unsigned int and must be
- * cast to any desired pointer type.
- */
-#define __DARWIN_ALIGNBYTES     (sizeof(__darwin_size_t) - 1)
-#define __DARWIN_ALIGN(p)       ((__darwin_size_t)((char *)(__darwin_size_t)(p) + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES)
-
-#define      __DARWIN_ALIGNBYTES32     (sizeof(__uint32_t) - 1)
-#define       __DARWIN_ALIGN32(p)       ((__darwin_size_t)((char *)(__darwin_size_t)(p) + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32)
-
-
-#endif /* _I386__PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/_types.h b/lib/libc/include/x86_64-macos.10-none/i386/_types.h
deleted file mode 100644
index 9dcffa5241ebb9741038f9c2d8d8c5da54eb0c58..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/_types.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2000-2003 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 _BSD_I386__TYPES_H_
-#define _BSD_I386__TYPES_H_
-
-/*
- * This header file contains integer types.  It's intended to also contain
- * flotaing point and other arithmetic types, as needed, later.
- */
-
-#ifdef __GNUC__
-typedef __signed char           __int8_t;
-#else   /* !__GNUC__ */
-typedef char                    __int8_t;
-#endif  /* !__GNUC__ */
-typedef unsigned char           __uint8_t;
-typedef short                   __int16_t;
-typedef unsigned short          __uint16_t;
-typedef int                     __int32_t;
-typedef unsigned int            __uint32_t;
-typedef long long               __int64_t;
-typedef unsigned long long      __uint64_t;
-
-typedef long                    __darwin_intptr_t;
-typedef unsigned int            __darwin_natural_t;
-
-/*
- * The rune type below is declared to be an ``int'' instead of the more natural
- * ``unsigned long'' or ``long''.  Two things are happening here.  It is not
- * unsigned so that EOF (-1) can be naturally assigned to it and used.  Also,
- * it looks like 10646 will be a 31 bit standard.  This means that if your
- * ints cannot hold 32 bits, you will be in trouble.  The reason an int was
- * chosen over a long is that the is*() and to*() routines take ints (says
- * ANSI C), but they use __darwin_ct_rune_t instead of int.  By changing it
- * here, you lose a bit of ANSI conformance, but your programs will still
- * work.
- *
- * NOTE: rune_t is not covered by ANSI nor other standards, and should not
- * be instantiated outside of lib/libc/locale.  Use wchar_t.  wchar_t and
- * rune_t must be the same type.  Also wint_t must be no narrower than
- * wchar_t, and should also be able to hold all members of the largest
- * character set plus one extra value (WEOF). wint_t must be at least 16 bits.
- */
-
-typedef int                     __darwin_ct_rune_t;     /* ct_rune_t */
-
-/*
- * mbstate_t is an opaque object to keep conversion state, during multibyte
- * stream conversions.  The content must not be referenced by user programs.
- */
-typedef union {
-	char            __mbstate8[128];
-	long long       _mbstateL;                      /* for alignment */
-} __mbstate_t;
-
-typedef __mbstate_t             __darwin_mbstate_t;     /* mbstate_t */
-
-#if defined(__PTRDIFF_TYPE__)
-typedef __PTRDIFF_TYPE__        __darwin_ptrdiff_t;     /* ptr1 - ptr2 */
-#elif defined(__LP64__)
-typedef long                    __darwin_ptrdiff_t;     /* ptr1 - ptr2 */
-#else
-typedef int                     __darwin_ptrdiff_t;     /* ptr1 - ptr2 */
-#endif /* __GNUC__ */
-
-#if defined(__SIZE_TYPE__)
-typedef __SIZE_TYPE__           __darwin_size_t;        /* sizeof() */
-#else
-typedef unsigned long           __darwin_size_t;        /* sizeof() */
-#endif
-
-#if (__GNUC__ > 2)
-typedef __builtin_va_list       __darwin_va_list;       /* va_list */
-#else
-typedef void *                  __darwin_va_list;       /* va_list */
-#endif
-
-#if defined(__WCHAR_TYPE__)
-typedef __WCHAR_TYPE__          __darwin_wchar_t;       /* wchar_t */
-#else
-typedef __darwin_ct_rune_t      __darwin_wchar_t;       /* wchar_t */
-#endif
-
-typedef __darwin_wchar_t        __darwin_rune_t;        /* rune_t */
-
-#if defined(__WINT_TYPE__)
-typedef __WINT_TYPE__           __darwin_wint_t;        /* wint_t */
-#else
-typedef __darwin_ct_rune_t      __darwin_wint_t;        /* wint_t */
-#endif
-
-typedef unsigned long           __darwin_clock_t;       /* clock() */
-typedef __uint32_t              __darwin_socklen_t;     /* socklen_t (duh) */
-typedef long                    __darwin_ssize_t;       /* byte count or error */
-typedef long                    __darwin_time_t;        /* time() */
-
-#endif  /* _BSD_I386__TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/eflags.h b/lib/libc/include/x86_64-macos.10-none/i386/eflags.h
deleted file mode 100644
index dc73c43126c54d1692ee213e76371b1d5c2ecd32..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/eflags.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _I386_EFLAGS_H_
-#define _I386_EFLAGS_H_
-
-/*
- *	i386 flags register
- */
-
-#ifndef EFL_CF
-#define EFL_CF          0x00000001              /* carry */
-#define EFL_PF          0x00000004              /* parity of low 8 bits */
-#define EFL_AF          0x00000010              /* carry out of bit 3 */
-#define EFL_ZF          0x00000040              /* zero */
-#define EFL_SF          0x00000080              /* sign */
-#define EFL_TF          0x00000100              /* trace trap */
-#define EFL_IF          0x00000200              /* interrupt enable */
-#define EFL_DF          0x00000400              /* direction */
-#define EFL_OF          0x00000800              /* overflow */
-#define EFL_IOPL        0x00003000              /* IO privilege level: */
-#define EFL_IOPL_KERNEL 0x00000000                      /* kernel */
-#define EFL_IOPL_USER   0x00003000                      /* user */
-#define EFL_NT          0x00004000              /* nested task */
-#define EFL_RF          0x00010000              /* resume without tracing */
-#define EFL_VM          0x00020000              /* virtual 8086 mode */
-#define EFL_AC          0x00040000              /* alignment check */
-#define EFL_VIF         0x00080000              /* virtual interrupt flag */
-#define EFL_VIP         0x00100000              /* virtual interrupt pending */
-#define EFL_ID          0x00200000              /* cpuID instruction */
-#endif
-
-#define EFL_CLR         0xfff88028
-#define EFL_SET         0x00000002
-
-#define EFL_USER_SET    (EFL_IF)
-#define EFL_USER_CLEAR  (EFL_IOPL|EFL_NT|EFL_RF)
-
-#endif  /* _I386_EFLAGS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/endian.h b/lib/libc/include/x86_64-macos.10-none/i386/endian.h
deleted file mode 100644
index 95ca16e4062206338cfa50a9422dd3173541e582..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/endian.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2000-2002 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 1995 NeXT Computer, Inc. All rights reserved.
- */
-/*
- * Copyright (c) 1987, 1991, 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.
- *
- *	@(#)endian.h	8.1 (Berkeley) 6/11/93
- */
-
-#ifndef _I386__ENDIAN_H_
-#define _I386__ENDIAN_H_
-
-#include 
-/*
- * Define _NOQUAD if the compiler does NOT support 64-bit integers.
- */
-/* #define _NOQUAD */
-
-/*
- * Define the order of 32-bit words in 64-bit words.
- */
-#define _QUAD_HIGHWORD 1
-#define _QUAD_LOWWORD 0
-
-/*
- * Definitions for byte order, according to byte significance from low
- * address to high.
- */
-#define __DARWIN_LITTLE_ENDIAN  1234    /* LSB first: i386, vax */
-#define __DARWIN_BIG_ENDIAN     4321    /* MSB first: 68000, ibm, net */
-#define __DARWIN_PDP_ENDIAN     3412    /* LSB first in word, MSW first in long */
-
-#define __DARWIN_BYTE_ORDER     __DARWIN_LITTLE_ENDIAN
-
-#if     defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-
-#define LITTLE_ENDIAN   __DARWIN_LITTLE_ENDIAN
-#define BIG_ENDIAN      __DARWIN_BIG_ENDIAN
-#define PDP_ENDIAN      __DARWIN_PDP_ENDIAN
-
-#define BYTE_ORDER      __DARWIN_BYTE_ORDER
-
-#include 
-
-#endif /* defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) */
-#endif /* !_I386__ENDIAN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/limits.h b/lib/libc/include/x86_64-macos.10-none/i386/limits.h
deleted file mode 100644
index 651d770335fe6c770833fa141f93b4fcaa6249e4..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/limits.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 1988, 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.
- *
- *	@(#)limits.h	8.3 (Berkeley) 1/4/94
- */
-
-#ifndef _I386_LIMITS_H_
-#define _I386_LIMITS_H_
-
-#include 
-#include 
-
-#define CHAR_BIT        8               /* number of bits in a char */
-#define MB_LEN_MAX      6               /* Allow 31 bit UTF2 */
-
-#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-#define CLK_TCK         __DARWIN_CLK_TCK        /* ticks per second */
-#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-
-/*
- * According to ANSI (section 2.2.4.2), the values below must be usable by
- * #if preprocessing directives.  Additionally, the expression must have the
- * same type as would an expression that is an object of the corresponding
- * type converted according to the integral promotions.  The subtraction for
- * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an
- * unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
- * These numbers work for pcc as well.  The UINT_MAX and ULONG_MAX values
- * are written as hex so that GCC will be quiet about large integer constants.
- */
-#define SCHAR_MAX       127             /* min value for a signed char */
-#define SCHAR_MIN       (-128)          /* max value for a signed char */
-
-#define UCHAR_MAX       255             /* max value for an unsigned char */
-#define CHAR_MAX        127             /* max value for a char */
-#define CHAR_MIN        (-128)          /* min value for a char */
-
-#define USHRT_MAX       65535           /* max value for an unsigned short */
-#define SHRT_MAX        32767           /* max value for a short */
-#define SHRT_MIN        (-32768)        /* min value for a short */
-
-#define UINT_MAX        0xffffffff      /* max value for an unsigned int */
-#define INT_MAX         2147483647      /* max value for an int */
-#define INT_MIN         (-2147483647-1) /* min value for an int */
-
-#ifdef __LP64__
-#define ULONG_MAX       0xffffffffffffffffUL    /* max unsigned long */
-#define LONG_MAX        0x7fffffffffffffffL     /* max signed long */
-#define LONG_MIN        (-0x7fffffffffffffffL-1) /* min signed long */
-#else /* !__LP64__ */
-#define ULONG_MAX       0xffffffffUL    /* max unsigned long */
-#define LONG_MAX        2147483647L     /* max signed long */
-#define LONG_MIN        (-2147483647L-1) /* min signed long */
-#endif /* __LP64__ */
-
-#define ULLONG_MAX      0xffffffffffffffffULL   /* max unsigned long long */
-#define LLONG_MAX       0x7fffffffffffffffLL    /* max signed long long */
-#define LLONG_MIN       (-0x7fffffffffffffffLL-1) /* min signed long long */
-
-#if !defined(_ANSI_SOURCE)
-#ifdef __LP64__
-#define LONG_BIT        64
-#else /* !__LP64__ */
-#define LONG_BIT        32
-#endif /* __LP64__ */
-#define SSIZE_MAX       LONG_MAX        /* max value for a ssize_t */
-#define WORD_BIT        32
-
-#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
-#define SIZE_T_MAX      ULONG_MAX       /* max value for a size_t */
-
-#define UQUAD_MAX       ULLONG_MAX
-#define QUAD_MAX        LLONG_MAX
-#define QUAD_MIN        LLONG_MIN
-
-#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
-#endif /* !_ANSI_SOURCE */
-
-#endif /* _I386_LIMITS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/param.h b/lib/libc/include/x86_64-macos.10-none/i386/param.h
deleted file mode 100644
index e8eb8272e79a5a12dc6efa4b391932be843b8e27..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/param.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2000-2010 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@
- */
-/*-
- * Copyright (c) 1990, 1993
- *	The Regents of the University of California.  All rights reserved.
- * (c) UNIX System Laboratories, Inc.
- * All or some portions of this file are derived from material licensed
- * to the University of California by American Telephone and Telegraph
- * Co. or Unix System Laboratories, Inc. and are reproduced herein with
- * the permission of UNIX System Laboratories, Inc.
- *
- * 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.
- *
- *	@(#)param.h	8.1 (Berkeley) 4/4/95
- */
-
-/*
- * Machine dependent constants for Intel 386.
- */
-
-#ifndef _I386_PARAM_H_
-#define _I386_PARAM_H_
-
-#include 
-
-/*
- * Round p (pointer or byte index) up to a correctly-aligned value for all
- * data types (int, long, ...).   The result is unsigned int and must be
- * cast to any desired pointer type.
- */
-#define ALIGNBYTES      __DARWIN_ALIGNBYTES
-#define ALIGN(p)        __DARWIN_ALIGN(p)
-
-#define NBPG            4096            /* bytes/page */
-#define PGOFSET         (NBPG-1)        /* byte offset into page */
-#define PGSHIFT         12              /* LOG2(NBPG) */
-
-#define DEV_BSIZE       512
-#define DEV_BSHIFT      9               /* log2(DEV_BSIZE) */
-#define BLKDEV_IOSIZE   2048
-#define MAXPHYS         (128 * 1024)    /* max raw I/O transfer size */
-
-#define CLSIZE          1
-#define CLSIZELOG2      0
-
-/*
- * Constants related to network buffer management.
- * MCLBYTES must be no larger than CLBYTES (the software page size), and,
- * on machines that exchange pages of input or output buffers with mbuf
- * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
- * of the hardware page size.
- */
-#define MSIZESHIFT      8                       /* 256 */
-#define MSIZE           (1 << MSIZESHIFT)       /* size of an mbuf */
-#define MCLSHIFT        11                      /* 2048 */
-#define MCLBYTES        (1 << MCLSHIFT)         /* size of an mbuf cluster */
-#define MBIGCLSHIFT     12                      /* 4096 */
-#define MBIGCLBYTES     (1 << MBIGCLSHIFT)      /* size of a big cluster */
-#define M16KCLSHIFT     14                      /* 16384 */
-#define M16KCLBYTES     (1 << M16KCLSHIFT)      /* size of a jumbo cluster */
-
-#define MCLOFSET        (MCLBYTES - 1)
-#ifndef NMBCLUSTERS
-#define NMBCLUSTERS     ((1024 * 1024) / MCLBYTES)      /* cl map size: 1MB */
-#endif
-
-/*
- * Some macros for units conversion
- */
-/* Core clicks (NeXT_page_size bytes) to segments and vice versa */
-#define ctos(x) (x)
-#define stoc(x) (x)
-
-/* Core clicks (4096 bytes) to disk blocks */
-#define ctod(x) ((x)<<(PGSHIFT-DEV_BSHIFT))
-#define dtoc(x) ((x)>>(PGSHIFT-DEV_BSHIFT))
-#define dtob(x) ((x)<>PGSHIFT)
-
-#ifdef __APPLE__
-#define  btodb(bytes, devBlockSize)         \
-	((unsigned)(bytes) / devBlockSize)
-#define  dbtob(db, devBlockSize)            \
-	((unsigned)(db) * devBlockSize)
-#else
-#define btodb(bytes)                    /* calculates (bytes / DEV_BSIZE) */ \
-	((unsigned)(bytes) >> DEV_BSHIFT)
-#define dbtob(db)                       /* calculates (db * DEV_BSIZE) */ \
-	((unsigned)(db) << DEV_BSHIFT)
-#endif
-
-/*
- * Map a ``block device block'' to a file system block.
- * This should be device dependent, and will be if we
- * add an entry to cdevsw/bdevsw for that purpose.
- * For now though just use DEV_BSIZE.
- */
-#define bdbtofsb(bn)    ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
-
-/*
- * Macros to decode (and encode) processor status word.
- */
-#define STATUS_WORD(rpl, ipl)   (((ipl) << 8) | (rpl))
-#define USERMODE(x)             (((x) & 3) == 3)
-#define BASEPRI(x)              (((x) & (255 << 8)) == 0)
-
-
-#if     defined(KERNEL) || defined(STANDALONE)
-#define DELAY(n) delay(n)
-
-#else   /* defined(KERNEL) || defined(STANDALONE) */
-#define DELAY(n)        { int N = (n); while (--N > 0); }
-#endif  /* defined(KERNEL) || defined(STANDALONE) */
-
-#endif /* _I386_PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/signal.h b/lib/libc/include/x86_64-macos.10-none/i386/signal.h
deleted file mode 100644
index cd837bb7f609d7a124281b3a6d7daef961d9a1d9..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/signal.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2000-2002 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) 1992 NeXT Computer, Inc.
- *
- */
-
-#ifndef _I386_SIGNAL_H_
-#define _I386_SIGNAL_H_ 1
-
-#include 
-
-#ifndef _ANSI_SOURCE
-typedef int sig_atomic_t;
-
-#endif /* ! _ANSI_SOURCE */
-
-#endif  /* _I386_SIGNAL_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/i386/types.h b/lib/libc/include/x86_64-macos.10-none/i386/types.h
deleted file mode 100644
index 00dee1a917bf0330bd0b2b4d084a7ddc9d38143a..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/i386/types.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2000-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@
- */
-/*
- * Copyright 1995 NeXT Computer, Inc. All rights reserved.
- */
-/*
- * Copyright (c) 1990, 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.
- *
- *	@(#)types.h	8.3 (Berkeley) 1/5/94
- */
-
-#ifndef _MACHTYPES_H_
-#define _MACHTYPES_H_
-
-#ifndef __ASSEMBLER__
-#include 
-#include 
-/*
- * Basic integral types.  Omit the typedef if
- * not possible for a machine/compiler combination.
- */
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-#include 
-
-#if __LP64__
-typedef int64_t                 register_t;
-#else
-typedef int32_t                 register_t;
-#endif
-
-#include 
-#include 
-
-#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-/* These types are used for reserving the largest possible size. */
-typedef u_int64_t               user_addr_t;
-typedef u_int64_t               user_size_t;
-typedef int64_t                 user_ssize_t;
-typedef int64_t                 user_long_t;
-typedef u_int64_t               user_ulong_t;
-typedef int64_t                 user_time_t;
-typedef int64_t                 user_off_t;
-#define USER_ADDR_NULL  ((user_addr_t) 0)
-#define CAST_USER_ADDR_T(a_ptr)   ((user_addr_t)((uintptr_t)(a_ptr)))
-
-
-#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-
-/* This defines the size of syscall arguments after copying into the kernel: */
-typedef u_int64_t               syscall_arg_t;
-
-#endif /* __ASSEMBLER__ */
-#endif  /* _MACHTYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomic.h b/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomic.h
deleted file mode 100644
index 37ef16ce445423016650031200d2f0b4423f732a..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomic.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2004-2016 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@
- */
-
-#ifndef _OSATOMIC_H_
-#define _OSATOMIC_H_
-
-/*! @header
- * These are deprecated legacy interfaces for atomic and synchronization
- * operations.
- *
- * Define OSATOMIC_USE_INLINED=1 to get inline implementations of the
- * OSAtomic interfaces in terms of the  primitives.
- *
- * Define OSSPINLOCK_USE_INLINED=1 to get inline implementations of the
- * OSSpinLock interfaces in terms of the  primitives.
- *
- * These are intended as a transition convenience, direct use of those
- * primitives should be preferred.
- */
-
-#include 
-
-#include "OSAtomicDeprecated.h"
-#include "OSSpinLockDeprecated.h"
-#include "OSAtomicQueue.h"
-
-#endif /* _OSATOMIC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomicDeprecated.h b/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomicDeprecated.h
deleted file mode 100644
index aef009bc04e22cedb98f888dd2a89829c08ad757..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomicDeprecated.h
+++ /dev/null
@@ -1,1177 +0,0 @@
-/*
- * Copyright (c) 2004-2016 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@
- */
-
-#ifndef _OSATOMIC_DEPRECATED_H_
-#define _OSATOMIC_DEPRECATED_H_
-
-/*! @header
- * These are deprecated legacy interfaces for atomic operations.
- * The C11 interfaces in  resp. C++11 interfaces in 
- * should be used instead.
- *
- * Define OSATOMIC_USE_INLINED=1 to get inline implementations of these
- * interfaces in terms of the  resp.  primitives.
- * This is intended as a transition convenience, direct use of those primitives
- * is preferred.
- */
-
-#if !(defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED)
-
-#include    
-#include    
-#include    
-#include    
-#include    
-
-#ifndef OSATOMIC_DEPRECATED
-#define OSATOMIC_DEPRECATED 1
-#ifndef __cplusplus
-#define OSATOMIC_BARRIER_DEPRECATED_MSG(_r) \
-		"Use " #_r "() from  instead"
-#define OSATOMIC_DEPRECATED_MSG(_r) \
-		"Use " #_r "_explicit(memory_order_relaxed) from  instead"
-#else
-#define OSATOMIC_BARRIER_DEPRECATED_MSG(_r) \
-		"Use std::" #_r "() from  instead"
-#define OSATOMIC_DEPRECATED_MSG(_r) \
-		"Use std::" #_r "_explicit(std::memory_order_relaxed) from  instead"
-#endif
-#define OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(_r) \
-	__OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r))
-#define OSATOMIC_DEPRECATED_REPLACE_WITH(_r) \
-	__OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSATOMIC_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSATOMIC_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSATOMIC_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSATOMIC_DEPRECATED_MSG(_r))
-#else
-#undef OSATOMIC_DEPRECATED
-#define OSATOMIC_DEPRECATED 0
-#define OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(_r)
-#define OSATOMIC_DEPRECATED_REPLACE_WITH(_r)
-#endif
-
-/*
- * WARNING: all addresses passed to these functions must be "naturally aligned",
- * i.e. int32_t pointers must be 32-bit aligned (low 2 bits of
- * address are zeroes), and int64_t pointers must be 64-bit
- * aligned (low 3 bits of address are zeroes.).
- * Note that this is not the default alignment of the int64_t type
- * in the iOS ARMv7 ABI, see
- * {@link //apple_ref/doc/uid/TP40009021-SW8 iPhoneOSABIReference}
- *
- * Note that some versions of the atomic functions incorporate memory barriers
- * and some do not.  Barriers strictly order memory access on weakly-ordered
- * architectures such as ARM.  All loads and stores that appear (in sequential
- * program order) before the barrier are guaranteed to complete before any
- * load or store that appears after the barrier.
- *
- * The barrier operation is typically a no-op on uniprocessor systems and
- * fully enabled on multiprocessor systems. On some platforms, such as ARM,
- * the barrier can be quite expensive.
- *
- * Most code should use the barrier functions to ensure that memory shared
- * between threads is properly synchronized.  For example, if you want to
- * initialize a shared data structure and then atomically increment a variable
- * to indicate that the initialization is complete, you must use
- * {@link OSAtomicIncrement32Barrier} to ensure that the stores to your data
- * structure complete before the atomic increment.
- *
- * Likewise, the consumer of that data structure must use
- * {@link OSAtomicDecrement32Barrier},
- * in order to ensure that their loads of the structure are not executed before
- * the atomic decrement.  On the other hand, if you are simply incrementing a
- * global counter, then it is safe and potentially faster to use
- * {@link OSAtomicIncrement32}.
- *
- * If you are unsure which version to use, prefer the barrier variants as they
- * are safer.
- *
- * For the kernel-space version of this header, see
- * {@link //apple_ref/doc/header/OSAtomic.h OSAtomic.h (Kernel Framework)}
- *
- * @apiuid //apple_ref/doc/header/user_space_OSAtomic.h
- */
-
-__BEGIN_DECLS
-
-/*! @typedef OSAtomic_int64_aligned64_t
- * 64-bit aligned int64_t type.
- * Use for variables whose addresses are passed to OSAtomic*64() functions to
- * get the compiler to generate the required alignment.
- */
-
-#if __has_attribute(aligned)
-typedef int64_t __attribute__((__aligned__((sizeof(int64_t)))))
-		OSAtomic_int64_aligned64_t;
-#else
-typedef int64_t OSAtomic_int64_aligned64_t;
-#endif
-
-/*! @group Arithmetic functions
-    All functions in this group return the new value.
- */
-
-/*! @abstract Atomically adds two 32-bit values.
-    @discussion
-	This function adds the value given by __theAmount to the
-	value in the memory location referenced by __theValue,
- 	storing the result back to that memory location atomically.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int32_t	OSAtomicAdd32( int32_t __theAmount, volatile int32_t *__theValue );
-
-
-/*! @abstract Atomically adds two 32-bit values.
-    @discussion
-	This function adds the value given by __theAmount to the
-	value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicAdd32}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int32_t	OSAtomicAdd32Barrier( int32_t __theAmount, volatile int32_t *__theValue );
-
-
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10 || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_1
-
-/*! @abstract Atomically increments a 32-bit value.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
-int32_t	OSAtomicIncrement32( volatile int32_t *__theValue );
-
-
-/*! @abstract Atomically increments a 32-bit value with a barrier.
-    @discussion
-	This function is equivalent to {@link OSAtomicIncrement32}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
-int32_t	OSAtomicIncrement32Barrier( volatile int32_t *__theValue );
-
-
-/*! @abstract Atomically decrements a 32-bit value.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_sub)
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
-int32_t	OSAtomicDecrement32( volatile int32_t *__theValue );
-
-
-/*! @abstract Atomically decrements a 32-bit value with a barrier.
-    @discussion
-	This function is equivalent to {@link OSAtomicDecrement32}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_sub)
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
-int32_t	OSAtomicDecrement32Barrier( volatile int32_t *__theValue );
-
-#else
-__inline static
-int32_t	OSAtomicIncrement32( volatile int32_t *__theValue )
-            { return OSAtomicAdd32(  1, __theValue); }
-
-__inline static
-int32_t	OSAtomicIncrement32Barrier( volatile int32_t *__theValue )
-            { return OSAtomicAdd32Barrier(  1, __theValue); }
-
-__inline static
-int32_t	OSAtomicDecrement32( volatile int32_t *__theValue )
-            { return OSAtomicAdd32( -1, __theValue); }
-
-__inline static
-int32_t	OSAtomicDecrement32Barrier( volatile int32_t *__theValue )
-            { return OSAtomicAdd32Barrier( -1, __theValue); }
-#endif
-
-
-/*! @abstract Atomically adds two 64-bit values.
-    @discussion
-	This function adds the value given by __theAmount to the
-	value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int64_t	OSAtomicAdd64( int64_t __theAmount,
-		volatile OSAtomic_int64_aligned64_t *__theValue );
-
-
-/*! @abstract Atomically adds two 64-bit values with a barrier.
-    @discussion
-	This function adds the value given by __theAmount to the
-	value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicAdd64}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_3_2)
-int64_t	OSAtomicAdd64Barrier( int64_t __theAmount,
-		volatile OSAtomic_int64_aligned64_t *__theValue );
-
-
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10 || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_1
-
-/*! @abstract Atomically increments a 64-bit value.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
-int64_t	OSAtomicIncrement64( volatile OSAtomic_int64_aligned64_t *__theValue );
-
-
-/*! @abstract Atomically increments a 64-bit value with a barrier.
-    @discussion
-	This function is equivalent to {@link OSAtomicIncrement64}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add)
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
-int64_t	OSAtomicIncrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue );
-
-
-/*! @abstract Atomically decrements a 64-bit value.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_sub)
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
-int64_t	OSAtomicDecrement64( volatile OSAtomic_int64_aligned64_t *__theValue );
-
-
-/*! @abstract Atomically decrements a 64-bit value with a barrier.
-    @discussion
-	This function is equivalent to {@link OSAtomicDecrement64}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_sub)
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1)
-int64_t	OSAtomicDecrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue );
-
-#else
-__inline static
-int64_t	OSAtomicIncrement64( volatile OSAtomic_int64_aligned64_t *__theValue )
-            { return OSAtomicAdd64(  1, __theValue); }
-
-__inline static
-int64_t	OSAtomicIncrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue )
-            { return OSAtomicAdd64Barrier(  1, __theValue); }
-
-__inline static
-int64_t	OSAtomicDecrement64( volatile OSAtomic_int64_aligned64_t *__theValue )
-            { return OSAtomicAdd64( -1, __theValue); }
-
-__inline static
-int64_t	OSAtomicDecrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue )
-            { return OSAtomicAdd64Barrier( -1, __theValue); }
-#endif
-
-
-/*! @group Boolean functions (AND, OR, XOR)
- *
- * @discussion Functions in this group come in four variants for each operation:
- * with and without barriers, and functions that return the original value or
- * the result value of the operation.
- *
- * The "Orig" versions return the original value, (before the operation); the non-Orig
- * versions return the value after the operation.  All are layered on top of
- * {@link OSAtomicCompareAndSwap32} and similar.
- */
-
-/*! @abstract Atomic bitwise OR of two 32-bit values.
-    @discussion
-	This function performs the bitwise OR of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int32_t	OSAtomicOr32( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise OR of two 32-bit values with barrier.
-    @discussion
-	This function performs the bitwise OR of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicOr32}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int32_t	OSAtomicOr32Barrier( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise OR of two 32-bit values returning original.
-    @discussion
-	This function performs the bitwise OR of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-    @result Returns the original value referenced by __theValue.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
-int32_t	OSAtomicOr32Orig( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise OR of two 32-bit values returning original with barrier.
-    @discussion
-	This function performs the bitwise OR of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
- 
-	This function is equivalent to {@link OSAtomicOr32Orig}
-	except that it also introduces a barrier.
-    @result Returns the original value referenced by __theValue.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
-int32_t	OSAtomicOr32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-
-
-/*! @abstract Atomic bitwise AND of two 32-bit values.
-    @discussion
-	This function performs the bitwise AND of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int32_t	OSAtomicAnd32( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise AND of two 32-bit values with barrier.
-    @discussion
-	This function performs the bitwise AND of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicAnd32}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int32_t	OSAtomicAnd32Barrier( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise AND of two 32-bit values returning original.
-    @discussion
-	This function performs the bitwise AND of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-    @result Returns the original value referenced by __theValue.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
-int32_t	OSAtomicAnd32Orig( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise AND of two 32-bit values returning original with barrier.
-    @discussion
-	This function performs the bitwise AND of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicAnd32Orig}
-	except that it also introduces a barrier.
-    @result Returns the original value referenced by __theValue.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
-int32_t	OSAtomicAnd32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-
-
-/*! @abstract Atomic bitwise XOR of two 32-bit values.
-    @discussion
-	This function performs the bitwise XOR of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-    @result Returns the new value.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_xor)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int32_t	OSAtomicXor32( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise XOR of two 32-bit values with barrier.
-    @discussion
-	This function performs the bitwise XOR of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicXor32}
-	except that it also introduces a barrier.
-    @result Returns the new value.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_xor)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-int32_t	OSAtomicXor32Barrier( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise XOR of two 32-bit values returning original.
-    @discussion
-	This function performs the bitwise XOR of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-    @result Returns the original value referenced by __theValue.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_xor)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
-int32_t	OSAtomicXor32Orig( uint32_t __theMask, volatile uint32_t *__theValue );
-
-
-/*! @abstract Atomic bitwise XOR of two 32-bit values returning original with barrier.
-    @discussion
-	This function performs the bitwise XOR of the value given by __theMask
-	with the value in the memory location referenced by __theValue,
-	storing the result back to that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicXor32Orig}
-	except that it also introduces a barrier.
-    @result Returns the original value referenced by __theValue.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_xor)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2)
-int32_t	OSAtomicXor32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue );
- 
-
-/*! @group Compare and swap
- * Functions in this group return true if the swap occured.  There are several versions,
- * depending on data type and on whether or not a barrier is used.
- */
-
-
-/*! @abstract Compare and swap for 32-bit values.
-    @discussion
-	This function compares the value in __oldValue to the value
-	in the memory location referenced by __theValue.  If the values
-	match, this function stores the value from __newValue into
-	that memory location atomically.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-bool    OSAtomicCompareAndSwap32( int32_t __oldValue, int32_t __newValue, volatile int32_t *__theValue );
-
-
-/*! @abstract Compare and swap for 32-bit values with barrier.
-    @discussion
-	This function compares the value in __oldValue to the value
-	in the memory location referenced by __theValue.  If the values
-	match, this function stores the value from __newValue into
-	that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwap32}
-	except that it also introduces a barrier.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-bool    OSAtomicCompareAndSwap32Barrier( int32_t __oldValue, int32_t __newValue, volatile int32_t *__theValue );
-
-
-/*! @abstract Compare and swap pointers.
-    @discussion
-	This function compares the pointer stored in __oldValue to the pointer
-	in the memory location referenced by __theValue.  If the pointers
-	match, this function stores the pointer from __newValue into
-	that memory location atomically.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
-bool	OSAtomicCompareAndSwapPtr( void *__oldValue, void *__newValue, void * volatile *__theValue );
-
-
-/*! @abstract Compare and swap pointers with barrier.
-    @discussion
-	This function compares the pointer stored in __oldValue to the pointer
-	in the memory location referenced by __theValue.  If the pointers
-	match, this function stores the pointer from __newValue into
-	that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwapPtr}
-	except that it also introduces a barrier.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
-bool	OSAtomicCompareAndSwapPtrBarrier( void *__oldValue, void *__newValue, void * volatile *__theValue );
-
-
-/*! @abstract Compare and swap for int values.
-    @discussion
-	This function compares the value in __oldValue to the value
-	in the memory location referenced by __theValue.  If the values
-	match, this function stores the value from __newValue into
-	that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwap32}.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
-bool	OSAtomicCompareAndSwapInt( int __oldValue, int __newValue, volatile int *__theValue );
-
-
-/*! @abstract Compare and swap for int values.
-    @discussion
-	This function compares the value in __oldValue to the value
-	in the memory location referenced by __theValue.  If the values
-	match, this function stores the value from __newValue into
-	that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwapInt}
-	except that it also introduces a barrier.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwap32Barrier}.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
-bool	OSAtomicCompareAndSwapIntBarrier( int __oldValue, int __newValue, volatile int *__theValue );
-
-
-/*! @abstract Compare and swap for long values.
-    @discussion
-	This function compares the value in __oldValue to the value
-	in the memory location referenced by __theValue.  If the values
-	match, this function stores the value from __newValue into
-	that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwap32} on 32-bit architectures, 
-	or {@link OSAtomicCompareAndSwap64} on 64-bit architectures.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
-bool	OSAtomicCompareAndSwapLong( long __oldValue, long __newValue, volatile long *__theValue );
-
-
-/*! @abstract Compare and swap for long values.
-    @discussion
-	This function compares the value in __oldValue to the value
-	in the memory location referenced by __theValue.  If the values
-	match, this function stores the value from __newValue into
-	that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwapLong}
-	except that it also introduces a barrier.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwap32} on 32-bit architectures, 
-	or {@link OSAtomicCompareAndSwap64} on 64-bit architectures.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0)
-bool	OSAtomicCompareAndSwapLongBarrier( long __oldValue, long __newValue, volatile long *__theValue );
-
-
-/*! @abstract Compare and swap for uint64_t values.
-    @discussion
-	This function compares the value in __oldValue to the value
-	in the memory location referenced by __theValue.  If the values
-	match, this function stores the value from __newValue into
-	that memory location atomically.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-bool    OSAtomicCompareAndSwap64( int64_t __oldValue, int64_t __newValue,
-		volatile OSAtomic_int64_aligned64_t *__theValue );
-
-
-/*! @abstract Compare and swap for uint64_t values.
-    @discussion
-	This function compares the value in __oldValue to the value
-	in the memory location referenced by __theValue.  If the values
-	match, this function stores the value from __newValue into
-	that memory location atomically.
-
-	This function is equivalent to {@link OSAtomicCompareAndSwap64}
-	except that it also introduces a barrier.
-    @result Returns TRUE on a match, FALSE otherwise.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_3_2)
-bool    OSAtomicCompareAndSwap64Barrier( int64_t __oldValue, int64_t __newValue,
-		volatile OSAtomic_int64_aligned64_t *__theValue );
-
-
-/* Test and set.
- * They return the original value of the bit, and operate on bit (0x80>>(n&7))
- * in byte ((char*)theAddress + (n>>3)).
- */
-/*! @abstract Atomic test and set
-    @discussion
-	This function tests a bit in the value referenced by
-	__theAddress and if it is not set, sets it.
-
-	The bit is chosen by the value of __n such that the
-	operation will be performed on bit (0x80 >> (__n & 7))
-	of byte ((char *)__theAddress + (n >> 3)).
-
-	For example, if __theAddress points to a 64-bit value,
-	to compare the value of the most significant bit, you would specify
-	56 for __n.
-    @result
-	Returns the original value of the bit being tested.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-bool    OSAtomicTestAndSet( uint32_t __n, volatile void *__theAddress );
-
-
-/*! @abstract Atomic test and set with barrier
-    @discussion
-	This function tests a bit in the value referenced by __theAddress
-	and if it is not set, sets it.
-
-	The bit is chosen by the value of __n such that the
-	operation will be performed on bit (0x80 >> (__n & 7))
-	of byte ((char *)__theAddress + (n >> 3)).
-
-	For example, if __theAddress points to a 64-bit value,
-	to compare the value of the most significant bit, you would specify
-	56 for __n.
-
-	This function is equivalent to {@link OSAtomicTestAndSet}
-	except that it also introduces a barrier.
-    @result
-	Returns the original value of the bit being tested.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-bool    OSAtomicTestAndSetBarrier( uint32_t __n, volatile void *__theAddress );
-
-
-
-/*! @abstract Atomic test and clear
-    @discussion
-	This function tests a bit in the value referenced by __theAddress
-	and if it is not cleared, clears it.
-
-	The bit is chosen by the value of __n such that the
-	operation will be performed on bit (0x80 >> (__n & 7))
-	of byte ((char *)__theAddress + (n >> 3)).
-
-	For example, if __theAddress points to a 64-bit value,
-	to compare the value of the most significant bit, you would specify
-	56 for __n.
- 
-    @result
-	Returns the original value of the bit being tested.
- */
-OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-bool    OSAtomicTestAndClear( uint32_t __n, volatile void *__theAddress );
-
-
-/*! @abstract Atomic test and clear
-    @discussion
-	This function tests a bit in the value referenced by __theAddress
-	and if it is not cleared, clears it.
- 
-	The bit is chosen by the value of __n such that the
-	operation will be performed on bit (0x80 >> (__n & 7))
-	of byte ((char *)__theAddress + (n >> 3)).
- 
-	For example, if __theAddress points to a 64-bit value,
-	to compare the value of the most significant bit, you would specify
-	56 for __n.
- 
-	This function is equivalent to {@link OSAtomicTestAndSet}
-	except that it also introduces a barrier.
-    @result
-	Returns the original value of the bit being tested.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-bool    OSAtomicTestAndClearBarrier( uint32_t __n, volatile void *__theAddress );
- 
-
-/*! @group Memory barriers */
-
-/*! @abstract Memory barrier.
-    @discussion
-	This function serves as both a read and write barrier.
- */
-OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_thread_fence)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-void    OSMemoryBarrier( void );
-
-__END_DECLS
-
-#else // defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED
-
-/*
- * Inline implementations of the legacy OSAtomic interfaces in terms of
- * C11  resp. C++11  primitives.
- * Direct use of those primitives is preferred.
- */
-
-#include 
-
-#include 
-#include 
-#include 
-
-#ifdef __cplusplus
-extern "C++" {
-#if !(__has_include() && __has_extension(cxx_atomic))
-#error Cannot use inlined OSAtomic without  and C++11 atomics
-#endif
-#include 
-typedef std::atomic _OSAtomic_uint8_t;
-typedef std::atomic _OSAtomic_int32_t;
-typedef std::atomic _OSAtomic_uint32_t;
-typedef std::atomic _OSAtomic_int64_t;
-typedef std::atomic _OSAtomic_void_ptr_t;
-#define OSATOMIC_STD(_a) std::_a
-__BEGIN_DECLS
-#else
-#if !(__has_include() && __has_extension(c_atomic))
-#error Cannot use inlined OSAtomic without  and C11 atomics
-#endif
-#include 
-typedef _Atomic(uint8_t) _OSAtomic_uint8_t;
-typedef _Atomic(int32_t) _OSAtomic_int32_t;
-typedef _Atomic(uint32_t) _OSAtomic_uint32_t;
-typedef _Atomic(int64_t) _OSAtomic_int64_t;
-typedef _Atomic(void*) _OSAtomic_void_ptr_t;
-#define OSATOMIC_STD(_a) _a
-#endif
-
-#if __has_extension(c_alignof) && __has_attribute(aligned)
-typedef int64_t __attribute__((__aligned__(_Alignof(_OSAtomic_int64_t))))
-		OSAtomic_int64_aligned64_t;
-#elif __has_attribute(aligned)
-typedef int64_t __attribute__((__aligned__((sizeof(_OSAtomic_int64_t)))))
-		OSAtomic_int64_aligned64_t;
-#else
-typedef int64_t OSAtomic_int64_aligned64_t;
-#endif
-
-#if __has_attribute(always_inline)
-#define OSATOMIC_INLINE static __inline __attribute__((__always_inline__))
-#else
-#define OSATOMIC_INLINE static __inline
-#endif
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicAdd32(int32_t __theAmount, volatile int32_t *__theValue)
-{
-	return (OSATOMIC_STD(atomic_fetch_add_explicit)(
-			(volatile _OSAtomic_int32_t*) __theValue, __theAmount,
-			OSATOMIC_STD(memory_order_relaxed)) + __theAmount);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicAdd32Barrier(int32_t __theAmount, volatile int32_t *__theValue)
-{
-	return (OSATOMIC_STD(atomic_fetch_add_explicit)(
-			(volatile _OSAtomic_int32_t*) __theValue, __theAmount,
-			OSATOMIC_STD(memory_order_seq_cst)) + __theAmount);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicIncrement32(volatile int32_t *__theValue)
-{
-	return OSAtomicAdd32(1, __theValue);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicIncrement32Barrier(volatile int32_t *__theValue)
-{
-	return OSAtomicAdd32Barrier(1, __theValue);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicDecrement32(volatile int32_t *__theValue)
-{
-	return OSAtomicAdd32(-1, __theValue);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicDecrement32Barrier(volatile int32_t *__theValue)
-{
-	return OSAtomicAdd32Barrier(-1, __theValue);
-}
-
-OSATOMIC_INLINE
-int64_t
-OSAtomicAdd64(int64_t __theAmount,
-		volatile OSAtomic_int64_aligned64_t *__theValue)
-{
-	return (OSATOMIC_STD(atomic_fetch_add_explicit)(
-			(volatile _OSAtomic_int64_t*) __theValue, __theAmount,
-			OSATOMIC_STD(memory_order_relaxed)) + __theAmount);
-}
-
-OSATOMIC_INLINE
-int64_t
-OSAtomicAdd64Barrier(int64_t __theAmount,
-		volatile OSAtomic_int64_aligned64_t *__theValue)
-{
-	return (OSATOMIC_STD(atomic_fetch_add_explicit)(
-			(volatile _OSAtomic_int64_t*) __theValue, __theAmount,
-			OSATOMIC_STD(memory_order_seq_cst)) + __theAmount);
-}
-
-OSATOMIC_INLINE
-int64_t
-OSAtomicIncrement64(volatile OSAtomic_int64_aligned64_t *__theValue)
-{
-	return OSAtomicAdd64(1, __theValue);
-}
-
-OSATOMIC_INLINE
-int64_t
-OSAtomicIncrement64Barrier(volatile OSAtomic_int64_aligned64_t *__theValue)
-{
-	return OSAtomicAdd64Barrier(1, __theValue);
-}
-
-OSATOMIC_INLINE
-int64_t
-OSAtomicDecrement64(volatile OSAtomic_int64_aligned64_t *__theValue)
-{
-	return OSAtomicAdd64(-1, __theValue);
-}
-
-OSATOMIC_INLINE
-int64_t
-OSAtomicDecrement64Barrier(volatile OSAtomic_int64_aligned64_t *__theValue)
-{
-	return OSAtomicAdd64Barrier(-1, __theValue);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicOr32(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_relaxed)) | __theMask);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicOr32Barrier(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_seq_cst)) | __theMask);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicOr32Orig(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicOr32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_seq_cst)));
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicAnd32(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_relaxed)) & __theMask);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicAnd32Barrier(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_seq_cst)) & __theMask);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicAnd32Orig(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicAnd32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_seq_cst)));
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicXor32(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_relaxed)) ^ __theMask);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicXor32Barrier(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_seq_cst)) ^ __theMask);
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicXor32Orig(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-int32_t
-OSAtomicXor32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue)
-{
-	return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)(
-			(volatile _OSAtomic_uint32_t*)__theValue, __theMask,
-			OSATOMIC_STD(memory_order_seq_cst)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwap32(int32_t __oldValue, int32_t __newValue,
-		volatile int32_t *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile _OSAtomic_int32_t*)__theValue, &__oldValue, __newValue,
-			OSATOMIC_STD(memory_order_relaxed),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwap32Barrier(int32_t __oldValue, int32_t __newValue,
-		volatile int32_t *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile _OSAtomic_int32_t*)__theValue, &__oldValue, __newValue,
-			OSATOMIC_STD(memory_order_seq_cst),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwapPtr(void *__oldValue, void *__newValue,
-		void * volatile *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile _OSAtomic_void_ptr_t*)__theValue, &__oldValue, __newValue,
-			OSATOMIC_STD(memory_order_relaxed),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwapPtrBarrier(void *__oldValue, void *__newValue,
-		void * volatile *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile _OSAtomic_void_ptr_t*)__theValue, &__oldValue, __newValue,
-			OSATOMIC_STD(memory_order_seq_cst),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwapInt(int __oldValue, int __newValue,
-		volatile int *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile OSATOMIC_STD(atomic_int)*)__theValue, &__oldValue,
-			__newValue, OSATOMIC_STD(memory_order_relaxed),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwapIntBarrier(int __oldValue, int __newValue,
-		volatile int *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile OSATOMIC_STD(atomic_int)*)__theValue, &__oldValue,
-			__newValue, OSATOMIC_STD(memory_order_seq_cst),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwapLong(long __oldValue, long __newValue,
-		volatile long *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile OSATOMIC_STD(atomic_long)*)__theValue, &__oldValue,
-			__newValue, OSATOMIC_STD(memory_order_relaxed),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwapLongBarrier(long __oldValue, long __newValue,
-		volatile long *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile OSATOMIC_STD(atomic_long)*)__theValue, &__oldValue,
-			__newValue, OSATOMIC_STD(memory_order_seq_cst),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwap64(int64_t __oldValue, int64_t __newValue,
-		volatile OSAtomic_int64_aligned64_t *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile _OSAtomic_int64_t*)__theValue, &__oldValue, __newValue,
-			OSATOMIC_STD(memory_order_relaxed),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicCompareAndSwap64Barrier(int64_t __oldValue, int64_t __newValue,
-		volatile OSAtomic_int64_aligned64_t *__theValue)
-{
-	return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)(
-			(volatile _OSAtomic_int64_t*)__theValue, &__oldValue, __newValue,
-			OSATOMIC_STD(memory_order_seq_cst),
-			OSATOMIC_STD(memory_order_relaxed)));
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicTestAndSet(uint32_t __n, volatile void *__theAddress)
-{
-	uintptr_t a = (uintptr_t)__theAddress + (__n >> 3);
-	uint8_t v = (0x80u >> (__n & 7));
-	return (OSATOMIC_STD(atomic_fetch_or_explicit)((_OSAtomic_uint8_t*)a, v,
-			OSATOMIC_STD(memory_order_relaxed)) & v);
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicTestAndSetBarrier(uint32_t __n, volatile void *__theAddress)
-{
-	uintptr_t a = (uintptr_t)__theAddress + (__n >> 3);
-	uint8_t v = (0x80u >> (__n & 7));
-	return (OSATOMIC_STD(atomic_fetch_or_explicit)((_OSAtomic_uint8_t*)a, v,
-			OSATOMIC_STD(memory_order_seq_cst)) & v);
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicTestAndClear(uint32_t __n, volatile void *__theAddress)
-{
-	uintptr_t a = (uintptr_t)__theAddress + (__n >> 3);
-	uint8_t v = (0x80u >> (__n & 7));
-	return (OSATOMIC_STD(atomic_fetch_and_explicit)((_OSAtomic_uint8_t*)a,
-			(uint8_t)~v, OSATOMIC_STD(memory_order_relaxed)) & v);
-}
-
-OSATOMIC_INLINE
-bool
-OSAtomicTestAndClearBarrier(uint32_t __n, volatile void *__theAddress)
-{
-	uintptr_t a = (uintptr_t)__theAddress + (__n >> 3);
-	uint8_t v = (0x80u >> (__n & 7));
-	return (OSATOMIC_STD(atomic_fetch_and_explicit)((_OSAtomic_uint8_t*)a,
-			(uint8_t)~v, OSATOMIC_STD(memory_order_seq_cst)) & v);
-}
-
-OSATOMIC_INLINE
-void
-OSMemoryBarrier(void)
-{
-	OSATOMIC_STD(atomic_thread_fence)(OSATOMIC_STD(memory_order_seq_cst));
-}
-
-#undef OSATOMIC_INLINE
-#undef OSATOMIC_STD
-#ifdef __cplusplus
-__END_DECLS
-} // extern "C++"
-#endif
-
-#endif // defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED
-
-#endif /* _OSATOMIC_DEPRECATED_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomicQueue.h b/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomicQueue.h
deleted file mode 100644
index 3f673861e32df62f42008f3e1d27b5776134ded6..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libkern/OSAtomicQueue.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 2004-2016 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@
- */
-
-#ifndef _OSATOMICQUEUE_H_
-#define _OSATOMICQUEUE_H_
-
-#include    
-#include    
-#include    
-#include    
-
-#include    
-
-/*! @header Lockless atomic enqueue and dequeue
- * These routines manipulate singly-linked LIFO lists.
- */
-
-__BEGIN_DECLS
-
-/*! @abstract The data structure for a queue head.
-    @discussion
-	You should always initialize a queue head structure with the
-	initialization vector {@link OS_ATOMIC_QUEUE_INIT} before use.
- */
-#if defined(__LP64__)
-
-typedef volatile struct {
-	void	*opaque1;
-	long	 opaque2;
-} __attribute__ ((aligned (16))) OSQueueHead;
-
-#else
-
-typedef volatile struct {
-	void	*opaque1;
-	long	 opaque2;
-} OSQueueHead;
-
-#endif
-
-/*! @abstract The initialization vector for a queue head. */
-#define	OS_ATOMIC_QUEUE_INIT	{ NULL, 0 }
-
-/*! @abstract Enqueue an element onto a list.
-    @discussion
-	Memory barriers are incorporated as needed to permit thread-safe access
-	to the queue element.
-    @param __list
-	The list on which you want to enqueue the element.
-    @param __new
-	The element to add.
-    @param __offset
-	The "offset" parameter is the offset (in bytes) of the link field
-	from the beginning of the data structure being queued (__new).
-	The link field should be a pointer type.
-	The __offset value needs to be same for all enqueuing and
-	dequeuing operations on the same list, even if different structure types
-	are enqueued on that list.  The use of offsetset(), defined in
-	stddef.h is the common way to specify the __offset
-	value.
- */
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_4_0)
-void  OSAtomicEnqueue( OSQueueHead *__list, void *__new, size_t __offset);
-
-
-/*! @abstract Dequeue an element from a list.
-    @discussion
-	Memory barriers are incorporated as needed to permit thread-safe access
-	to the queue element.
-    @param __list
-	The list from which you want to dequeue an element.
-    @param __offset
-	The "offset" parameter is the offset (in bytes) of the link field
-	from the beginning of the data structure being dequeued (__new).
-	The link field should be a pointer type.
-	The __offset value needs to be same for all enqueuing and
-	dequeuing operations on the same list, even if different structure types
-	are enqueued on that list.  The use of offsetset(), defined in
-	stddef.h is the common way to specify the __offset
-	value.
-	IMPORTANT: the memory backing the link field of a queue element must not be
-	unmapped after OSAtomicDequeue() returns until all concurrent calls to
-	OSAtomicDequeue() for the same list on other threads have also returned,
-	as they may still be accessing that memory location.
-    @result
-	Returns the most recently enqueued element, or NULL if the
-	list is empty.
- */
-__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_4_0)
-void* OSAtomicDequeue( OSQueueHead *__list, size_t __offset);
-
-#if defined(__x86_64__) || defined(__i386__)
-
-/*! @group Lockless atomic fifo enqueue and dequeue
- * These routines manipulate singly-linked FIFO lists.
- */
-
-/*! @abstract The data structure for a fifo queue head.
-    @discussion
-	You should always initialize a fifo queue head structure with the
-	initialization vector {@link OS_ATOMIC_FIFO_QUEUE_INIT} before use.
- */
-#if defined(__x86_64__)
-
-typedef	volatile struct {
-	void	*opaque1;
-	void	*opaque2;
-	int	 opaque3;
-} __attribute__ ((aligned (16))) OSFifoQueueHead;
-
-#else
-
-typedef	volatile struct {
-	void	*opaque1;
-	void	*opaque2;
-	int	 opaque3;
-} OSFifoQueueHead;
-
-#endif
-
-/*! @abstract The initialization vector for a fifo queue head. */
-#define OS_ATOMIC_FIFO_QUEUE_INIT   { NULL, NULL, 0 }
-
-/*! @abstract Enqueue an element onto a list.
-    @discussion
-	Memory barriers are incorporated as needed to permit thread-safe access
-	to the queue element.
-    @param __list
-	The list on which you want to enqueue the element.
-    @param __new
-	The element to add.
-    @param __offset
-	The "offset" parameter is the offset (in bytes) of the link field
-	from the beginning of the data structure being queued (__new).
-	The link field should be a pointer type.
-	The __offset value needs to be same for all enqueuing and
-	dequeuing operations on the same list, even if different structure types
-	are enqueued on that list.  The use of offsetset(), defined in
-	stddef.h is the common way to specify the __offset
-	value.
- */
-__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA)
-void  OSAtomicFifoEnqueue( OSFifoQueueHead *__list, void *__new, size_t __offset);
-
-/*! @abstract Dequeue an element from a list.
-    @discussion
-	Memory barriers are incorporated as needed to permit thread-safe access
-	to the queue element.
-    @param __list
-	The list from which you want to dequeue an element.
-    @param __offset
-	The "offset" parameter is the offset (in bytes) of the link field
-	from the beginning of the data structure being dequeued (__new).
-	The link field should be a pointer type.
-	The __offset value needs to be same for all enqueuing and
-	dequeuing operations on the same list, even if different structure types
-	are enqueued on that list.  The use of offsetset(), defined in
-	stddef.h is the common way to specify the __offset
-	value.
-    @result
-	Returns the oldest enqueued element, or NULL if the
-	list is empty.
- */
-__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA)
-void* OSAtomicFifoDequeue( OSFifoQueueHead *__list, size_t __offset);
-
-#endif /* __i386__ || __x86_64__ */
-
-__END_DECLS
-
-#endif /* _OSATOMICQUEUE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libkern/OSByteOrder.h b/lib/libc/include/x86_64-macos.10-none/libkern/OSByteOrder.h
deleted file mode 100644
index 25563e26e7add599ca9fab97f627746aeb54e182..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libkern/OSByteOrder.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _OS_OSBYTEORDER_H
-#define _OS_OSBYTEORDER_H
-
-#include 
-#include 
-
-/* Macros for swapping constant values in the preprocessing stage. */
-#define OSSwapConstInt16(x)     __DARWIN_OSSwapConstInt16(x)
-#define OSSwapConstInt32(x)     __DARWIN_OSSwapConstInt32(x)
-#define OSSwapConstInt64(x)     __DARWIN_OSSwapConstInt64(x)
-
-#if defined(__GNUC__)
-
-#if (defined(__i386__) || defined(__x86_64__))
-#include 
-#else
-#include 
-#endif
-
-#else /* ! __GNUC__ */
-
-#include 
-
-#endif /* __GNUC__ */
-
-#define OSSwapInt16(x)  __DARWIN_OSSwapInt16(x)
-#define OSSwapInt32(x)  __DARWIN_OSSwapInt32(x)
-#define OSSwapInt64(x)  __DARWIN_OSSwapInt64(x)
-
-enum {
-	OSUnknownByteOrder,
-	OSLittleEndian,
-	OSBigEndian
-};
-
-OS_INLINE
-int32_t
-OSHostByteOrder(void)
-{
-#if defined(__LITTLE_ENDIAN__)
-	return OSLittleEndian;
-#elif defined(__BIG_ENDIAN__)
-	return OSBigEndian;
-#else
-	return OSUnknownByteOrder;
-#endif
-}
-
-#define OSReadBigInt(x, y)              OSReadBigInt32(x, y)
-#define OSWriteBigInt(x, y, z)          OSWriteBigInt32(x, y, z)
-#define OSSwapBigToHostInt(x)           OSSwapBigToHostInt32(x)
-#define OSSwapHostToBigInt(x)           OSSwapHostToBigInt32(x)
-#define OSReadLittleInt(x, y)           OSReadLittleInt32(x, y)
-#define OSWriteLittleInt(x, y, z)       OSWriteLittleInt32(x, y, z)
-#define OSSwapHostToLittleInt(x)        OSSwapHostToLittleInt32(x)
-#define OSSwapLittleToHostInt(x)        OSSwapLittleToHostInt32(x)
-
-/* Functions for loading native endian values. */
-
-OS_INLINE
-uint16_t
-_OSReadInt16(
-	const volatile void               * base,
-	uintptr_t                     byteOffset
-	)
-{
-	return *(volatile uint16_t *)((uintptr_t)base + byteOffset);
-}
-
-OS_INLINE
-uint32_t
-_OSReadInt32(
-	const volatile void               * base,
-	uintptr_t                     byteOffset
-	)
-{
-	return *(volatile uint32_t *)((uintptr_t)base + byteOffset);
-}
-
-OS_INLINE
-uint64_t
-_OSReadInt64(
-	const volatile void               * base,
-	uintptr_t                     byteOffset
-	)
-{
-	return *(volatile uint64_t *)((uintptr_t)base + byteOffset);
-}
-
-/* Functions for storing native endian values. */
-
-OS_INLINE
-void
-_OSWriteInt16(
-	volatile void               * base,
-	uintptr_t                     byteOffset,
-	uint16_t                      data
-	)
-{
-	*(volatile uint16_t *)((uintptr_t)base + byteOffset) = data;
-}
-
-OS_INLINE
-void
-_OSWriteInt32(
-	volatile void               * base,
-	uintptr_t                     byteOffset,
-	uint32_t                      data
-	)
-{
-	*(volatile uint32_t *)((uintptr_t)base + byteOffset) = data;
-}
-
-OS_INLINE
-void
-_OSWriteInt64(
-	volatile void               * base,
-	uintptr_t                     byteOffset,
-	uint64_t                      data
-	)
-{
-	*(volatile uint64_t *)((uintptr_t)base + byteOffset) = data;
-}
-
-#if             defined(__BIG_ENDIAN__)
-
-/* Functions for loading big endian to host endianess. */
-
-#define OSReadBigInt16(base, byteOffset) _OSReadInt16(base, byteOffset)
-#define OSReadBigInt32(base, byteOffset) _OSReadInt32(base, byteOffset)
-#define OSReadBigInt64(base, byteOffset) _OSReadInt64(base, byteOffset)
-
-/* Functions for storing host endianess to big endian. */
-
-#define OSWriteBigInt16(base, byteOffset, data) _OSWriteInt16(base, byteOffset, data)
-#define OSWriteBigInt32(base, byteOffset, data) _OSWriteInt32(base, byteOffset, data)
-#define OSWriteBigInt64(base, byteOffset, data) _OSWriteInt64(base, byteOffset, data)
-
-/* Functions for loading little endian to host endianess. */
-
-#define OSReadLittleInt16(base, byteOffset) OSReadSwapInt16(base, byteOffset)
-#define OSReadLittleInt32(base, byteOffset) OSReadSwapInt32(base, byteOffset)
-#define OSReadLittleInt64(base, byteOffset) OSReadSwapInt64(base, byteOffset)
-
-/* Functions for storing host endianess to little endian. */
-
-#define OSWriteLittleInt16(base, byteOffset, data) OSWriteSwapInt16(base, byteOffset, data)
-#define OSWriteLittleInt32(base, byteOffset, data) OSWriteSwapInt32(base, byteOffset, data)
-#define OSWriteLittleInt64(base, byteOffset, data) OSWriteSwapInt64(base, byteOffset, data)
-
-/* Host endianess to big endian byte swapping macros for constants. */
-
-#define OSSwapHostToBigConstInt16(x) ((uint16_t)(x))
-#define OSSwapHostToBigConstInt32(x) ((uint32_t)(x))
-#define OSSwapHostToBigConstInt64(x) ((uint64_t)(x))
-
-/* Generic host endianess to big endian byte swapping functions. */
-
-#define OSSwapHostToBigInt16(x) ((uint16_t)(x))
-#define OSSwapHostToBigInt32(x) ((uint32_t)(x))
-#define OSSwapHostToBigInt64(x) ((uint64_t)(x))
-
-/* Host endianess to little endian byte swapping macros for constants. */
-
-#define OSSwapHostToLittleConstInt16(x) OSSwapConstInt16(x)
-#define OSSwapHostToLittleConstInt32(x) OSSwapConstInt32(x)
-#define OSSwapHostToLittleConstInt64(x) OSSwapConstInt64(x)
-
-/* Generic host endianess to little endian byte swapping functions. */
-
-#define OSSwapHostToLittleInt16(x) OSSwapInt16(x)
-#define OSSwapHostToLittleInt32(x) OSSwapInt32(x)
-#define OSSwapHostToLittleInt64(x) OSSwapInt64(x)
-
-/* Big endian to host endianess byte swapping macros for constants. */
-
-#define OSSwapBigToHostConstInt16(x) ((uint16_t)(x))
-#define OSSwapBigToHostConstInt32(x) ((uint32_t)(x))
-#define OSSwapBigToHostConstInt64(x) ((uint64_t)(x))
-
-/* Generic big endian to host endianess byte swapping functions. */
-
-#define OSSwapBigToHostInt16(x) ((uint16_t)(x))
-#define OSSwapBigToHostInt32(x) ((uint32_t)(x))
-#define OSSwapBigToHostInt64(x) ((uint64_t)(x))
-
-/* Little endian to host endianess byte swapping macros for constants. */
-
-#define OSSwapLittleToHostConstInt16(x) OSSwapConstInt16(x)
-#define OSSwapLittleToHostConstInt32(x) OSSwapConstInt32(x)
-#define OSSwapLittleToHostConstInt64(x) OSSwapConstInt64(x)
-
-/* Generic little endian to host endianess byte swapping functions. */
-
-#define OSSwapLittleToHostInt16(x) OSSwapInt16(x)
-#define OSSwapLittleToHostInt32(x) OSSwapInt32(x)
-#define OSSwapLittleToHostInt64(x) OSSwapInt64(x)
-
-#elif           defined(__LITTLE_ENDIAN__)
-
-/* Functions for loading big endian to host endianess. */
-
-#define OSReadBigInt16(base, byteOffset) OSReadSwapInt16(base, byteOffset)
-#define OSReadBigInt32(base, byteOffset) OSReadSwapInt32(base, byteOffset)
-#define OSReadBigInt64(base, byteOffset) OSReadSwapInt64(base, byteOffset)
-
-/* Functions for storing host endianess to big endian. */
-
-#define OSWriteBigInt16(base, byteOffset, data) OSWriteSwapInt16(base, byteOffset, data)
-#define OSWriteBigInt32(base, byteOffset, data) OSWriteSwapInt32(base, byteOffset, data)
-#define OSWriteBigInt64(base, byteOffset, data) OSWriteSwapInt64(base, byteOffset, data)
-
-/* Functions for loading little endian to host endianess. */
-
-#define OSReadLittleInt16(base, byteOffset) _OSReadInt16(base, byteOffset)
-#define OSReadLittleInt32(base, byteOffset) _OSReadInt32(base, byteOffset)
-#define OSReadLittleInt64(base, byteOffset) _OSReadInt64(base, byteOffset)
-
-/* Functions for storing host endianess to little endian. */
-
-#define OSWriteLittleInt16(base, byteOffset, data) _OSWriteInt16(base, byteOffset, data)
-#define OSWriteLittleInt32(base, byteOffset, data) _OSWriteInt32(base, byteOffset, data)
-#define OSWriteLittleInt64(base, byteOffset, data) _OSWriteInt64(base, byteOffset, data)
-
-/* Host endianess to big endian byte swapping macros for constants. */
-
-#define OSSwapHostToBigConstInt16(x) OSSwapConstInt16(x)
-#define OSSwapHostToBigConstInt32(x) OSSwapConstInt32(x)
-#define OSSwapHostToBigConstInt64(x) OSSwapConstInt64(x)
-
-/* Generic host endianess to big endian byte swapping functions. */
-
-#define OSSwapHostToBigInt16(x) OSSwapInt16(x)
-#define OSSwapHostToBigInt32(x) OSSwapInt32(x)
-#define OSSwapHostToBigInt64(x) OSSwapInt64(x)
-
-/* Host endianess to little endian byte swapping macros for constants. */
-
-#define OSSwapHostToLittleConstInt16(x) ((uint16_t)(x))
-#define OSSwapHostToLittleConstInt32(x) ((uint32_t)(x))
-#define OSSwapHostToLittleConstInt64(x) ((uint64_t)(x))
-
-/* Generic host endianess to little endian byte swapping functions. */
-
-#define OSSwapHostToLittleInt16(x) ((uint16_t)(x))
-#define OSSwapHostToLittleInt32(x) ((uint32_t)(x))
-#define OSSwapHostToLittleInt64(x) ((uint64_t)(x))
-
-/* Big endian to host endianess byte swapping macros for constants. */
-
-#define OSSwapBigToHostConstInt16(x) OSSwapConstInt16(x)
-#define OSSwapBigToHostConstInt32(x) OSSwapConstInt32(x)
-#define OSSwapBigToHostConstInt64(x) OSSwapConstInt64(x)
-
-/* Generic big endian to host endianess byte swapping functions. */
-
-#define OSSwapBigToHostInt16(x) OSSwapInt16(x)
-#define OSSwapBigToHostInt32(x) OSSwapInt32(x)
-#define OSSwapBigToHostInt64(x) OSSwapInt64(x)
-
-/* Little endian to host endianess byte swapping macros for constants. */
-
-#define OSSwapLittleToHostConstInt16(x) ((uint16_t)(x))
-#define OSSwapLittleToHostConstInt32(x) ((uint32_t)(x))
-#define OSSwapLittleToHostConstInt64(x) ((uint64_t)(x))
-
-/* Generic little endian to host endianess byte swapping functions. */
-
-#define OSSwapLittleToHostInt16(x) ((uint16_t)(x))
-#define OSSwapLittleToHostInt32(x) ((uint32_t)(x))
-#define OSSwapLittleToHostInt64(x) ((uint64_t)(x))
-
-#else
-#error Unknown endianess.
-#endif
-
-#endif /* ! _OS_OSBYTEORDER_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libkern/OSSpinLockDeprecated.h b/lib/libc/include/x86_64-macos.10-none/libkern/OSSpinLockDeprecated.h
deleted file mode 100644
index a654a7bbc2d8cf3a02c77cd4f2af942f7eca09bb..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libkern/OSSpinLockDeprecated.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (c) 2004-2016 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@
- */
-
-#ifndef _OSSPINLOCK_DEPRECATED_H_
-#define _OSSPINLOCK_DEPRECATED_H_
-
-/*! @header
- * These are deprecated legacy interfaces for userspace spinlocks.
- *
- * These interfaces should no longer be used, particularily in situations where
- * threads of differing priorities may contend on the same spinlock.
- *
- * The interfaces in  should be used instead in cases where a very
- * low-level lock primitive is required. In general however, using higher level
- * synchronization primitives such as those provided by the pthread or dispatch
- * subsystems should be preferred.
- *
- * Define OSSPINLOCK_USE_INLINED=1 to get inline implementations of these
- * interfaces in terms of the  primitives. This is intended as a
- * transition convenience, direct use of those primitives is preferred.
- */
-
-#ifndef OSSPINLOCK_DEPRECATED
-#define OSSPINLOCK_DEPRECATED 1
-#define OSSPINLOCK_DEPRECATED_MSG(_r) "Use " #_r "() from  instead"
-#define OSSPINLOCK_DEPRECATED_REPLACE_WITH(_r) \
-	__OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSSPINLOCK_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSSPINLOCK_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSSPINLOCK_DEPRECATED_MSG(_r)) \
-	__OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSSPINLOCK_DEPRECATED_MSG(_r))
-#else
-#undef OSSPINLOCK_DEPRECATED
-#define OSSPINLOCK_DEPRECATED 0
-#define OSSPINLOCK_DEPRECATED_REPLACE_WITH(_r)
-#endif
-
-#if !(defined(OSSPINLOCK_USE_INLINED) && OSSPINLOCK_USE_INLINED)
-
-#include    
-#include    
-#include    
-#include    
-#include    
-
-__BEGIN_DECLS
-
-/*! @abstract The default value for an OSSpinLock.
-    @discussion
-	The convention is that unlocked is zero, locked is nonzero.
- */
-#define	OS_SPINLOCK_INIT    0
-
-
-/*! @abstract Data type for a spinlock.
-    @discussion
-	You should always initialize a spinlock to {@link OS_SPINLOCK_INIT} before
-	using it.
- */
-typedef int32_t OSSpinLock OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock);
-
-
-/*! @abstract Locks a spinlock if it would not block
-    @result
-	Returns false if the lock was already held by another thread,
-	true if it took the lock successfully.
- */
-OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_trylock)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-bool    OSSpinLockTry( volatile OSSpinLock *__lock );
-
-
-/*! @abstract Locks a spinlock
-    @discussion
-	Although the lock operation spins, it employs various strategies to back
-	off if the lock is held.
- */
-OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_lock)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-void    OSSpinLockLock( volatile OSSpinLock *__lock );
-
-
-/*! @abstract Unlocks a spinlock */
-OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_unlock)
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-void    OSSpinLockUnlock( volatile OSSpinLock *__lock );
-
-__END_DECLS
-
-#else /* OSSPINLOCK_USE_INLINED */
-
-/*
- * Inline implementations of the legacy OSSpinLock interfaces in terms of the
- * of the  primitives. Direct use of those primitives is preferred.
- *
- * NOTE: the locked value of os_unfair_lock is implementation defined and
- * subject to change, code that relies on the specific locked value used by the
- * legacy OSSpinLock interface WILL break when using these inline
- * implementations in terms of os_unfair_lock.
- */
-
-#if !OSSPINLOCK_USE_INLINED_TRANSPARENT
-
-#include 
-
-__BEGIN_DECLS
-
-#if __has_attribute(always_inline)
-#define OSSPINLOCK_INLINE static __inline
-#else
-#define OSSPINLOCK_INLINE static __inline __attribute__((__always_inline__))
-#endif
-
-#define OS_SPINLOCK_INIT 0
-typedef int32_t OSSpinLock;
-
-#if  __has_extension(c_static_assert)
-_Static_assert(sizeof(OSSpinLock) == sizeof(os_unfair_lock),
-		"Incompatible os_unfair_lock type");
-#endif
-
-OSSPINLOCK_INLINE
-void
-OSSpinLockLock(volatile OSSpinLock *__lock)
-{
-	os_unfair_lock_t lock = (os_unfair_lock_t)__lock;
-	return os_unfair_lock_lock(lock);
-}
-
-OSSPINLOCK_INLINE
-bool
-OSSpinLockTry(volatile OSSpinLock *__lock)
-{
-	os_unfair_lock_t lock = (os_unfair_lock_t)__lock;
-	return os_unfair_lock_trylock(lock);
-}
-
-OSSPINLOCK_INLINE
-void
-OSSpinLockUnlock(volatile OSSpinLock *__lock)
-{
-	os_unfair_lock_t lock = (os_unfair_lock_t)__lock;
-	return os_unfair_lock_unlock(lock);
-}
-
-#undef OSSPINLOCK_INLINE
-
-__END_DECLS
-
-#else /* OSSPINLOCK_USE_INLINED_TRANSPARENT */
-
-#include    
-#include    
-#include    
-#include    
-#include    
-
-#define OS_NOSPIN_LOCK_AVAILABILITY \
-		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) \
-		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0)
-
-__BEGIN_DECLS
-
-#define OS_SPINLOCK_INIT 0
-typedef int32_t OSSpinLock OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock);
-typedef volatile OSSpinLock *_os_nospin_lock_t
-		OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_t);
-
-OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_lock)
-OS_NOSPIN_LOCK_AVAILABILITY
-void _os_nospin_lock_lock(_os_nospin_lock_t lock);
-#undef OSSpinLockLock
-#define OSSpinLockLock(lock) _os_nospin_lock_lock(lock)
-
-OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_trylock)
-OS_NOSPIN_LOCK_AVAILABILITY
-bool _os_nospin_lock_trylock(_os_nospin_lock_t lock);
-#undef OSSpinLockTry
-#define OSSpinLockTry(lock) _os_nospin_lock_trylock(lock)
-
-OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_unlock)
-OS_NOSPIN_LOCK_AVAILABILITY
-void _os_nospin_lock_unlock(_os_nospin_lock_t lock);
-#undef OSSpinLockUnlock
-#define OSSpinLockUnlock(lock) _os_nospin_lock_unlock(lock)
-
-__END_DECLS
-
-#endif /* OSSPINLOCK_USE_INLINED_TRANSPARENT */
-
-#endif /* OSSPINLOCK_USE_INLINED */
-
-#endif /* _OSSPINLOCK_DEPRECATED_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libkern/_OSByteOrder.h b/lib/libc/include/x86_64-macos.10-none/libkern/_OSByteOrder.h
deleted file mode 100644
index 06614c63eaed3f7d595e269693bbec428bae9eb3..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libkern/_OSByteOrder.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _OS__OSBYTEORDER_H
-#define _OS__OSBYTEORDER_H
-
-/*
- * This header is normally included from .  However,
- *  also includes this in the case of little-endian
- * architectures, so that we can map OSByteOrder routines to the hton* and ntoh*
- * macros.  This results in the asymmetry below; we only include
- *  for little-endian architectures.
- */
-
-#include 
-
-/* Macros for swapping constant values in the preprocessing stage. */
-#define __DARWIN_OSSwapConstInt16(x) \
-    ((__uint16_t)((((__uint16_t)(x) & 0xff00) >> 8) | \
-	        (((__uint16_t)(x) & 0x00ff) << 8)))
-
-#define __DARWIN_OSSwapConstInt32(x) \
-    ((__uint32_t)((((__uint32_t)(x) & 0xff000000) >> 24) | \
-	        (((__uint32_t)(x) & 0x00ff0000) >>  8) | \
-	        (((__uint32_t)(x) & 0x0000ff00) <<  8) | \
-	        (((__uint32_t)(x) & 0x000000ff) << 24)))
-
-#define __DARWIN_OSSwapConstInt64(x) \
-    ((__uint64_t)((((__uint64_t)(x) & 0xff00000000000000ULL) >> 56) | \
-	        (((__uint64_t)(x) & 0x00ff000000000000ULL) >> 40) | \
-	        (((__uint64_t)(x) & 0x0000ff0000000000ULL) >> 24) | \
-	        (((__uint64_t)(x) & 0x000000ff00000000ULL) >>  8) | \
-	        (((__uint64_t)(x) & 0x00000000ff000000ULL) <<  8) | \
-	        (((__uint64_t)(x) & 0x0000000000ff0000ULL) << 24) | \
-	        (((__uint64_t)(x) & 0x000000000000ff00ULL) << 40) | \
-	        (((__uint64_t)(x) & 0x00000000000000ffULL) << 56)))
-
-#if defined(__GNUC__)
-
-#if defined(__i386__) || defined(__x86_64__)
-#include 
-#endif
-
-
-
-#define __DARWIN_OSSwapInt16(x) \
-    ((__uint16_t)(__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt16(x) : _OSSwapInt16(x)))
-
-#define __DARWIN_OSSwapInt32(x) \
-    (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt32(x) : _OSSwapInt32(x))
-
-#define __DARWIN_OSSwapInt64(x) \
-    (__builtin_constant_p(x) ? __DARWIN_OSSwapConstInt64(x) : _OSSwapInt64(x))
-
-#else /* ! __GNUC__ */
-
-#if defined(__i386__) || defined(__x86_64__)
-
-#if !defined(__DARWIN_OS_INLINE)
-# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#        define __DARWIN_OS_INLINE static inline
-# elif defined(__MWERKS__) || defined(__cplusplus)
-#        define __DARWIN_OS_INLINE static inline
-# else
-#        define __DARWIN_OS_INLINE static __inline__
-# endif
-#endif
-
-__DARWIN_OS_INLINE
-uint16_t
-_OSSwapInt16(
-	uint16_t                    data
-	)
-{
-	return __DARWIN_OSSwapConstInt16(data);
-}
-
-__DARWIN_OS_INLINE
-uint32_t
-_OSSwapInt32(
-	uint32_t                    data
-	)
-{
-	return __DARWIN_OSSwapConstInt32(data);
-}
-
-__DARWIN_OS_INLINE
-uint64_t
-_OSSwapInt64(
-	uint64_t                    data
-	)
-{
-	return __DARWIN_OSSwapConstInt64(data);
-}
-#endif
-
-#define __DARWIN_OSSwapInt16(x) _OSSwapInt16(x)
-
-#define __DARWIN_OSSwapInt32(x) _OSSwapInt32(x)
-
-#define __DARWIN_OSSwapInt64(x) _OSSwapInt64(x)
-
-#endif /* __GNUC__ */
-
-#endif /* ! _OS__OSBYTEORDER_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libkern/i386/OSByteOrder.h b/lib/libc/include/x86_64-macos.10-none/libkern/i386/OSByteOrder.h
deleted file mode 100644
index d6783b74e0b5f6659d639d6a55d9a54317163818..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libkern/i386/OSByteOrder.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 1999-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _OS_OSBYTEORDERI386_H
-#define _OS_OSBYTEORDERI386_H
-
-#include 
-#include 
-#include 
-
-/* Functions for byte reversed loads. */
-
-OS_INLINE
-uint16_t
-OSReadSwapInt16(
-	const volatile void   * base,
-	uintptr_t       byteOffset
-	)
-{
-	uint16_t result;
-
-	result = *(volatile uint16_t *)((uintptr_t)base + byteOffset);
-	return _OSSwapInt16(result);
-}
-
-OS_INLINE
-uint32_t
-OSReadSwapInt32(
-	const volatile void   * base,
-	uintptr_t       byteOffset
-	)
-{
-	uint32_t result;
-
-	result = *(volatile uint32_t *)((uintptr_t)base + byteOffset);
-	return _OSSwapInt32(result);
-}
-
-OS_INLINE
-uint64_t
-OSReadSwapInt64(
-	const volatile void   * base,
-	uintptr_t       byteOffset
-	)
-{
-	uint64_t result;
-
-	result = *(volatile uint64_t *)((uintptr_t)base + byteOffset);
-	return _OSSwapInt64(result);
-}
-
-/* Functions for byte reversed stores. */
-
-OS_INLINE
-void
-OSWriteSwapInt16(
-	volatile void   * base,
-	uintptr_t       byteOffset,
-	uint16_t        data
-	)
-{
-	*(volatile uint16_t *)((uintptr_t)base + byteOffset) = _OSSwapInt16(data);
-}
-
-OS_INLINE
-void
-OSWriteSwapInt32(
-	volatile void   * base,
-	uintptr_t       byteOffset,
-	uint32_t        data
-	)
-{
-	*(volatile uint32_t *)((uintptr_t)base + byteOffset) = _OSSwapInt32(data);
-}
-
-OS_INLINE
-void
-OSWriteSwapInt64(
-	volatile void    * base,
-	uintptr_t        byteOffset,
-	uint64_t         data
-	)
-{
-	*(volatile uint64_t *)((uintptr_t)base + byteOffset) = _OSSwapInt64(data);
-}
-
-#endif /* ! _OS_OSBYTEORDERI386_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libkern/i386/_OSByteOrder.h b/lib/libc/include/x86_64-macos.10-none/libkern/i386/_OSByteOrder.h
deleted file mode 100644
index 4b160f734f8ce1f9790dca3ace25a2901131922e..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libkern/i386/_OSByteOrder.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2006-2012 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 _OS__OSBYTEORDERI386_H
-#define _OS__OSBYTEORDERI386_H
-
-#if !defined(__DARWIN_OS_INLINE)
-# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#        define __DARWIN_OS_INLINE static inline
-# elif defined(__MWERKS__) || defined(__cplusplus)
-#        define __DARWIN_OS_INLINE static inline
-# else
-#        define __DARWIN_OS_INLINE static __inline__
-# endif
-#endif
-
-/* Generic byte swapping functions. */
-
-__DARWIN_OS_INLINE
-__uint16_t
-_OSSwapInt16(
-	__uint16_t        _data
-	)
-{
-	return (__uint16_t)((_data << 8) | (_data >> 8));
-}
-
-__DARWIN_OS_INLINE
-__uint32_t
-_OSSwapInt32(
-	__uint32_t        _data
-	)
-{
-#if defined(__llvm__)
-	return __builtin_bswap32(_data);
-#else
-	__asm__ ("bswap   %0" : "+r" (_data));
-	return _data;
-#endif
-}
-
-#if defined(__llvm__)
-__DARWIN_OS_INLINE
-__uint64_t
-_OSSwapInt64(
-	__uint64_t        _data
-	)
-{
-	return __builtin_bswap64(_data);
-}
-
-#elif defined(__i386__)
-__DARWIN_OS_INLINE
-__uint64_t
-_OSSwapInt64(
-	__uint64_t        _data
-	)
-{
-	__asm__ ("bswap   %%eax\n\t"
-                 "bswap   %%edx\n\t"
-                 "xchgl   %%eax, %%edx"
-                 : "+A" (_data));
-	return _data;
-}
-#elif defined(__x86_64__)
-__DARWIN_OS_INLINE
-__uint64_t
-_OSSwapInt64(
-	__uint64_t        _data
-	)
-{
-	__asm__ ("bswap   %0" : "+r" (_data));
-	return _data;
-}
-#else
-#error Unknown architecture
-#endif
-
-#endif /* ! _OS__OSBYTEORDERI386_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/libproc.h b/lib/libc/include/x86_64-macos.10-none/libproc.h
deleted file mode 100644
index 757ac08e23ee5ec52219008eec17ab44dc86657d..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/libproc.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2006, 2007, 2010 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@
- */
-#ifndef _LIBPROC_H_
-#define _LIBPROC_H_
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-
-#include 
-
-/*
- * This header file contains private interfaces to obtain process information.
- * These interfaces are subject to change in future releases.
- */
-
-/*!
- *       @define PROC_LISTPIDSPATH_PATH_IS_VOLUME
- *       @discussion This flag indicates that all processes that hold open
- *               file references on the volume associated with the specified
- *               path should be returned.
- */
-#define PROC_LISTPIDSPATH_PATH_IS_VOLUME        1
-
-
-/*!
- *       @define PROC_LISTPIDSPATH_EXCLUDE_EVTONLY
- *       @discussion This flag indicates that file references that were opened
- *               with the O_EVTONLY flag should be excluded from the matching
- *               criteria.
- */
-#define PROC_LISTPIDSPATH_EXCLUDE_EVTONLY       2
-
-__BEGIN_DECLS
-
-
-/*!
- *       @function proc_listpidspath
- *       @discussion A function which will search through the current
- *               processes looking for open file references which match
- *               a specified path or volume.
- *       @param type types of processes to be searched (see proc_listpids)
- *       @param typeinfo adjunct information for type
- *       @param path file or volume path
- *       @param pathflags flags to control which files should be considered
- *               during the process search.
- *       @param buffer a C array of int-sized values to be filled with
- *               process identifiers that hold an open file reference
- *               matching the specified path or volume.  Pass NULL to
- *               obtain the minimum buffer size needed to hold the
- *               currently active processes.
- *       @param buffersize the size (in bytes) of the provided buffer.
- *       @result the number of bytes of data returned in the provided buffer;
- *               -1 if an error was encountered;
- */
-int     proc_listpidspath(uint32_t      type,
-    uint32_t      typeinfo,
-    const char    *path,
-    uint32_t      pathflags,
-    void          *buffer,
-    int           buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-
-int proc_listpids(uint32_t type, uint32_t typeinfo, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-int proc_listallpids(void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
-int proc_listpgrppids(pid_t pgrpid, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
-int proc_listchildpids(pid_t ppid, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_1);
-int proc_pidinfo(int pid, int flavor, uint64_t arg, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-int proc_pidfdinfo(int pid, int fd, int flavor, void * buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-int proc_pidfileportinfo(int pid, uint32_t fileport, int flavor, void *buffer, int buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-int proc_name(int pid, void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-int proc_regionfilename(int pid, uint64_t address, void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-int proc_kmsgbuf(void * buffer, uint32_t buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-int proc_pidpath(int pid, void * buffer, uint32_t  buffersize) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-int proc_libversion(int *major, int * minor) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
-
-/*
- * Return resource usage information for the given pid, which can be a live process or a zombie.
- *
- * Returns 0 on success; or -1 on failure, with errno set to indicate the specific error.
- */
-int proc_pid_rusage(int pid, int flavor, rusage_info_t *buffer) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
-
-/*
- * A process can use the following api to set its own process control
- * state on resoure starvation. The argument can have one of the PROC_SETPC_XX values
- */
-#define PROC_SETPC_NONE         0
-#define PROC_SETPC_THROTTLEMEM  1
-#define PROC_SETPC_SUSPEND      2
-#define PROC_SETPC_TERMINATE    3
-
-int proc_setpcontrol(const int control) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
-int proc_setpcontrol(const int control);
-
-int proc_track_dirty(pid_t pid, uint32_t flags);
-int proc_set_dirty(pid_t pid, bool dirty);
-int proc_get_dirty(pid_t pid, uint32_t *flags);
-int proc_clear_dirty(pid_t pid, uint32_t flags);
-
-int proc_terminate(pid_t pid, int *sig);
-
-#ifdef PRIVATE
-#include 
-/*
- * Enumerate potential userspace pointers embedded in kernel data structures.
- * Currently inspects kqueues only.
- *
- * NOTE: returned "pointers" are opaque user-supplied values and thus not
- * guaranteed to address valid objects or be pointers at all.
- *
- * Returns the number of pointers found (which may exceed buffersize), or -1 on
- * failure and errno set appropriately.
- */
-int proc_list_uptrs(pid_t pid, uint64_t *buffer, uint32_t buffersize);
-
-int proc_list_dynkqueueids(int pid, kqueue_id_t *buf, uint32_t bufsz);
-int proc_piddynkqueueinfo(int pid, int flavor, kqueue_id_t kq_id, void *buffer,
-    int buffersize);
-#endif /* PRIVATE */
-
-int proc_udata_info(int pid, int flavor, void *buffer, int buffersize);
-
-__END_DECLS
-
-#endif /*_LIBPROC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach-o/compact_unwind_encoding.h b/lib/libc/include/x86_64-macos.10-none/mach-o/compact_unwind_encoding.h
deleted file mode 100644
index 3c37bb3bc7c978601cda6782a215ad2c1dc74736..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach-o/compact_unwind_encoding.h
+++ /dev/null
@@ -1,427 +0,0 @@
-/* -*- mode: C; c-basic-offset: 4; tab-width: 4 -*-
- *
- * Copyright (c) 2008-2011 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@
- */
- 
-
-#ifndef __COMPACT_UNWIND_ENCODING__
-#define __COMPACT_UNWIND_ENCODING__
-
-#include 
-
-
-
-//
-// 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 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-1020.  The offset/4 
-//    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/4 is
-//    encoded in the UNWIND_X86_64_FRAMELESS_STACK_SIZE (max stack size is 1024).
-//    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.
-//
-
-
-
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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[]
-    // uintptr_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
diff --git a/lib/libc/include/x86_64-macos.10-none/mach-o/dyld.h b/lib/libc/include/x86_64-macos.10-none/mach-o/dyld.h
deleted file mode 100644
index 0b293cbd097a535a1819b19cc749e11bec52b5ae..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach-o/dyld.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Copyright (c) 1999-2008 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@
- */
-#ifndef _MACH_O_DYLD_H_
-#define _MACH_O_DYLD_H_
-
-
-#include 
-#include 
-#include 
-
-#include 
-#include 
-
-#if __cplusplus
-extern "C" {
-#endif 
-
-#ifdef __DRIVERKIT_19_0
- #define DYLD_DRIVERKIT_UNAVAILABLE __API_UNAVAILABLE(driverkit)
-#else
- #define DYLD_DRIVERKIT_UNAVAILABLE
-#endif
-
-/*
- * The following functions allow you to iterate through all loaded images.  
- * This is not a thread safe operation.  Another thread can add or remove
- * an image during the iteration.  
- *
- * Many uses of these routines can be replace by a call to dladdr() which 
- * will return the mach_header and name of an image, given an address in 
- * the image. dladdr() is thread safe.
- */
-extern uint32_t                    _dyld_image_count(void)                              __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0);
-extern const struct mach_header*   _dyld_get_image_header(uint32_t image_index)         __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0);
-extern intptr_t                    _dyld_get_image_vmaddr_slide(uint32_t image_index)   __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0);
-extern const char*                 _dyld_get_image_name(uint32_t image_index)           __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0);
-
-
-/*
- * The following functions allow you to install callbacks which will be called   
- * by dyld whenever an image is loaded or unloaded.  During a call to _dyld_register_func_for_add_image()
- * the callback func is called for every existing image.  Later, it is called as each new image
- * is loaded and bound (but initializers not yet run).  The callback registered with
- * _dyld_register_func_for_remove_image() is called after any terminators in an image are run
- * and before the image is un-memory-mapped.
- */
-extern void _dyld_register_func_for_add_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide))    __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0);
-extern void _dyld_register_func_for_remove_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide)) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0);
-
-
-/*
- * NSVersionOfRunTimeLibrary() returns the current_version number of the currently dylib 
- * specifed by the libraryName.  The libraryName parameter would be "bar" for /path/libbar.3.dylib and
- * "Foo" for /path/Foo.framework/Versions/A/Foo.  It returns -1 if no such library is loaded.
- */
-extern int32_t NSVersionOfRunTimeLibrary(const char* libraryName)            __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0);
-
-
-/*
- * NSVersionOfLinkTimeLibrary() returns the current_version number that the main executable was linked
- * against at build time.  The libraryName parameter would be "bar" for /path/libbar.3.dylib and
- * "Foo" for /path/Foo.framework/Versions/A/Foo.  It returns -1 if the main executable did not link
- * against the specified library.
- */
-extern int32_t NSVersionOfLinkTimeLibrary(const char* libraryName)           __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0);
-
-
-/*
- * _NSGetExecutablePath() copies the path of the main executable into the buffer. The bufsize parameter
- * should initially be the size of the buffer.  The function returns 0 if the path was successfully copied,
- * and *bufsize is left unchanged. It returns -1 if the buffer is not large enough, and *bufsize is set 
- * to the size required. 
- * 
- * Note that _NSGetExecutablePath will return "a path" to the executable not a "real path" to the executable. 
- * That is the path may be a symbolic link and not the real file. With deep directories the total bufsize 
- * needed could be more than MAXPATHLEN.
- */
-extern int _NSGetExecutablePath(char* buf, uint32_t* bufsize)                 __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_2_0);
-
-
-
-/*
- * Registers a function to be called when the current thread terminates.
- * Called by c++ compiler to implement destructors on thread_local object variables.
- */
-extern void _tlv_atexit(void (*termFunc)(void* objAddr), void* objAddr)      __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
-
-
-/*
- * Never called. On-disk thread local variables contain a pointer to this.  Once
- * the thread local is prepared, the pointer changes to a real handler such as tlv_get_addr.
- */
-extern void _tlv_bootstrap(void)                                             __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0) DYLD_DRIVERKIT_UNAVAILABLE ;
-
-/*
- * The following dyld API's are deprecated as of Mac OS X 10.5.  They are either  
- * no longer necessary or are superceeded by dlopen and friends in .
- * dlopen/dlsym/dlclose have been available since Mac OS X 10.3 and work with 
- * dylibs and bundles.  
- *
- *    NSAddImage                           -> dlopen
- *    NSLookupSymbolInImage                -> dlsym
- *    NSCreateObjectFileImageFromFile      -> dlopen
- *    NSDestroyObjectFileImage             -> dlclose
- *    NSLinkModule                         -> not needed when dlopen used
- *    NSUnLinkModule                       -> not needed when dlclose used
- *    NSLookupSymbolInModule               -> dlsym
- *    _dyld_image_containing_address       -> dladdr
- *    NSLinkEditError                      -> dlerror
- *
- */
-
-#ifndef ENUM_DYLD_BOOL
-#define ENUM_DYLD_BOOL
-  #undef FALSE
-  #undef TRUE
-  enum DYLD_BOOL { FALSE, TRUE };
-#endif /* ENUM_DYLD_BOOL */
-
-
-/* Object file image API */
-typedef enum {
-    NSObjectFileImageFailure, /* for this a message is printed on stderr */
-    NSObjectFileImageSuccess,
-    NSObjectFileImageInappropriateFile,
-    NSObjectFileImageArch,
-    NSObjectFileImageFormat, /* for this a message is printed on stderr */
-    NSObjectFileImageAccess
-} NSObjectFileImageReturnCode;
-
-typedef struct __NSObjectFileImage* NSObjectFileImage;
-
-
-
-/* NSObjectFileImage can only be used with MH_BUNDLE files */
-extern NSObjectFileImageReturnCode NSCreateObjectFileImageFromFile(const char* pathName, NSObjectFileImage *objectFileImage)               __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlopen()");
-extern NSObjectFileImageReturnCode NSCreateObjectFileImageFromMemory(const void *address, size_t size, NSObjectFileImage *objectFileImage) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-extern bool                        NSDestroyObjectFileImage(NSObjectFileImage objectFileImage)                                             __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlclose()");
-
-extern uint32_t     NSSymbolDefinitionCountInObjectFileImage(NSObjectFileImage objectFileImage)                   __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-extern const char*  NSSymbolDefinitionNameInObjectFileImage(NSObjectFileImage objectFileImage, uint32_t ordinal)  __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-extern uint32_t     NSSymbolReferenceCountInObjectFileImage(NSObjectFileImage objectFileImage)                    __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-extern const char*  NSSymbolReferenceNameInObjectFileImage(NSObjectFileImage objectFileImage, uint32_t ordinal, bool *tentative_definition) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-extern bool         NSIsSymbolDefinedInObjectFileImage(NSObjectFileImage objectFileImage, const char* symbolName) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlsym()");
-extern void*        NSGetSectionDataInObjectFileImage(NSObjectFileImage objectFileImage, const char* segmentName, const char* sectionName, size_t *size) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "getsectiondata()");
-
-typedef struct __NSModule* NSModule;
-extern const char*  NSNameOfModule(NSModule m)         __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-extern const char*  NSLibraryNameForModule(NSModule m) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-
-extern NSModule NSLinkModule(NSObjectFileImage objectFileImage, const char* moduleName, uint32_t options) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlopen()");
-#define NSLINKMODULE_OPTION_NONE                         0x0
-#define NSLINKMODULE_OPTION_BINDNOW                      0x1
-#define NSLINKMODULE_OPTION_PRIVATE                      0x2
-#define NSLINKMODULE_OPTION_RETURN_ON_ERROR              0x4
-#define NSLINKMODULE_OPTION_DONT_CALL_MOD_INIT_ROUTINES  0x8
-#define NSLINKMODULE_OPTION_TRAILING_PHYS_NAME          0x10
-
-extern bool NSUnLinkModule(NSModule module, uint32_t options) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-#define NSUNLINKMODULE_OPTION_NONE                  0x0
-#define NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED    0x1
-#define NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES	0x2
-
-/* symbol API */
-typedef struct __NSSymbol* NSSymbol;
-extern bool     NSIsSymbolNameDefined(const char* symbolName)                                                    __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlsym()");
-extern bool     NSIsSymbolNameDefinedWithHint(const char* symbolName, const char* libraryNameHint)               __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlsym()");
-extern bool     NSIsSymbolNameDefinedInImage(const struct mach_header* image, const char* symbolName)            __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlsym()");
-extern NSSymbol NSLookupAndBindSymbol(const char* symbolName)                                                    __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlsym()");
-extern NSSymbol NSLookupAndBindSymbolWithHint(const char* symbolName, const char* libraryNameHint)               __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlsym()");
-extern NSSymbol NSLookupSymbolInModule(NSModule module, const char* symbolName)                                  __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlsym()");
-extern NSSymbol NSLookupSymbolInImage(const struct mach_header* image, const char* symbolName, uint32_t options) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlsym()");
-#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND            0x0
-#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW        0x1
-#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY      0x2
-#define NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR 0x4
-extern const char*  NSNameOfSymbol(NSSymbol symbol)    __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-extern void *       NSAddressOfSymbol(NSSymbol symbol) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlsym()");
-extern NSModule     NSModuleForSymbol(NSSymbol symbol) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dladdr()");
-
-/* error handling API */
-typedef enum {
-    NSLinkEditFileAccessError,
-    NSLinkEditFileFormatError,
-    NSLinkEditMachResourceError,
-    NSLinkEditUnixResourceError,
-    NSLinkEditOtherError,
-    NSLinkEditWarningError,
-    NSLinkEditMultiplyDefinedError,
-    NSLinkEditUndefinedError
-} NSLinkEditErrors;
-
-/*
- * For the NSLinkEditErrors value NSLinkEditOtherError these are the values
- * passed to the link edit error handler as the errorNumber (what would be an
- * errno value for NSLinkEditUnixResourceError or a kern_return_t value for
- * NSLinkEditMachResourceError).
- */
-typedef enum {
-    NSOtherErrorRelocation, 
-    NSOtherErrorLazyBind,
-    NSOtherErrorIndrLoop,
-    NSOtherErrorLazyInit,
-    NSOtherErrorInvalidArgs
-} NSOtherErrorNumbers;
-
-extern void NSLinkEditError(NSLinkEditErrors *c, int *errorNumber, const char** fileName, const char** errorString) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlerror()");
-
-typedef struct {
-     void     (*undefined)(const char* symbolName);
-     NSModule (*multiple)(NSSymbol s, NSModule oldModule, NSModule newModule); 
-     void     (*linkEdit)(NSLinkEditErrors errorClass, int errorNumber,
-                          const char* fileName, const char* errorString);
-} NSLinkEditErrorHandlers;
-
-extern void NSInstallLinkEditErrorHandlers(const NSLinkEditErrorHandlers *handlers) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "");
-
-extern bool                      NSAddLibrary(const char* pathName)                   __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlopen()");
-extern bool                      NSAddLibraryWithSearching(const char* pathName)      __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlopen()");
-extern const struct mach_header* NSAddImage(const char* image_name, uint32_t options) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlopen()");
-#define NSADDIMAGE_OPTION_NONE                  	0x0
-#define NSADDIMAGE_OPTION_RETURN_ON_ERROR       	0x1
-#define NSADDIMAGE_OPTION_WITH_SEARCHING        	0x2
-#define NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED 	0x4
-#define NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME	0x8
-
-extern bool _dyld_present(void)                                                              __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "always true");
-extern bool _dyld_launched_prebound(void)                                                    __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "moot");
-extern bool _dyld_all_twolevel_modules_prebound(void)                                        __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.3, 10.5, "moot");
-extern bool _dyld_bind_fully_image_containing_address(const void* address)                   __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlopen(RTLD_NOW)");
-extern bool _dyld_image_containing_address(const void* address)                              __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.3, 10.5, "dladdr()");
-extern void _dyld_lookup_and_bind(const char* symbol_name, void **address, NSModule* module) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlsym()");
-extern void _dyld_lookup_and_bind_with_hint(const char* symbol_name, const char* library_name_hint, void** address, NSModule* module) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.4, "dlsym()");
-extern void _dyld_lookup_and_bind_fully(const char* symbol_name, void** address, NSModule* module) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.1, 10.5, "dlsym()");
-
-extern const struct mach_header*  _dyld_get_image_header_containing_address(const void* address) __API_UNAVAILABLE(ios, tvos, watchos)  DYLD_DRIVERKIT_UNAVAILABLE  __OSX_DEPRECATED(10.3, 10.5, "dladdr()");
-
-
-#if __cplusplus
-}
-#endif 
-
-#endif /* _MACH_O_DYLD_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach-o/loader.h b/lib/libc/include/x86_64-macos.10-none/mach-o/loader.h
deleted file mode 100644
index a0881052050f75cc025ea0a5ec6c2eca61cf81dc..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach-o/loader.h
+++ /dev/null
@@ -1,1577 +0,0 @@
-/*
- * Copyright (c) 1999-2010 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@
- */
-#ifndef _MACHO_LOADER_H_
-#define _MACHO_LOADER_H_
-
-/*
- * This file describes the format of mach object files.
- */
-#include 
-
-/*
- *  is needed here for the cpu_type_t and cpu_subtype_t types
- * and contains the constants for the possible values of these types.
- */
-#include 
-
-/*
- *  is needed here for the vm_prot_t type and contains the 
- * constants that are or'ed together for the possible values of this type.
- */
-#include 
-
-/*
- *  is expected to define the flavors of the thread
- * states and the structures of those flavors for each machine.
- */
-#include 
-#include 
-
-/*
- * The 32-bit mach header appears at the very beginning of the object file for
- * 32-bit architectures.
- */
-struct mach_header {
-	uint32_t	magic;		/* mach magic number identifier */
-	cpu_type_t	cputype;	/* cpu specifier */
-	cpu_subtype_t	cpusubtype;	/* machine specifier */
-	uint32_t	filetype;	/* type of file */
-	uint32_t	ncmds;		/* number of load commands */
-	uint32_t	sizeofcmds;	/* the size of all the load commands */
-	uint32_t	flags;		/* flags */
-};
-
-/* Constant for the magic field of the mach_header (32-bit architectures) */
-#define	MH_MAGIC	0xfeedface	/* the mach magic number */
-#define MH_CIGAM	0xcefaedfe	/* NXSwapInt(MH_MAGIC) */
-
-/*
- * The 64-bit mach header appears at the very beginning of object files for
- * 64-bit architectures.
- */
-struct mach_header_64 {
-	uint32_t	magic;		/* mach magic number identifier */
-	cpu_type_t	cputype;	/* cpu specifier */
-	cpu_subtype_t	cpusubtype;	/* machine specifier */
-	uint32_t	filetype;	/* type of file */
-	uint32_t	ncmds;		/* number of load commands */
-	uint32_t	sizeofcmds;	/* the size of all the load commands */
-	uint32_t	flags;		/* flags */
-	uint32_t	reserved;	/* reserved */
-};
-
-/* Constant for the magic field of the mach_header_64 (64-bit architectures) */
-#define MH_MAGIC_64 0xfeedfacf /* the 64-bit mach magic number */
-#define MH_CIGAM_64 0xcffaedfe /* NXSwapInt(MH_MAGIC_64) */
-
-/*
- * The layout of the file depends on the filetype.  For all but the MH_OBJECT
- * file type the segments are padded out and aligned on a segment alignment
- * boundary for efficient demand pageing.  The MH_EXECUTE, MH_FVMLIB, MH_DYLIB,
- * MH_DYLINKER and MH_BUNDLE file types also have the headers included as part
- * of their first segment.
- * 
- * The file type MH_OBJECT is a compact format intended as output of the
- * assembler and input (and possibly output) of the link editor (the .o
- * format).  All sections are in one unnamed segment with no segment padding. 
- * This format is used as an executable format when the file is so small the
- * segment padding greatly increases its size.
- *
- * The file type MH_PRELOAD is an executable format intended for things that
- * are not executed under the kernel (proms, stand alones, kernels, etc).  The
- * format can be executed under the kernel but may demand paged it and not
- * preload it before execution.
- *
- * A core file is in MH_CORE format and can be any in an arbritray legal
- * Mach-O file.
- *
- * Constants for the filetype field of the mach_header
- */
-#define	MH_OBJECT	0x1		/* relocatable object file */
-#define	MH_EXECUTE	0x2		/* demand paged executable file */
-#define	MH_FVMLIB	0x3		/* fixed VM shared library file */
-#define	MH_CORE		0x4		/* core file */
-#define	MH_PRELOAD	0x5		/* preloaded executable file */
-#define	MH_DYLIB	0x6		/* dynamically bound shared library */
-#define	MH_DYLINKER	0x7		/* dynamic link editor */
-#define	MH_BUNDLE	0x8		/* dynamically bound bundle file */
-#define	MH_DYLIB_STUB	0x9		/* shared library stub for static */
-					/*  linking only, no section contents */
-#define	MH_DSYM		0xa		/* companion file with only debug */
-					/*  sections */
-#define	MH_KEXT_BUNDLE	0xb		/* x86_64 kexts */
-
-/* Constants for the flags field of the mach_header */
-#define	MH_NOUNDEFS	0x1		/* the object file has no undefined
-					   references */
-#define	MH_INCRLINK	0x2		/* the object file is the output of an
-					   incremental link against a base file
-					   and can't be link edited again */
-#define MH_DYLDLINK	0x4		/* the object file is input for the
-					   dynamic linker and can't be staticly
-					   link edited again */
-#define MH_BINDATLOAD	0x8		/* the object file's undefined
-					   references are bound by the dynamic
-					   linker when loaded. */
-#define MH_PREBOUND	0x10		/* the file has its dynamic undefined
-					   references prebound. */
-#define MH_SPLIT_SEGS	0x20		/* the file has its read-only and
-					   read-write segments split */
-#define MH_LAZY_INIT	0x40		/* the shared library init routine is
-					   to be run lazily via catching memory
-					   faults to its writeable segments
-					   (obsolete) */
-#define MH_TWOLEVEL	0x80		/* the image is using two-level name
-					   space bindings */
-#define MH_FORCE_FLAT	0x100		/* the executable is forcing all images
-					   to use flat name space bindings */
-#define MH_NOMULTIDEFS	0x200		/* this umbrella guarantees no multiple
-					   defintions of symbols in its
-					   sub-images so the two-level namespace
-					   hints can always be used. */
-#define MH_NOFIXPREBINDING 0x400	/* do not have dyld notify the
-					   prebinding agent about this
-					   executable */
-#define MH_PREBINDABLE  0x800           /* the binary is not prebound but can
-					   have its prebinding redone. only used
-                                           when MH_PREBOUND is not set. */
-#define MH_ALLMODSBOUND 0x1000		/* indicates that this binary binds to
-                                           all two-level namespace modules of
-					   its dependent libraries. only used
-					   when MH_PREBINDABLE and MH_TWOLEVEL
-					   are both set. */ 
-#define MH_SUBSECTIONS_VIA_SYMBOLS 0x2000/* safe to divide up the sections into
-					    sub-sections via symbols for dead
-					    code stripping */
-#define MH_CANONICAL    0x4000		/* the binary has been canonicalized
-					   via the unprebind operation */
-#define MH_WEAK_DEFINES	0x8000		/* the final linked image contains
-					   external weak symbols */
-#define MH_BINDS_TO_WEAK 0x10000	/* the final linked image uses
-					   weak symbols */
-
-#define MH_ALLOW_STACK_EXECUTION 0x20000/* When this bit is set, all stacks 
-					   in the task will be given stack
-					   execution privilege.  Only used in
-					   MH_EXECUTE filetypes. */
-#define MH_ROOT_SAFE 0x40000           /* When this bit is set, the binary 
-					  declares it is safe for use in
-					  processes with uid zero */
-                                         
-#define MH_SETUID_SAFE 0x80000         /* When this bit is set, the binary 
-					  declares it is safe for use in
-					  processes when issetugid() is true */
-
-#define MH_NO_REEXPORTED_DYLIBS 0x100000 /* When this bit is set on a dylib, 
-					  the static linker does not need to
-					  examine dependent dylibs to see
-					  if any are re-exported */
-#define	MH_PIE 0x200000			/* When this bit is set, the OS will
-					   load the main executable at a
-					   random address.  Only used in
-					   MH_EXECUTE filetypes. */
-#define	MH_DEAD_STRIPPABLE_DYLIB 0x400000 /* Only for use on dylibs.  When
-					     linking against a dylib that
-					     has this bit set, the static linker
-					     will automatically not create a
-					     LC_LOAD_DYLIB load command to the
-					     dylib if no symbols are being
-					     referenced from the dylib. */
-#define MH_HAS_TLV_DESCRIPTORS 0x800000 /* Contains a section of type 
-					    S_THREAD_LOCAL_VARIABLES */
-
-#define MH_NO_HEAP_EXECUTION 0x1000000	/* When this bit is set, the OS will
-					   run the main executable with
-					   a non-executable heap even on
-					   platforms (e.g. i386) that don't
-					   require it. Only used in MH_EXECUTE
-					   filetypes. */
-
-#define MH_APP_EXTENSION_SAFE 0x02000000 /* The code was linked for use in an
-					    application extension. */
-
-#define	MH_NLIST_OUTOFSYNC_WITH_DYLDINFO 0x04000000 /* The external symbols
-					   listed in the nlist symbol table do
-					   not include all the symbols listed in
-					   the dyld info. */
-
-#define	MH_SIM_SUPPORT 0x08000000	/* Allow LC_MIN_VERSION_MACOS and
-					   LC_BUILD_VERSION load commands with
-					   the platforms macOS, macCatalyst,
-					   iOSSimulator, tvOSSimulator and
-					   watchOSSimulator. */
-					   
-#define MH_DYLIB_IN_CACHE 0x80000000	/* Only for use on dylibs. When this bit
-					   is set, the dylib is part of the dyld
-					   shared cache, rather than loose in
-					   the filesystem. */
-
-/*
- * The load commands directly follow the mach_header.  The total size of all
- * of the commands is given by the sizeofcmds field in the mach_header.  All
- * load commands must have as their first two fields cmd and cmdsize.  The cmd
- * field is filled in with a constant for that command type.  Each command type
- * has a structure specifically for it.  The cmdsize field is the size in bytes
- * of the particular load command structure plus anything that follows it that
- * is a part of the load command (i.e. section structures, strings, etc.).  To
- * advance to the next load command the cmdsize can be added to the offset or
- * pointer of the current load command.  The cmdsize for 32-bit architectures
- * MUST be a multiple of 4 bytes and for 64-bit architectures MUST be a multiple
- * of 8 bytes (these are forever the maximum alignment of any load commands).
- * The padded bytes must be zero.  All tables in the object file must also
- * follow these rules so the file can be memory mapped.  Otherwise the pointers
- * to these tables will not work well or at all on some machines.  With all
- * padding zeroed like objects will compare byte for byte.
- */
-struct load_command {
-	uint32_t cmd;		/* type of load command */
-	uint32_t cmdsize;	/* total size of command in bytes */
-};
-
-/*
- * After MacOS X 10.1 when a new load command is added that is required to be
- * understood by the dynamic linker for the image to execute properly the
- * LC_REQ_DYLD bit will be or'ed into the load command constant.  If the dynamic
- * linker sees such a load command it it does not understand will issue a
- * "unknown load command required for execution" error and refuse to use the
- * image.  Other load commands without this bit that are not understood will
- * simply be ignored.
- */
-#define LC_REQ_DYLD 0x80000000
-
-/* Constants for the cmd field of all load commands, the type */
-#define	LC_SEGMENT	0x1	/* segment of this file to be mapped */
-#define	LC_SYMTAB	0x2	/* link-edit stab symbol table info */
-#define	LC_SYMSEG	0x3	/* link-edit gdb symbol table info (obsolete) */
-#define	LC_THREAD	0x4	/* thread */
-#define	LC_UNIXTHREAD	0x5	/* unix thread (includes a stack) */
-#define	LC_LOADFVMLIB	0x6	/* load a specified fixed VM shared library */
-#define	LC_IDFVMLIB	0x7	/* fixed VM shared library identification */
-#define	LC_IDENT	0x8	/* object identification info (obsolete) */
-#define LC_FVMFILE	0x9	/* fixed VM file inclusion (internal use) */
-#define LC_PREPAGE      0xa     /* prepage command (internal use) */
-#define	LC_DYSYMTAB	0xb	/* dynamic link-edit symbol table info */
-#define	LC_LOAD_DYLIB	0xc	/* load a dynamically linked shared library */
-#define	LC_ID_DYLIB	0xd	/* dynamically linked shared lib ident */
-#define LC_LOAD_DYLINKER 0xe	/* load a dynamic linker */
-#define LC_ID_DYLINKER	0xf	/* dynamic linker identification */
-#define	LC_PREBOUND_DYLIB 0x10	/* modules prebound for a dynamically */
-				/*  linked shared library */
-#define	LC_ROUTINES	0x11	/* image routines */
-#define	LC_SUB_FRAMEWORK 0x12	/* sub framework */
-#define	LC_SUB_UMBRELLA 0x13	/* sub umbrella */
-#define	LC_SUB_CLIENT	0x14	/* sub client */
-#define	LC_SUB_LIBRARY  0x15	/* sub library */
-#define	LC_TWOLEVEL_HINTS 0x16	/* two-level namespace lookup hints */
-#define	LC_PREBIND_CKSUM  0x17	/* prebind checksum */
-
-/*
- * load a dynamically linked shared library that is allowed to be missing
- * (all symbols are weak imported).
- */
-#define	LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD)
-
-#define	LC_SEGMENT_64	0x19	/* 64-bit segment of this file to be
-				   mapped */
-#define	LC_ROUTINES_64	0x1a	/* 64-bit image routines */
-#define LC_UUID		0x1b	/* the uuid */
-#define LC_RPATH       (0x1c | LC_REQ_DYLD)    /* runpath additions */
-#define LC_CODE_SIGNATURE 0x1d	/* local of code signature */
-#define LC_SEGMENT_SPLIT_INFO 0x1e /* local of info to split segments */
-#define LC_REEXPORT_DYLIB (0x1f | LC_REQ_DYLD) /* load and re-export dylib */
-#define	LC_LAZY_LOAD_DYLIB 0x20	/* delay load of dylib until first use */
-#define	LC_ENCRYPTION_INFO 0x21	/* encrypted segment information */
-#define	LC_DYLD_INFO 	0x22	/* compressed dyld information */
-#define	LC_DYLD_INFO_ONLY (0x22|LC_REQ_DYLD)	/* compressed dyld information only */
-#define	LC_LOAD_UPWARD_DYLIB (0x23 | LC_REQ_DYLD) /* load upward dylib */
-#define LC_VERSION_MIN_MACOSX 0x24   /* build for MacOSX min OS version */
-#define LC_VERSION_MIN_IPHONEOS 0x25 /* build for iPhoneOS min OS version */
-#define LC_FUNCTION_STARTS 0x26 /* compressed table of function start addresses */
-#define LC_DYLD_ENVIRONMENT 0x27 /* string for dyld to treat
-				    like environment variable */
-#define LC_MAIN (0x28|LC_REQ_DYLD) /* replacement for LC_UNIXTHREAD */
-#define LC_DATA_IN_CODE 0x29 /* table of non-instructions in __text */
-#define LC_SOURCE_VERSION 0x2A /* source version used to build binary */
-#define LC_DYLIB_CODE_SIGN_DRS 0x2B /* Code signing DRs copied from linked dylibs */
-#define	LC_ENCRYPTION_INFO_64 0x2C /* 64-bit encrypted segment information */
-#define LC_LINKER_OPTION 0x2D /* linker options in MH_OBJECT files */
-#define LC_LINKER_OPTIMIZATION_HINT 0x2E /* optimization hints in MH_OBJECT files */
-#define LC_VERSION_MIN_TVOS 0x2F /* build for AppleTV min OS version */
-#define LC_VERSION_MIN_WATCHOS 0x30 /* build for Watch min OS version */
-#define LC_NOTE 0x31 /* arbitrary data included within a Mach-O file */
-#define LC_BUILD_VERSION 0x32 /* build for platform min OS version */
-#define LC_DYLD_EXPORTS_TRIE (0x33 | LC_REQ_DYLD) /* used with linkedit_data_command, payload is trie */
-#define LC_DYLD_CHAINED_FIXUPS (0x34 | LC_REQ_DYLD) /* used with linkedit_data_command */
-
-/*
- * A variable length string in a load command is represented by an lc_str
- * union.  The strings are stored just after the load command structure and
- * the offset is from the start of the load command structure.  The size
- * of the string is reflected in the cmdsize field of the load command.
- * Once again any padded bytes to bring the cmdsize field to a multiple
- * of 4 bytes must be zero.
- */
-union lc_str {
-	uint32_t	offset;	/* offset to the string */
-#ifndef __LP64__
-	char		*ptr;	/* pointer to the string */
-#endif 
-};
-
-/*
- * The segment load command indicates that a part of this file is to be
- * mapped into the task's address space.  The size of this segment in memory,
- * vmsize, maybe equal to or larger than the amount to map from this file,
- * filesize.  The file is mapped starting at fileoff to the beginning of
- * the segment in memory, vmaddr.  The rest of the memory of the segment,
- * if any, is allocated zero fill on demand.  The segment's maximum virtual
- * memory protection and initial virtual memory protection are specified
- * by the maxprot and initprot fields.  If the segment has sections then the
- * section structures directly follow the segment command and their size is
- * reflected in cmdsize.
- */
-struct segment_command { /* for 32-bit architectures */
-	uint32_t	cmd;		/* LC_SEGMENT */
-	uint32_t	cmdsize;	/* includes sizeof section structs */
-	char		segname[16];	/* segment name */
-	uint32_t	vmaddr;		/* memory address of this segment */
-	uint32_t	vmsize;		/* memory size of this segment */
-	uint32_t	fileoff;	/* file offset of this segment */
-	uint32_t	filesize;	/* amount to map from the file */
-	vm_prot_t	maxprot;	/* maximum VM protection */
-	vm_prot_t	initprot;	/* initial VM protection */
-	uint32_t	nsects;		/* number of sections in segment */
-	uint32_t	flags;		/* flags */
-};
-
-/*
- * The 64-bit segment load command indicates that a part of this file is to be
- * mapped into a 64-bit task's address space.  If the 64-bit segment has
- * sections then section_64 structures directly follow the 64-bit segment
- * command and their size is reflected in cmdsize.
- */
-struct segment_command_64 { /* for 64-bit architectures */
-	uint32_t	cmd;		/* LC_SEGMENT_64 */
-	uint32_t	cmdsize;	/* includes sizeof section_64 structs */
-	char		segname[16];	/* segment name */
-	uint64_t	vmaddr;		/* memory address of this segment */
-	uint64_t	vmsize;		/* memory size of this segment */
-	uint64_t	fileoff;	/* file offset of this segment */
-	uint64_t	filesize;	/* amount to map from the file */
-	vm_prot_t	maxprot;	/* maximum VM protection */
-	vm_prot_t	initprot;	/* initial VM protection */
-	uint32_t	nsects;		/* number of sections in segment */
-	uint32_t	flags;		/* flags */
-};
-
-/* Constants for the flags field of the segment_command */
-#define	SG_HIGHVM	0x1	/* the file contents for this segment is for
-				   the high part of the VM space, the low part
-				   is zero filled (for stacks in core files) */
-#define	SG_FVMLIB	0x2	/* this segment is the VM that is allocated by
-				   a fixed VM library, for overlap checking in
-				   the link editor */
-#define	SG_NORELOC	0x4	/* this segment has nothing that was relocated
-				   in it and nothing relocated to it, that is
-				   it maybe safely replaced without relocation*/
-#define SG_PROTECTED_VERSION_1	0x8 /* This segment is protected.  If the
-				       segment starts at file offset 0, the
-				       first page of the segment is not
-				       protected.  All other pages of the
-				       segment are protected. */
-#define SG_READ_ONLY    0x10 /* This segment is made read-only after fixups */
-
-
-
-/*
- * A segment is made up of zero or more sections.  Non-MH_OBJECT files have
- * all of their segments with the proper sections in each, and padded to the
- * specified segment alignment when produced by the link editor.  The first
- * segment of a MH_EXECUTE and MH_FVMLIB format file contains the mach_header
- * and load commands of the object file before its first section.  The zero
- * fill sections are always last in their segment (in all formats).  This
- * allows the zeroed segment padding to be mapped into memory where zero fill
- * sections might be. The gigabyte zero fill sections, those with the section
- * type S_GB_ZEROFILL, can only be in a segment with sections of this type.
- * These segments are then placed after all other segments.
- *
- * The MH_OBJECT format has all of its sections in one segment for
- * compactness.  There is no padding to a specified segment boundary and the
- * mach_header and load commands are not part of the segment.
- *
- * Sections with the same section name, sectname, going into the same segment,
- * segname, are combined by the link editor.  The resulting section is aligned
- * to the maximum alignment of the combined sections and is the new section's
- * alignment.  The combined sections are aligned to their original alignment in
- * the combined section.  Any padded bytes to get the specified alignment are
- * zeroed.
- *
- * The format of the relocation entries referenced by the reloff and nreloc
- * fields of the section structure for mach object files is described in the
- * header file .
- */
-struct section { /* for 32-bit architectures */
-	char		sectname[16];	/* name of this section */
-	char		segname[16];	/* segment this section goes in */
-	uint32_t	addr;		/* memory address of this section */
-	uint32_t	size;		/* size in bytes of this section */
-	uint32_t	offset;		/* file offset of this section */
-	uint32_t	align;		/* section alignment (power of 2) */
-	uint32_t	reloff;		/* file offset of relocation entries */
-	uint32_t	nreloc;		/* number of relocation entries */
-	uint32_t	flags;		/* flags (section type and attributes)*/
-	uint32_t	reserved1;	/* reserved (for offset or index) */
-	uint32_t	reserved2;	/* reserved (for count or sizeof) */
-};
-
-struct section_64 { /* for 64-bit architectures */
-	char		sectname[16];	/* name of this section */
-	char		segname[16];	/* segment this section goes in */
-	uint64_t	addr;		/* memory address of this section */
-	uint64_t	size;		/* size in bytes of this section */
-	uint32_t	offset;		/* file offset of this section */
-	uint32_t	align;		/* section alignment (power of 2) */
-	uint32_t	reloff;		/* file offset of relocation entries */
-	uint32_t	nreloc;		/* number of relocation entries */
-	uint32_t	flags;		/* flags (section type and attributes)*/
-	uint32_t	reserved1;	/* reserved (for offset or index) */
-	uint32_t	reserved2;	/* reserved (for count or sizeof) */
-	uint32_t	reserved3;	/* reserved */
-};
-
-/*
- * The flags field of a section structure is separated into two parts a section
- * type and section attributes.  The section types are mutually exclusive (it
- * can only have one type) but the section attributes are not (it may have more
- * than one attribute).
- */
-#define SECTION_TYPE		 0x000000ff	/* 256 section types */
-#define SECTION_ATTRIBUTES	 0xffffff00	/*  24 section attributes */
-
-/* Constants for the type of a section */
-#define	S_REGULAR		0x0	/* regular section */
-#define	S_ZEROFILL		0x1	/* zero fill on demand section */
-#define	S_CSTRING_LITERALS	0x2	/* section with only literal C strings*/
-#define	S_4BYTE_LITERALS	0x3	/* section with only 4 byte literals */
-#define	S_8BYTE_LITERALS	0x4	/* section with only 8 byte literals */
-#define	S_LITERAL_POINTERS	0x5	/* section with only pointers to */
-					/*  literals */
-/*
- * For the two types of symbol pointers sections and the symbol stubs section
- * they have indirect symbol table entries.  For each of the entries in the
- * section the indirect symbol table entries, in corresponding order in the
- * indirect symbol table, start at the index stored in the reserved1 field
- * of the section structure.  Since the indirect symbol table entries
- * correspond to the entries in the section the number of indirect symbol table
- * entries is inferred from the size of the section divided by the size of the
- * entries in the section.  For symbol pointers sections the size of the entries
- * in the section is 4 bytes and for symbol stubs sections the byte size of the
- * stubs is stored in the reserved2 field of the section structure.
- */
-#define	S_NON_LAZY_SYMBOL_POINTERS	0x6	/* section with only non-lazy
-						   symbol pointers */
-#define	S_LAZY_SYMBOL_POINTERS		0x7	/* section with only lazy symbol
-						   pointers */
-#define	S_SYMBOL_STUBS			0x8	/* section with only symbol
-						   stubs, byte size of stub in
-						   the reserved2 field */
-#define	S_MOD_INIT_FUNC_POINTERS	0x9	/* section with only function
-						   pointers for initialization*/
-#define	S_MOD_TERM_FUNC_POINTERS	0xa	/* section with only function
-						   pointers for termination */
-#define	S_COALESCED			0xb	/* section contains symbols that
-						   are to be coalesced */
-#define	S_GB_ZEROFILL			0xc	/* zero fill on demand section
-						   (that can be larger than 4
-						   gigabytes) */
-#define	S_INTERPOSING			0xd	/* section with only pairs of
-						   function pointers for
-						   interposing */
-#define	S_16BYTE_LITERALS		0xe	/* section with only 16 byte
-						   literals */
-#define	S_DTRACE_DOF			0xf	/* section contains 
-						   DTrace Object Format */
-#define	S_LAZY_DYLIB_SYMBOL_POINTERS	0x10	/* section with only lazy
-						   symbol pointers to lazy
-						   loaded dylibs */
-/*
- * Section types to support thread local variables
- */
-#define S_THREAD_LOCAL_REGULAR                   0x11  /* template of initial 
-							  values for TLVs */
-#define S_THREAD_LOCAL_ZEROFILL                  0x12  /* template of initial 
-							  values for TLVs */
-#define S_THREAD_LOCAL_VARIABLES                 0x13  /* TLV descriptors */
-#define S_THREAD_LOCAL_VARIABLE_POINTERS         0x14  /* pointers to TLV 
-                                                          descriptors */
-#define S_THREAD_LOCAL_INIT_FUNCTION_POINTERS    0x15  /* functions to call
-							  to initialize TLV
-							  values */
-#define S_INIT_FUNC_OFFSETS                      0x16  /* 32-bit offsets to
-							  initializers */
-
-/*
- * Constants for the section attributes part of the flags field of a section
- * structure.
- */
-#define SECTION_ATTRIBUTES_USR	 0xff000000	/* User setable attributes */
-#define S_ATTR_PURE_INSTRUCTIONS 0x80000000	/* section contains only true
-						   machine instructions */
-#define S_ATTR_NO_TOC 		 0x40000000	/* section contains coalesced
-						   symbols that are not to be
-						   in a ranlib table of
-						   contents */
-#define S_ATTR_STRIP_STATIC_SYMS 0x20000000	/* ok to strip static symbols
-						   in this section in files
-						   with the MH_DYLDLINK flag */
-#define S_ATTR_NO_DEAD_STRIP	 0x10000000	/* no dead stripping */
-#define S_ATTR_LIVE_SUPPORT	 0x08000000	/* blocks are live if they
-						   reference live blocks */
-#define S_ATTR_SELF_MODIFYING_CODE 0x04000000	/* Used with i386 code stubs
-						   written on by dyld */
-/*
- * If a segment contains any sections marked with S_ATTR_DEBUG then all
- * sections in that segment must have this attribute.  No section other than
- * a section marked with this attribute may reference the contents of this
- * section.  A section with this attribute may contain no symbols and must have
- * a section type S_REGULAR.  The static linker will not copy section contents
- * from sections with this attribute into its output file.  These sections
- * generally contain DWARF debugging info.
- */ 
-#define	S_ATTR_DEBUG		 0x02000000	/* a debug section */
-#define SECTION_ATTRIBUTES_SYS	 0x00ffff00	/* system setable attributes */
-#define S_ATTR_SOME_INSTRUCTIONS 0x00000400	/* section contains some
-						   machine instructions */
-#define S_ATTR_EXT_RELOC	 0x00000200	/* section has external
-						   relocation entries */
-#define S_ATTR_LOC_RELOC	 0x00000100	/* section has local
-						   relocation entries */
-
-
-/*
- * The names of segments and sections in them are mostly meaningless to the
- * link-editor.  But there are few things to support traditional UNIX
- * executables that require the link-editor and assembler to use some names
- * agreed upon by convention.
- *
- * The initial protection of the "__TEXT" segment has write protection turned
- * off (not writeable).
- *
- * The link-editor will allocate common symbols at the end of the "__common"
- * section in the "__DATA" segment.  It will create the section and segment
- * if needed.
- */
-
-/* The currently known segment names and the section names in those segments */
-
-#define	SEG_PAGEZERO	"__PAGEZERO"	/* the pagezero segment which has no */
-					/* protections and catches NULL */
-					/* references for MH_EXECUTE files */
-
-
-#define	SEG_TEXT	"__TEXT"	/* the tradition UNIX text segment */
-#define	SECT_TEXT	"__text"	/* the real text part of the text */
-					/* section no headers, and no padding */
-#define SECT_FVMLIB_INIT0 "__fvmlib_init0"	/* the fvmlib initialization */
-						/*  section */
-#define SECT_FVMLIB_INIT1 "__fvmlib_init1"	/* the section following the */
-					        /*  fvmlib initialization */
-						/*  section */
-
-#define	SEG_DATA	"__DATA"	/* the tradition UNIX data segment */
-#define	SECT_DATA	"__data"	/* the real initialized data section */
-					/* no padding, no bss overlap */
-#define	SECT_BSS	"__bss"		/* the real uninitialized data section*/
-					/* no padding */
-#define SECT_COMMON	"__common"	/* the section common symbols are */
-					/* allocated in by the link editor */
-
-#define	SEG_OBJC	"__OBJC"	/* objective-C runtime segment */
-#define SECT_OBJC_SYMBOLS "__symbol_table"	/* symbol table */
-#define SECT_OBJC_MODULES "__module_info"	/* module information */
-#define SECT_OBJC_STRINGS "__selector_strs"	/* string table */
-#define SECT_OBJC_REFS "__selector_refs"	/* string table */
-
-#define	SEG_ICON	 "__ICON"	/* the icon segment */
-#define	SECT_ICON_HEADER "__header"	/* the icon headers */
-#define	SECT_ICON_TIFF   "__tiff"	/* the icons in tiff format */
-
-#define	SEG_LINKEDIT	"__LINKEDIT"	/* the segment containing all structs */
-					/* created and maintained by the link */
-					/* editor.  Created with -seglinkedit */
-					/* option to ld(1) for MH_EXECUTE and */
-					/* FVMLIB file types only */
-
-#define SEG_UNIXSTACK	"__UNIXSTACK"	/* the unix stack segment */
-
-#define SEG_IMPORT	"__IMPORT"	/* the segment for the self (dyld) */
-					/* modifing code stubs that has read, */
-					/* write and execute permissions */
-
-/*
- * Fixed virtual memory shared libraries are identified by two things.  The
- * target pathname (the name of the library as found for execution), and the
- * minor version number.  The address of where the headers are loaded is in
- * header_addr. (THIS IS OBSOLETE and no longer supported).
- */
-struct fvmlib {
-	union lc_str	name;		/* library's target pathname */
-	uint32_t	minor_version;	/* library's minor version number */
-	uint32_t	header_addr;	/* library's header address */
-};
-
-/*
- * A fixed virtual shared library (filetype == MH_FVMLIB in the mach header)
- * contains a fvmlib_command (cmd == LC_IDFVMLIB) to identify the library.
- * An object that uses a fixed virtual shared library also contains a
- * fvmlib_command (cmd == LC_LOADFVMLIB) for each library it uses.
- * (THIS IS OBSOLETE and no longer supported).
- */
-struct fvmlib_command {
-	uint32_t	cmd;		/* LC_IDFVMLIB or LC_LOADFVMLIB */
-	uint32_t	cmdsize;	/* includes pathname string */
-	struct fvmlib	fvmlib;		/* the library identification */
-};
-
-/*
- * Dynamicly linked shared libraries are identified by two things.  The
- * pathname (the name of the library as found for execution), and the
- * compatibility version number.  The pathname must match and the compatibility
- * number in the user of the library must be greater than or equal to the
- * library being used.  The time stamp is used to record the time a library was
- * built and copied into user so it can be use to determined if the library used
- * at runtime is exactly the same as used to built the program.
- */
-struct dylib {
-    union lc_str  name;			/* library's path name */
-    uint32_t timestamp;			/* library's build time stamp */
-    uint32_t current_version;		/* library's current version number */
-    uint32_t compatibility_version;	/* library's compatibility vers number*/
-};
-
-/*
- * A dynamically linked shared library (filetype == MH_DYLIB in the mach header)
- * contains a dylib_command (cmd == LC_ID_DYLIB) to identify the library.
- * An object that uses a dynamically linked shared library also contains a
- * dylib_command (cmd == LC_LOAD_DYLIB, LC_LOAD_WEAK_DYLIB, or
- * LC_REEXPORT_DYLIB) for each library it uses.
- */
-struct dylib_command {
-	uint32_t	cmd;		/* LC_ID_DYLIB, LC_LOAD_{,WEAK_}DYLIB,
-					   LC_REEXPORT_DYLIB */
-	uint32_t	cmdsize;	/* includes pathname string */
-	struct dylib	dylib;		/* the library identification */
-};
-
-/*
- * A dynamically linked shared library may be a subframework of an umbrella
- * framework.  If so it will be linked with "-umbrella umbrella_name" where
- * Where "umbrella_name" is the name of the umbrella framework. A subframework
- * can only be linked against by its umbrella framework or other subframeworks
- * that are part of the same umbrella framework.  Otherwise the static link
- * editor produces an error and states to link against the umbrella framework.
- * The name of the umbrella framework for subframeworks is recorded in the
- * following structure.
- */
-struct sub_framework_command {
-	uint32_t	cmd;		/* LC_SUB_FRAMEWORK */
-	uint32_t	cmdsize;	/* includes umbrella string */
-	union lc_str 	umbrella;	/* the umbrella framework name */
-};
-
-/*
- * For dynamically linked shared libraries that are subframework of an umbrella
- * framework they can allow clients other than the umbrella framework or other
- * subframeworks in the same umbrella framework.  To do this the subframework
- * is built with "-allowable_client client_name" and an LC_SUB_CLIENT load
- * command is created for each -allowable_client flag.  The client_name is
- * usually a framework name.  It can also be a name used for bundles clients
- * where the bundle is built with "-client_name client_name".
- */
-struct sub_client_command {
-	uint32_t	cmd;		/* LC_SUB_CLIENT */
-	uint32_t	cmdsize;	/* includes client string */
-	union lc_str 	client;		/* the client name */
-};
-
-/*
- * A dynamically linked shared library may be a sub_umbrella of an umbrella
- * framework.  If so it will be linked with "-sub_umbrella umbrella_name" where
- * Where "umbrella_name" is the name of the sub_umbrella framework.  When
- * staticly linking when -twolevel_namespace is in effect a twolevel namespace 
- * umbrella framework will only cause its subframeworks and those frameworks
- * listed as sub_umbrella frameworks to be implicited linked in.  Any other
- * dependent dynamic libraries will not be linked it when -twolevel_namespace
- * is in effect.  The primary library recorded by the static linker when
- * resolving a symbol in these libraries will be the umbrella framework.
- * Zero or more sub_umbrella frameworks may be use by an umbrella framework.
- * The name of a sub_umbrella framework is recorded in the following structure.
- */
-struct sub_umbrella_command {
-	uint32_t	cmd;		/* LC_SUB_UMBRELLA */
-	uint32_t	cmdsize;	/* includes sub_umbrella string */
-	union lc_str 	sub_umbrella;	/* the sub_umbrella framework name */
-};
-
-/*
- * A dynamically linked shared library may be a sub_library of another shared
- * library.  If so it will be linked with "-sub_library library_name" where
- * Where "library_name" is the name of the sub_library shared library.  When
- * staticly linking when -twolevel_namespace is in effect a twolevel namespace 
- * shared library will only cause its subframeworks and those frameworks
- * listed as sub_umbrella frameworks and libraries listed as sub_libraries to
- * be implicited linked in.  Any other dependent dynamic libraries will not be
- * linked it when -twolevel_namespace is in effect.  The primary library
- * recorded by the static linker when resolving a symbol in these libraries
- * will be the umbrella framework (or dynamic library). Zero or more sub_library
- * shared libraries may be use by an umbrella framework or (or dynamic library).
- * The name of a sub_library framework is recorded in the following structure.
- * For example /usr/lib/libobjc_profile.A.dylib would be recorded as "libobjc".
- */
-struct sub_library_command {
-	uint32_t	cmd;		/* LC_SUB_LIBRARY */
-	uint32_t	cmdsize;	/* includes sub_library string */
-	union lc_str 	sub_library;	/* the sub_library name */
-};
-
-/*
- * A program (filetype == MH_EXECUTE) that is
- * prebound to its dynamic libraries has one of these for each library that
- * the static linker used in prebinding.  It contains a bit vector for the
- * modules in the library.  The bits indicate which modules are bound (1) and
- * which are not (0) from the library.  The bit for module 0 is the low bit
- * of the first byte.  So the bit for the Nth module is:
- * (linked_modules[N/8] >> N%8) & 1
- */
-struct prebound_dylib_command {
-	uint32_t	cmd;		/* LC_PREBOUND_DYLIB */
-	uint32_t	cmdsize;	/* includes strings */
-	union lc_str	name;		/* library's path name */
-	uint32_t	nmodules;	/* number of modules in library */
-	union lc_str	linked_modules;	/* bit vector of linked modules */
-};
-
-/*
- * A program that uses a dynamic linker contains a dylinker_command to identify
- * the name of the dynamic linker (LC_LOAD_DYLINKER).  And a dynamic linker
- * contains a dylinker_command to identify the dynamic linker (LC_ID_DYLINKER).
- * A file can have at most one of these.
- * This struct is also used for the LC_DYLD_ENVIRONMENT load command and
- * contains string for dyld to treat like environment variable.
- */
-struct dylinker_command {
-	uint32_t	cmd;		/* LC_ID_DYLINKER, LC_LOAD_DYLINKER or
-					   LC_DYLD_ENVIRONMENT */
-	uint32_t	cmdsize;	/* includes pathname string */
-	union lc_str    name;		/* dynamic linker's path name */
-};
-
-/*
- * Thread commands contain machine-specific data structures suitable for
- * use in the thread state primitives.  The machine specific data structures
- * follow the struct thread_command as follows.
- * Each flavor of machine specific data structure is preceded by an uint32_t
- * constant for the flavor of that data structure, an uint32_t that is the
- * count of uint32_t's of the size of the state data structure and then
- * the state data structure follows.  This triple may be repeated for many
- * flavors.  The constants for the flavors, counts and state data structure
- * definitions are expected to be in the header file .
- * These machine specific data structures sizes must be multiples of
- * 4 bytes.  The cmdsize reflects the total size of the thread_command
- * and all of the sizes of the constants for the flavors, counts and state
- * data structures.
- *
- * For executable objects that are unix processes there will be one
- * thread_command (cmd == LC_UNIXTHREAD) created for it by the link-editor.
- * This is the same as a LC_THREAD, except that a stack is automatically
- * created (based on the shell's limit for the stack size).  Command arguments
- * and environment variables are copied onto that stack.
- */
-struct thread_command {
-	uint32_t	cmd;		/* LC_THREAD or  LC_UNIXTHREAD */
-	uint32_t	cmdsize;	/* total size of this command */
-	/* uint32_t flavor		   flavor of thread state */
-	/* uint32_t count		   count of uint32_t's in thread state */
-	/* struct XXX_thread_state state   thread state for this flavor */
-	/* ... */
-};
-
-/*
- * The routines command contains the address of the dynamic shared library 
- * initialization routine and an index into the module table for the module
- * that defines the routine.  Before any modules are used from the library the
- * dynamic linker fully binds the module that defines the initialization routine
- * and then calls it.  This gets called before any module initialization
- * routines (used for C++ static constructors) in the library.
- */
-struct routines_command { /* for 32-bit architectures */
-	uint32_t	cmd;		/* LC_ROUTINES */
-	uint32_t	cmdsize;	/* total size of this command */
-	uint32_t	init_address;	/* address of initialization routine */
-	uint32_t	init_module;	/* index into the module table that */
-				        /*  the init routine is defined in */
-	uint32_t	reserved1;
-	uint32_t	reserved2;
-	uint32_t	reserved3;
-	uint32_t	reserved4;
-	uint32_t	reserved5;
-	uint32_t	reserved6;
-};
-
-/*
- * The 64-bit routines command.  Same use as above.
- */
-struct routines_command_64 { /* for 64-bit architectures */
-	uint32_t	cmd;		/* LC_ROUTINES_64 */
-	uint32_t	cmdsize;	/* total size of this command */
-	uint64_t	init_address;	/* address of initialization routine */
-	uint64_t	init_module;	/* index into the module table that */
-					/*  the init routine is defined in */
-	uint64_t	reserved1;
-	uint64_t	reserved2;
-	uint64_t	reserved3;
-	uint64_t	reserved4;
-	uint64_t	reserved5;
-	uint64_t	reserved6;
-};
-
-/*
- * The symtab_command contains the offsets and sizes of the link-edit 4.3BSD
- * "stab" style symbol table information as described in the header files
- *  and .
- */
-struct symtab_command {
-	uint32_t	cmd;		/* LC_SYMTAB */
-	uint32_t	cmdsize;	/* sizeof(struct symtab_command) */
-	uint32_t	symoff;		/* symbol table offset */
-	uint32_t	nsyms;		/* number of symbol table entries */
-	uint32_t	stroff;		/* string table offset */
-	uint32_t	strsize;	/* string table size in bytes */
-};
-
-/*
- * This is the second set of the symbolic information which is used to support
- * the data structures for the dynamically link editor.
- *
- * The original set of symbolic information in the symtab_command which contains
- * the symbol and string tables must also be present when this load command is
- * present.  When this load command is present the symbol table is organized
- * into three groups of symbols:
- *	local symbols (static and debugging symbols) - grouped by module
- *	defined external symbols - grouped by module (sorted by name if not lib)
- *	undefined external symbols (sorted by name if MH_BINDATLOAD is not set,
- *	     			    and in order the were seen by the static
- *				    linker if MH_BINDATLOAD is set)
- * In this load command there are offsets and counts to each of the three groups
- * of symbols.
- *
- * This load command contains a the offsets and sizes of the following new
- * symbolic information tables:
- *	table of contents
- *	module table
- *	reference symbol table
- *	indirect symbol table
- * The first three tables above (the table of contents, module table and
- * reference symbol table) are only present if the file is a dynamically linked
- * shared library.  For executable and object modules, which are files
- * containing only one module, the information that would be in these three
- * tables is determined as follows:
- * 	table of contents - the defined external symbols are sorted by name
- *	module table - the file contains only one module so everything in the
- *		       file is part of the module.
- *	reference symbol table - is the defined and undefined external symbols
- *
- * For dynamically linked shared library files this load command also contains
- * offsets and sizes to the pool of relocation entries for all sections
- * separated into two groups:
- *	external relocation entries
- *	local relocation entries
- * For executable and object modules the relocation entries continue to hang
- * off the section structures.
- */
-struct dysymtab_command {
-    uint32_t cmd;	/* LC_DYSYMTAB */
-    uint32_t cmdsize;	/* sizeof(struct dysymtab_command) */
-
-    /*
-     * The symbols indicated by symoff and nsyms of the LC_SYMTAB load command
-     * are grouped into the following three groups:
-     *    local symbols (further grouped by the module they are from)
-     *    defined external symbols (further grouped by the module they are from)
-     *    undefined symbols
-     *
-     * The local symbols are used only for debugging.  The dynamic binding
-     * process may have to use them to indicate to the debugger the local
-     * symbols for a module that is being bound.
-     *
-     * The last two groups are used by the dynamic binding process to do the
-     * binding (indirectly through the module table and the reference symbol
-     * table when this is a dynamically linked shared library file).
-     */
-    uint32_t ilocalsym;	/* index to local symbols */
-    uint32_t nlocalsym;	/* number of local symbols */
-
-    uint32_t iextdefsym;/* index to externally defined symbols */
-    uint32_t nextdefsym;/* number of externally defined symbols */
-
-    uint32_t iundefsym;	/* index to undefined symbols */
-    uint32_t nundefsym;	/* number of undefined symbols */
-
-    /*
-     * For the for the dynamic binding process to find which module a symbol
-     * is defined in the table of contents is used (analogous to the ranlib
-     * structure in an archive) which maps defined external symbols to modules
-     * they are defined in.  This exists only in a dynamically linked shared
-     * library file.  For executable and object modules the defined external
-     * symbols are sorted by name and is use as the table of contents.
-     */
-    uint32_t tocoff;	/* file offset to table of contents */
-    uint32_t ntoc;	/* number of entries in table of contents */
-
-    /*
-     * To support dynamic binding of "modules" (whole object files) the symbol
-     * table must reflect the modules that the file was created from.  This is
-     * done by having a module table that has indexes and counts into the merged
-     * tables for each module.  The module structure that these two entries
-     * refer to is described below.  This exists only in a dynamically linked
-     * shared library file.  For executable and object modules the file only
-     * contains one module so everything in the file belongs to the module.
-     */
-    uint32_t modtaboff;	/* file offset to module table */
-    uint32_t nmodtab;	/* number of module table entries */
-
-    /*
-     * To support dynamic module binding the module structure for each module
-     * indicates the external references (defined and undefined) each module
-     * makes.  For each module there is an offset and a count into the
-     * reference symbol table for the symbols that the module references.
-     * This exists only in a dynamically linked shared library file.  For
-     * executable and object modules the defined external symbols and the
-     * undefined external symbols indicates the external references.
-     */
-    uint32_t extrefsymoff;	/* offset to referenced symbol table */
-    uint32_t nextrefsyms;	/* number of referenced symbol table entries */
-
-    /*
-     * The sections that contain "symbol pointers" and "routine stubs" have
-     * indexes and (implied counts based on the size of the section and fixed
-     * size of the entry) into the "indirect symbol" table for each pointer
-     * and stub.  For every section of these two types the index into the
-     * indirect symbol table is stored in the section header in the field
-     * reserved1.  An indirect symbol table entry is simply a 32bit index into
-     * the symbol table to the symbol that the pointer or stub is referring to.
-     * The indirect symbol table is ordered to match the entries in the section.
-     */
-    uint32_t indirectsymoff; /* file offset to the indirect symbol table */
-    uint32_t nindirectsyms;  /* number of indirect symbol table entries */
-
-    /*
-     * To support relocating an individual module in a library file quickly the
-     * external relocation entries for each module in the library need to be
-     * accessed efficiently.  Since the relocation entries can't be accessed
-     * through the section headers for a library file they are separated into
-     * groups of local and external entries further grouped by module.  In this
-     * case the presents of this load command who's extreloff, nextrel,
-     * locreloff and nlocrel fields are non-zero indicates that the relocation
-     * entries of non-merged sections are not referenced through the section
-     * structures (and the reloff and nreloc fields in the section headers are
-     * set to zero).
-     *
-     * Since the relocation entries are not accessed through the section headers
-     * this requires the r_address field to be something other than a section
-     * offset to identify the item to be relocated.  In this case r_address is
-     * set to the offset from the vmaddr of the first LC_SEGMENT command.
-     * For MH_SPLIT_SEGS images r_address is set to the the offset from the
-     * vmaddr of the first read-write LC_SEGMENT command.
-     *
-     * The relocation entries are grouped by module and the module table
-     * entries have indexes and counts into them for the group of external
-     * relocation entries for that the module.
-     *
-     * For sections that are merged across modules there must not be any
-     * remaining external relocation entries for them (for merged sections
-     * remaining relocation entries must be local).
-     */
-    uint32_t extreloff;	/* offset to external relocation entries */
-    uint32_t nextrel;	/* number of external relocation entries */
-
-    /*
-     * All the local relocation entries are grouped together (they are not
-     * grouped by their module since they are only used if the object is moved
-     * from it staticly link edited address).
-     */
-    uint32_t locreloff;	/* offset to local relocation entries */
-    uint32_t nlocrel;	/* number of local relocation entries */
-
-};	
-
-/*
- * An indirect symbol table entry is simply a 32bit index into the symbol table 
- * to the symbol that the pointer or stub is refering to.  Unless it is for a
- * non-lazy symbol pointer section for a defined symbol which strip(1) as 
- * removed.  In which case it has the value INDIRECT_SYMBOL_LOCAL.  If the
- * symbol was also absolute INDIRECT_SYMBOL_ABS is or'ed with that.
- */
-#define INDIRECT_SYMBOL_LOCAL	0x80000000
-#define INDIRECT_SYMBOL_ABS	0x40000000
-
-
-/* a table of contents entry */
-struct dylib_table_of_contents {
-    uint32_t symbol_index;	/* the defined external symbol
-				   (index into the symbol table) */
-    uint32_t module_index;	/* index into the module table this symbol
-				   is defined in */
-};	
-
-/* a module table entry */
-struct dylib_module {
-    uint32_t module_name;	/* the module name (index into string table) */
-
-    uint32_t iextdefsym;	/* index into externally defined symbols */
-    uint32_t nextdefsym;	/* number of externally defined symbols */
-    uint32_t irefsym;		/* index into reference symbol table */
-    uint32_t nrefsym;		/* number of reference symbol table entries */
-    uint32_t ilocalsym;		/* index into symbols for local symbols */
-    uint32_t nlocalsym;		/* number of local symbols */
-
-    uint32_t iextrel;		/* index into external relocation entries */
-    uint32_t nextrel;		/* number of external relocation entries */
-
-    uint32_t iinit_iterm;	/* low 16 bits are the index into the init
-				   section, high 16 bits are the index into
-			           the term section */
-    uint32_t ninit_nterm;	/* low 16 bits are the number of init section
-				   entries, high 16 bits are the number of
-				   term section entries */
-
-    uint32_t			/* for this module address of the start of */
-	objc_module_info_addr;  /*  the (__OBJC,__module_info) section */
-    uint32_t			/* for this module size of */
-	objc_module_info_size;	/*  the (__OBJC,__module_info) section */
-};	
-
-/* a 64-bit module table entry */
-struct dylib_module_64 {
-    uint32_t module_name;	/* the module name (index into string table) */
-
-    uint32_t iextdefsym;	/* index into externally defined symbols */
-    uint32_t nextdefsym;	/* number of externally defined symbols */
-    uint32_t irefsym;		/* index into reference symbol table */
-    uint32_t nrefsym;		/* number of reference symbol table entries */
-    uint32_t ilocalsym;		/* index into symbols for local symbols */
-    uint32_t nlocalsym;		/* number of local symbols */
-
-    uint32_t iextrel;		/* index into external relocation entries */
-    uint32_t nextrel;		/* number of external relocation entries */
-
-    uint32_t iinit_iterm;	/* low 16 bits are the index into the init
-				   section, high 16 bits are the index into
-				   the term section */
-    uint32_t ninit_nterm;      /* low 16 bits are the number of init section
-				  entries, high 16 bits are the number of
-				  term section entries */
-
-    uint32_t			/* for this module size of */
-        objc_module_info_size;	/*  the (__OBJC,__module_info) section */
-    uint64_t			/* for this module address of the start of */
-        objc_module_info_addr;	/*  the (__OBJC,__module_info) section */
-};
-
-/* 
- * The entries in the reference symbol table are used when loading the module
- * (both by the static and dynamic link editors) and if the module is unloaded
- * or replaced.  Therefore all external symbols (defined and undefined) are
- * listed in the module's reference table.  The flags describe the type of
- * reference that is being made.  The constants for the flags are defined in
- *  as they are also used for symbol table entries.
- */
-struct dylib_reference {
-    uint32_t isym:24,		/* index into the symbol table */
-    		  flags:8;	/* flags to indicate the type of reference */
-};
-
-/*
- * The twolevel_hints_command contains the offset and number of hints in the
- * two-level namespace lookup hints table.
- */
-struct twolevel_hints_command {
-    uint32_t cmd;	/* LC_TWOLEVEL_HINTS */
-    uint32_t cmdsize;	/* sizeof(struct twolevel_hints_command) */
-    uint32_t offset;	/* offset to the hint table */
-    uint32_t nhints;	/* number of hints in the hint table */
-};
-
-/*
- * The entries in the two-level namespace lookup hints table are twolevel_hint
- * structs.  These provide hints to the dynamic link editor where to start
- * looking for an undefined symbol in a two-level namespace image.  The
- * isub_image field is an index into the sub-images (sub-frameworks and
- * sub-umbrellas list) that made up the two-level image that the undefined
- * symbol was found in when it was built by the static link editor.  If
- * isub-image is 0 the the symbol is expected to be defined in library and not
- * in the sub-images.  If isub-image is non-zero it is an index into the array
- * of sub-images for the umbrella with the first index in the sub-images being
- * 1. The array of sub-images is the ordered list of sub-images of the umbrella
- * that would be searched for a symbol that has the umbrella recorded as its
- * primary library.  The table of contents index is an index into the
- * library's table of contents.  This is used as the starting point of the
- * binary search or a directed linear search.
- */
-struct twolevel_hint {
-    uint32_t 
-	isub_image:8,	/* index into the sub images */
-	itoc:24;	/* index into the table of contents */
-};
-
-/*
- * The prebind_cksum_command contains the value of the original check sum for
- * prebound files or zero.  When a prebound file is first created or modified
- * for other than updating its prebinding information the value of the check sum
- * is set to zero.  When the file has it prebinding re-done and if the value of
- * the check sum is zero the original check sum is calculated and stored in
- * cksum field of this load command in the output file.  If when the prebinding
- * is re-done and the cksum field is non-zero it is left unchanged from the
- * input file.
- */
-struct prebind_cksum_command {
-    uint32_t cmd;	/* LC_PREBIND_CKSUM */
-    uint32_t cmdsize;	/* sizeof(struct prebind_cksum_command) */
-    uint32_t cksum;	/* the check sum or zero */
-};
-
-/*
- * The uuid load command contains a single 128-bit unique random number that
- * identifies an object produced by the static link editor.
- */
-struct uuid_command {
-    uint32_t	cmd;		/* LC_UUID */
-    uint32_t	cmdsize;	/* sizeof(struct uuid_command) */
-    uint8_t	uuid[16];	/* the 128-bit uuid */
-};
-
-/*
- * The rpath_command contains a path which at runtime should be added to
- * the current run path used to find @rpath prefixed dylibs.
- */
-struct rpath_command {
-    uint32_t	 cmd;		/* LC_RPATH */
-    uint32_t	 cmdsize;	/* includes string */
-    union lc_str path;		/* path to add to run path */
-};
-
-/*
- * The linkedit_data_command contains the offsets and sizes of a blob
- * of data in the __LINKEDIT segment.  
- */
-struct linkedit_data_command {
-    uint32_t	cmd;		/* LC_CODE_SIGNATURE, LC_SEGMENT_SPLIT_INFO,
-				   LC_FUNCTION_STARTS, LC_DATA_IN_CODE,
-				   LC_DYLIB_CODE_SIGN_DRS,
-				   LC_LINKER_OPTIMIZATION_HINT,
-				   LC_DYLD_EXPORTS_TRIE, or
-				   LC_DYLD_CHAINED_FIXUPS. */
-    uint32_t	cmdsize;	/* sizeof(struct linkedit_data_command) */
-    uint32_t	dataoff;	/* file offset of data in __LINKEDIT segment */
-    uint32_t	datasize;	/* file size of data in __LINKEDIT segment  */
-};
-
-/*
- * The encryption_info_command contains the file offset and size of an
- * of an encrypted segment.
- */
-struct encryption_info_command {
-   uint32_t	cmd;		/* LC_ENCRYPTION_INFO */
-   uint32_t	cmdsize;	/* sizeof(struct encryption_info_command) */
-   uint32_t	cryptoff;	/* file offset of encrypted range */
-   uint32_t	cryptsize;	/* file size of encrypted range */
-   uint32_t	cryptid;	/* which enryption system,
-				   0 means not-encrypted yet */
-};
-
-/*
- * The encryption_info_command_64 contains the file offset and size of an
- * of an encrypted segment (for use in x86_64 targets).
- */
-struct encryption_info_command_64 {
-   uint32_t	cmd;		/* LC_ENCRYPTION_INFO_64 */
-   uint32_t	cmdsize;	/* sizeof(struct encryption_info_command_64) */
-   uint32_t	cryptoff;	/* file offset of encrypted range */
-   uint32_t	cryptsize;	/* file size of encrypted range */
-   uint32_t	cryptid;	/* which enryption system,
-				   0 means not-encrypted yet */
-   uint32_t	pad;		/* padding to make this struct's size a multiple
-				   of 8 bytes */
-};
-
-/*
- * The version_min_command contains the min OS version on which this 
- * binary was built to run.
- */
-struct version_min_command {
-    uint32_t	cmd;		/* LC_VERSION_MIN_MACOSX or
-				   LC_VERSION_MIN_IPHONEOS or
-				   LC_VERSION_MIN_WATCHOS or
-				   LC_VERSION_MIN_TVOS */
-    uint32_t	cmdsize;	/* sizeof(struct min_version_command) */
-    uint32_t	version;	/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
-    uint32_t	sdk;		/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
-};
-
-/*
- * The build_version_command contains the min OS version on which this 
- * binary was built to run for its platform.  The list of known platforms and
- * tool values following it.
- */
-struct build_version_command {
-    uint32_t	cmd;		/* LC_BUILD_VERSION */
-    uint32_t	cmdsize;	/* sizeof(struct build_version_command) plus */
-				/* ntools * sizeof(struct build_tool_version) */
-    uint32_t	platform;	/* platform */
-    uint32_t	minos;		/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
-    uint32_t	sdk;		/* X.Y.Z is encoded in nibbles xxxx.yy.zz */
-    uint32_t	ntools;		/* number of tool entries following this */
-};
-
-struct build_tool_version {
-    uint32_t	tool;		/* enum for the tool */
-    uint32_t	version;	/* version number of the tool */
-};
-
-/* Known values for the platform field above. */
-#define PLATFORM_MACOS 1
-#define PLATFORM_IOS 2
-#define PLATFORM_TVOS 3
-#define PLATFORM_WATCHOS 4
-#define PLATFORM_BRIDGEOS 5
-#define PLATFORM_MACCATALYST 6
-#if (!defined(PLATFORM_MACCATALYST))
-#define PLATFORM_MACCATALYST 6
-#endif
-#define PLATFORM_IOSSIMULATOR 7
-#define PLATFORM_TVOSSIMULATOR 8
-#define PLATFORM_WATCHOSSIMULATOR 9
-#define PLATFORM_DRIVERKIT 10
-
-/* Known values for the tool field above. */
-#define TOOL_CLANG 1
-#define TOOL_SWIFT 2
-#define TOOL_LD	3
-
-/*
- * The dyld_info_command contains the file offsets and sizes of 
- * the new compressed form of the information dyld needs to 
- * load the image.  This information is used by dyld on Mac OS X
- * 10.6 and later.  All information pointed to by this command
- * is encoded using byte streams, so no endian swapping is needed
- * to interpret it. 
- */
-struct dyld_info_command {
-   uint32_t   cmd;		/* LC_DYLD_INFO or LC_DYLD_INFO_ONLY */
-   uint32_t   cmdsize;		/* sizeof(struct dyld_info_command) */
-
-    /*
-     * Dyld rebases an image whenever dyld loads it at an address different
-     * from its preferred address.  The rebase information is a stream
-     * of byte sized opcodes whose symbolic names start with REBASE_OPCODE_.
-     * Conceptually the rebase information is a table of tuples:
-     *    
-     * The opcodes are a compressed way to encode the table by only
-     * encoding when a column changes.  In addition simple patterns
-     * like "every n'th offset for m times" can be encoded in a few
-     * bytes.
-     */
-    uint32_t   rebase_off;	/* file offset to rebase info  */
-    uint32_t   rebase_size;	/* size of rebase info   */
-    
-    /*
-     * Dyld binds an image during the loading process, if the image
-     * requires any pointers to be initialized to symbols in other images.  
-     * The bind information is a stream of byte sized 
-     * opcodes whose symbolic names start with BIND_OPCODE_.
-     * Conceptually the bind information is a table of tuples:
-     *    
-     * The opcodes are a compressed way to encode the table by only
-     * encoding when a column changes.  In addition simple patterns
-     * like for runs of pointers initialzed to the same value can be 
-     * encoded in a few bytes.
-     */
-    uint32_t   bind_off;	/* file offset to binding info   */
-    uint32_t   bind_size;	/* size of binding info  */
-        
-    /*
-     * Some C++ programs require dyld to unique symbols so that all
-     * images in the process use the same copy of some code/data.
-     * This step is done after binding. The content of the weak_bind
-     * info is an opcode stream like the bind_info.  But it is sorted
-     * alphabetically by symbol name.  This enable dyld to walk 
-     * all images with weak binding information in order and look
-     * for collisions.  If there are no collisions, dyld does
-     * no updating.  That means that some fixups are also encoded
-     * in the bind_info.  For instance, all calls to "operator new"
-     * are first bound to libstdc++.dylib using the information
-     * in bind_info.  Then if some image overrides operator new
-     * that is detected when the weak_bind information is processed
-     * and the call to operator new is then rebound.
-     */
-    uint32_t   weak_bind_off;	/* file offset to weak binding info   */
-    uint32_t   weak_bind_size;  /* size of weak binding info  */
-    
-    /*
-     * Some uses of external symbols do not need to be bound immediately.
-     * Instead they can be lazily bound on first use.  The lazy_bind
-     * are contains a stream of BIND opcodes to bind all lazy symbols.
-     * Normal use is that dyld ignores the lazy_bind section when
-     * loading an image.  Instead the static linker arranged for the
-     * lazy pointer to initially point to a helper function which 
-     * pushes the offset into the lazy_bind area for the symbol
-     * needing to be bound, then jumps to dyld which simply adds
-     * the offset to lazy_bind_off to get the information on what 
-     * to bind.  
-     */
-    uint32_t   lazy_bind_off;	/* file offset to lazy binding info */
-    uint32_t   lazy_bind_size;  /* size of lazy binding infs */
-    
-    /*
-     * The symbols exported by a dylib are encoded in a trie.  This
-     * is a compact representation that factors out common prefixes.
-     * It also reduces LINKEDIT pages in RAM because it encodes all  
-     * information (name, address, flags) in one small, contiguous range.
-     * The export area is a stream of nodes.  The first node sequentially
-     * is the start node for the trie.  
-     *
-     * Nodes for a symbol start with a uleb128 that is the length of
-     * the exported symbol information for the string so far.
-     * If there is no exported symbol, the node starts with a zero byte. 
-     * If there is exported info, it follows the length.  
-     *
-     * First is a uleb128 containing flags. Normally, it is followed by
-     * a uleb128 encoded offset which is location of the content named
-     * by the symbol from the mach_header for the image.  If the flags
-     * is EXPORT_SYMBOL_FLAGS_REEXPORT, then following the flags is
-     * a uleb128 encoded library ordinal, then a zero terminated
-     * UTF8 string.  If the string is zero length, then the symbol
-     * is re-export from the specified dylib with the same name.
-     * If the flags is EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER, then following
-     * the flags is two uleb128s: the stub offset and the resolver offset.
-     * The stub is used by non-lazy pointers.  The resolver is used
-     * by lazy pointers and must be called to get the actual address to use.
-     *
-     * After the optional exported symbol information is a byte of
-     * how many edges (0-255) that this node has leaving it, 
-     * followed by each edge.
-     * Each edge is a zero terminated UTF8 of the addition chars
-     * in the symbol, followed by a uleb128 offset for the node that
-     * edge points to.
-     *  
-     */
-    uint32_t   export_off;	/* file offset to lazy binding info */
-    uint32_t   export_size;	/* size of lazy binding infs */
-};
-
-/*
- * The following are used to encode rebasing information
- */
-#define REBASE_TYPE_POINTER					1
-#define REBASE_TYPE_TEXT_ABSOLUTE32				2
-#define REBASE_TYPE_TEXT_PCREL32				3
-
-#define REBASE_OPCODE_MASK					0xF0
-#define REBASE_IMMEDIATE_MASK					0x0F
-#define REBASE_OPCODE_DONE					0x00
-#define REBASE_OPCODE_SET_TYPE_IMM				0x10
-#define REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB		0x20
-#define REBASE_OPCODE_ADD_ADDR_ULEB				0x30
-#define REBASE_OPCODE_ADD_ADDR_IMM_SCALED			0x40
-#define REBASE_OPCODE_DO_REBASE_IMM_TIMES			0x50
-#define REBASE_OPCODE_DO_REBASE_ULEB_TIMES			0x60
-#define REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB			0x70
-#define REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB	0x80
-
-
-/*
- * The following are used to encode binding information
- */
-#define BIND_TYPE_POINTER					1
-#define BIND_TYPE_TEXT_ABSOLUTE32				2
-#define BIND_TYPE_TEXT_PCREL32					3
-
-#define BIND_SPECIAL_DYLIB_SELF					 0
-#define BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE			-1
-#define BIND_SPECIAL_DYLIB_FLAT_LOOKUP				-2
-#define BIND_SPECIAL_DYLIB_WEAK_LOOKUP				-3
-
-#define BIND_SYMBOL_FLAGS_WEAK_IMPORT				0x1
-#define BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION			0x8
-
-#define BIND_OPCODE_MASK					0xF0
-#define BIND_IMMEDIATE_MASK					0x0F
-#define BIND_OPCODE_DONE					0x00
-#define BIND_OPCODE_SET_DYLIB_ORDINAL_IMM			0x10
-#define BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB			0x20
-#define BIND_OPCODE_SET_DYLIB_SPECIAL_IMM			0x30
-#define BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM		0x40
-#define BIND_OPCODE_SET_TYPE_IMM				0x50
-#define BIND_OPCODE_SET_ADDEND_SLEB				0x60
-#define BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB			0x70
-#define BIND_OPCODE_ADD_ADDR_ULEB				0x80
-#define BIND_OPCODE_DO_BIND					0x90
-#define BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB			0xA0
-#define BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED			0xB0
-#define BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB		0xC0
-#define	BIND_OPCODE_THREADED					0xD0
-#define	BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB 0x00
-#define	BIND_SUBOPCODE_THREADED_APPLY				 0x01
-
-
-/*
- * The following are used on the flags byte of a terminal node
- * in the export information.
- */
-#define EXPORT_SYMBOL_FLAGS_KIND_MASK				0x03
-#define EXPORT_SYMBOL_FLAGS_KIND_REGULAR			0x00
-#define EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL			0x01
-#define EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE			0x02
-#define EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION			0x04
-#define EXPORT_SYMBOL_FLAGS_REEXPORT				0x08
-#define EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER			0x10
-
-/*
- * The linker_option_command contains linker options embedded in object files.
- */
-struct linker_option_command {
-    uint32_t  cmd;	/* LC_LINKER_OPTION only used in MH_OBJECT filetypes */
-    uint32_t  cmdsize;
-    uint32_t  count;	/* number of strings */
-    /* concatenation of zero terminated UTF8 strings.
-       Zero filled at end to align */
-};
-
-/*
- * The symseg_command contains the offset and size of the GNU style
- * symbol table information as described in the header file .
- * The symbol roots of the symbol segments must also be aligned properly
- * in the file.  So the requirement of keeping the offsets aligned to a
- * multiple of a 4 bytes translates to the length field of the symbol
- * roots also being a multiple of a long.  Also the padding must again be
- * zeroed. (THIS IS OBSOLETE and no longer supported).
- */
-struct symseg_command {
-	uint32_t	cmd;		/* LC_SYMSEG */
-	uint32_t	cmdsize;	/* sizeof(struct symseg_command) */
-	uint32_t	offset;		/* symbol segment offset */
-	uint32_t	size;		/* symbol segment size in bytes */
-};
-
-/*
- * The ident_command contains a free format string table following the
- * ident_command structure.  The strings are null terminated and the size of
- * the command is padded out with zero bytes to a multiple of 4 bytes/
- * (THIS IS OBSOLETE and no longer supported).
- */
-struct ident_command {
-	uint32_t cmd;		/* LC_IDENT */
-	uint32_t cmdsize;	/* strings that follow this command */
-};
-
-/*
- * The fvmfile_command contains a reference to a file to be loaded at the
- * specified virtual address.  (Presently, this command is reserved for
- * internal use.  The kernel ignores this command when loading a program into
- * memory).
- */
-struct fvmfile_command {
-	uint32_t cmd;			/* LC_FVMFILE */
-	uint32_t cmdsize;		/* includes pathname string */
-	union lc_str	name;		/* files pathname */
-	uint32_t	header_addr;	/* files virtual address */
-};
-
-
-/*
- * The entry_point_command is a replacement for thread_command.
- * It is used for main executables to specify the location (file offset)
- * of main().  If -stack_size was used at link time, the stacksize
- * field will contain the stack size need for the main thread.
- */
-struct entry_point_command {
-    uint32_t  cmd;	/* LC_MAIN only used in MH_EXECUTE filetypes */
-    uint32_t  cmdsize;	/* 24 */
-    uint64_t  entryoff;	/* file (__TEXT) offset of main() */
-    uint64_t  stacksize;/* if not zero, initial stack size */
-};
-
-
-/*
- * The source_version_command is an optional load command containing
- * the version of the sources used to build the binary.
- */
-struct source_version_command {
-    uint32_t  cmd;	/* LC_SOURCE_VERSION */
-    uint32_t  cmdsize;	/* 16 */
-    uint64_t  version;	/* A.B.C.D.E packed as a24.b10.c10.d10.e10 */
-};
-
-
-/*
- * The LC_DATA_IN_CODE load commands uses a linkedit_data_command 
- * to point to an array of data_in_code_entry entries. Each entry
- * describes a range of data in a code section.
- */
-struct data_in_code_entry {
-    uint32_t	offset;  /* from mach_header to start of data range*/
-    uint16_t	length;  /* number of bytes in data range */
-    uint16_t	kind;    /* a DICE_KIND_* value  */
-};
-#define DICE_KIND_DATA              0x0001
-#define DICE_KIND_JUMP_TABLE8       0x0002
-#define DICE_KIND_JUMP_TABLE16      0x0003
-#define DICE_KIND_JUMP_TABLE32      0x0004
-#define DICE_KIND_ABS_JUMP_TABLE32  0x0005
-
-
-
-/*
- * Sections of type S_THREAD_LOCAL_VARIABLES contain an array 
- * of tlv_descriptor structures.
- */
-struct tlv_descriptor
-{
-	void*		(*thunk)(struct tlv_descriptor*);
-	unsigned long	key;
-	unsigned long	offset;
-};
-
-/*
- * LC_NOTE commands describe a region of arbitrary data included in a Mach-O
- * file.  Its initial use is to record extra data in MH_CORE files.
- */
-struct note_command {
-    uint32_t	cmd;		/* LC_NOTE */
-    uint32_t	cmdsize;	/* sizeof(struct note_command) */
-    char	data_owner[16];	/* owner name for this LC_NOTE */
-    uint64_t	offset;		/* file offset of this data */
-    uint64_t	size;		/* length of data region */
-};
-
-#endif /* _MACHO_LOADER_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/clock.h b/lib/libc/include/x86_64-macos.10-none/mach/clock.h
deleted file mode 100644
index ec293fc9c16350ded405acc8135d7cb2a44e0dff..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/clock.h
+++ /dev/null
@@ -1,245 +0,0 @@
-#ifndef	_clock_user_
-#define	_clock_user_
-
-/* Module clock */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	clock_MSG_COUNT
-#define	clock_MSG_COUNT	3
-#endif	/* clock_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine clock_get_time */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_get_time
-(
-	clock_serv_t clock_serv,
-	mach_timespec_t *cur_time
-);
-
-/* Routine clock_get_attributes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_get_attributes
-(
-	clock_serv_t clock_serv,
-	clock_flavor_t flavor,
-	clock_attr_t clock_attr,
-	mach_msg_type_number_t *clock_attrCnt
-);
-
-/* Routine clock_alarm */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_alarm
-(
-	clock_serv_t clock_serv,
-	alarm_type_t alarm_type,
-	mach_timespec_t alarm_time,
-	clock_reply_t alarm_port
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__clock_subsystem__defined
-#define __Request__clock_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__clock_get_time_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		clock_flavor_t flavor;
-		mach_msg_type_number_t clock_attrCnt;
-	} __Request__clock_get_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t alarm_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		alarm_type_t alarm_type;
-		mach_timespec_t alarm_time;
-	} __Request__clock_alarm_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__clock_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__clock_subsystem__defined
-#define __RequestUnion__clock_subsystem__defined
-union __RequestUnion__clock_subsystem {
-	__Request__clock_get_time_t Request_clock_get_time;
-	__Request__clock_get_attributes_t Request_clock_get_attributes;
-	__Request__clock_alarm_t Request_clock_alarm;
-};
-#endif /* !__RequestUnion__clock_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__clock_subsystem__defined
-#define __Reply__clock_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_timespec_t cur_time;
-	} __Reply__clock_get_time_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t clock_attrCnt;
-		int clock_attr[1];
-	} __Reply__clock_get_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__clock_alarm_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__clock_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__clock_subsystem__defined
-#define __ReplyUnion__clock_subsystem__defined
-union __ReplyUnion__clock_subsystem {
-	__Reply__clock_get_time_t Reply_clock_get_time;
-	__Reply__clock_get_attributes_t Reply_clock_get_attributes;
-	__Reply__clock_alarm_t Reply_clock_alarm;
-};
-#endif /* !__RequestUnion__clock_subsystem__defined */
-
-#ifndef subsystem_to_name_map_clock
-#define subsystem_to_name_map_clock \
-    { "clock_get_time", 1000 },\
-    { "clock_get_attributes", 1001 },\
-    { "clock_alarm", 1002 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _clock_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/clock_priv.h b/lib/libc/include/x86_64-macos.10-none/mach/clock_priv.h
deleted file mode 100644
index 0c9d11d9c6460701bd148dc90ca8abcaf447f2a2..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/clock_priv.h
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef	_clock_priv_user_
-#define	_clock_priv_user_
-
-/* Module clock_priv */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	clock_priv_MSG_COUNT
-#define	clock_priv_MSG_COUNT	2
-#endif	/* clock_priv_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine clock_set_time */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_set_time
-(
-	clock_ctrl_t clock_ctrl,
-	mach_timespec_t new_time
-);
-
-/* Routine clock_set_attributes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_set_attributes
-(
-	clock_ctrl_t clock_ctrl,
-	clock_flavor_t flavor,
-	clock_attr_t clock_attr,
-	mach_msg_type_number_t clock_attrCnt
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__clock_priv_subsystem__defined
-#define __Request__clock_priv_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_timespec_t new_time;
-	} __Request__clock_set_time_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		clock_flavor_t flavor;
-		mach_msg_type_number_t clock_attrCnt;
-		int clock_attr[1];
-	} __Request__clock_set_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__clock_priv_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__clock_priv_subsystem__defined
-#define __RequestUnion__clock_priv_subsystem__defined
-union __RequestUnion__clock_priv_subsystem {
-	__Request__clock_set_time_t Request_clock_set_time;
-	__Request__clock_set_attributes_t Request_clock_set_attributes;
-};
-#endif /* !__RequestUnion__clock_priv_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__clock_priv_subsystem__defined
-#define __Reply__clock_priv_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__clock_set_time_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__clock_set_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__clock_priv_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__clock_priv_subsystem__defined
-#define __ReplyUnion__clock_priv_subsystem__defined
-union __ReplyUnion__clock_priv_subsystem {
-	__Reply__clock_set_time_t Reply_clock_set_time;
-	__Reply__clock_set_attributes_t Reply_clock_set_attributes;
-};
-#endif /* !__RequestUnion__clock_priv_subsystem__defined */
-
-#ifndef subsystem_to_name_map_clock_priv
-#define subsystem_to_name_map_clock_priv \
-    { "clock_set_time", 1200 },\
-    { "clock_set_attributes", 1201 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _clock_priv_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/exception_types.h b/lib/libc/include/x86_64-macos.10-none/mach/exception_types.h
deleted file mode 100644
index a0026b9ce220fd5fdcd99ff1558912aca2a686a9..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/exception_types.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _MACH_EXCEPTION_TYPES_H_
-#define _MACH_EXCEPTION_TYPES_H_
-
-#include 
-
-/*
- *	Machine-independent exception definitions.
- */
-
-#define EXC_BAD_ACCESS          1       /* Could not access memory */
-/* Code contains kern_return_t describing error. */
-/* Subcode contains bad memory address. */
-
-#define EXC_BAD_INSTRUCTION     2       /* Instruction failed */
-/* Illegal or undefined instruction or operand */
-
-#define EXC_ARITHMETIC          3       /* Arithmetic exception */
-/* Exact nature of exception is in code field */
-
-#define EXC_EMULATION           4       /* Emulation instruction */
-/* Emulation support instruction encountered */
-/* Details in code and subcode fields	*/
-
-#define EXC_SOFTWARE            5       /* Software generated exception */
-/* Exact exception is in code field. */
-/* Codes 0 - 0xFFFF reserved to hardware */
-/* Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) */
-
-#define EXC_BREAKPOINT          6       /* Trace, breakpoint, etc. */
-/* Details in code field. */
-
-#define EXC_SYSCALL             7       /* System calls. */
-
-#define EXC_MACH_SYSCALL        8       /* Mach system calls. */
-
-#define EXC_RPC_ALERT           9       /* RPC alert */
-
-#define EXC_CRASH               10      /* Abnormal process exit */
-
-#define EXC_RESOURCE            11      /* Hit resource consumption limit */
-/* Exact resource is in code field. */
-
-#define EXC_GUARD               12      /* Violated guarded resource protections */
-
-#define EXC_CORPSE_NOTIFY       13      /* Abnormal process exited to corpse state */
-
-#define EXC_CORPSE_VARIANT_BIT  0x100  /* bit set for EXC_*_CORPSE variants of EXC_* */
-
-
-/*
- *	Machine-independent exception behaviors
- */
-
-# define EXCEPTION_DEFAULT              1
-/*	Send a catch_exception_raise message including the identity.
- */
-
-# define EXCEPTION_STATE                2
-/*	Send a catch_exception_raise_state message including the
- *	thread state.
- */
-
-# define EXCEPTION_STATE_IDENTITY       3
-/*	Send a catch_exception_raise_state_identity message including
- *	the thread identity and state.
- */
-
-#define MACH_EXCEPTION_ERRORS           0x40000000
-/*	include additional exception specific errors, not used yet.  */
-
-#define MACH_EXCEPTION_CODES            0x80000000
-/*	Send 64-bit code and subcode in the exception header */
-
-#define MACH_EXCEPTION_MASK             (MACH_EXCEPTION_CODES | MACH_EXCEPTION_ERRORS)
-/*
- * Masks for exception definitions, above
- * bit zero is unused, therefore 1 word = 31 exception types
- */
-
-#define EXC_MASK_BAD_ACCESS             (1 << EXC_BAD_ACCESS)
-#define EXC_MASK_BAD_INSTRUCTION        (1 << EXC_BAD_INSTRUCTION)
-#define EXC_MASK_ARITHMETIC             (1 << EXC_ARITHMETIC)
-#define EXC_MASK_EMULATION              (1 << EXC_EMULATION)
-#define EXC_MASK_SOFTWARE               (1 << EXC_SOFTWARE)
-#define EXC_MASK_BREAKPOINT             (1 << EXC_BREAKPOINT)
-#define EXC_MASK_SYSCALL                (1 << EXC_SYSCALL)
-#define EXC_MASK_MACH_SYSCALL           (1 << EXC_MACH_SYSCALL)
-#define EXC_MASK_RPC_ALERT              (1 << EXC_RPC_ALERT)
-#define EXC_MASK_CRASH                  (1 << EXC_CRASH)
-#define EXC_MASK_RESOURCE               (1 << EXC_RESOURCE)
-#define EXC_MASK_GUARD                  (1 << EXC_GUARD)
-#define EXC_MASK_CORPSE_NOTIFY          (1 << EXC_CORPSE_NOTIFY)
-
-#define EXC_MASK_ALL    (EXC_MASK_BAD_ACCESS |                  \
-	                 EXC_MASK_BAD_INSTRUCTION |             \
-	                 EXC_MASK_ARITHMETIC |                  \
-	                 EXC_MASK_EMULATION |                   \
-	                 EXC_MASK_SOFTWARE |                    \
-	                 EXC_MASK_BREAKPOINT |                  \
-	                 EXC_MASK_SYSCALL |                     \
-	                 EXC_MASK_MACH_SYSCALL |                \
-	                 EXC_MASK_RPC_ALERT |                   \
-	                 EXC_MASK_RESOURCE |                    \
-	                 EXC_MASK_GUARD |                       \
-	                 EXC_MASK_MACHINE)
-
-
-#define FIRST_EXCEPTION         1       /* ZERO is illegal */
-
-/*
- * Machine independent codes for EXC_SOFTWARE
- * Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix)
- * 0x10000 - 0x10002 in use for unix signals
- * 0x20000 - 0x2FFFF reserved for MACF
- */
-#define EXC_SOFT_SIGNAL         0x10003 /* Unix signal exceptions */
-
-#define EXC_MACF_MIN            0x20000 /* MACF exceptions */
-#define EXC_MACF_MAX            0x2FFFF
-
-#ifndef ASSEMBLER
-
-#include 
-#include 
-#include 
-/*
- * Exported types
- */
-
-typedef int                             exception_type_t;
-typedef integer_t                       exception_data_type_t;
-typedef int64_t                         mach_exception_data_type_t;
-typedef int                             exception_behavior_t;
-typedef exception_data_type_t           *exception_data_t;
-typedef mach_exception_data_type_t      *mach_exception_data_t;
-typedef unsigned int                    exception_mask_t;
-typedef exception_mask_t                *exception_mask_array_t;
-typedef exception_behavior_t            *exception_behavior_array_t;
-typedef thread_state_flavor_t           *exception_flavor_array_t;
-typedef mach_port_t                     *exception_port_array_t;
-typedef mach_exception_data_type_t      mach_exception_code_t;
-typedef mach_exception_data_type_t      mach_exception_subcode_t;
-
-#endif  /* ASSEMBLER */
-
-#endif  /* _MACH_EXCEPTION_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/host_priv.h b/lib/libc/include/x86_64-macos.10-none/mach/host_priv.h
deleted file mode 100644
index 9445ae5d93bbb8699ddf2cda0ead3336f59fb2db..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/host_priv.h
+++ /dev/null
@@ -1,1163 +0,0 @@
-#ifndef	_host_priv_user_
-#define	_host_priv_user_
-
-/* Module host_priv */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	host_priv_MSG_COUNT
-#define	host_priv_MSG_COUNT	26
-#endif	/* host_priv_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine host_get_boot_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_boot_info
-(
-	host_priv_t host_priv,
-	kernel_boot_info_t boot_info
-);
-
-/* Routine host_reboot */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_reboot
-(
-	host_priv_t host_priv,
-	int options
-);
-
-/* Routine host_priv_statistics */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_priv_statistics
-(
-	host_priv_t host_priv,
-	host_flavor_t flavor,
-	host_info_t host_info_out,
-	mach_msg_type_number_t *host_info_outCnt
-);
-
-/* Routine host_default_memory_manager */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_default_memory_manager
-(
-	host_priv_t host_priv,
-	memory_object_default_t *default_manager,
-	memory_object_cluster_size_t cluster_size
-);
-
-/* Routine vm_wire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_wire
-(
-	host_priv_t host_priv,
-	vm_map_t task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_prot_t desired_access
-);
-
-/* Routine thread_wire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_wire
-(
-	host_priv_t host_priv,
-	thread_act_t thread,
-	boolean_t wired
-);
-
-/* Routine vm_allocate_cpm */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_allocate_cpm
-(
-	host_priv_t host_priv,
-	vm_map_t task,
-	vm_address_t *address,
-	vm_size_t size,
-	int flags
-);
-
-/* Routine host_processors */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_processors
-(
-	host_priv_t host_priv,
-	processor_array_t *out_processor_list,
-	mach_msg_type_number_t *out_processor_listCnt
-);
-
-/* Routine host_get_clock_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_clock_control
-(
-	host_priv_t host_priv,
-	clock_id_t clock_id,
-	clock_ctrl_t *clock_ctrl
-);
-
-/* Routine kmod_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kmod_create
-(
-	host_priv_t host_priv,
-	vm_address_t info,
-	kmod_t *module
-);
-
-/* Routine kmod_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kmod_destroy
-(
-	host_priv_t host_priv,
-	kmod_t module
-);
-
-/* Routine kmod_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kmod_control
-(
-	host_priv_t host_priv,
-	kmod_t module,
-	kmod_control_flavor_t flavor,
-	kmod_args_t *data,
-	mach_msg_type_number_t *dataCnt
-);
-
-/* Routine host_get_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_special_port
-(
-	host_priv_t host_priv,
-	int node,
-	int which,
-	mach_port_t *port
-);
-
-/* Routine host_set_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_set_special_port
-(
-	host_priv_t host_priv,
-	int which,
-	mach_port_t port
-);
-
-/* Routine host_set_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_set_exception_ports
-(
-	host_priv_t host_priv,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor
-);
-
-/* Routine host_get_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_exception_ports
-(
-	host_priv_t host_priv,
-	exception_mask_t exception_mask,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlers,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine host_swap_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_swap_exception_ports
-(
-	host_priv_t host_priv,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlerss,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine mach_vm_wire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_wire
-(
-	host_priv_t host_priv,
-	vm_map_t task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	vm_prot_t desired_access
-);
-
-/* Routine host_processor_sets */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_processor_sets
-(
-	host_priv_t host_priv,
-	processor_set_name_array_t *processor_sets,
-	mach_msg_type_number_t *processor_setsCnt
-);
-
-/* Routine host_processor_set_priv */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_processor_set_priv
-(
-	host_priv_t host_priv,
-	processor_set_name_t set_name,
-	processor_set_t *set
-);
-
-/* Routine host_set_UNDServer */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_set_UNDServer
-(
-	host_priv_t host,
-	UNDServerRef server
-);
-
-/* Routine host_get_UNDServer */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_UNDServer
-(
-	host_priv_t host,
-	UNDServerRef *server
-);
-
-/* Routine kext_request */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kext_request
-(
-	host_priv_t host_priv,
-	uint32_t user_log_flags,
-	vm_offset_t request_data,
-	mach_msg_type_number_t request_dataCnt,
-	vm_offset_t *response_data,
-	mach_msg_type_number_t *response_dataCnt,
-	vm_offset_t *log_data,
-	mach_msg_type_number_t *log_dataCnt,
-	kern_return_t *op_result
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__host_priv_subsystem__defined
-#define __Request__host_priv_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_boot_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int options;
-	} __Request__host_reboot_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		host_flavor_t flavor;
-		mach_msg_type_number_t host_info_outCnt;
-	} __Request__host_priv_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t default_manager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		memory_object_cluster_size_t cluster_size;
-	} __Request__host_default_memory_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_prot_t desired_access;
-	} __Request__vm_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t thread;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t wired;
-	} __Request__thread_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		int flags;
-	} __Request__vm_allocate_cpm_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_processors_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		clock_id_t clock_id;
-	} __Request__host_get_clock_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t info;
-	} __Request__kmod_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kmod_t module;
-	} __Request__kmod_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		kmod_t module;
-		kmod_control_flavor_t flavor;
-		mach_msg_type_number_t dataCnt;
-	} __Request__kmod_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int node;
-		int which;
-	} __Request__host_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int which;
-	} __Request__host_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__host_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-	} __Request__host_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__host_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		vm_prot_t desired_access;
-	} __Request__mach_vm_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_processor_sets_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t set_name;
-		/* end of the kernel processed data */
-	} __Request__host_processor_set_priv_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t server;
-		/* end of the kernel processed data */
-	} __Request__host_set_UNDServer_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_UNDServer_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t request_data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		uint32_t user_log_flags;
-		mach_msg_type_number_t request_dataCnt;
-	} __Request__kext_request_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__host_priv_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__host_priv_subsystem__defined
-#define __RequestUnion__host_priv_subsystem__defined
-union __RequestUnion__host_priv_subsystem {
-	__Request__host_get_boot_info_t Request_host_get_boot_info;
-	__Request__host_reboot_t Request_host_reboot;
-	__Request__host_priv_statistics_t Request_host_priv_statistics;
-	__Request__host_default_memory_manager_t Request_host_default_memory_manager;
-	__Request__vm_wire_t Request_vm_wire;
-	__Request__thread_wire_t Request_thread_wire;
-	__Request__vm_allocate_cpm_t Request_vm_allocate_cpm;
-	__Request__host_processors_t Request_host_processors;
-	__Request__host_get_clock_control_t Request_host_get_clock_control;
-	__Request__kmod_create_t Request_kmod_create;
-	__Request__kmod_destroy_t Request_kmod_destroy;
-	__Request__kmod_control_t Request_kmod_control;
-	__Request__host_get_special_port_t Request_host_get_special_port;
-	__Request__host_set_special_port_t Request_host_set_special_port;
-	__Request__host_set_exception_ports_t Request_host_set_exception_ports;
-	__Request__host_get_exception_ports_t Request_host_get_exception_ports;
-	__Request__host_swap_exception_ports_t Request_host_swap_exception_ports;
-	__Request__mach_vm_wire_t Request_mach_vm_wire;
-	__Request__host_processor_sets_t Request_host_processor_sets;
-	__Request__host_processor_set_priv_t Request_host_processor_set_priv;
-	__Request__host_set_UNDServer_t Request_host_set_UNDServer;
-	__Request__host_get_UNDServer_t Request_host_get_UNDServer;
-	__Request__kext_request_t Request_kext_request;
-};
-#endif /* !__RequestUnion__host_priv_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__host_priv_subsystem__defined
-#define __Reply__host_priv_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t boot_infoOffset; /* MiG doesn't use it */
-		mach_msg_type_number_t boot_infoCnt;
-		char boot_info[4096];
-	} __Reply__host_get_boot_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_reboot_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t host_info_outCnt;
-		integer_t host_info_out[68];
-	} __Reply__host_priv_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t default_manager;
-		/* end of the kernel processed data */
-	} __Reply__host_default_memory_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-	} __Reply__vm_allocate_cpm_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t out_processor_list;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t out_processor_listCnt;
-	} __Reply__host_processors_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t clock_ctrl;
-		/* end of the kernel processed data */
-	} __Reply__host_get_clock_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		kmod_t module;
-	} __Reply__kmod_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__kmod_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dataCnt;
-	} __Reply__kmod_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t port;
-		/* end of the kernel processed data */
-	} __Reply__host_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlers[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__host_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlerss[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__host_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t processor_sets;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t processor_setsCnt;
-	} __Reply__host_processor_sets_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t set;
-		/* end of the kernel processed data */
-	} __Reply__host_processor_set_priv_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_UNDServer_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t server;
-		/* end of the kernel processed data */
-	} __Reply__host_get_UNDServer_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t response_data;
-		mach_msg_ool_descriptor_t log_data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t response_dataCnt;
-		mach_msg_type_number_t log_dataCnt;
-		kern_return_t op_result;
-	} __Reply__kext_request_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__host_priv_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__host_priv_subsystem__defined
-#define __ReplyUnion__host_priv_subsystem__defined
-union __ReplyUnion__host_priv_subsystem {
-	__Reply__host_get_boot_info_t Reply_host_get_boot_info;
-	__Reply__host_reboot_t Reply_host_reboot;
-	__Reply__host_priv_statistics_t Reply_host_priv_statistics;
-	__Reply__host_default_memory_manager_t Reply_host_default_memory_manager;
-	__Reply__vm_wire_t Reply_vm_wire;
-	__Reply__thread_wire_t Reply_thread_wire;
-	__Reply__vm_allocate_cpm_t Reply_vm_allocate_cpm;
-	__Reply__host_processors_t Reply_host_processors;
-	__Reply__host_get_clock_control_t Reply_host_get_clock_control;
-	__Reply__kmod_create_t Reply_kmod_create;
-	__Reply__kmod_destroy_t Reply_kmod_destroy;
-	__Reply__kmod_control_t Reply_kmod_control;
-	__Reply__host_get_special_port_t Reply_host_get_special_port;
-	__Reply__host_set_special_port_t Reply_host_set_special_port;
-	__Reply__host_set_exception_ports_t Reply_host_set_exception_ports;
-	__Reply__host_get_exception_ports_t Reply_host_get_exception_ports;
-	__Reply__host_swap_exception_ports_t Reply_host_swap_exception_ports;
-	__Reply__mach_vm_wire_t Reply_mach_vm_wire;
-	__Reply__host_processor_sets_t Reply_host_processor_sets;
-	__Reply__host_processor_set_priv_t Reply_host_processor_set_priv;
-	__Reply__host_set_UNDServer_t Reply_host_set_UNDServer;
-	__Reply__host_get_UNDServer_t Reply_host_get_UNDServer;
-	__Reply__kext_request_t Reply_kext_request;
-};
-#endif /* !__RequestUnion__host_priv_subsystem__defined */
-
-#ifndef subsystem_to_name_map_host_priv
-#define subsystem_to_name_map_host_priv \
-    { "host_get_boot_info", 400 },\
-    { "host_reboot", 401 },\
-    { "host_priv_statistics", 402 },\
-    { "host_default_memory_manager", 403 },\
-    { "vm_wire", 404 },\
-    { "thread_wire", 405 },\
-    { "vm_allocate_cpm", 406 },\
-    { "host_processors", 407 },\
-    { "host_get_clock_control", 408 },\
-    { "kmod_create", 409 },\
-    { "kmod_destroy", 410 },\
-    { "kmod_control", 411 },\
-    { "host_get_special_port", 412 },\
-    { "host_set_special_port", 413 },\
-    { "host_set_exception_ports", 414 },\
-    { "host_get_exception_ports", 415 },\
-    { "host_swap_exception_ports", 416 },\
-    { "mach_vm_wire", 418 },\
-    { "host_processor_sets", 419 },\
-    { "host_processor_set_priv", 420 },\
-    { "host_set_UNDServer", 423 },\
-    { "host_get_UNDServer", 424 },\
-    { "kext_request", 425 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _host_priv_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/host_security.h b/lib/libc/include/x86_64-macos.10-none/mach/host_security.h
deleted file mode 100644
index 1c1b6d9144cddbc5402831ac118e74773c276a19..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/host_security.h
+++ /dev/null
@@ -1,221 +0,0 @@
-#ifndef	_host_security_user_
-#define	_host_security_user_
-
-/* Module host_security */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	host_security_MSG_COUNT
-#define	host_security_MSG_COUNT	2
-#endif	/* host_security_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine host_security_create_task_token */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_security_create_task_token
-(
-	host_security_t host_security,
-	task_t parent_task,
-	security_token_t sec_token,
-	audit_token_t audit_token,
-	host_t host,
-	ledger_array_t ledgers,
-	mach_msg_type_number_t ledgersCnt,
-	boolean_t inherit_memory,
-	task_t *child_task
-);
-
-/* Routine host_security_set_task_token */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_security_set_task_token
-(
-	host_security_t host_security,
-	task_t target_task,
-	security_token_t sec_token,
-	audit_token_t audit_token,
-	host_t host
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__host_security_subsystem__defined
-#define __Request__host_security_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t parent_task;
-		mach_msg_port_descriptor_t host;
-		mach_msg_ool_ports_descriptor_t ledgers;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		security_token_t sec_token;
-		audit_token_t audit_token;
-		mach_msg_type_number_t ledgersCnt;
-		boolean_t inherit_memory;
-	} __Request__host_security_create_task_token_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t target_task;
-		mach_msg_port_descriptor_t host;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		security_token_t sec_token;
-		audit_token_t audit_token;
-	} __Request__host_security_set_task_token_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__host_security_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__host_security_subsystem__defined
-#define __RequestUnion__host_security_subsystem__defined
-union __RequestUnion__host_security_subsystem {
-	__Request__host_security_create_task_token_t Request_host_security_create_task_token;
-	__Request__host_security_set_task_token_t Request_host_security_set_task_token;
-};
-#endif /* !__RequestUnion__host_security_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__host_security_subsystem__defined
-#define __Reply__host_security_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t child_task;
-		/* end of the kernel processed data */
-	} __Reply__host_security_create_task_token_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_security_set_task_token_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__host_security_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__host_security_subsystem__defined
-#define __ReplyUnion__host_security_subsystem__defined
-union __ReplyUnion__host_security_subsystem {
-	__Reply__host_security_create_task_token_t Reply_host_security_create_task_token;
-	__Reply__host_security_set_task_token_t Reply_host_security_set_task_token;
-};
-#endif /* !__RequestUnion__host_security_subsystem__defined */
-
-#ifndef subsystem_to_name_map_host_security
-#define subsystem_to_name_map_host_security \
-    { "host_security_create_task_token", 600 },\
-    { "host_security_set_task_token", 601 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _host_security_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/host_special_ports.h b/lib/libc/include/x86_64-macos.10-none/mach/host_special_ports.h
deleted file mode 100644
index 8d4cdbefced4b97b606fa4b540e3a664cb32febb..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/host_special_ports.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/host_special_ports.h
- *
- *	Defines codes for access to host-wide special ports.
- */
-
-#ifndef _MACH_HOST_SPECIAL_PORTS_H_
-#define _MACH_HOST_SPECIAL_PORTS_H_
-
-/*
- * Cannot be set or gotten from user space
- */
-#define HOST_SECURITY_PORT               0
-
-#define HOST_MIN_SPECIAL_PORT            HOST_SECURITY_PORT
-
-/*
- * Always provided by kernel (cannot be set from user-space).
- */
-#define HOST_PORT                        1
-#define HOST_PRIV_PORT                   2
-#define HOST_IO_MASTER_PORT              3
-#define HOST_MAX_SPECIAL_KERNEL_PORT     7 /* room to grow */
-
-#define HOST_LAST_SPECIAL_KERNEL_PORT    HOST_IO_MASTER_PORT
-
-/*
- * Not provided by kernel
- */
-#define HOST_DYNAMIC_PAGER_PORT         (1 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_AUDIT_CONTROL_PORT         (2 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_USER_NOTIFICATION_PORT     (3 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_AUTOMOUNTD_PORT            (4 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_LOCKD_PORT                 (5 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_KTRACE_BACKGROUND_PORT     (6 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_SEATBELT_PORT              (7 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_KEXTD_PORT                 (8 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_LAUNCHCTL_PORT             (9 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_UNFREED_PORT               (10 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_AMFID_PORT                 (11 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_GSSD_PORT                  (12 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_TELEMETRY_PORT             (13 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_ATM_NOTIFICATION_PORT      (14 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_COALITION_PORT             (15 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_SYSDIAGNOSE_PORT           (16 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_XPC_EXCEPTION_PORT         (17 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_CONTAINERD_PORT            (18 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_NODE_PORT                  (19 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_RESOURCE_NOTIFY_PORT       (20 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_CLOSURED_PORT              (21 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_SYSPOLICYD_PORT            (22 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_FILECOORDINATIOND_PORT     (23 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_FAIRPLAYD_PORT             (24 + HOST_MAX_SPECIAL_KERNEL_PORT)
-
-#define HOST_MAX_SPECIAL_PORT           HOST_FAIRPLAYD_PORT
-/* MAX = last since rdar://35861175 */
-
-/* obsolete name */
-#define HOST_CHUD_PORT HOST_LAUNCHCTL_PORT
-
-/*
- * Special node identifier to always represent the local node.
- */
-#define HOST_LOCAL_NODE                  -1
-
-/*
- * Definitions for ease of use.
- *
- * In the get call, the host parameter can be any host, but will generally
- * be the local node host port. In the set call, the host must the per-node
- * host port for the node being affected.
- */
-#define host_get_host_port(host, port)  \
-	(host_get_special_port((host),  \
-	HOST_LOCAL_NODE, HOST_PORT, (port)))
-#define host_set_host_port(host, port) (KERN_INVALID_ARGUMENT)
-
-#define host_get_host_priv_port(host, port)     \
-	(host_get_special_port((host),          \
-	HOST_LOCAL_NODE, HOST_PRIV_PORT, (port)))
-#define host_set_host_priv_port(host, port) (KERN_INVALID_ARGUMENT)
-
-#define host_get_io_master_port(host, port)     \
-	(host_get_special_port((host),          \
-	HOST_LOCAL_NODE, HOST_IO_MASTER_PORT, (port)))
-#define host_set_io_master_port(host, port) (KERN_INVALID_ARGUMENT)
-
-/*
- * User-settable special ports.
- */
-#define host_get_dynamic_pager_port(host, port) \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_DYNAMIC_PAGER_PORT, (port)))
-#define host_set_dynamic_pager_port(host, port) \
-	(host_set_special_port((host), HOST_DYNAMIC_PAGER_PORT, (port)))
-
-#define host_get_audit_control_port(host, port) \
-	(host_get_special_port((host),          \
-	HOST_LOCAL_NODE, HOST_AUDIT_CONTROL_PORT, (port)))
-#define host_set_audit_control_port(host, port) \
-	(host_set_special_port((host), HOST_AUDIT_CONTROL_PORT, (port)))
-
-#define host_get_user_notification_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_USER_NOTIFICATION_PORT, (port)))
-#define host_set_user_notification_port(host, port)     \
-	(host_set_special_port((host), HOST_USER_NOTIFICATION_PORT, (port)))
-
-#define host_get_automountd_port(host, port)    \
-	(host_get_special_port((host),          \
-	HOST_LOCAL_NODE, HOST_AUTOMOUNTD_PORT, (port)))
-#define host_set_automountd_port(host, port)    \
-	(host_set_special_port((host), HOST_AUTOMOUNTD_PORT, (port)))
-
-#define host_get_lockd_port(host, port) \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_LOCKD_PORT, (port)))
-#define host_set_lockd_port(host, port) \
-	(host_set_special_port((host), HOST_LOCKD_PORT, (port)))
-
-#define host_get_ktrace_background_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_KTRACE_BACKGROUND_PORT, (port)))
-#define host_set_ktrace_background_port(host, port)     \
-	(host_set_special_port((host), HOST_KTRACE_BACKGROUND_PORT, (port)))
-
-#define host_get_kextd_port(host, port) \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_KEXTD_PORT, (port)))
-#define host_set_kextd_port(host, port) \
-	(host_set_special_port((host), HOST_KEXTD_PORT, (port)))
-
-#define host_get_launchctl_port(host, port) \
-	(host_get_special_port((host), HOST_LOCAL_NODE, HOST_LAUNCHCTL_PORT, \
-	(port)))
-#define host_set_launchctl_port(host, port) \
-	(host_set_special_port((host), HOST_LAUNCHCTL_PORT, (port)))
-
-#define host_get_chud_port(host, port) host_get_launchctl_port(host, port)
-#define host_set_chud_port(host, port) host_set_launchctl_port(host, port)
-
-#define host_get_unfreed_port(host, port)       \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_UNFREED_PORT, (port)))
-#define host_set_unfreed_port(host, port)       \
-	(host_set_special_port((host), HOST_UNFREED_PORT, (port)))
-
-#define host_get_amfid_port(host, port) \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_AMFID_PORT, (port)))
-#define host_set_amfid_port(host, port) \
-	(host_set_special_port((host), HOST_AMFID_PORT, (port)))
-
-#define host_get_gssd_port(host, port)  \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_GSSD_PORT, (port)))
-#define host_set_gssd_port(host, port)  \
-	(host_set_special_port((host), HOST_GSSD_PORT, (port)))
-
-#define host_get_telemetry_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_TELEMETRY_PORT, (port)))
-#define host_set_telemetry_port(host, port)     \
-	(host_set_special_port((host), HOST_TELEMETRY_PORT, (port)))
-
-#define host_get_atm_notification_port(host, port)      \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_ATM_NOTIFICATION_PORT, (port)))
-#define host_set_atm_notification_port(host, port)      \
-	(host_set_special_port((host), HOST_ATM_NOTIFICATION_PORT, (port)))
-
-#define host_get_coalition_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_COALITION_PORT, (port)))
-#define host_set_coalition_port(host, port)     \
-	(host_set_special_port((host), HOST_COALITION_PORT, (port)))
-
-#define host_get_sysdiagnose_port(host, port)   \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_SYSDIAGNOSE_PORT, (port)))
-#define host_set_sysdiagnose_port(host, port)   \
-	(host_set_special_port((host), HOST_SYSDIAGNOSE_PORT, (port)))
-
-#define host_get_container_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_CONTAINERD_PORT, (port)))
-#define host_set_container_port(host, port)     \
-	(host_set_special_port((host), HOST_CONTAINERD_PORT, (port)))
-
-#define host_get_node_port(host, port)  \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_NODE_PORT, (port)))
-#define host_set_node_port(host, port)  \
-	(host_set_special_port((host), HOST_NODE_PORT, (port)))
-
-#define host_get_closured_port(host, port)      \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_CLOSURED_PORT, (port)))
-#define host_set_closured_port(host, port)      \
-	(host_set_special_port((host), HOST_CLOSURED_PORT, (port)))
-
-#define host_get_syspolicyd_port(host, port)    \
-	(host_get_special_port((host),                          \
-	HOST_LOCAL_NODE, HOST_SYSPOLICYD_PORT, (port)))
-#define host_set_syspolicyd_port(host, port)    \
-	(host_set_special_port((host), HOST_SYSPOLICYD_PORT, (port)))
-
-#define host_get_filecoordinationd_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_FILECOORDINATIOND_PORT, (port)))
-#define host_set_filecoordinationd_port(host, port)     \
-	(host_set_special_port((host), HOST_FILECOORDINATIOND_PORT, (port)))
-
-#define host_get_fairplayd_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_FAIRPLAYD_PORT, (port)))
-#define host_set_fairplayd_port(host, port)     \
-	(host_set_special_port((host), HOST_FAIRPLAYD_PORT, (port)))
-
-/* HOST_RESOURCE_NOTIFY_PORT doesn't #defines these conveniences.
- *  All lookups go through send_resource_violation()
- */
-
-#endif  /* _MACH_HOST_SPECIAL_PORTS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/_structs.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/_structs.h
deleted file mode 100644
index f041af9f3f857f3eec8f1b40dfab0485b5b56b6e..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/_structs.h
+++ /dev/null
@@ -1,1232 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef	_MACH_I386__STRUCTS_H_
-#define	_MACH_I386__STRUCTS_H_
-
-#include  /* __DARWIN_UNIX03 */
-#include  /* __uint8_t */
-
-/*
- * i386 is the structure that is exported to user threads for 
- * use in status/mutate calls.  This structure should never change.
- *
- */
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_THREAD_STATE32	struct __darwin_i386_thread_state
-_STRUCT_X86_THREAD_STATE32
-{
-    unsigned int	__eax;
-    unsigned int	__ebx;
-    unsigned int	__ecx;
-    unsigned int	__edx;
-    unsigned int	__edi;
-    unsigned int	__esi;
-    unsigned int	__ebp;
-    unsigned int	__esp;
-    unsigned int	__ss;
-    unsigned int	__eflags;
-    unsigned int	__eip;
-    unsigned int	__cs;
-    unsigned int	__ds;
-    unsigned int	__es;
-    unsigned int	__fs;
-    unsigned int	__gs;
-};
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_THREAD_STATE32	struct i386_thread_state
-_STRUCT_X86_THREAD_STATE32
-{
-    unsigned int	eax;
-    unsigned int	ebx;
-    unsigned int	ecx;
-    unsigned int	edx;
-    unsigned int	edi;
-    unsigned int	esi;
-    unsigned int	ebp;
-    unsigned int	esp;
-    unsigned int	ss;
-    unsigned int	eflags;
-    unsigned int	eip;
-    unsigned int	cs;
-    unsigned int	ds;
-    unsigned int	es;
-    unsigned int	fs;
-    unsigned int	gs;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/* This structure should be double-word aligned for performance */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_FP_CONTROL	struct __darwin_fp_control
-_STRUCT_FP_CONTROL
-{
-    unsigned short		__invalid	:1,
-    				__denorm	:1,
-				__zdiv		:1,
-				__ovrfl		:1,
-				__undfl		:1,
-				__precis	:1,
-						:2,
-				__pc		:2,
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define FP_PREC_24B		0
-#define	FP_PREC_53B		2
-#define FP_PREC_64B		3
-#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
-				__rc		:2,
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define FP_RND_NEAR		0
-#define FP_RND_DOWN		1
-#define FP_RND_UP		2
-#define FP_CHOP			3
-#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
-					/*inf*/	:1,
-						:3;
-};
-typedef _STRUCT_FP_CONTROL	__darwin_fp_control_t;
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_FP_CONTROL	struct fp_control
-_STRUCT_FP_CONTROL
-{
-    unsigned short		invalid	:1,
-    				denorm	:1,
-				zdiv	:1,
-				ovrfl	:1,
-				undfl	:1,
-				precis	:1,
-					:2,
-				pc	:2,
-#define FP_PREC_24B		0
-#define	FP_PREC_53B		2
-#define FP_PREC_64B		3
-				rc	:2,
-#define FP_RND_NEAR		0
-#define FP_RND_DOWN		1
-#define FP_RND_UP		2
-#define FP_CHOP			3
-				/*inf*/	:1,
-					:3;
-};
-typedef _STRUCT_FP_CONTROL	fp_control_t;
-#endif /* !__DARWIN_UNIX03 */
-
-/*
- * Status word.
- */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_FP_STATUS	struct __darwin_fp_status
-_STRUCT_FP_STATUS
-{
-    unsigned short		__invalid	:1,
-    				__denorm	:1,
-				__zdiv		:1,
-				__ovrfl		:1,
-				__undfl		:1,
-				__precis	:1,
-				__stkflt	:1,
-				__errsumm	:1,
-				__c0		:1,
-				__c1		:1,
-				__c2		:1,
-				__tos		:3,
-				__c3		:1,
-				__busy		:1;
-};
-typedef _STRUCT_FP_STATUS	__darwin_fp_status_t;
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_FP_STATUS	struct fp_status
-_STRUCT_FP_STATUS
-{
-    unsigned short		invalid	:1,
-    				denorm	:1,
-				zdiv	:1,
-				ovrfl	:1,
-				undfl	:1,
-				precis	:1,
-				stkflt	:1,
-				errsumm	:1,
-				c0	:1,
-				c1	:1,
-				c2	:1,
-				tos	:3,
-				c3	:1,
-				busy	:1;
-};
-typedef _STRUCT_FP_STATUS	fp_status_t;
-#endif /* !__DARWIN_UNIX03 */
-				
-/* defn of 80bit x87 FPU or MMX register  */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_MMST_REG	struct __darwin_mmst_reg
-_STRUCT_MMST_REG
-{
-	char	__mmst_reg[10];
-	char	__mmst_rsrv[6];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_MMST_REG	struct mmst_reg
-_STRUCT_MMST_REG
-{
-	char	mmst_reg[10];
-	char	mmst_rsrv[6];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-
-/* defn of 128 bit XMM regs */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_XMM_REG		struct __darwin_xmm_reg
-_STRUCT_XMM_REG
-{
-	char		__xmm_reg[16];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_XMM_REG		struct xmm_reg
-_STRUCT_XMM_REG
-{
-	char		xmm_reg[16];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/* defn of 256 bit YMM regs */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_YMM_REG		struct __darwin_ymm_reg
-_STRUCT_YMM_REG
-{
-	char		__ymm_reg[32];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_YMM_REG		struct ymm_reg
-_STRUCT_YMM_REG
-{
-	char		ymm_reg[32];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/* defn of 512 bit ZMM regs */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_ZMM_REG		struct __darwin_zmm_reg
-_STRUCT_ZMM_REG
-{
-	char		__zmm_reg[64];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_ZMM_REG		struct zmm_reg
-_STRUCT_ZMM_REG
-{
-	char		zmm_reg[64];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_OPMASK_REG	struct __darwin_opmask_reg
-_STRUCT_OPMASK_REG
-{
-	char		__opmask_reg[8];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_OPMASK_REG	struct opmask_reg
-_STRUCT_OPMASK_REG
-{
-	char		opmask_reg[8];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/* 
- * Floating point state.
- */
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define FP_STATE_BYTES		512	/* number of chars worth of data from fpu_fcw */
-#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_FLOAT_STATE32	struct __darwin_i386_float_state
-_STRUCT_X86_FLOAT_STATE32
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		__fpu_ip;		/* x87 FPU Instruction Pointer offset */
-	__uint16_t		__fpu_cs;		/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-	__uint32_t		__fpu_dp;		/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		__fpu_ds;		/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	char			__fpu_rsrv4[14*16];	/* reserved */
-	int 			__fpu_reserved1;
-};
-
-#define	_STRUCT_X86_AVX_STATE32	struct __darwin_i386_avx_state
-_STRUCT_X86_AVX_STATE32
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		__fpu_ip;		/* x87 FPU Instruction Pointer offset */
-	__uint16_t		__fpu_cs;		/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-	__uint32_t		__fpu_dp;		/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		__fpu_ds;		/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	char			__fpu_rsrv4[14*16];	/* reserved */
-	int 			__fpu_reserved1;
-	char			__avx_reserved1[64];
-	_STRUCT_XMM_REG		__fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		__fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		__fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		__fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		__fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		__fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		__fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		__fpu_ymmh7;		/* YMMH 7  */
-};
-
-#define	_STRUCT_X86_AVX512_STATE32	struct __darwin_i386_avx512_state
-_STRUCT_X86_AVX512_STATE32
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		__fpu_ip;		/* x87 FPU Instruction Pointer offset */
-	__uint16_t		__fpu_cs;		/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-	__uint32_t		__fpu_dp;		/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		__fpu_ds;		/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	char			__fpu_rsrv4[14*16];	/* reserved */
-	int 			__fpu_reserved1;
-	char			__avx_reserved1[64];
-	_STRUCT_XMM_REG		__fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		__fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		__fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		__fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		__fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		__fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		__fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		__fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_OPMASK_REG	__fpu_k0;		/* K0 */
-	_STRUCT_OPMASK_REG	__fpu_k1;		/* K1 */
-	_STRUCT_OPMASK_REG	__fpu_k2;		/* K2 */
-	_STRUCT_OPMASK_REG	__fpu_k3;		/* K3 */
-	_STRUCT_OPMASK_REG	__fpu_k4;		/* K4 */
-	_STRUCT_OPMASK_REG	__fpu_k5;		/* K5 */
-	_STRUCT_OPMASK_REG	__fpu_k6;		/* K6 */
-	_STRUCT_OPMASK_REG	__fpu_k7;		/* K7 */
-	_STRUCT_YMM_REG		__fpu_zmmh0;		/* ZMMH 0  */
-	_STRUCT_YMM_REG		__fpu_zmmh1;		/* ZMMH 1  */
-	_STRUCT_YMM_REG		__fpu_zmmh2;		/* ZMMH 2  */
-	_STRUCT_YMM_REG		__fpu_zmmh3;		/* ZMMH 3  */
-	_STRUCT_YMM_REG		__fpu_zmmh4;		/* ZMMH 4  */
-	_STRUCT_YMM_REG		__fpu_zmmh5;		/* ZMMH 5  */
-	_STRUCT_YMM_REG		__fpu_zmmh6;		/* ZMMH 6  */
-	_STRUCT_YMM_REG		__fpu_zmmh7;		/* ZMMH 7  */
-};
-
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_FLOAT_STATE32	struct i386_float_state
-_STRUCT_X86_FLOAT_STATE32
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		fpu_ip;			/* x87 FPU Instruction Pointer offset */
-	__uint16_t		fpu_cs;			/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		fpu_rsrv2;		/* reserved */
-	__uint32_t		fpu_dp;			/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		fpu_ds;			/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	char			fpu_rsrv4[14*16];	/* reserved */
-	int 			fpu_reserved1;
-};
-
-#define	_STRUCT_X86_AVX_STATE32	struct i386_avx_state
-_STRUCT_X86_AVX_STATE32
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		fpu_ip;			/* x87 FPU Instruction Pointer offset */
-	__uint16_t		fpu_cs;			/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		fpu_rsrv2;		/* reserved */
-	__uint32_t		fpu_dp;			/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		fpu_ds;			/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	char			fpu_rsrv4[14*16];	/* reserved */
-	int 			fpu_reserved1;
-	char			avx_reserved1[64];
-	_STRUCT_XMM_REG		fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		fpu_ymmh7;		/* YMMH 7  */
-};
-
-#define	_STRUCT_X86_AVX512_STATE32	struct i386_avx512_state
-_STRUCT_X86_AVX512_STATE32
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		fpu_ip;			/* x87 FPU Instruction Pointer offset */
-	__uint16_t		fpu_cs;			/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		fpu_rsrv2;		/* reserved */
-	__uint32_t		fpu_dp;			/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		fpu_ds;			/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	char			fpu_rsrv4[14*16];	/* reserved */
-	int 			fpu_reserved1;
-	char			avx_reserved1[64];
-	_STRUCT_XMM_REG		fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_OPMASK_REG	fpu_k0;			/* K0 */
-	_STRUCT_OPMASK_REG	fpu_k1;			/* K1 */
-	_STRUCT_OPMASK_REG	fpu_k2;			/* K2 */
-	_STRUCT_OPMASK_REG	fpu_k3;			/* K3 */
-	_STRUCT_OPMASK_REG	fpu_k4;			/* K4 */
-	_STRUCT_OPMASK_REG	fpu_k5;			/* K5 */
-	_STRUCT_OPMASK_REG	fpu_k6;			/* K6 */
-	_STRUCT_OPMASK_REG	fpu_k7;			/* K7 */
-	_STRUCT_YMM_REG		fpu_zmmh0;		/* ZMMH 0  */
-	_STRUCT_YMM_REG		fpu_zmmh1;		/* ZMMH 1  */
-	_STRUCT_YMM_REG		fpu_zmmh2;		/* ZMMH 2  */
-	_STRUCT_YMM_REG		fpu_zmmh3;		/* ZMMH 3  */
-	_STRUCT_YMM_REG		fpu_zmmh4;		/* ZMMH 4  */
-	_STRUCT_YMM_REG		fpu_zmmh5;		/* ZMMH 5  */
-	_STRUCT_YMM_REG		fpu_zmmh6;		/* ZMMH 6  */
-	_STRUCT_YMM_REG		fpu_zmmh7;		/* ZMMH 7  */
-};
-
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_EXCEPTION_STATE32	struct __darwin_i386_exception_state
-_STRUCT_X86_EXCEPTION_STATE32
-{
-	__uint16_t	__trapno;
-	__uint16_t	__cpu;
-	__uint32_t	__err;
-	__uint32_t	__faultvaddr;
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_X86_EXCEPTION_STATE32	struct i386_exception_state
-_STRUCT_X86_EXCEPTION_STATE32
-{
-	__uint16_t	trapno;
-	__uint16_t	cpu;
-	__uint32_t	err;
-	__uint32_t	faultvaddr;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_DEBUG_STATE32	struct __darwin_x86_debug_state32
-_STRUCT_X86_DEBUG_STATE32
-{
-	unsigned int	__dr0;
-	unsigned int	__dr1;
-	unsigned int	__dr2;
-	unsigned int	__dr3;
-	unsigned int	__dr4;
-	unsigned int	__dr5;
-	unsigned int	__dr6;
-	unsigned int	__dr7;
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_X86_DEBUG_STATE32	struct x86_debug_state32
-_STRUCT_X86_DEBUG_STATE32
-{
-	unsigned int	dr0;
-	unsigned int	dr1;
-	unsigned int	dr2;
-	unsigned int	dr3;
-	unsigned int	dr4;
-	unsigned int	dr5;
-	unsigned int	dr6;
-	unsigned int	dr7;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#define	_STRUCT_X86_PAGEIN_STATE	struct __x86_pagein_state
-_STRUCT_X86_PAGEIN_STATE
-{
-	int __pagein_error;
-};
-
-/*
- * 64 bit versions of the above
- */
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_THREAD_STATE64	struct __darwin_x86_thread_state64
-_STRUCT_X86_THREAD_STATE64
-{
-	__uint64_t	__rax;
-	__uint64_t	__rbx;
-	__uint64_t	__rcx;
-	__uint64_t	__rdx;
-	__uint64_t	__rdi;
-	__uint64_t	__rsi;
-	__uint64_t	__rbp;
-	__uint64_t	__rsp;
-	__uint64_t	__r8;
-	__uint64_t	__r9;
-	__uint64_t	__r10;
-	__uint64_t	__r11;
-	__uint64_t	__r12;
-	__uint64_t	__r13;
-	__uint64_t	__r14;
-	__uint64_t	__r15;
-	__uint64_t	__rip;
-	__uint64_t	__rflags;
-	__uint64_t	__cs;
-	__uint64_t	__fs;
-	__uint64_t	__gs;
-};
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_THREAD_STATE64	struct x86_thread_state64
-_STRUCT_X86_THREAD_STATE64
-{
-	__uint64_t	rax;
-	__uint64_t	rbx;
-	__uint64_t	rcx;
-	__uint64_t	rdx;
-	__uint64_t	rdi;
-	__uint64_t	rsi;
-	__uint64_t	rbp;
-	__uint64_t	rsp;
-	__uint64_t	r8;
-	__uint64_t	r9;
-	__uint64_t	r10;
-	__uint64_t	r11;
-	__uint64_t	r12;
-	__uint64_t	r13;
-	__uint64_t	r14;
-	__uint64_t	r15;
-	__uint64_t	rip;
-	__uint64_t	rflags;
-	__uint64_t	cs;
-	__uint64_t	fs;
-	__uint64_t	gs;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/*
- * 64 bit versions of the above (complete)
- */
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_THREAD_FULL_STATE64	struct __darwin_x86_thread_full_state64
-_STRUCT_X86_THREAD_FULL_STATE64
-{
-	_STRUCT_X86_THREAD_STATE64	__ss64;
-	__uint64_t			__ds;
-	__uint64_t			__es;
-	__uint64_t			__ss;
-	__uint64_t			__gsbase;
-};
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_THREAD_FULL_STATE64	struct x86_thread_full_state64
-_STRUCT_X86_THREAD_FULL_STATE64
-{
-	_STRUCT_X86_THREAD_STATE64	ss64;
-	__uint64_t			ds;
-	__uint64_t			es;
-	__uint64_t			ss;
-	__uint64_t			gsbase;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_FLOAT_STATE64	struct __darwin_x86_float_state64
-_STRUCT_X86_FLOAT_STATE64
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		__fpu_ip;		/* offset */
-	__uint16_t		__fpu_cs;		/* Selector */
-
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		__fpu_dp;		/* offset */
-	__uint16_t		__fpu_ds;		/* Selector */
-
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		__fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		__fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		__fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		__fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		__fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		__fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		__fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		__fpu_xmm15;		/* XMM 15  */
-	char			__fpu_rsrv4[6*16];	/* reserved */
-	int 			__fpu_reserved1;
-};
-
-#define	_STRUCT_X86_AVX_STATE64	struct __darwin_x86_avx_state64
-_STRUCT_X86_AVX_STATE64
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		__fpu_ip;		/* offset */
-	__uint16_t		__fpu_cs;		/* Selector */
-
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		__fpu_dp;		/* offset */
-	__uint16_t		__fpu_ds;		/* Selector */
-
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		__fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		__fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		__fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		__fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		__fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		__fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		__fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		__fpu_xmm15;		/* XMM 15  */
-	char			__fpu_rsrv4[6*16];	/* reserved */
-	int 			__fpu_reserved1;
-	char			__avx_reserved1[64];
-	_STRUCT_XMM_REG		__fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		__fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		__fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		__fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		__fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		__fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		__fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		__fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_XMM_REG		__fpu_ymmh8;		/* YMMH 8  */
-	_STRUCT_XMM_REG		__fpu_ymmh9;		/* YMMH 9  */
-	_STRUCT_XMM_REG		__fpu_ymmh10;		/* YMMH 10  */
-	_STRUCT_XMM_REG		__fpu_ymmh11;		/* YMMH 11  */
-	_STRUCT_XMM_REG		__fpu_ymmh12;		/* YMMH 12  */
-	_STRUCT_XMM_REG		__fpu_ymmh13;		/* YMMH 13  */
-	_STRUCT_XMM_REG		__fpu_ymmh14;		/* YMMH 14  */
-	_STRUCT_XMM_REG		__fpu_ymmh15;		/* YMMH 15  */
-};
-
-#define	_STRUCT_X86_AVX512_STATE64	struct __darwin_x86_avx512_state64
-_STRUCT_X86_AVX512_STATE64
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		__fpu_ip;		/* offset */
-	__uint16_t		__fpu_cs;		/* Selector */
-
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		__fpu_dp;		/* offset */
-	__uint16_t		__fpu_ds;		/* Selector */
-
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		__fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		__fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		__fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		__fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		__fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		__fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		__fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		__fpu_xmm15;		/* XMM 15  */
-	char			__fpu_rsrv4[6*16];	/* reserved */
-	int 			__fpu_reserved1;
-	char			__avx_reserved1[64];
-	_STRUCT_XMM_REG		__fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		__fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		__fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		__fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		__fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		__fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		__fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		__fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_XMM_REG		__fpu_ymmh8;		/* YMMH 8  */
-	_STRUCT_XMM_REG		__fpu_ymmh9;		/* YMMH 9  */
-	_STRUCT_XMM_REG		__fpu_ymmh10;		/* YMMH 10  */
-	_STRUCT_XMM_REG		__fpu_ymmh11;		/* YMMH 11  */
-	_STRUCT_XMM_REG		__fpu_ymmh12;		/* YMMH 12  */
-	_STRUCT_XMM_REG		__fpu_ymmh13;		/* YMMH 13  */
-	_STRUCT_XMM_REG		__fpu_ymmh14;		/* YMMH 14  */
-	_STRUCT_XMM_REG		__fpu_ymmh15;		/* YMMH 15  */
-	_STRUCT_OPMASK_REG	__fpu_k0;		/* K0 */
-	_STRUCT_OPMASK_REG	__fpu_k1;		/* K1 */
-	_STRUCT_OPMASK_REG	__fpu_k2;		/* K2 */
-	_STRUCT_OPMASK_REG	__fpu_k3;		/* K3 */
-	_STRUCT_OPMASK_REG	__fpu_k4;		/* K4 */
-	_STRUCT_OPMASK_REG	__fpu_k5;		/* K5 */
-	_STRUCT_OPMASK_REG	__fpu_k6;		/* K6 */
-	_STRUCT_OPMASK_REG	__fpu_k7;		/* K7 */
-	_STRUCT_YMM_REG		__fpu_zmmh0;		/* ZMMH 0  */
-	_STRUCT_YMM_REG		__fpu_zmmh1;		/* ZMMH 1  */
-	_STRUCT_YMM_REG		__fpu_zmmh2;		/* ZMMH 2  */
-	_STRUCT_YMM_REG		__fpu_zmmh3;		/* ZMMH 3  */
-	_STRUCT_YMM_REG		__fpu_zmmh4;		/* ZMMH 4  */
-	_STRUCT_YMM_REG		__fpu_zmmh5;		/* ZMMH 5  */
-	_STRUCT_YMM_REG		__fpu_zmmh6;		/* ZMMH 6  */
-	_STRUCT_YMM_REG		__fpu_zmmh7;		/* ZMMH 7  */
-	_STRUCT_YMM_REG		__fpu_zmmh8;		/* ZMMH 8  */
-	_STRUCT_YMM_REG		__fpu_zmmh9;		/* ZMMH 9  */
-	_STRUCT_YMM_REG		__fpu_zmmh10;		/* ZMMH 10  */
-	_STRUCT_YMM_REG		__fpu_zmmh11;		/* ZMMH 11  */
-	_STRUCT_YMM_REG		__fpu_zmmh12;		/* ZMMH 12  */
-	_STRUCT_YMM_REG		__fpu_zmmh13;		/* ZMMH 13  */
-	_STRUCT_YMM_REG		__fpu_zmmh14;		/* ZMMH 14  */
-	_STRUCT_YMM_REG		__fpu_zmmh15;		/* ZMMH 15  */
-	_STRUCT_ZMM_REG		__fpu_zmm16;		/* ZMM 16  */
-	_STRUCT_ZMM_REG		__fpu_zmm17;		/* ZMM 17  */
-	_STRUCT_ZMM_REG		__fpu_zmm18;		/* ZMM 18  */
-	_STRUCT_ZMM_REG		__fpu_zmm19;		/* ZMM 19  */
-	_STRUCT_ZMM_REG		__fpu_zmm20;		/* ZMM 20  */
-	_STRUCT_ZMM_REG		__fpu_zmm21;		/* ZMM 21  */
-	_STRUCT_ZMM_REG		__fpu_zmm22;		/* ZMM 22  */
-	_STRUCT_ZMM_REG		__fpu_zmm23;		/* ZMM 23  */
-	_STRUCT_ZMM_REG		__fpu_zmm24;		/* ZMM 24  */
-	_STRUCT_ZMM_REG		__fpu_zmm25;		/* ZMM 25  */
-	_STRUCT_ZMM_REG		__fpu_zmm26;		/* ZMM 26  */
-	_STRUCT_ZMM_REG		__fpu_zmm27;		/* ZMM 27  */
-	_STRUCT_ZMM_REG		__fpu_zmm28;		/* ZMM 28  */
-	_STRUCT_ZMM_REG		__fpu_zmm29;		/* ZMM 29  */
-	_STRUCT_ZMM_REG		__fpu_zmm30;		/* ZMM 30  */
-	_STRUCT_ZMM_REG		__fpu_zmm31;		/* ZMM 31  */
-};
-
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_FLOAT_STATE64	struct x86_float_state64
-_STRUCT_X86_FLOAT_STATE64
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		fpu_ip;			/* offset */
-	__uint16_t		fpu_cs;			/* Selector */
-
-	__uint16_t		fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		fpu_dp;			/* offset */
-	__uint16_t		fpu_ds;			/* Selector */
-
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		fpu_xmm15;		/* XMM 15  */
-	char			fpu_rsrv4[6*16];	/* reserved */
-	int 			fpu_reserved1;
-};
-
-#define	_STRUCT_X86_AVX_STATE64	struct x86_avx_state64
-_STRUCT_X86_AVX_STATE64
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		fpu_ip;			/* offset */
-	__uint16_t		fpu_cs;			/* Selector */
-
-	__uint16_t		fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		fpu_dp;			/* offset */
-	__uint16_t		fpu_ds;			/* Selector */
-
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		fpu_xmm15;		/* XMM 15  */
-	char			fpu_rsrv4[6*16];	/* reserved */
-	int 			fpu_reserved1;
-	char			avx_reserved1[64];
-	_STRUCT_XMM_REG		fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_XMM_REG		fpu_ymmh8;		/* YMMH 8  */
-	_STRUCT_XMM_REG		fpu_ymmh9;		/* YMMH 9  */
-	_STRUCT_XMM_REG		fpu_ymmh10;		/* YMMH 10  */
-	_STRUCT_XMM_REG		fpu_ymmh11;		/* YMMH 11  */
-	_STRUCT_XMM_REG		fpu_ymmh12;		/* YMMH 12  */
-	_STRUCT_XMM_REG		fpu_ymmh13;		/* YMMH 13  */
-	_STRUCT_XMM_REG		fpu_ymmh14;		/* YMMH 14  */
-	_STRUCT_XMM_REG		fpu_ymmh15;		/* YMMH 15  */
-};
-
-#define	_STRUCT_X86_AVX512_STATE64	struct x86_avx512_state64
-_STRUCT_X86_AVX512_STATE64
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		fpu_ip;		/* offset */
-	__uint16_t		fpu_cs;		/* Selector */
-
-	__uint16_t		fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		fpu_dp;		/* offset */
-	__uint16_t		fpu_ds;		/* Selector */
-
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		fpu_xmm15;		/* XMM 15  */
-	char			fpu_rsrv4[6*16];	/* reserved */
-	int 			fpu_reserved1;
-	char			avx_reserved1[64];
-	_STRUCT_XMM_REG		fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_XMM_REG		fpu_ymmh8;		/* YMMH 8  */
-	_STRUCT_XMM_REG		fpu_ymmh9;		/* YMMH 9  */
-	_STRUCT_XMM_REG		fpu_ymmh10;		/* YMMH 10  */
-	_STRUCT_XMM_REG		fpu_ymmh11;		/* YMMH 11  */
-	_STRUCT_XMM_REG		fpu_ymmh12;		/* YMMH 12  */
-	_STRUCT_XMM_REG		fpu_ymmh13;		/* YMMH 13  */
-	_STRUCT_XMM_REG		fpu_ymmh14;		/* YMMH 14  */
-	_STRUCT_XMM_REG		fpu_ymmh15;		/* YMMH 15  */
-	_STRUCT_OPMASK_REG	fpu_k0;			/* K0 */
-	_STRUCT_OPMASK_REG	fpu_k1;			/* K1 */
-	_STRUCT_OPMASK_REG	fpu_k2;			/* K2 */
-	_STRUCT_OPMASK_REG	fpu_k3;			/* K3 */
-	_STRUCT_OPMASK_REG	fpu_k4;			/* K4 */
-	_STRUCT_OPMASK_REG	fpu_k5;			/* K5 */
-	_STRUCT_OPMASK_REG	fpu_k6;			/* K6 */
-	_STRUCT_OPMASK_REG	fpu_k7;			/* K7 */
-	_STRUCT_YMM_REG		fpu_zmmh0;		/* ZMMH 0  */
-	_STRUCT_YMM_REG		fpu_zmmh1;		/* ZMMH 1  */
-	_STRUCT_YMM_REG		fpu_zmmh2;		/* ZMMH 2  */
-	_STRUCT_YMM_REG		fpu_zmmh3;		/* ZMMH 3  */
-	_STRUCT_YMM_REG		fpu_zmmh4;		/* ZMMH 4  */
-	_STRUCT_YMM_REG		fpu_zmmh5;		/* ZMMH 5  */
-	_STRUCT_YMM_REG		fpu_zmmh6;		/* ZMMH 6  */
-	_STRUCT_YMM_REG		fpu_zmmh7;		/* ZMMH 7  */
-	_STRUCT_YMM_REG		fpu_zmmh8;		/* ZMMH 8  */
-	_STRUCT_YMM_REG		fpu_zmmh9;		/* ZMMH 9  */
-	_STRUCT_YMM_REG		fpu_zmmh10;		/* ZMMH 10  */
-	_STRUCT_YMM_REG		fpu_zmmh11;		/* ZMMH 11  */
-	_STRUCT_YMM_REG		fpu_zmmh12;		/* ZMMH 12  */
-	_STRUCT_YMM_REG		fpu_zmmh13;		/* ZMMH 13  */
-	_STRUCT_YMM_REG		fpu_zmmh14;		/* ZMMH 14  */
-	_STRUCT_YMM_REG		fpu_zmmh15;		/* ZMMH 15  */
-	_STRUCT_ZMM_REG		fpu_zmm16;		/* ZMM 16  */
-	_STRUCT_ZMM_REG		fpu_zmm17;		/* ZMM 17  */
-	_STRUCT_ZMM_REG		fpu_zmm18;		/* ZMM 18  */
-	_STRUCT_ZMM_REG		fpu_zmm19;		/* ZMM 19  */
-	_STRUCT_ZMM_REG		fpu_zmm20;		/* ZMM 20  */
-	_STRUCT_ZMM_REG		fpu_zmm21;		/* ZMM 21  */
-	_STRUCT_ZMM_REG		fpu_zmm22;		/* ZMM 22  */
-	_STRUCT_ZMM_REG		fpu_zmm23;		/* ZMM 23  */
-	_STRUCT_ZMM_REG		fpu_zmm24;		/* ZMM 24  */
-	_STRUCT_ZMM_REG		fpu_zmm25;		/* ZMM 25  */
-	_STRUCT_ZMM_REG		fpu_zmm26;		/* ZMM 26  */
-	_STRUCT_ZMM_REG		fpu_zmm27;		/* ZMM 27  */
-	_STRUCT_ZMM_REG		fpu_zmm28;		/* ZMM 28  */
-	_STRUCT_ZMM_REG		fpu_zmm29;		/* ZMM 29  */
-	_STRUCT_ZMM_REG		fpu_zmm30;		/* ZMM 30  */
-	_STRUCT_ZMM_REG		fpu_zmm31;		/* ZMM 31  */
-};
-
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_EXCEPTION_STATE64	struct __darwin_x86_exception_state64
-_STRUCT_X86_EXCEPTION_STATE64
-{
-    __uint16_t	__trapno;
-    __uint16_t	__cpu;
-    __uint32_t	__err;
-    __uint64_t	__faultvaddr;
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_X86_EXCEPTION_STATE64	struct x86_exception_state64
-_STRUCT_X86_EXCEPTION_STATE64
-{
-    __uint16_t	trapno;
-    __uint16_t	cpu;
-    __uint32_t	err;
-    __uint64_t	faultvaddr;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_DEBUG_STATE64	struct __darwin_x86_debug_state64
-_STRUCT_X86_DEBUG_STATE64
-{
-	__uint64_t	__dr0;
-	__uint64_t	__dr1;
-	__uint64_t	__dr2;
-	__uint64_t	__dr3;
-	__uint64_t	__dr4;
-	__uint64_t	__dr5;
-	__uint64_t	__dr6;
-	__uint64_t	__dr7;
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_X86_DEBUG_STATE64	struct x86_debug_state64
-_STRUCT_X86_DEBUG_STATE64
-{
-	__uint64_t	dr0;
-	__uint64_t	dr1;
-	__uint64_t	dr2;
-	__uint64_t	dr3;
-	__uint64_t	dr4;
-	__uint64_t	dr5;
-	__uint64_t	dr6;
-	__uint64_t	dr7;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_CPMU_STATE64	struct __darwin_x86_cpmu_state64
-_STRUCT_X86_CPMU_STATE64
-{
-	__uint64_t __ctrs[16];
-};
-#else /* __DARWIN_UNIX03 */
-#define _STRUCT_X86_CPMU_STATE64	struct x86_cpmu_state64
-_STRUCT_X86_CPMU_STATE64
-{
-	__uint64_t ctrs[16];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#endif /* _MACH_I386__STRUCTS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/boolean.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/boolean.h
deleted file mode 100644
index d604dfcea2a01e87356cab295bdf4c33711546ee..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/boolean.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- *	File:	boolean.h
- *
- *	Boolean type, for I386.
- */
-
-#ifndef _MACH_I386_BOOLEAN_H_
-#define _MACH_I386_BOOLEAN_H_
-
-#if defined(__x86_64__) && !defined(KERNEL)
-typedef unsigned int    boolean_t;
-#else
-typedef int             boolean_t;
-#endif
-
-#endif  /* _MACH_I386_BOOLEAN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/exception.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/exception.h
deleted file mode 100644
index 3f21c3d4e61b7da7fb6acc4dbd8302fd59211ab2..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/exception.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _MACH_I386_EXCEPTION_H_
-#define _MACH_I386_EXCEPTION_H_
-
-/*
- * No machine dependent types for the 80386
- */
-
-#define EXC_TYPES_COUNT 14      /* incl. illegal exception 0 */
-
-/*
- *	Codes and subcodes for 80386 exceptions.
- */
-
-#define EXCEPTION_CODE_MAX      2       /* currently code and subcode */
-
-/*
- *	EXC_BAD_INSTRUCTION
- */
-
-#define EXC_I386_INVOP                  1
-
-/*
- *	EXC_ARITHMETIC
- */
-
-#define EXC_I386_DIV                    1
-#define EXC_I386_INTO                   2
-#define EXC_I386_NOEXT                  3
-#define EXC_I386_EXTOVR                 4
-#define EXC_I386_EXTERR                 5
-#define EXC_I386_EMERR                  6
-#define EXC_I386_BOUND                  7
-#define EXC_I386_SSEEXTERR              8
-
-/*
- *	EXC_SOFTWARE
- *	Note: 0x10000-0x10003 in use for unix signal
- */
-
-/*
- *	EXC_BAD_ACCESS
- */
-
-/*
- *	EXC_BREAKPOINT
- */
-
-#define EXC_I386_SGL                    1
-#define EXC_I386_BPT                    2
-
-#define EXC_I386_DIVERR         0       /* divide by 0 eprror		*/
-#define EXC_I386_SGLSTP         1       /* single step			*/
-#define EXC_I386_NMIFLT         2       /* NMI				*/
-#define EXC_I386_BPTFLT         3       /* breakpoint fault		*/
-#define EXC_I386_INTOFLT        4       /* INTO overflow fault		*/
-#define EXC_I386_BOUNDFLT       5       /* BOUND instruction fault	*/
-#define EXC_I386_INVOPFLT       6       /* invalid opcode fault		*/
-#define EXC_I386_NOEXTFLT       7       /* extension not available fault*/
-#define EXC_I386_DBLFLT         8       /* double fault			*/
-#define EXC_I386_EXTOVRFLT      9       /* extension overrun fault	*/
-#define EXC_I386_INVTSSFLT      10      /* invalid TSS fault		*/
-#define EXC_I386_SEGNPFLT       11      /* segment not present fault	*/
-#define EXC_I386_STKFLT         12      /* stack fault			*/
-#define EXC_I386_GPFLT          13      /* general protection fault	*/
-#define EXC_I386_PGFLT          14      /* page fault			*/
-#define EXC_I386_EXTERRFLT      16      /* extension error fault	*/
-#define EXC_I386_ALIGNFLT       17      /* Alignment fault */
-#define EXC_I386_ENDPERR        33      /* emulated extension error flt	*/
-#define EXC_I386_ENOEXTFLT      32      /* emulated ext not present	*/
-
-
-/*
- *	machine dependent exception masks
- */
-#define EXC_MASK_MACHINE        0
-
-#endif  /* _MACH_I386_EXCEPTION_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/fp_reg.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/fp_reg.h
deleted file mode 100644
index eb010ad950c6b79e55eab17654248a3db8b84917..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/fp_reg.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1992-1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _I386_FP_SAVE_H_
-#define _I386_FP_SAVE_H_
-
-/*
- * Control register
- */
-#define FPC_IE          0x0001          /* enable invalid operation
-	                                 *  exception */
-#define FPC_IM          FPC_IE
-#define FPC_DE          0x0002          /* enable denormalized operation
-	                                 *  exception */
-#define FPC_DM          FPC_DE
-#define FPC_ZE          0x0004          /* enable zero-divide exception */
-#define FPC_ZM          FPC_ZE
-#define FPC_OE          0x0008          /* enable overflow exception */
-#define FPC_OM          FPC_OE
-#define FPC_UE          0x0010          /* enable underflow exception */
-#define FPC_PE          0x0020          /* enable precision exception */
-#define FPC_PC          0x0300          /* precision control: */
-#define FPC_PC_24       0x0000                  /* 24 bits */
-#define FPC_PC_53       0x0200                  /* 53 bits */
-#define FPC_PC_64       0x0300                  /* 64 bits */
-#define FPC_RC          0x0c00          /* rounding control: */
-#define FPC_RC_RN       0x0000                  /* round to nearest or even */
-#define FPC_RC_RD       0x0400                  /* round down */
-#define FPC_RC_RU       0x0800                  /* round up */
-#define FPC_RC_CHOP     0x0c00                  /* chop */
-#define FPC_IC          0x1000          /* infinity control (obsolete) */
-#define FPC_IC_PROJ     0x0000                  /* projective infinity */
-#define FPC_IC_AFF      0x1000                  /* affine infinity (std) */
-
-/*
- * Status register
- */
-#define FPS_IE          0x0001          /* invalid operation */
-#define FPS_DE          0x0002          /* denormalized operand */
-#define FPS_ZE          0x0004          /* divide by zero */
-#define FPS_OE          0x0008          /* overflow */
-#define FPS_UE          0x0010          /* underflow */
-#define FPS_PE          0x0020          /* precision */
-#define FPS_SF          0x0040          /* stack flag */
-#define FPS_ES          0x0080          /* error summary */
-#define FPS_C0          0x0100          /* condition code bit 0 */
-#define FPS_C1          0x0200          /* condition code bit 1 */
-#define FPS_C2          0x0400          /* condition code bit 2 */
-#define FPS_TOS         0x3800          /* top-of-stack pointer */
-#define FPS_TOS_SHIFT   11
-#define FPS_C3          0x4000          /* condition code bit 3 */
-#define FPS_BUSY        0x8000          /* FPU busy */
-
-/*
- * Kind of floating-point support provided by kernel.
- */
-#define FP_NO           0               /* no floating point */
-#define FP_SOFT         1               /* software FP emulator */
-#define FP_287          2               /* 80287 */
-#define FP_387          3               /* 80387 or 80486 */
-#define FP_FXSR         4               /* Fast save/restore SIMD Extension */
-
-#endif  /* _I386_FP_SAVE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/kern_return.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/kern_return.h
deleted file mode 100644
index 47aa4b875370e2aab153482e2367062ce905a0be..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/kern_return.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- *	File:	kern_return.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *	Date:	1985
- *
- *	Machine-dependent kernel return definitions.
- */
-
-#ifndef _MACH_I386_KERN_RETURN_H_
-#define _MACH_I386_KERN_RETURN_H_
-
-#ifndef ASSEMBLER
-typedef int             kern_return_t;
-#endif  /* ASSEMBLER */
-
-#endif  /* _MACH_I386_KERN_RETURN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/processor_info.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/processor_info.h
deleted file mode 100644
index 4426e0041c2c9026c352f42b73693f095597b45b..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/processor_info.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2000 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@
- */
-/*
- *	File:	mach/i386/processor_info.h
- *
- *	Data structure definitions for i386 specific processor control
- */
-
-#ifndef _MACH_I386_PROCESSOR_INFO_H_
-#define _MACH_I386_PROCESSOR_INFO_H_
-
-#endif  /* _MACH_I386_PROCESSOR_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/rpc.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/rpc.h
deleted file mode 100644
index 0298ebb804c6d1248a6b8611ea199606379f9f0d..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/rpc.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_I386_RPC_H_
-#define _MACH_I386_RPC_H_
-
-#endif  /* _MACH_I386_RPC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/thread_state.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/thread_state.h
deleted file mode 100644
index 78595255a3d0a9f251ee47b66979d3452e77c411..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/thread_state.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_I386_THREAD_STATE_H_
-#define _MACH_I386_THREAD_STATE_H_
-
-/* Size of maximum exported thread state in words */
-#define I386_THREAD_STATE_MAX   (614)    /* Size of biggest state possible */
-
-#if defined (__i386__) || defined(__x86_64__)
-#define THREAD_STATE_MAX        I386_THREAD_STATE_MAX
-#endif
-
-#endif  /* _MACH_I386_THREAD_STATE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/thread_status.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/thread_status.h
deleted file mode 100644
index 233e0f22a62f2c4d3edd8aab0e0c4ed0bfcf371b..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/thread_status.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	thread_status.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date:	1985
- *
- *	This file contains the structure definitions for the thread
- *	state as applied to I386 processors.
- */
-
-#ifndef _MACH_I386_THREAD_STATUS_H_
-#define _MACH_I386_THREAD_STATUS_H_
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-
-/*
- * the i386_xxxx form is kept for legacy purposes since these types
- * are externally known... eventually they should be deprecated.
- * our internal implementation has moved to the following naming convention
- *
- *   x86_xxxx32 names are used to deal with 32 bit states
- *   x86_xxxx64 names are used to deal with 64 bit states
- *   x86_xxxx   names are used to deal with either 32 or 64 bit states
- *	via a self-describing mechanism
- */
-
-/*
- * these are the legacy names which should be deprecated in the future
- * they are externally known which is the only reason we don't just get
- * rid of them
- */
-#define i386_THREAD_STATE               1
-#define i386_FLOAT_STATE                2
-#define i386_EXCEPTION_STATE            3
-
-/*
- * THREAD_STATE_FLAVOR_LIST 0
- *      these are the supported flavors
- */
-#define x86_THREAD_STATE32              1
-#define x86_FLOAT_STATE32               2
-#define x86_EXCEPTION_STATE32           3
-#define x86_THREAD_STATE64              4
-#define x86_FLOAT_STATE64               5
-#define x86_EXCEPTION_STATE64           6
-#define x86_THREAD_STATE                7
-#define x86_FLOAT_STATE                 8
-#define x86_EXCEPTION_STATE             9
-#define x86_DEBUG_STATE32               10
-#define x86_DEBUG_STATE64               11
-#define x86_DEBUG_STATE                 12
-#define THREAD_STATE_NONE               13
-/* 14 and 15 are used for the internal x86_SAVED_STATE flavours */
-/* Arrange for flavors to take sequential values, 32-bit, 64-bit, non-specific */
-#define x86_AVX_STATE32                 16
-#define x86_AVX_STATE64                 (x86_AVX_STATE32 + 1)
-#define x86_AVX_STATE                   (x86_AVX_STATE32 + 2)
-#define x86_AVX512_STATE32              19
-#define x86_AVX512_STATE64              (x86_AVX512_STATE32 + 1)
-#define x86_AVX512_STATE                (x86_AVX512_STATE32 + 2)
-#define x86_PAGEIN_STATE                22
-#define x86_THREAD_FULL_STATE64         23
-
-/*
- * Largest state on this machine:
- * (be sure mach/machine/thread_state.h matches!)
- */
-#define THREAD_MACHINE_STATE_MAX        THREAD_STATE_MAX
-
-/*
- * 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
- * platform. The macro must be manually updated to include all of the valid
- * exception flavors as defined above.
- */
-#define VALID_THREAD_STATE_FLAVOR(x)            \
-	 ((x == x86_THREAD_STATE32)		|| \
-	  (x == x86_FLOAT_STATE32)		|| \
-	  (x == x86_EXCEPTION_STATE32)		|| \
-	  (x == x86_DEBUG_STATE32)		|| \
-	  (x == x86_THREAD_STATE64)		|| \
-	  (x == x86_THREAD_FULL_STATE64)	|| \
-	  (x == x86_FLOAT_STATE64)		|| \
-	  (x == x86_EXCEPTION_STATE64)		|| \
-	  (x == x86_DEBUG_STATE64)		|| \
-	  (x == x86_THREAD_STATE)		|| \
-	  (x == x86_FLOAT_STATE)		|| \
-	  (x == x86_EXCEPTION_STATE)		|| \
-	  (x == x86_DEBUG_STATE)		|| \
-	  (x == x86_AVX_STATE32)		|| \
-	  (x == x86_AVX_STATE64)		|| \
-	  (x == x86_AVX_STATE)			|| \
-	  (x == x86_AVX512_STATE32)		|| \
-	  (x == x86_AVX512_STATE64)		|| \
-	  (x == x86_AVX512_STATE)		|| \
-	  (x == x86_PAGEIN_STATE)		|| \
-	  (x == THREAD_STATE_NONE))
-
-struct x86_state_hdr {
-	uint32_t        flavor;
-	uint32_t        count;
-};
-typedef struct x86_state_hdr x86_state_hdr_t;
-
-/*
- * Default segment register values.
- */
-
-#define USER_CODE_SELECTOR      0x0017
-#define USER_DATA_SELECTOR      0x001f
-#define KERN_CODE_SELECTOR      0x0008
-#define KERN_DATA_SELECTOR      0x0010
-
-/*
- * to be deprecated in the future
- */
-typedef _STRUCT_X86_THREAD_STATE32 i386_thread_state_t;
-#define i386_THREAD_STATE_COUNT ((mach_msg_type_number_t) \
-    ( sizeof (i386_thread_state_t) / sizeof (int) ))
-
-typedef _STRUCT_X86_THREAD_STATE32 x86_thread_state32_t;
-#define x86_THREAD_STATE32_COUNT        ((mach_msg_type_number_t) \
-    ( sizeof (x86_thread_state32_t) / sizeof (int) ))
-
-/*
- * to be deprecated in the future
- */
-typedef _STRUCT_X86_FLOAT_STATE32 i386_float_state_t;
-#define i386_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(i386_float_state_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_FLOAT_STATE32 x86_float_state32_t;
-#define x86_FLOAT_STATE32_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_float_state32_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_AVX_STATE32 x86_avx_state32_t;
-#define x86_AVX_STATE32_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx_state32_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_AVX512_STATE32 x86_avx512_state32_t;
-#define x86_AVX512_STATE32_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx512_state32_t)/sizeof(unsigned int)))
-
-/*
- * to be deprecated in the future
- */
-typedef _STRUCT_X86_EXCEPTION_STATE32 i386_exception_state_t;
-#define i386_EXCEPTION_STATE_COUNT      ((mach_msg_type_number_t) \
-    ( sizeof (i386_exception_state_t) / sizeof (int) ))
-
-typedef _STRUCT_X86_EXCEPTION_STATE32 x86_exception_state32_t;
-#define x86_EXCEPTION_STATE32_COUNT     ((mach_msg_type_number_t) \
-    ( sizeof (x86_exception_state32_t) / sizeof (int) ))
-
-#define I386_EXCEPTION_STATE_COUNT i386_EXCEPTION_STATE_COUNT
-
-typedef _STRUCT_X86_DEBUG_STATE32 x86_debug_state32_t;
-#define x86_DEBUG_STATE32_COUNT       ((mach_msg_type_number_t) \
-	( sizeof (x86_debug_state32_t) / sizeof (int) ))
-
-#define X86_DEBUG_STATE32_COUNT x86_DEBUG_STATE32_COUNT
-
-typedef _STRUCT_X86_THREAD_STATE64 x86_thread_state64_t;
-#define x86_THREAD_STATE64_COUNT        ((mach_msg_type_number_t) \
-    ( sizeof (x86_thread_state64_t) / sizeof (int) ))
-
-typedef _STRUCT_X86_THREAD_FULL_STATE64 x86_thread_full_state64_t;
-#define x86_THREAD_FULL_STATE64_COUNT   ((mach_msg_type_number_t) \
-    ( sizeof (x86_thread_full_state64_t) / sizeof (int) ))
-
-typedef _STRUCT_X86_FLOAT_STATE64 x86_float_state64_t;
-#define x86_FLOAT_STATE64_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_float_state64_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_AVX_STATE64 x86_avx_state64_t;
-#define x86_AVX_STATE64_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx_state64_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_AVX512_STATE64 x86_avx512_state64_t;
-#define x86_AVX512_STATE64_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx512_state64_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_EXCEPTION_STATE64 x86_exception_state64_t;
-#define x86_EXCEPTION_STATE64_COUNT     ((mach_msg_type_number_t) \
-    ( sizeof (x86_exception_state64_t) / sizeof (int) ))
-
-#define X86_EXCEPTION_STATE64_COUNT x86_EXCEPTION_STATE64_COUNT
-
-typedef _STRUCT_X86_DEBUG_STATE64 x86_debug_state64_t;
-#define x86_DEBUG_STATE64_COUNT ((mach_msg_type_number_t) \
-    ( sizeof (x86_debug_state64_t) / sizeof (int) ))
-
-#define X86_DEBUG_STATE64_COUNT x86_DEBUG_STATE64_COUNT
-
-typedef _STRUCT_X86_PAGEIN_STATE x86_pagein_state_t;
-#define x86_PAGEIN_STATE_COUNT \
-    ((mach_msg_type_number_t)(sizeof(x86_pagein_state_t) / sizeof(int)))
-
-#define X86_PAGEIN_STATE_COUNT x86_PAGEIN_STATE_COUNT
-
-/*
- * Combined thread, float and exception states
- */
-struct x86_thread_state {
-	x86_state_hdr_t                 tsh;
-	union {
-		x86_thread_state32_t        ts32;
-		x86_thread_state64_t        ts64;
-	} uts;
-};
-
-struct x86_float_state {
-	x86_state_hdr_t                 fsh;
-	union {
-		x86_float_state32_t     fs32;
-		x86_float_state64_t     fs64;
-	} ufs;
-};
-
-struct x86_exception_state {
-	x86_state_hdr_t                 esh;
-	union {
-		x86_exception_state32_t es32;
-		x86_exception_state64_t es64;
-	} ues;
-};
-
-struct x86_debug_state {
-	x86_state_hdr_t                 dsh;
-	union {
-		x86_debug_state32_t     ds32;
-		x86_debug_state64_t     ds64;
-	} uds;
-};
-
-struct x86_avx_state {
-	x86_state_hdr_t                 ash;
-	union {
-		x86_avx_state32_t       as32;
-		x86_avx_state64_t       as64;
-	} ufs;
-};
-
-struct x86_avx512_state {
-	x86_state_hdr_t                 ash;
-	union {
-		x86_avx512_state32_t    as32;
-		x86_avx512_state64_t    as64;
-	} ufs;
-};
-
-typedef struct x86_thread_state x86_thread_state_t;
-#define x86_THREAD_STATE_COUNT  ((mach_msg_type_number_t) \
-	        ( sizeof (x86_thread_state_t) / sizeof (int) ))
-
-typedef struct x86_float_state x86_float_state_t;
-#define x86_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_float_state_t)/sizeof(unsigned int)))
-
-typedef struct x86_exception_state x86_exception_state_t;
-#define x86_EXCEPTION_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_exception_state_t)/sizeof(unsigned int)))
-
-typedef struct x86_debug_state x86_debug_state_t;
-#define x86_DEBUG_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_debug_state_t)/sizeof(unsigned int)))
-
-typedef struct x86_avx_state x86_avx_state_t;
-#define x86_AVX_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx_state_t)/sizeof(unsigned int)))
-
-typedef struct x86_avx512_state x86_avx512_state_t;
-#define x86_AVX512_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx512_state_t)/sizeof(unsigned int)))
-
-/*
- * Machine-independent way for servers and Mach's exception mechanism to
- * choose the most efficient state flavor for exception RPC's:
- */
-#define MACHINE_THREAD_STATE            x86_THREAD_STATE
-#define MACHINE_THREAD_STATE_COUNT      x86_THREAD_STATE_COUNT
-
-
-#endif  /* _MACH_I386_THREAD_STATUS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/vm_param.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/vm_param.h
deleted file mode 100644
index a85ee924b7d3403c5978a2c28a6bf9f178776feb..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/vm_param.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2000-2012 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@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- * Copyright (c) 1994 The University of Utah and
- * the Computer Systems Laboratory at the University of Utah (CSL).
- * All rights reserved.
- *
- * Permission to use, copy, modify and distribute this software is hereby
- * granted provided that (1) source code retains these copyright, permission,
- * and disclaimer notices, and (2) redistributions including binaries
- * reproduce the notices in supporting documentation, and (3) all advertising
- * materials mentioning features or use of this software display the following
- * acknowledgement: ``This product includes software developed by the
- * Computer Systems Laboratory at the University of Utah.''
- *
- * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
- * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
- * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * CSL requests users of this software to return to csl-dist@cs.utah.edu any
- * improvements that they make and grant CSL redistribution rights.
- *
- */
-
-/*
- *	File:	vm_param.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date:	1985
- *
- *	I386 machine dependent virtual memory parameters.
- *	Most of the declarations are preceeded by I386_ (or i386_)
- *	which is OK because only I386 specific code will be using
- *	them.
- */
-
-#ifndef _MACH_I386_VM_PARAM_H_
-#define _MACH_I386_VM_PARAM_H_
-
-#define BYTE_SIZE               8               /* byte size in bits */
-
-#define I386_PGBYTES            4096            /* bytes per 80386 page */
-#define I386_PGSHIFT            12              /* bitshift for pages */
-
-#define PAGE_SIZE               I386_PGBYTES
-#define PAGE_SHIFT              I386_PGSHIFT
-#define PAGE_MASK               (PAGE_SIZE - 1)
-
-#define PAGE_MAX_SHIFT          PAGE_SHIFT
-#define PAGE_MAX_SIZE           PAGE_SIZE
-#define PAGE_MAX_MASK           PAGE_MASK
-
-#define PAGE_MIN_SHIFT          PAGE_SHIFT
-#define PAGE_MIN_SIZE           PAGE_SIZE
-#define PAGE_MIN_MASK           PAGE_MASK
-
-#define I386_LPGBYTES           2*1024*1024     /* bytes per large page */
-#define I386_LPGSHIFT           21              /* bitshift for large pages */
-#define I386_LPGMASK            (I386_LPGBYTES-1)
-
-/*
- *	Convert bytes to pages and convert pages to bytes.
- *	No rounding is used.
- */
-
-#define i386_btop(x)            ((ppnum_t)((x) >> I386_PGSHIFT))
-#define machine_btop(x)         i386_btop(x)
-#define i386_ptob(x)            (((pmap_paddr_t)(x)) << I386_PGSHIFT)
-#define machine_ptob(x)         i386_ptob(x)
-
-/*
- *	Round off or truncate to the nearest page.  These will work
- *	for either addresses or counts.  (i.e. 1 byte rounds to 1 page
- *	bytes.
- */
-
-#define i386_round_page(x)      ((((pmap_paddr_t)(x)) + I386_PGBYTES - 1) & \
-	                                ~(I386_PGBYTES-1))
-#define i386_trunc_page(x)      (((pmap_paddr_t)(x)) & ~(I386_PGBYTES-1))
-
-
-
-#define VM_MIN_ADDRESS64        ((user_addr_t) 0x0000000000000000ULL)
-/*
- * default top of user stack... it grows down from here
- */
-#define VM_USRSTACK64           ((user_addr_t) 0x00007FFEEFC00000ULL)
-
-/*
- * XXX TODO: Obsolete?
- */
-#define VM_DYLD64               ((user_addr_t) 0x00007FFF5FC00000ULL)
-#define VM_LIB64_SHR_DATA       ((user_addr_t) 0x00007FFF60000000ULL)
-#define VM_LIB64_SHR_TEXT       ((user_addr_t) 0x00007FFF80000000ULL)
-/*
- * the end of the usable user address space , for now about 47 bits.
- * the 64 bit commpage is past the end of this
- */
-#define VM_MAX_PAGE_ADDRESS     ((user_addr_t) 0x00007FFFFFE00000ULL)
-/*
- * canonical end of user address space for limits checking
- */
-#define VM_MAX_USER_PAGE_ADDRESS ((user_addr_t)0x00007FFFFFFFF000ULL)
-
-
-/* system-wide values */
-#define MACH_VM_MIN_ADDRESS             ((mach_vm_offset_t) 0)
-#define MACH_VM_MAX_ADDRESS             ((mach_vm_offset_t) VM_MAX_PAGE_ADDRESS)
-
-/* process-relative values (all 32-bit legacy only for now) */
-#define VM_MIN_ADDRESS          ((vm_offset_t) 0)
-#define VM_USRSTACK32           ((vm_offset_t) 0xC0000000)      /* ASLR slides stack down by up to 1 MB */
-#define VM_MAX_ADDRESS          ((vm_offset_t) 0xFFE00000)
-
-
-
-#endif  /* _MACH_I386_VM_PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/i386/vm_types.h b/lib/libc/include/x86_64-macos.10-none/mach/i386/vm_types.h
deleted file mode 100644
index 8a95db53ee63ae4fcfe9cf03deb9ed304fcd1ac5..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/i386/vm_types.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- *	File:	vm_types.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date: 1985
- *
- *	Header file for VM data types.  I386 version.
- */
-
-#ifndef _MACH_I386_VM_TYPES_H_
-#define _MACH_I386_VM_TYPES_H_
-
-#ifndef ASSEMBLER
-
-#include 
-#include 
-#include 
-
-/*
- * natural_t and integer_t are Mach's legacy types for machine-
- * independent integer types (unsigned, and signed, respectively).
- * Their original purpose was to define other types in a machine/
- * compiler independent way.
- *
- * They also had an implicit "same size as pointer" characteristic
- * to them (i.e. Mach's traditional types are very ILP32 or ILP64
- * centric).  We support x86 ABIs that do not follow either of
- * these models (specifically LP64).  Therefore, we had to make a
- * choice between making these types scale with pointers or stay
- * tied to integers.  Because their use is predominantly tied to
- * to the size of an integer, we are keeping that association and
- * breaking free from pointer size guarantees.
- *
- * New use of these types is discouraged.
- */
-typedef __darwin_natural_t      natural_t;
-typedef int                     integer_t;
-
-/*
- * A vm_offset_t is a type-neutral pointer,
- * e.g. an offset into a virtual memory space.
- */
-#ifdef __LP64__
-typedef uintptr_t               vm_offset_t;
-#else   /* __LP64__ */
-typedef natural_t               vm_offset_t;
-#endif  /* __LP64__ */
-
-/*
- * A vm_size_t is the proper type for e.g.
- * expressing the difference between two
- * vm_offset_t entities.
- */
-#ifdef __LP64__
-typedef uintptr_t               vm_size_t;
-#else   /* __LP64__ */
-typedef natural_t               vm_size_t;
-#endif  /* __LP64__ */
-
-/*
- * This new type is independent of a particular vm map's
- * implementation size - and represents appropriate types
- * for all possible maps.  This is used for interfaces
- * where the size of the map is not known - or we don't
- * want to have to distinguish.
- */
-typedef uint64_t                mach_vm_address_t;
-typedef uint64_t                mach_vm_offset_t;
-typedef uint64_t                mach_vm_size_t;
-
-typedef uint64_t                vm_map_offset_t;
-typedef uint64_t                vm_map_address_t;
-typedef uint64_t                vm_map_size_t;
-
-typedef mach_vm_address_t       mach_port_context_t;
-
-
-#endif  /* ASSEMBLER */
-
-/*
- * If composing messages by hand (please do not)
- */
-#define MACH_MSG_TYPE_INTEGER_T MACH_MSG_TYPE_INTEGER_32
-
-#endif  /* _MACH_I386_VM_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/kern_return.h b/lib/libc/include/x86_64-macos.10-none/mach/kern_return.h
deleted file mode 100644
index 62d6415f527b06642bebb87ef24c0431197a00ca..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/kern_return.h
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	h/kern_return.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date:	1985
- *
- *	Kernel return codes.
- *
- */
-
-#ifndef _MACH_KERN_RETURN_H_
-#define _MACH_KERN_RETURN_H_
-
-#include 
-
-#define KERN_SUCCESS                    0
-
-#define KERN_INVALID_ADDRESS            1
-/* Specified address is not currently valid.
- */
-
-#define KERN_PROTECTION_FAILURE         2
-/* Specified memory is valid, but does not permit the
- * required forms of access.
- */
-
-#define KERN_NO_SPACE                   3
-/* The address range specified is already in use, or
- * no address range of the size specified could be
- * found.
- */
-
-#define KERN_INVALID_ARGUMENT           4
-/* The function requested was not applicable to this
- * type of argument, or an argument is invalid
- */
-
-#define KERN_FAILURE                    5
-/* The function could not be performed.  A catch-all.
- */
-
-#define KERN_RESOURCE_SHORTAGE          6
-/* A system resource could not be allocated to fulfill
- * this request.  This failure may not be permanent.
- */
-
-#define KERN_NOT_RECEIVER               7
-/* The task in question does not hold receive rights
- * for the port argument.
- */
-
-#define KERN_NO_ACCESS                  8
-/* Bogus access restriction.
- */
-
-#define KERN_MEMORY_FAILURE             9
-/* During a page fault, the target address refers to a
- * memory object that has been destroyed.  This
- * failure is permanent.
- */
-
-#define KERN_MEMORY_ERROR               10
-/* During a page fault, the memory object indicated
- * that the data could not be returned.  This failure
- * may be temporary; future attempts to access this
- * same data may succeed, as defined by the memory
- * object.
- */
-
-#define KERN_ALREADY_IN_SET             11
-/* The receive right is already a member of the portset.
- */
-
-#define KERN_NOT_IN_SET                 12
-/* The receive right is not a member of a port set.
- */
-
-#define KERN_NAME_EXISTS                13
-/* The name already denotes a right in the task.
- */
-
-#define KERN_ABORTED                    14
-/* The operation was aborted.  Ipc code will
- * catch this and reflect it as a message error.
- */
-
-#define KERN_INVALID_NAME               15
-/* The name doesn't denote a right in the task.
- */
-
-#define KERN_INVALID_TASK               16
-/* Target task isn't an active task.
- */
-
-#define KERN_INVALID_RIGHT              17
-/* The name denotes a right, but not an appropriate right.
- */
-
-#define KERN_INVALID_VALUE              18
-/* A blatant range error.
- */
-
-#define KERN_UREFS_OVERFLOW             19
-/* Operation would overflow limit on user-references.
- */
-
-#define KERN_INVALID_CAPABILITY         20
-/* The supplied (port) capability is improper.
- */
-
-#define KERN_RIGHT_EXISTS               21
-/* The task already has send or receive rights
- * for the port under another name.
- */
-
-#define KERN_INVALID_HOST               22
-/* Target host isn't actually a host.
- */
-
-#define KERN_MEMORY_PRESENT             23
-/* An attempt was made to supply "precious" data
- * for memory that is already present in a
- * memory object.
- */
-
-#define KERN_MEMORY_DATA_MOVED          24
-/* A page was requested of a memory manager via
- * memory_object_data_request for an object using
- * a MEMORY_OBJECT_COPY_CALL strategy, with the
- * VM_PROT_WANTS_COPY flag being used to specify
- * that the page desired is for a copy of the
- * object, and the memory manager has detected
- * the page was pushed into a copy of the object
- * while the kernel was walking the shadow chain
- * from the copy to the object. This error code
- * is delivered via memory_object_data_error
- * and is handled by the kernel (it forces the
- * kernel to restart the fault). It will not be
- * seen by users.
- */
-
-#define KERN_MEMORY_RESTART_COPY        25
-/* A strategic copy was attempted of an object
- * upon which a quicker copy is now possible.
- * The caller should retry the copy using
- * vm_object_copy_quickly. This error code
- * is seen only by the kernel.
- */
-
-#define KERN_INVALID_PROCESSOR_SET      26
-/* An argument applied to assert processor set privilege
- * was not a processor set control port.
- */
-
-#define KERN_POLICY_LIMIT               27
-/* The specified scheduling attributes exceed the thread's
- * limits.
- */
-
-#define KERN_INVALID_POLICY             28
-/* The specified scheduling policy is not currently
- * enabled for the processor set.
- */
-
-#define KERN_INVALID_OBJECT             29
-/* The external memory manager failed to initialize the
- * memory object.
- */
-
-#define KERN_ALREADY_WAITING            30
-/* A thread is attempting to wait for an event for which
- * there is already a waiting thread.
- */
-
-#define KERN_DEFAULT_SET                31
-/* An attempt was made to destroy the default processor
- * set.
- */
-
-#define KERN_EXCEPTION_PROTECTED        32
-/* An attempt was made to fetch an exception port that is
- * protected, or to abort a thread while processing a
- * protected exception.
- */
-
-#define KERN_INVALID_LEDGER             33
-/* A ledger was required but not supplied.
- */
-
-#define KERN_INVALID_MEMORY_CONTROL     34
-/* The port was not a memory cache control port.
- */
-
-#define KERN_INVALID_SECURITY           35
-/* An argument supplied to assert security privilege
- * was not a host security port.
- */
-
-#define KERN_NOT_DEPRESSED              36
-/* thread_depress_abort was called on a thread which
- * was not currently depressed.
- */
-
-#define KERN_TERMINATED                 37
-/* Object has been terminated and is no longer available
- */
-
-#define KERN_LOCK_SET_DESTROYED         38
-/* Lock set has been destroyed and is no longer available.
- */
-
-#define KERN_LOCK_UNSTABLE              39
-/* The thread holding the lock terminated before releasing
- * the lock
- */
-
-#define KERN_LOCK_OWNED                 40
-/* The lock is already owned by another thread
- */
-
-#define KERN_LOCK_OWNED_SELF            41
-/* The lock is already owned by the calling thread
- */
-
-#define KERN_SEMAPHORE_DESTROYED        42
-/* Semaphore has been destroyed and is no longer available.
- */
-
-#define KERN_RPC_SERVER_TERMINATED      43
-/* Return from RPC indicating the target server was
- * terminated before it successfully replied
- */
-
-#define KERN_RPC_TERMINATE_ORPHAN       44
-/* Terminate an orphaned activation.
- */
-
-#define KERN_RPC_CONTINUE_ORPHAN        45
-/* Allow an orphaned activation to continue executing.
- */
-
-#define KERN_NOT_SUPPORTED              46
-/* Empty thread activation (No thread linked to it)
- */
-
-#define KERN_NODE_DOWN                  47
-/* Remote node down or inaccessible.
- */
-
-#define KERN_NOT_WAITING                48
-/* A signalled thread was not actually waiting. */
-
-#define KERN_OPERATION_TIMED_OUT        49
-/* Some thread-oriented operation (semaphore_wait) timed out
- */
-
-#define KERN_CODESIGN_ERROR             50
-/* During a page fault, indicates that the page was rejected
- * as a result of a signature check.
- */
-
-#define KERN_POLICY_STATIC              51
-/* The requested property cannot be changed at this time.
- */
-
-#define KERN_INSUFFICIENT_BUFFER_SIZE   52
-/* The provided buffer is of insufficient size for the requested data.
- */
-
-#define KERN_RETURN_MAX                 0x100
-/* Maximum return value allowable
- */
-
-#endif  /* _MACH_KERN_RETURN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/lock_set.h b/lib/libc/include/x86_64-macos.10-none/mach/lock_set.h
deleted file mode 100644
index 752d7c297631556ed0706c3a71a502442b993023..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/lock_set.h
+++ /dev/null
@@ -1,350 +0,0 @@
-#ifndef	_lock_set_user_
-#define	_lock_set_user_
-
-/* Module lock_set */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	lock_set_MSG_COUNT
-#define	lock_set_MSG_COUNT	6
-#endif	/* lock_set_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine lock_acquire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_acquire
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_release */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_release
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_try */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_try
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_make_stable */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_make_stable
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_handoff */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_handoff
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_handoff_accept */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_handoff_accept
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__lock_set_subsystem__defined
-#define __Request__lock_set_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_acquire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_release_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_try_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_make_stable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_handoff_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_handoff_accept_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__lock_set_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__lock_set_subsystem__defined
-#define __RequestUnion__lock_set_subsystem__defined
-union __RequestUnion__lock_set_subsystem {
-	__Request__lock_acquire_t Request_lock_acquire;
-	__Request__lock_release_t Request_lock_release;
-	__Request__lock_try_t Request_lock_try;
-	__Request__lock_make_stable_t Request_lock_make_stable;
-	__Request__lock_handoff_t Request_lock_handoff;
-	__Request__lock_handoff_accept_t Request_lock_handoff_accept;
-};
-#endif /* !__RequestUnion__lock_set_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__lock_set_subsystem__defined
-#define __Reply__lock_set_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_acquire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_release_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_try_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_make_stable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_handoff_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_handoff_accept_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__lock_set_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__lock_set_subsystem__defined
-#define __ReplyUnion__lock_set_subsystem__defined
-union __ReplyUnion__lock_set_subsystem {
-	__Reply__lock_acquire_t Reply_lock_acquire;
-	__Reply__lock_release_t Reply_lock_release;
-	__Reply__lock_try_t Reply_lock_try;
-	__Reply__lock_make_stable_t Reply_lock_make_stable;
-	__Reply__lock_handoff_t Reply_lock_handoff;
-	__Reply__lock_handoff_accept_t Reply_lock_handoff_accept;
-};
-#endif /* !__RequestUnion__lock_set_subsystem__defined */
-
-#ifndef subsystem_to_name_map_lock_set
-#define subsystem_to_name_map_lock_set \
-    { "lock_acquire", 617000 },\
-    { "lock_release", 617001 },\
-    { "lock_try", 617002 },\
-    { "lock_make_stable", 617003 },\
-    { "lock_handoff", 617004 },\
-    { "lock_handoff_accept", 617005 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _lock_set_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/mach.h b/lib/libc/include/x86_64-macos.10-none/mach/mach.h
deleted file mode 100644
index 159fd67b9949b122291d8a29c6559584d8477b2f..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/mach.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright (c) 1999-2014 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@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- *  Includes all the types that a normal user
- *  of Mach programs should need
- */
-
-#ifndef _MACH_H_
-#define _MACH_H_
-
-#define __MACH30__
-#define MACH_IPC_FLAVOR UNTYPED
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include            /* for compatibility only */
-#include 
-
-#include 
-#include 
-
-#include 
-
-__BEGIN_DECLS
-/*
- * Standard prototypes
- */
-extern void                     panic_init(mach_port_t);
-extern void                     panic(const char *, ...);
-
-extern void                     safe_gets(char *,
-    char *,
-    int);
-
-extern void                     slot_name(cpu_type_t,
-    cpu_subtype_t,
-    char **,
-    char **);
-
-extern void                     mig_reply_setup(mach_msg_header_t *,
-    mach_msg_header_t *);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern void                     mach_msg_destroy(mach_msg_header_t *);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_receive(mach_msg_header_t *);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_send(mach_msg_header_t *);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_server_once(boolean_t (*)
-    (mach_msg_header_t *,
-    mach_msg_header_t *),
-    mach_msg_size_t,
-    mach_port_t,
-    mach_msg_options_t);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_server(boolean_t (*)
-    (mach_msg_header_t *,
-    mach_msg_header_t *),
-    mach_msg_size_t,
-    mach_port_t,
-    mach_msg_options_t);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_server_importance(boolean_t (*)
-    (mach_msg_header_t *,
-    mach_msg_header_t *),
-    mach_msg_size_t,
-    mach_port_t,
-    mach_msg_options_t);
-
-/*
- * Prototypes for compatibility
- */
-extern kern_return_t    clock_get_res(mach_port_t,
-    clock_res_t *);
-extern kern_return_t    clock_set_res(mach_port_t,
-    clock_res_t);
-
-extern kern_return_t    clock_sleep(mach_port_t,
-    int,
-    mach_timespec_t,
-    mach_timespec_t *);
-
-/*!
- * @group voucher_mach_msg Prototypes
- */
-
-#define VOUCHER_MACH_MSG_API_VERSION 20140205
-
-/*!
- * @typedef voucher_mach_msg_state_t
- *
- * @abstract
- * Opaque object encapsulating state changed by voucher_mach_msg_adopt().
- */
-typedef struct voucher_mach_msg_state_s *voucher_mach_msg_state_t;
-
-/*!
- * @const VOUCHER_MACH_MSG_STATE_UNCHANGED
- *
- * @discussion
- * Constant indicating no state change occurred.
- */
-#define VOUCHER_MACH_MSG_STATE_UNCHANGED ((voucher_mach_msg_state_t)~0ul)
-
-/*!
- * @function voucher_mach_msg_set
- *
- * @abstract
- * Change specified message header to contain current mach voucher with a
- * COPY_SEND disposition.
- * Does not change message if it already has non-zero MACH_MSGH_BITS_VOUCHER.
- *
- * @discussion
- * Borrows reference to current thread voucher so message should be sent
- * immediately (without intervening calls that might change that voucher).
- *
- * @param msg
- * The message to modify.
- *
- * @result
- * True if header was changed.
- */
-extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg);
-
-/*!
- * @function voucher_mach_msg_clear
- *
- * @abstract
- * Removes changes made to specified message header by voucher_mach_msg_set()
- * and any mach_msg() send operations (successful or not).
- * If the message is not needed further, mach_msg_destroy() should be called
- * instead.
- *
- * @discussion
- * Not intended to be called if voucher_mach_msg_set() returned false.
- * Releases reference to message mach voucher if an extra reference was
- * acquired due to an unsuccessful send operation (pseudo-receive).
- *
- * @param msg
- * The message to modify.
- */
-extern void voucher_mach_msg_clear(mach_msg_header_t *msg);
-
-/*!
- * @function voucher_mach_msg_adopt
- *
- * @abstract
- * Adopt the voucher contained in the specified message on the current thread
- * and return the previous thread voucher state.
- *
- * @discussion
- * Ownership of the mach voucher in the message is transferred to the current
- * thread and the message header voucher fields are cleared.
- *
- * @param msg
- * The message to query and modify.
- *
- * @result
- * The previous thread voucher state or VOUCHER_MACH_MSG_STATE_UNCHANGED if no
- * state change occurred.
- */
-extern voucher_mach_msg_state_t voucher_mach_msg_adopt(mach_msg_header_t *msg);
-
-/*!
- * @function voucher_mach_msg_revert
- *
- * @abstract
- * Restore thread voucher state previously modified by voucher_mach_msg_adopt().
- *
- * @discussion
- * Current thread voucher reference is released.
- * No change to thread voucher state if passed VOUCHER_MACH_MSG_STATE_UNCHANGED.
- *
- * @param state
- * The thread voucher state to restore.
- */
-
-extern void voucher_mach_msg_revert(voucher_mach_msg_state_t state);
-
-__END_DECLS
-
-#endif  /* _MACH_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/mach_host.h b/lib/libc/include/x86_64-macos.10-none/mach/mach_host.h
deleted file mode 100644
index a5b6d2cd84d1129184e33d645108992d697babfd..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/mach_host.h
+++ /dev/null
@@ -1,1295 +0,0 @@
-#ifndef	_mach_host_user_
-#define	_mach_host_user_
-
-/* Module mach_host */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	mach_host_MSG_COUNT
-#define	mach_host_MSG_COUNT	35
-#endif	/* mach_host_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine host_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_info
-(
-	host_t host,
-	host_flavor_t flavor,
-	host_info_t host_info_out,
-	mach_msg_type_number_t *host_info_outCnt
-);
-
-/* Routine host_kernel_version */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_kernel_version
-(
-	host_t host,
-	kernel_version_t kernel_version
-);
-
-/* Routine _host_page_size */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t _host_page_size
-(
-	host_t host,
-	vm_size_t *out_page_size
-);
-
-/* Routine mach_memory_object_memory_entry */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_object_memory_entry
-(
-	host_t host,
-	boolean_t internal,
-	vm_size_t size,
-	vm_prot_t permission,
-	memory_object_t pager,
-	mach_port_t *entry_handle
-);
-
-/* Routine host_processor_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_processor_info
-(
-	host_t host,
-	processor_flavor_t flavor,
-	natural_t *out_processor_count,
-	processor_info_array_t *out_processor_info,
-	mach_msg_type_number_t *out_processor_infoCnt
-);
-
-/* Routine host_get_io_master */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_io_master
-(
-	host_t host,
-	io_master_t *io_master
-);
-
-/* Routine host_get_clock_service */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_clock_service
-(
-	host_t host,
-	clock_id_t clock_id,
-	clock_serv_t *clock_serv
-);
-
-/* Routine kmod_get_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kmod_get_info
-(
-	host_t host,
-	kmod_args_t *modules,
-	mach_msg_type_number_t *modulesCnt
-);
-
-/* Routine host_virtual_physical_table_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_virtual_physical_table_info
-(
-	host_t host,
-	hash_info_bucket_array_t *info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine processor_set_default */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_default
-(
-	host_t host,
-	processor_set_name_t *default_set
-);
-
-/* Routine processor_set_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_create
-(
-	host_t host,
-	processor_set_t *new_set,
-	processor_set_name_t *new_name
-);
-
-/* Routine mach_memory_object_memory_entry_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_object_memory_entry_64
-(
-	host_t host,
-	boolean_t internal,
-	memory_object_size_t size,
-	vm_prot_t permission,
-	memory_object_t pager,
-	mach_port_t *entry_handle
-);
-
-/* Routine host_statistics */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_statistics
-(
-	host_t host_priv,
-	host_flavor_t flavor,
-	host_info_t host_info_out,
-	mach_msg_type_number_t *host_info_outCnt
-);
-
-/* Routine host_request_notification */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_request_notification
-(
-	host_t host,
-	host_flavor_t notify_type,
-	mach_port_t notify_port
-);
-
-/* Routine host_lockgroup_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_lockgroup_info
-(
-	host_t host,
-	lockgroup_info_array_t *lockgroup_info,
-	mach_msg_type_number_t *lockgroup_infoCnt
-);
-
-/* Routine host_statistics64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_statistics64
-(
-	host_t host_priv,
-	host_flavor_t flavor,
-	host_info64_t host_info64_out,
-	mach_msg_type_number_t *host_info64_outCnt
-);
-
-/* Routine mach_zone_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_zone_info
-(
-	host_priv_t host,
-	mach_zone_name_array_t *names,
-	mach_msg_type_number_t *namesCnt,
-	mach_zone_info_array_t *info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine host_create_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_create_mach_voucher
-(
-	host_t host,
-	mach_voucher_attr_raw_recipe_array_t recipes,
-	mach_msg_type_number_t recipesCnt,
-	ipc_voucher_t *voucher
-);
-
-/* Routine host_register_mach_voucher_attr_manager */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_register_mach_voucher_attr_manager
-(
-	host_t host,
-	mach_voucher_attr_manager_t attr_manager,
-	mach_voucher_attr_value_handle_t default_value,
-	mach_voucher_attr_key_t *new_key,
-	ipc_voucher_attr_control_t *new_attr_control
-);
-
-/* Routine host_register_well_known_mach_voucher_attr_manager */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_register_well_known_mach_voucher_attr_manager
-(
-	host_t host,
-	mach_voucher_attr_manager_t attr_manager,
-	mach_voucher_attr_value_handle_t default_value,
-	mach_voucher_attr_key_t key,
-	ipc_voucher_attr_control_t *new_attr_control
-);
-
-/* Routine host_set_atm_diagnostic_flag */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_set_atm_diagnostic_flag
-(
-	host_t host,
-	uint32_t diagnostic_flag
-);
-
-/* Routine host_get_atm_diagnostic_flag */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_get_atm_diagnostic_flag
-(
-	host_t host,
-	uint32_t *diagnostic_flag
-);
-
-/* Routine mach_memory_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_info
-(
-	host_priv_t host,
-	mach_zone_name_array_t *names,
-	mach_msg_type_number_t *namesCnt,
-	mach_zone_info_array_t *info,
-	mach_msg_type_number_t *infoCnt,
-	mach_memory_info_array_t *memory_info,
-	mach_msg_type_number_t *memory_infoCnt
-);
-
-/* Routine host_set_multiuser_config_flags */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_set_multiuser_config_flags
-(
-	host_priv_t host_priv,
-	uint32_t multiuser_flags
-);
-
-/* Routine host_get_multiuser_config_flags */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_multiuser_config_flags
-(
-	host_t host,
-	uint32_t *multiuser_flags
-);
-
-/* Routine host_check_multiuser_mode */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_check_multiuser_mode
-(
-	host_t host,
-	uint32_t *multiuser_mode
-);
-
-/* Routine mach_zone_info_for_zone */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_zone_info_for_zone
-(
-	host_priv_t host,
-	mach_zone_name_t name,
-	mach_zone_info_t *info
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__mach_host_subsystem__defined
-#define __Request__mach_host_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		host_flavor_t flavor;
-		mach_msg_type_number_t host_info_outCnt;
-	} __Request__host_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_kernel_version_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request___host_page_size_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t pager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t internal;
-		vm_size_t size;
-		vm_prot_t permission;
-	} __Request__mach_memory_object_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		processor_flavor_t flavor;
-	} __Request__host_processor_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_io_master_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		clock_id_t clock_id;
-	} __Request__host_get_clock_service_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__kmod_get_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_virtual_physical_table_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t pager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t internal;
-		memory_object_size_t size;
-		vm_prot_t permission;
-	} __Request__mach_memory_object_memory_entry_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		host_flavor_t flavor;
-		mach_msg_type_number_t host_info_outCnt;
-	} __Request__host_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t notify_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		host_flavor_t notify_type;
-	} __Request__host_request_notification_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_lockgroup_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		host_flavor_t flavor;
-		mach_msg_type_number_t host_info64_outCnt;
-	} __Request__host_statistics64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_zone_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_msg_type_number_t recipesCnt;
-		uint8_t recipes[5120];
-	} __Request__host_create_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t attr_manager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_voucher_attr_value_handle_t default_value;
-	} __Request__host_register_mach_voucher_attr_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t attr_manager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_voucher_attr_value_handle_t default_value;
-		mach_voucher_attr_key_t key;
-	} __Request__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		uint32_t diagnostic_flag;
-	} __Request__host_set_atm_diagnostic_flag_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_atm_diagnostic_flag_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_memory_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		uint32_t multiuser_flags;
-	} __Request__host_set_multiuser_config_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_multiuser_config_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_check_multiuser_mode_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_zone_name_t name;
-	} __Request__mach_zone_info_for_zone_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__mach_host_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__mach_host_subsystem__defined
-#define __RequestUnion__mach_host_subsystem__defined
-union __RequestUnion__mach_host_subsystem {
-	__Request__host_info_t Request_host_info;
-	__Request__host_kernel_version_t Request_host_kernel_version;
-	__Request___host_page_size_t Request__host_page_size;
-	__Request__mach_memory_object_memory_entry_t Request_mach_memory_object_memory_entry;
-	__Request__host_processor_info_t Request_host_processor_info;
-	__Request__host_get_io_master_t Request_host_get_io_master;
-	__Request__host_get_clock_service_t Request_host_get_clock_service;
-	__Request__kmod_get_info_t Request_kmod_get_info;
-	__Request__host_virtual_physical_table_info_t Request_host_virtual_physical_table_info;
-	__Request__processor_set_default_t Request_processor_set_default;
-	__Request__processor_set_create_t Request_processor_set_create;
-	__Request__mach_memory_object_memory_entry_64_t Request_mach_memory_object_memory_entry_64;
-	__Request__host_statistics_t Request_host_statistics;
-	__Request__host_request_notification_t Request_host_request_notification;
-	__Request__host_lockgroup_info_t Request_host_lockgroup_info;
-	__Request__host_statistics64_t Request_host_statistics64;
-	__Request__mach_zone_info_t Request_mach_zone_info;
-	__Request__host_create_mach_voucher_t Request_host_create_mach_voucher;
-	__Request__host_register_mach_voucher_attr_manager_t Request_host_register_mach_voucher_attr_manager;
-	__Request__host_register_well_known_mach_voucher_attr_manager_t Request_host_register_well_known_mach_voucher_attr_manager;
-	__Request__host_set_atm_diagnostic_flag_t Request_host_set_atm_diagnostic_flag;
-	__Request__host_get_atm_diagnostic_flag_t Request_host_get_atm_diagnostic_flag;
-	__Request__mach_memory_info_t Request_mach_memory_info;
-	__Request__host_set_multiuser_config_flags_t Request_host_set_multiuser_config_flags;
-	__Request__host_get_multiuser_config_flags_t Request_host_get_multiuser_config_flags;
-	__Request__host_check_multiuser_mode_t Request_host_check_multiuser_mode;
-	__Request__mach_zone_info_for_zone_t Request_mach_zone_info_for_zone;
-};
-#endif /* !__RequestUnion__mach_host_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__mach_host_subsystem__defined
-#define __Reply__mach_host_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t host_info_outCnt;
-		integer_t host_info_out[68];
-	} __Reply__host_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t kernel_versionOffset; /* MiG doesn't use it */
-		mach_msg_type_number_t kernel_versionCnt;
-		char kernel_version[512];
-	} __Reply__host_kernel_version_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_size_t out_page_size;
-	} __Reply___host_page_size_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t entry_handle;
-		/* end of the kernel processed data */
-	} __Reply__mach_memory_object_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t out_processor_info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		natural_t out_processor_count;
-		mach_msg_type_number_t out_processor_infoCnt;
-	} __Reply__host_processor_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t io_master;
-		/* end of the kernel processed data */
-	} __Reply__host_get_io_master_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t clock_serv;
-		/* end of the kernel processed data */
-	} __Reply__host_get_clock_service_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t modules;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t modulesCnt;
-	} __Reply__kmod_get_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t infoCnt;
-	} __Reply__host_virtual_physical_table_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t default_set;
-		/* end of the kernel processed data */
-	} __Reply__processor_set_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_set;
-		mach_msg_port_descriptor_t new_name;
-		/* end of the kernel processed data */
-	} __Reply__processor_set_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t entry_handle;
-		/* end of the kernel processed data */
-	} __Reply__mach_memory_object_memory_entry_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t host_info_outCnt;
-		integer_t host_info_out[68];
-	} __Reply__host_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_request_notification_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t lockgroup_info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t lockgroup_infoCnt;
-	} __Reply__host_lockgroup_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t host_info64_outCnt;
-		integer_t host_info64_out[256];
-	} __Reply__host_statistics64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t names;
-		mach_msg_ool_descriptor_t info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t namesCnt;
-		mach_msg_type_number_t infoCnt;
-	} __Reply__mach_zone_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Reply__host_create_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_attr_control;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_voucher_attr_key_t new_key;
-	} __Reply__host_register_mach_voucher_attr_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_attr_control;
-		/* end of the kernel processed data */
-	} __Reply__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_atm_diagnostic_flag_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		uint32_t diagnostic_flag;
-	} __Reply__host_get_atm_diagnostic_flag_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t names;
-		mach_msg_ool_descriptor_t info;
-		mach_msg_ool_descriptor_t memory_info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t namesCnt;
-		mach_msg_type_number_t infoCnt;
-		mach_msg_type_number_t memory_infoCnt;
-	} __Reply__mach_memory_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_multiuser_config_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		uint32_t multiuser_flags;
-	} __Reply__host_get_multiuser_config_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		uint32_t multiuser_mode;
-	} __Reply__host_check_multiuser_mode_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_zone_info_t info;
-	} __Reply__mach_zone_info_for_zone_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__mach_host_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__mach_host_subsystem__defined
-#define __ReplyUnion__mach_host_subsystem__defined
-union __ReplyUnion__mach_host_subsystem {
-	__Reply__host_info_t Reply_host_info;
-	__Reply__host_kernel_version_t Reply_host_kernel_version;
-	__Reply___host_page_size_t Reply__host_page_size;
-	__Reply__mach_memory_object_memory_entry_t Reply_mach_memory_object_memory_entry;
-	__Reply__host_processor_info_t Reply_host_processor_info;
-	__Reply__host_get_io_master_t Reply_host_get_io_master;
-	__Reply__host_get_clock_service_t Reply_host_get_clock_service;
-	__Reply__kmod_get_info_t Reply_kmod_get_info;
-	__Reply__host_virtual_physical_table_info_t Reply_host_virtual_physical_table_info;
-	__Reply__processor_set_default_t Reply_processor_set_default;
-	__Reply__processor_set_create_t Reply_processor_set_create;
-	__Reply__mach_memory_object_memory_entry_64_t Reply_mach_memory_object_memory_entry_64;
-	__Reply__host_statistics_t Reply_host_statistics;
-	__Reply__host_request_notification_t Reply_host_request_notification;
-	__Reply__host_lockgroup_info_t Reply_host_lockgroup_info;
-	__Reply__host_statistics64_t Reply_host_statistics64;
-	__Reply__mach_zone_info_t Reply_mach_zone_info;
-	__Reply__host_create_mach_voucher_t Reply_host_create_mach_voucher;
-	__Reply__host_register_mach_voucher_attr_manager_t Reply_host_register_mach_voucher_attr_manager;
-	__Reply__host_register_well_known_mach_voucher_attr_manager_t Reply_host_register_well_known_mach_voucher_attr_manager;
-	__Reply__host_set_atm_diagnostic_flag_t Reply_host_set_atm_diagnostic_flag;
-	__Reply__host_get_atm_diagnostic_flag_t Reply_host_get_atm_diagnostic_flag;
-	__Reply__mach_memory_info_t Reply_mach_memory_info;
-	__Reply__host_set_multiuser_config_flags_t Reply_host_set_multiuser_config_flags;
-	__Reply__host_get_multiuser_config_flags_t Reply_host_get_multiuser_config_flags;
-	__Reply__host_check_multiuser_mode_t Reply_host_check_multiuser_mode;
-	__Reply__mach_zone_info_for_zone_t Reply_mach_zone_info_for_zone;
-};
-#endif /* !__RequestUnion__mach_host_subsystem__defined */
-
-#ifndef subsystem_to_name_map_mach_host
-#define subsystem_to_name_map_mach_host \
-    { "host_info", 200 },\
-    { "host_kernel_version", 201 },\
-    { "_host_page_size", 202 },\
-    { "mach_memory_object_memory_entry", 203 },\
-    { "host_processor_info", 204 },\
-    { "host_get_io_master", 205 },\
-    { "host_get_clock_service", 206 },\
-    { "kmod_get_info", 207 },\
-    { "host_virtual_physical_table_info", 209 },\
-    { "processor_set_default", 213 },\
-    { "processor_set_create", 214 },\
-    { "mach_memory_object_memory_entry_64", 215 },\
-    { "host_statistics", 216 },\
-    { "host_request_notification", 217 },\
-    { "host_lockgroup_info", 218 },\
-    { "host_statistics64", 219 },\
-    { "mach_zone_info", 220 },\
-    { "host_create_mach_voucher", 222 },\
-    { "host_register_mach_voucher_attr_manager", 223 },\
-    { "host_register_well_known_mach_voucher_attr_manager", 224 },\
-    { "host_set_atm_diagnostic_flag", 225 },\
-    { "host_get_atm_diagnostic_flag", 226 },\
-    { "mach_memory_info", 227 },\
-    { "host_set_multiuser_config_flags", 228 },\
-    { "host_get_multiuser_config_flags", 229 },\
-    { "host_check_multiuser_mode", 230 },\
-    { "mach_zone_info_for_zone", 231 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _mach_host_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/mach_init.h b/lib/libc/include/x86_64-macos.10-none/mach/mach_init.h
deleted file mode 100644
index d61d6e90b510ba3c4090437a1fa3a2883d8daa81..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/mach_init.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 1999 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@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987,1986 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- *	Items provided by the Mach environment initialization.
- */
-
-#ifndef _MACH_INIT_
-#define _MACH_INIT_     1
-
-#include 
-#include 
-#include 
-
-#include 
-
-/*
- *	Kernel-related ports; how a task/thread controls itself
- */
-
-__BEGIN_DECLS
-extern mach_port_t mach_host_self(void);
-extern mach_port_t mach_thread_self(void);
-extern kern_return_t host_page_size(host_t, vm_size_t *);
-
-extern mach_port_t      mach_task_self_;
-#define mach_task_self() mach_task_self_
-#define current_task()  mach_task_self()
-
-__END_DECLS
-#include 
-__BEGIN_DECLS
-
-/*
- *	Other important ports in the Mach user environment
- */
-
-extern  mach_port_t     bootstrap_port;
-
-/*
- *	Where these ports occur in the "mach_ports_register"
- *	collection... only servers or the runtime library need know.
- */
-
-#define NAME_SERVER_SLOT        0
-#define ENVIRONMENT_SLOT        1
-#define SERVICE_SLOT            2
-
-#define MACH_PORTS_SLOTS_USED   3
-
-/*
- *	fprintf_stderr uses vprintf_stderr_func to produce
- *	error messages, this can be overridden by a user
- *	application to point to a user-specified output function
- */
-extern int (*vprintf_stderr_func)(const char *format, va_list ap);
-
-__END_DECLS
-
-#endif  /* _MACH_INIT_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/mach_port.h b/lib/libc/include/x86_64-macos.10-none/mach/mach_port.h
deleted file mode 100644
index fcec114ccf5af62e9d2b7e06966eac3362a91191..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/mach_port.h
+++ /dev/null
@@ -1,1808 +0,0 @@
-#ifndef	_mach_port_user_
-#define	_mach_port_user_
-
-/* Module mach_port */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	mach_port_MSG_COUNT
-#define	mach_port_MSG_COUNT	40
-#endif	/* mach_port_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine mach_port_names */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_names
-(
-	ipc_space_t task,
-	mach_port_name_array_t *names,
-	mach_msg_type_number_t *namesCnt,
-	mach_port_type_array_t *types,
-	mach_msg_type_number_t *typesCnt
-);
-
-/* Routine mach_port_type */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_type
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_type_t *ptype
-);
-
-/* Routine mach_port_rename */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_rename
-(
-	ipc_space_t task,
-	mach_port_name_t old_name,
-	mach_port_name_t new_name
-);
-
-/* Routine mach_port_allocate_name */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t mach_port_allocate_name
-(
-	ipc_space_t task,
-	mach_port_right_t right,
-	mach_port_name_t name
-);
-
-/* Routine mach_port_allocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_allocate
-(
-	ipc_space_t task,
-	mach_port_right_t right,
-	mach_port_name_t *name
-);
-
-/* Routine mach_port_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_destroy
-(
-	ipc_space_t task,
-	mach_port_name_t name
-);
-
-/* Routine mach_port_deallocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_deallocate
-(
-	ipc_space_t task,
-	mach_port_name_t name
-);
-
-/* Routine mach_port_get_refs */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_refs
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_right_t right,
-	mach_port_urefs_t *refs
-);
-
-/* Routine mach_port_mod_refs */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_mod_refs
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_right_t right,
-	mach_port_delta_t delta
-);
-
-/* Routine mach_port_peek */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_peek
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_msg_trailer_type_t trailer_type,
-	mach_port_seqno_t *request_seqnop,
-	mach_msg_size_t *msg_sizep,
-	mach_msg_id_t *msg_idp,
-	mach_msg_trailer_info_t trailer_infop,
-	mach_msg_type_number_t *trailer_infopCnt
-);
-
-/* Routine mach_port_set_mscount */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_set_mscount
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_mscount_t mscount
-);
-
-/* Routine mach_port_get_set_status */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_set_status
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	mach_port_name_array_t *members,
-	mach_msg_type_number_t *membersCnt
-);
-
-/* Routine mach_port_move_member */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_move_member
-(
-	ipc_space_t task,
-	mach_port_name_t member,
-	mach_port_name_t after
-);
-
-/* Routine mach_port_request_notification */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_request_notification
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_msg_id_t msgid,
-	mach_port_mscount_t sync,
-	mach_port_t notify,
-	mach_msg_type_name_t notifyPoly,
-	mach_port_t *previous
-);
-
-/* Routine mach_port_insert_right */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_insert_right
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_t poly,
-	mach_msg_type_name_t polyPoly
-);
-
-/* Routine mach_port_extract_right */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_extract_right
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_msg_type_name_t msgt_name,
-	mach_port_t *poly,
-	mach_msg_type_name_t *polyPoly
-);
-
-/* Routine mach_port_set_seqno */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_set_seqno
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_seqno_t seqno
-);
-
-/* Routine mach_port_get_attributes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_attributes
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	mach_port_flavor_t flavor,
-	mach_port_info_t port_info_out,
-	mach_msg_type_number_t *port_info_outCnt
-);
-
-/* Routine mach_port_set_attributes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_set_attributes
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_flavor_t flavor,
-	mach_port_info_t port_info,
-	mach_msg_type_number_t port_infoCnt
-);
-
-/* Routine mach_port_allocate_qos */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_allocate_qos
-(
-	ipc_space_t task,
-	mach_port_right_t right,
-	mach_port_qos_t *qos,
-	mach_port_name_t *name
-);
-
-/* Routine mach_port_allocate_full */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_allocate_full
-(
-	ipc_space_t task,
-	mach_port_right_t right,
-	mach_port_t proto,
-	mach_port_qos_t *qos,
-	mach_port_name_t *name
-);
-
-/* Routine task_set_port_space */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_port_space
-(
-	ipc_space_t task,
-	int table_entries
-);
-
-/* Routine mach_port_get_srights */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_srights
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_rights_t *srights
-);
-
-/* Routine mach_port_space_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_space_info
-(
-	ipc_space_inspect_t task,
-	ipc_info_space_t *space_info,
-	ipc_info_name_array_t *table_info,
-	mach_msg_type_number_t *table_infoCnt,
-	ipc_info_tree_name_array_t *tree_info,
-	mach_msg_type_number_t *tree_infoCnt
-);
-
-/* Routine mach_port_dnrequest_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_dnrequest_info
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	unsigned *dnr_total,
-	unsigned *dnr_used
-);
-
-/* Routine mach_port_kernel_object */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_kernel_object
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	unsigned *object_type,
-	unsigned *object_addr
-);
-
-/* Routine mach_port_insert_member */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_insert_member
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_name_t pset
-);
-
-/* Routine mach_port_extract_member */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_extract_member
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_name_t pset
-);
-
-/* Routine mach_port_get_context */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_context
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	mach_port_context_t *context
-);
-
-/* Routine mach_port_set_context */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_set_context
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t context
-);
-
-/* Routine mach_port_kobject */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_kobject
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	natural_t *object_type,
-	mach_vm_address_t *object_addr
-);
-
-/* Routine mach_port_construct */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_construct
-(
-	ipc_space_t task,
-	mach_port_options_ptr_t options,
-	mach_port_context_t context,
-	mach_port_name_t *name
-);
-
-/* Routine mach_port_destruct */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_destruct
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_delta_t srdelta,
-	mach_port_context_t guard
-);
-
-/* Routine mach_port_guard */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_guard
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t guard,
-	boolean_t strict
-);
-
-/* Routine mach_port_unguard */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_unguard
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t guard
-);
-
-/* Routine mach_port_space_basic_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_space_basic_info
-(
-	ipc_space_inspect_t task,
-	ipc_info_space_basic_t *basic_info
-);
-
-/* Routine mach_port_guard_with_flags */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_guard_with_flags
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t guard,
-	uint64_t flags
-);
-
-/* Routine mach_port_swap_guard */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_swap_guard
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t old_guard,
-	mach_port_context_t new_guard
-);
-
-/* Routine mach_port_kobject_description */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_kobject_description
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	natural_t *object_type,
-	mach_vm_address_t *object_addr,
-	kobject_description_t description
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__mach_port_subsystem__defined
-#define __Request__mach_port_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_port_names_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_type_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t old_name;
-		mach_port_name_t new_name;
-	} __Request__mach_port_rename_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_right_t right;
-		mach_port_name_t name;
-	} __Request__mach_port_allocate_name_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_right_t right;
-	} __Request__mach_port_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_right_t right;
-	} __Request__mach_port_get_refs_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_right_t right;
-		mach_port_delta_t delta;
-	} __Request__mach_port_mod_refs_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_msg_trailer_type_t trailer_type;
-		mach_port_seqno_t request_seqnop;
-		mach_msg_type_number_t trailer_infopCnt;
-	} __Request__mach_port_peek_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_mscount_t mscount;
-	} __Request__mach_port_set_mscount_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_get_set_status_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t member;
-		mach_port_name_t after;
-	} __Request__mach_port_move_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t notify;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_msg_id_t msgid;
-		mach_port_mscount_t sync;
-	} __Request__mach_port_request_notification_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t poly;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_insert_right_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_msg_type_name_t msgt_name;
-	} __Request__mach_port_extract_right_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_seqno_t seqno;
-	} __Request__mach_port_set_seqno_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_flavor_t flavor;
-		mach_msg_type_number_t port_info_outCnt;
-	} __Request__mach_port_get_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_flavor_t flavor;
-		mach_msg_type_number_t port_infoCnt;
-		integer_t port_info[17];
-	} __Request__mach_port_set_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_right_t right;
-		mach_port_qos_t qos;
-	} __Request__mach_port_allocate_qos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t proto;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_port_right_t right;
-		mach_port_qos_t qos;
-		mach_port_name_t name;
-	} __Request__mach_port_allocate_full_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int table_entries;
-	} __Request__task_set_port_space_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_get_srights_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_port_space_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_dnrequest_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_kernel_object_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_name_t pset;
-	} __Request__mach_port_insert_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_name_t pset;
-	} __Request__mach_port_extract_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_get_context_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t context;
-	} __Request__mach_port_set_context_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_kobject_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t options;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_port_context_t context;
-	} __Request__mach_port_construct_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_delta_t srdelta;
-		mach_port_context_t guard;
-	} __Request__mach_port_destruct_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t guard;
-		boolean_t strict;
-	} __Request__mach_port_guard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t guard;
-	} __Request__mach_port_unguard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_port_space_basic_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t guard;
-		uint64_t flags;
-	} __Request__mach_port_guard_with_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t old_guard;
-		mach_port_context_t new_guard;
-	} __Request__mach_port_swap_guard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_kobject_description_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__mach_port_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__mach_port_subsystem__defined
-#define __RequestUnion__mach_port_subsystem__defined
-union __RequestUnion__mach_port_subsystem {
-	__Request__mach_port_names_t Request_mach_port_names;
-	__Request__mach_port_type_t Request_mach_port_type;
-	__Request__mach_port_rename_t Request_mach_port_rename;
-	__Request__mach_port_allocate_name_t Request_mach_port_allocate_name;
-	__Request__mach_port_allocate_t Request_mach_port_allocate;
-	__Request__mach_port_destroy_t Request_mach_port_destroy;
-	__Request__mach_port_deallocate_t Request_mach_port_deallocate;
-	__Request__mach_port_get_refs_t Request_mach_port_get_refs;
-	__Request__mach_port_mod_refs_t Request_mach_port_mod_refs;
-	__Request__mach_port_peek_t Request_mach_port_peek;
-	__Request__mach_port_set_mscount_t Request_mach_port_set_mscount;
-	__Request__mach_port_get_set_status_t Request_mach_port_get_set_status;
-	__Request__mach_port_move_member_t Request_mach_port_move_member;
-	__Request__mach_port_request_notification_t Request_mach_port_request_notification;
-	__Request__mach_port_insert_right_t Request_mach_port_insert_right;
-	__Request__mach_port_extract_right_t Request_mach_port_extract_right;
-	__Request__mach_port_set_seqno_t Request_mach_port_set_seqno;
-	__Request__mach_port_get_attributes_t Request_mach_port_get_attributes;
-	__Request__mach_port_set_attributes_t Request_mach_port_set_attributes;
-	__Request__mach_port_allocate_qos_t Request_mach_port_allocate_qos;
-	__Request__mach_port_allocate_full_t Request_mach_port_allocate_full;
-	__Request__task_set_port_space_t Request_task_set_port_space;
-	__Request__mach_port_get_srights_t Request_mach_port_get_srights;
-	__Request__mach_port_space_info_t Request_mach_port_space_info;
-	__Request__mach_port_dnrequest_info_t Request_mach_port_dnrequest_info;
-	__Request__mach_port_kernel_object_t Request_mach_port_kernel_object;
-	__Request__mach_port_insert_member_t Request_mach_port_insert_member;
-	__Request__mach_port_extract_member_t Request_mach_port_extract_member;
-	__Request__mach_port_get_context_t Request_mach_port_get_context;
-	__Request__mach_port_set_context_t Request_mach_port_set_context;
-	__Request__mach_port_kobject_t Request_mach_port_kobject;
-	__Request__mach_port_construct_t Request_mach_port_construct;
-	__Request__mach_port_destruct_t Request_mach_port_destruct;
-	__Request__mach_port_guard_t Request_mach_port_guard;
-	__Request__mach_port_unguard_t Request_mach_port_unguard;
-	__Request__mach_port_space_basic_info_t Request_mach_port_space_basic_info;
-	__Request__mach_port_guard_with_flags_t Request_mach_port_guard_with_flags;
-	__Request__mach_port_swap_guard_t Request_mach_port_swap_guard;
-	__Request__mach_port_kobject_description_t Request_mach_port_kobject_description;
-};
-#endif /* !__RequestUnion__mach_port_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__mach_port_subsystem__defined
-#define __Reply__mach_port_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t names;
-		mach_msg_ool_descriptor_t types;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t namesCnt;
-		mach_msg_type_number_t typesCnt;
-	} __Reply__mach_port_names_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_type_t ptype;
-	} __Reply__mach_port_type_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_rename_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_allocate_name_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_name_t name;
-	} __Reply__mach_port_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_urefs_t refs;
-	} __Reply__mach_port_get_refs_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_mod_refs_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_seqno_t request_seqnop;
-		mach_msg_size_t msg_sizep;
-		mach_msg_id_t msg_idp;
-		mach_msg_type_number_t trailer_infopCnt;
-		char trailer_infop[68];
-	} __Reply__mach_port_peek_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_set_mscount_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t members;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t membersCnt;
-	} __Reply__mach_port_get_set_status_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_move_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t previous;
-		/* end of the kernel processed data */
-	} __Reply__mach_port_request_notification_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_insert_right_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t poly;
-		/* end of the kernel processed data */
-	} __Reply__mach_port_extract_right_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_set_seqno_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t port_info_outCnt;
-		integer_t port_info_out[17];
-	} __Reply__mach_port_get_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_set_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_qos_t qos;
-		mach_port_name_t name;
-	} __Reply__mach_port_allocate_qos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_qos_t qos;
-		mach_port_name_t name;
-	} __Reply__mach_port_allocate_full_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_port_space_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_rights_t srights;
-	} __Reply__mach_port_get_srights_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t table_info;
-		mach_msg_ool_descriptor_t tree_info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		ipc_info_space_t space_info;
-		mach_msg_type_number_t table_infoCnt;
-		mach_msg_type_number_t tree_infoCnt;
-	} __Reply__mach_port_space_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		unsigned dnr_total;
-		unsigned dnr_used;
-	} __Reply__mach_port_dnrequest_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		unsigned object_type;
-		unsigned object_addr;
-	} __Reply__mach_port_kernel_object_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_insert_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_extract_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_context_t context;
-	} __Reply__mach_port_get_context_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_set_context_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		natural_t object_type;
-		mach_vm_address_t object_addr;
-	} __Reply__mach_port_kobject_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_name_t name;
-	} __Reply__mach_port_construct_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_destruct_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_guard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_unguard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		ipc_info_space_basic_t basic_info;
-	} __Reply__mach_port_space_basic_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_guard_with_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_swap_guard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		natural_t object_type;
-		mach_vm_address_t object_addr;
-		mach_msg_type_number_t descriptionOffset; /* MiG doesn't use it */
-		mach_msg_type_number_t descriptionCnt;
-		char description[512];
-	} __Reply__mach_port_kobject_description_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__mach_port_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__mach_port_subsystem__defined
-#define __ReplyUnion__mach_port_subsystem__defined
-union __ReplyUnion__mach_port_subsystem {
-	__Reply__mach_port_names_t Reply_mach_port_names;
-	__Reply__mach_port_type_t Reply_mach_port_type;
-	__Reply__mach_port_rename_t Reply_mach_port_rename;
-	__Reply__mach_port_allocate_name_t Reply_mach_port_allocate_name;
-	__Reply__mach_port_allocate_t Reply_mach_port_allocate;
-	__Reply__mach_port_destroy_t Reply_mach_port_destroy;
-	__Reply__mach_port_deallocate_t Reply_mach_port_deallocate;
-	__Reply__mach_port_get_refs_t Reply_mach_port_get_refs;
-	__Reply__mach_port_mod_refs_t Reply_mach_port_mod_refs;
-	__Reply__mach_port_peek_t Reply_mach_port_peek;
-	__Reply__mach_port_set_mscount_t Reply_mach_port_set_mscount;
-	__Reply__mach_port_get_set_status_t Reply_mach_port_get_set_status;
-	__Reply__mach_port_move_member_t Reply_mach_port_move_member;
-	__Reply__mach_port_request_notification_t Reply_mach_port_request_notification;
-	__Reply__mach_port_insert_right_t Reply_mach_port_insert_right;
-	__Reply__mach_port_extract_right_t Reply_mach_port_extract_right;
-	__Reply__mach_port_set_seqno_t Reply_mach_port_set_seqno;
-	__Reply__mach_port_get_attributes_t Reply_mach_port_get_attributes;
-	__Reply__mach_port_set_attributes_t Reply_mach_port_set_attributes;
-	__Reply__mach_port_allocate_qos_t Reply_mach_port_allocate_qos;
-	__Reply__mach_port_allocate_full_t Reply_mach_port_allocate_full;
-	__Reply__task_set_port_space_t Reply_task_set_port_space;
-	__Reply__mach_port_get_srights_t Reply_mach_port_get_srights;
-	__Reply__mach_port_space_info_t Reply_mach_port_space_info;
-	__Reply__mach_port_dnrequest_info_t Reply_mach_port_dnrequest_info;
-	__Reply__mach_port_kernel_object_t Reply_mach_port_kernel_object;
-	__Reply__mach_port_insert_member_t Reply_mach_port_insert_member;
-	__Reply__mach_port_extract_member_t Reply_mach_port_extract_member;
-	__Reply__mach_port_get_context_t Reply_mach_port_get_context;
-	__Reply__mach_port_set_context_t Reply_mach_port_set_context;
-	__Reply__mach_port_kobject_t Reply_mach_port_kobject;
-	__Reply__mach_port_construct_t Reply_mach_port_construct;
-	__Reply__mach_port_destruct_t Reply_mach_port_destruct;
-	__Reply__mach_port_guard_t Reply_mach_port_guard;
-	__Reply__mach_port_unguard_t Reply_mach_port_unguard;
-	__Reply__mach_port_space_basic_info_t Reply_mach_port_space_basic_info;
-	__Reply__mach_port_guard_with_flags_t Reply_mach_port_guard_with_flags;
-	__Reply__mach_port_swap_guard_t Reply_mach_port_swap_guard;
-	__Reply__mach_port_kobject_description_t Reply_mach_port_kobject_description;
-};
-#endif /* !__RequestUnion__mach_port_subsystem__defined */
-
-#ifndef subsystem_to_name_map_mach_port
-#define subsystem_to_name_map_mach_port \
-    { "mach_port_names", 3200 },\
-    { "mach_port_type", 3201 },\
-    { "mach_port_rename", 3202 },\
-    { "mach_port_allocate_name", 3203 },\
-    { "mach_port_allocate", 3204 },\
-    { "mach_port_destroy", 3205 },\
-    { "mach_port_deallocate", 3206 },\
-    { "mach_port_get_refs", 3207 },\
-    { "mach_port_mod_refs", 3208 },\
-    { "mach_port_peek", 3209 },\
-    { "mach_port_set_mscount", 3210 },\
-    { "mach_port_get_set_status", 3211 },\
-    { "mach_port_move_member", 3212 },\
-    { "mach_port_request_notification", 3213 },\
-    { "mach_port_insert_right", 3214 },\
-    { "mach_port_extract_right", 3215 },\
-    { "mach_port_set_seqno", 3216 },\
-    { "mach_port_get_attributes", 3217 },\
-    { "mach_port_set_attributes", 3218 },\
-    { "mach_port_allocate_qos", 3219 },\
-    { "mach_port_allocate_full", 3220 },\
-    { "task_set_port_space", 3221 },\
-    { "mach_port_get_srights", 3222 },\
-    { "mach_port_space_info", 3223 },\
-    { "mach_port_dnrequest_info", 3224 },\
-    { "mach_port_kernel_object", 3225 },\
-    { "mach_port_insert_member", 3226 },\
-    { "mach_port_extract_member", 3227 },\
-    { "mach_port_get_context", 3228 },\
-    { "mach_port_set_context", 3229 },\
-    { "mach_port_kobject", 3230 },\
-    { "mach_port_construct", 3231 },\
-    { "mach_port_destruct", 3232 },\
-    { "mach_port_guard", 3233 },\
-    { "mach_port_unguard", 3234 },\
-    { "mach_port_space_basic_info", 3235 },\
-    { "mach_port_guard_with_flags", 3237 },\
-    { "mach_port_swap_guard", 3238 },\
-    { "mach_port_kobject_description", 3239 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _mach_port_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/mach_traps.h b/lib/libc/include/x86_64-macos.10-none/mach/mach_traps.h
deleted file mode 100644
index d3aaf577eded1f9768b74654c590f73e144fc241..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/mach_traps.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Copyright (c) 2000-2019 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@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	Definitions of general Mach system traps.
- *
- *	These are the definitions as seen from user-space.
- *	The kernel definitions are in .
- *	Kernel RPC functions are defined in .
- */
-
-#ifndef _MACH_MACH_TRAPS_H_
-#define _MACH_MACH_TRAPS_H_
-
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-
-#include 
-
-__BEGIN_DECLS
-
-
-
-extern kern_return_t clock_sleep_trap(
-	mach_port_name_t clock_name,
-	sleep_type_t sleep_type,
-	int sleep_sec,
-	int sleep_nsec,
-	mach_timespec_t *wakeup_time);
-
-extern kern_return_t _kernelrpc_mach_vm_allocate_trap(
-	mach_port_name_t target,
-	mach_vm_offset_t *addr,
-	mach_vm_size_t size,
-	int flags);
-
-extern kern_return_t _kernelrpc_mach_vm_deallocate_trap(
-	mach_port_name_t target,
-	mach_vm_address_t address,
-	mach_vm_size_t size
-	);
-
-extern kern_return_t _kernelrpc_mach_vm_protect_trap(
-	mach_port_name_t target,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	boolean_t set_maximum,
-	vm_prot_t new_protection
-	);
-
-extern kern_return_t _kernelrpc_mach_vm_map_trap(
-	mach_port_name_t target,
-	mach_vm_offset_t *address,
-	mach_vm_size_t size,
-	mach_vm_offset_t mask,
-	int flags,
-	vm_prot_t cur_protection
-	);
-
-extern kern_return_t _kernelrpc_mach_vm_purgable_control_trap(
-	mach_port_name_t target,
-	mach_vm_offset_t address,
-	vm_purgable_t control,
-	int *state);
-
-extern kern_return_t _kernelrpc_mach_port_allocate_trap(
-	mach_port_name_t target,
-	mach_port_right_t right,
-	mach_port_name_t *name
-	);
-
-
-extern kern_return_t _kernelrpc_mach_port_destroy_trap(
-	mach_port_name_t target,
-	mach_port_name_t name
-	);
-
-extern kern_return_t _kernelrpc_mach_port_deallocate_trap(
-	mach_port_name_t target,
-	mach_port_name_t name
-	);
-
-extern kern_return_t _kernelrpc_mach_port_mod_refs_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_right_t right,
-	mach_port_delta_t delta
-	);
-
-extern kern_return_t _kernelrpc_mach_port_move_member_trap(
-	mach_port_name_t target,
-	mach_port_name_t member,
-	mach_port_name_t after
-	);
-
-extern kern_return_t _kernelrpc_mach_port_insert_right_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_name_t poly,
-	mach_msg_type_name_t polyPoly
-	);
-
-extern kern_return_t _kernelrpc_mach_port_get_attributes_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_flavor_t flavor,
-	mach_port_info_t port_info_out,
-	mach_msg_type_number_t *port_info_outCnt
-	);
-
-extern kern_return_t _kernelrpc_mach_port_insert_member_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_name_t pset
-	);
-
-extern kern_return_t _kernelrpc_mach_port_extract_member_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_name_t pset
-	);
-
-extern kern_return_t _kernelrpc_mach_port_construct_trap(
-	mach_port_name_t target,
-	mach_port_options_t *options,
-	uint64_t context,
-	mach_port_name_t *name
-	);
-
-extern kern_return_t _kernelrpc_mach_port_destruct_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_delta_t srdelta,
-	uint64_t guard
-	);
-
-extern kern_return_t _kernelrpc_mach_port_guard_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	uint64_t guard,
-	boolean_t strict
-	);
-
-extern kern_return_t _kernelrpc_mach_port_unguard_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	uint64_t guard
-	);
-
-extern kern_return_t mach_generate_activity_id(
-	mach_port_name_t target,
-	int count,
-	uint64_t *activity_id
-	);
-
-extern kern_return_t macx_swapon(
-	uint64_t filename,
-	int flags,
-	int size,
-	int priority);
-
-extern kern_return_t macx_swapoff(
-	uint64_t filename,
-	int flags);
-
-extern kern_return_t macx_triggers(
-	int hi_water,
-	int low_water,
-	int flags,
-	mach_port_t alert_port);
-
-extern kern_return_t macx_backing_store_suspend(
-	boolean_t suspend);
-
-extern kern_return_t macx_backing_store_recovery(
-	int pid);
-
-extern boolean_t swtch_pri(int pri);
-
-extern boolean_t swtch(void);
-
-extern kern_return_t thread_switch(
-	mach_port_name_t thread_name,
-	int option,
-	mach_msg_timeout_t option_time);
-
-extern mach_port_name_t task_self_trap(void);
-
-extern kern_return_t host_create_mach_voucher_trap(
-	mach_port_name_t host,
-	mach_voucher_attr_raw_recipe_array_t recipes,
-	int recipes_size,
-	mach_port_name_t *voucher);
-
-extern kern_return_t mach_voucher_extract_attr_recipe_trap(
-	mach_port_name_t voucher_name,
-	mach_voucher_attr_key_t key,
-	mach_voucher_attr_raw_recipe_t recipe,
-	mach_msg_type_number_t *recipe_size);
-
-extern kern_return_t _kernelrpc_mach_port_type_trap(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_type_t *ptype);
-
-extern kern_return_t _kernelrpc_mach_port_request_notification_trap(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_msg_id_t msgid,
-	mach_port_mscount_t sync,
-	mach_port_name_t notify,
-	mach_msg_type_name_t notifyPoly,
-	mach_port_name_t *previous);
-
-/*
- *	Obsolete interfaces.
- */
-
-extern kern_return_t task_for_pid(
-	mach_port_name_t target_tport,
-	int pid,
-	mach_port_name_t *t);
-
-extern kern_return_t task_name_for_pid(
-	mach_port_name_t target_tport,
-	int pid,
-	mach_port_name_t *tn);
-
-extern kern_return_t pid_for_task(
-	mach_port_name_t t,
-	int *x);
-
-extern kern_return_t debug_control_port_for_pid(
-	mach_port_name_t target_tport,
-	int pid,
-	mach_port_name_t *t);
-
-
-__END_DECLS
-
-#endif  /* _MACH_MACH_TRAPS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/mach_types.h b/lib/libc/include/x86_64-macos.10-none/mach/mach_types.h
deleted file mode 100644
index 0c35705acf2c5fe4f7f7abfcc2c7cf636a243111..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/mach_types.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (c) 2000-2018 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@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
- * support for mandatory and extensible security protections.  This notice
- * is included in support of clause 2.2 (b) of the Apple Public License,
- * Version 2.0.
- */
-/*
- *	File:	mach/mach_types.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *	Date:	1986
- *
- *	Mach external interface definitions.
- *
- */
-
-#ifndef _MACH_MACH_TYPES_H_
-#define _MACH_MACH_TYPES_H_
-
-#include 
-
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-
-/*
- * If we are not in the kernel, then these will all be represented by
- * ports at user-space.
- */
-typedef mach_port_t             task_t;
-typedef mach_port_t             task_name_t;
-typedef mach_port_t             task_inspect_t;
-typedef mach_port_t             task_suspension_token_t;
-typedef mach_port_t             thread_t;
-typedef mach_port_t             thread_act_t;
-typedef mach_port_t             thread_inspect_t;
-typedef mach_port_t             ipc_space_t;
-typedef mach_port_t             ipc_space_inspect_t;
-typedef mach_port_t             coalition_t;
-typedef mach_port_t             host_t;
-typedef mach_port_t             host_priv_t;
-typedef mach_port_t             host_security_t;
-typedef mach_port_t             processor_t;
-typedef mach_port_t             processor_set_t;
-typedef mach_port_t             processor_set_control_t;
-typedef mach_port_t             semaphore_t;
-typedef mach_port_t             lock_set_t;
-typedef mach_port_t             ledger_t;
-typedef mach_port_t             alarm_t;
-typedef mach_port_t             clock_serv_t;
-typedef mach_port_t             clock_ctrl_t;
-typedef mach_port_t             arcade_register_t;
-typedef mach_port_t             suid_cred_t;
-
-
-/*
- * These aren't really unique types.  They are just called
- * out as unique types at one point in history.  So we list
- * them here for compatibility.
- */
-typedef processor_set_t         processor_set_name_t;
-
-/*
- * These types are just hard-coded as ports
- */
-typedef mach_port_t             clock_reply_t;
-typedef mach_port_t             bootstrap_t;
-typedef mach_port_t             mem_entry_name_port_t;
-typedef mach_port_t             exception_handler_t;
-typedef exception_handler_t     *exception_handler_array_t;
-typedef mach_port_t             vm_task_entry_t;
-typedef mach_port_t             io_master_t;
-typedef mach_port_t             UNDServerRef;
-
-/*
- * Mig doesn't translate the components of an array.
- * For example, Mig won't use the thread_t translations
- * to translate a thread_array_t argument.  So, these definitions
- * are not completely accurate at the moment for other kernel
- * components.
- */
-typedef task_t                  *task_array_t;
-typedef thread_t                *thread_array_t;
-typedef processor_set_t         *processor_set_array_t;
-typedef processor_set_t         *processor_set_name_array_t;
-typedef processor_t             *processor_array_t;
-typedef thread_act_t            *thread_act_array_t;
-typedef ledger_t                *ledger_array_t;
-
-/*
- * However the real mach_types got declared, we also have to declare
- * types with "port" in the name for compatability with the way OSF
- * had declared the user interfaces at one point.  Someday these should
- * go away.
- */
-typedef task_t                  task_port_t;
-typedef task_array_t            task_port_array_t;
-typedef thread_t                thread_port_t;
-typedef thread_array_t          thread_port_array_t;
-typedef ipc_space_t             ipc_space_port_t;
-typedef host_t                  host_name_t;
-typedef host_t                  host_name_port_t;
-typedef processor_set_t         processor_set_port_t;
-typedef processor_set_t         processor_set_name_port_t;
-typedef processor_set_array_t   processor_set_name_port_array_t;
-typedef processor_set_t         processor_set_control_port_t;
-typedef processor_t             processor_port_t;
-typedef processor_array_t       processor_port_array_t;
-typedef thread_act_t            thread_act_port_t;
-typedef thread_act_array_t      thread_act_port_array_t;
-typedef semaphore_t             semaphore_port_t;
-typedef lock_set_t              lock_set_port_t;
-typedef ledger_t                ledger_port_t;
-typedef ledger_array_t          ledger_port_array_t;
-typedef alarm_t                 alarm_port_t;
-typedef clock_serv_t            clock_serv_port_t;
-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 suid_cred_path_t[1024];
-typedef uint32_t suid_cred_uid_t;
-
-#define TASK_NULL               ((task_t) 0)
-#define TASK_NAME_NULL          ((task_name_t) 0)
-#define TASK_INSPECT_NULL               ((task_inspect_t) 0)
-#define THREAD_NULL             ((thread_t) 0)
-#define THREAD_INSPECT_NULL     ((thread_inspect_t) 0)
-#define TID_NULL                ((uint64_t) 0)
-#define THR_ACT_NULL            ((thread_act_t) 0)
-#define IPC_SPACE_NULL          ((ipc_space_t) 0)
-#define IPC_SPACE_INSPECT_NULL  ((ipc_space_inspect_t) 0)
-#define COALITION_NULL          ((coalition_t) 0)
-#define HOST_NULL               ((host_t) 0)
-#define HOST_PRIV_NULL          ((host_priv_t) 0)
-#define HOST_SECURITY_NULL      ((host_security_t) 0)
-#define PROCESSOR_SET_NULL      ((processor_set_t) 0)
-#define PROCESSOR_NULL          ((processor_t) 0)
-#define SEMAPHORE_NULL          ((semaphore_t) 0)
-#define LOCK_SET_NULL           ((lock_set_t) 0)
-#define LEDGER_NULL             ((ledger_t) 0)
-#define ALARM_NULL              ((alarm_t) 0)
-#define CLOCK_NULL              ((clock_t) 0)
-#define UND_SERVER_NULL         ((UNDServerRef) 0)
-#define ARCADE_REG_NULL         ((arcade_register_t) 0)
-#define SUID_CRED_NULL         ((suid_cred_t) 0)
-
-/* DEPRECATED */
-typedef natural_t       ledger_item_t;
-#define LEDGER_ITEM_INFINITY    ((ledger_item_t) (~0))
-
-typedef int64_t                 ledger_amount_t;
-#define LEDGER_LIMIT_INFINITY   ((ledger_amount_t)((1ULL << 63) - 1))
-
-typedef mach_vm_offset_t        *emulation_vector_t;
-typedef char                    *user_subsystem_t;
-
-typedef char                    *labelstr_t;
-/*
- *	Backwards compatibility, for those programs written
- *	before mach/{std,mach}_types.{defs,h} were set up.
- */
-#include 
-
-#endif  /* _MACH_MACH_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/mach_voucher_types.h b/lib/libc/include/x86_64-macos.10-none/mach/mach_voucher_types.h
deleted file mode 100644
index b5b34d7e4cba8fc937eab55e4ba757b4c703ffb1..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/mach_voucher_types.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright (c) 2013 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 _MACH_VOUCHER_TYPES_H_
-#define _MACH_VOUCHER_TYPES_H_
-
-#include 
-#include 
-
-/*
- * Mach Voucher - an immutable collection of attribute value handles.
- *
- * The mach voucher is such that it can be passed between processes
- * as a Mach port send right (by convention in the mach_msg_header_t’s
- * msgh_voucher field).
- *
- * You may construct a new mach voucher by passing a construction
- * recipe to host_create_mach_voucher().  The construction recipe supports
- * generic commands for copying, removing, and redeeming attribute value
- * handles from previous vouchers, or running attribute-mananger-specific
- * commands within the recipe.
- *
- * Once the set of attribute value handles is constructed and returned,
- * that set will not change for the life of the voucher (just because the
- * attribute value handle itself doesn't change, the value the handle refers
- * to is free to change at will).
- */
-typedef mach_port_t             mach_voucher_t;
-#define MACH_VOUCHER_NULL       ((mach_voucher_t) 0)
-
-typedef mach_port_name_t        mach_voucher_name_t;
-#define MACH_VOUCHER_NAME_NULL  ((mach_voucher_name_t) 0)
-
-typedef mach_voucher_name_t     *mach_voucher_name_array_t;
-#define MACH_VOUCHER_NAME_ARRAY_NULL ((mach_voucher_name_array_t) 0)
-
-/*
- * This type changes appearance between user-space and kernel.  It is
- * a port at user-space and a reference to an ipc_voucher structure in-kernel.
- */
-typedef mach_voucher_t          ipc_voucher_t;
-#define IPC_VOUCHER_NULL        ((ipc_voucher_t) 0)
-
-/*
- * mach_voucher_selector_t - A means of specifying which thread/task value to extract -
- *  the current voucher set at this level, or a voucher representing
- * the full [layered] effective value for the task/thread.
- */
-typedef uint32_t mach_voucher_selector_t;
-#define MACH_VOUCHER_SELECTOR_CURRENT           ((mach_voucher_selector_t)0)
-#define MACH_VOUCHER_SELECTOR_EFFECTIVE         ((mach_voucher_selector_t)1)
-
-
-/*
- * mach_voucher_attr_key_t - The key used to identify a particular managed resource or
- * to select the specific resource manager’s data associated
- * with a given voucher.
- */
-typedef uint32_t mach_voucher_attr_key_t;
-typedef mach_voucher_attr_key_t *mach_voucher_attr_key_array_t;
-
-#define MACH_VOUCHER_ATTR_KEY_ALL               ((mach_voucher_attr_key_t)~0)
-#define MACH_VOUCHER_ATTR_KEY_NONE              ((mach_voucher_attr_key_t)0)
-
-/* other well-known-keys will be added here */
-#define MACH_VOUCHER_ATTR_KEY_ATM               ((mach_voucher_attr_key_t)1)
-#define MACH_VOUCHER_ATTR_KEY_IMPORTANCE        ((mach_voucher_attr_key_t)2)
-#define MACH_VOUCHER_ATTR_KEY_BANK              ((mach_voucher_attr_key_t)3)
-#define MACH_VOUCHER_ATTR_KEY_PTHPRIORITY       ((mach_voucher_attr_key_t)4)
-
-#define MACH_VOUCHER_ATTR_KEY_USER_DATA         ((mach_voucher_attr_key_t)7)
-#define MACH_VOUCHER_ATTR_KEY_BITS              MACH_VOUCHER_ATTR_KEY_USER_DATA /* deprecated */
-#define MACH_VOUCHER_ATTR_KEY_TEST              ((mach_voucher_attr_key_t)8)
-
-#define MACH_VOUCHER_ATTR_KEY_NUM_WELL_KNOWN    MACH_VOUCHER_ATTR_KEY_TEST
-
-/*
- * mach_voucher_attr_content_t
- *
- * Data passed to a resource manager for modifying an attribute
- * value or returned from the resource manager in response to a
- * request to externalize the current value for that attribute.
- */
-typedef uint8_t *mach_voucher_attr_content_t;
-typedef uint32_t mach_voucher_attr_content_size_t;
-
-/*
- * mach_voucher_attr_command_t - The private verbs implemented by each voucher
- * attribute manager via mach_voucher_attr_command().
- */
-typedef uint32_t mach_voucher_attr_command_t;
-
-/*
- * mach_voucher_attr_recipe_command_t
- *
- * The verbs used to create/morph a voucher attribute value.
- * We define some system-wide commands here - related to creation, and transport of
- * vouchers and attributes.  Additional commands can be defined by, and supported by,
- * individual attribute resource managers.
- */
-typedef uint32_t mach_voucher_attr_recipe_command_t;
-typedef mach_voucher_attr_recipe_command_t *mach_voucher_attr_recipe_command_array_t;
-
-#define MACH_VOUCHER_ATTR_NOOP                  ((mach_voucher_attr_recipe_command_t)0)
-#define MACH_VOUCHER_ATTR_COPY                  ((mach_voucher_attr_recipe_command_t)1)
-#define MACH_VOUCHER_ATTR_REMOVE                ((mach_voucher_attr_recipe_command_t)2)
-#define MACH_VOUCHER_ATTR_SET_VALUE_HANDLE      ((mach_voucher_attr_recipe_command_t)3)
-#define MACH_VOUCHER_ATTR_AUTO_REDEEM           ((mach_voucher_attr_recipe_command_t)4)
-#define MACH_VOUCHER_ATTR_SEND_PREPROCESS       ((mach_voucher_attr_recipe_command_t)5)
-
-/* redeem is on its way out? */
-#define MACH_VOUCHER_ATTR_REDEEM                ((mach_voucher_attr_recipe_command_t)10)
-
-/* recipe command(s) for importance attribute manager */
-#define MACH_VOUCHER_ATTR_IMPORTANCE_SELF       ((mach_voucher_attr_recipe_command_t)200)
-
-/* recipe command(s) for bit-store attribute manager */
-#define MACH_VOUCHER_ATTR_USER_DATA_STORE       ((mach_voucher_attr_recipe_command_t)211)
-#define MACH_VOUCHER_ATTR_BITS_STORE            MACH_VOUCHER_ATTR_USER_DATA_STORE /* deprecated */
-
-/* recipe command(s) for test attribute manager */
-#define MACH_VOUCHER_ATTR_TEST_STORE            MACH_VOUCHER_ATTR_USER_DATA_STORE
-
-/*
- * mach_voucher_attr_recipe_t
- *
- * An element in a recipe list to create a voucher.
- */
-#pragma pack(push, 1)
-
-typedef struct mach_voucher_attr_recipe_data {
-	mach_voucher_attr_key_t                 key;
-	mach_voucher_attr_recipe_command_t      command;
-	mach_voucher_name_t                     previous_voucher;
-	mach_voucher_attr_content_size_t        content_size;
-	uint8_t                                 content[];
-} mach_voucher_attr_recipe_data_t;
-typedef mach_voucher_attr_recipe_data_t *mach_voucher_attr_recipe_t;
-typedef mach_msg_type_number_t mach_voucher_attr_recipe_size_t;
-
-/* Make the above palatable to MIG */
-typedef uint8_t *mach_voucher_attr_raw_recipe_t;
-typedef mach_voucher_attr_raw_recipe_t mach_voucher_attr_raw_recipe_array_t;
-typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_size_t;
-typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_array_size_t;
-
-#define MACH_VOUCHER_ATTR_MAX_RAW_RECIPE_ARRAY_SIZE   5120
-#define MACH_VOUCHER_TRAP_STACK_LIMIT                 256
-
-#pragma pack(pop)
-
-/*
- * VOUCHER ATTRIBUTE MANAGER Writer types
- */
-
-/*
- * mach_voucher_attr_manager_t
- *
- * A handle through which the mach voucher mechanism communicates with the voucher
- * attribute manager for a given attribute key.
- */
-typedef mach_port_t                     mach_voucher_attr_manager_t;
-#define MACH_VOUCHER_ATTR_MANAGER_NULL  ((mach_voucher_attr_manager_t) 0)
-
-/*
- * mach_voucher_attr_control_t
- *
- * A handle provided to the voucher attribute manager for a given attribute key
- * through which it makes inquiries or control operations of the mach voucher mechanism.
- */
-typedef mach_port_t                     mach_voucher_attr_control_t;
-#define MACH_VOUCHER_ATTR_CONTROL_NULL  ((mach_voucher_attr_control_t) 0)
-
-/*
- * These types are different in-kernel vs user-space.  They are ports in user-space,
- * pointers to opaque structs in most of the kernel, and pointers to known struct
- * types in the Mach portion of the kernel.
- */
-typedef mach_port_t             ipc_voucher_attr_manager_t;
-typedef mach_port_t             ipc_voucher_attr_control_t;
-#define IPC_VOUCHER_ATTR_MANAGER_NULL ((ipc_voucher_attr_manager_t) 0)
-#define IPC_VOUCHER_ATTR_CONTROL_NULL ((ipc_voucher_attr_control_t) 0)
-
-/*
- * mach_voucher_attr_value_handle_t
- *
- * The private handle that the voucher attribute manager provides to
- * the mach voucher mechanism to represent a given attr content/value.
- */
-typedef uint64_t mach_voucher_attr_value_handle_t;
-typedef mach_voucher_attr_value_handle_t *mach_voucher_attr_value_handle_array_t;
-
-typedef mach_msg_type_number_t mach_voucher_attr_value_handle_array_size_t;
-#define MACH_VOUCHER_ATTR_VALUE_MAX_NESTED      ((mach_voucher_attr_value_handle_array_size_t)4)
-
-typedef uint32_t mach_voucher_attr_value_reference_t;
-typedef uint32_t mach_voucher_attr_value_flags_t;
-#define MACH_VOUCHER_ATTR_VALUE_FLAGS_NONE      ((mach_voucher_attr_value_flags_t)0)
-#define MACH_VOUCHER_ATTR_VALUE_FLAGS_PERSIST   ((mach_voucher_attr_value_flags_t)1)
-
-/* USE - TBD */
-typedef uint32_t mach_voucher_attr_control_flags_t;
-#define MACH_VOUCHER_ATTR_CONTROL_FLAGS_NONE    ((mach_voucher_attr_control_flags_t)0)
-
-/*
- * Commands and types for the IPC Importance Attribute Manager
- *
- * These are the valid mach_voucher_attr_command() options with the
- * MACH_VOUCHER_ATTR_KEY_IMPORTANCE key.
- */
-#define MACH_VOUCHER_IMPORTANCE_ATTR_ADD_EXTERNAL       1  /* Add some number of external refs (not supported) */
-#define MACH_VOUCHER_IMPORTANCE_ATTR_DROP_EXTERNAL      2  /* Drop some number of external refs */
-typedef uint32_t mach_voucher_attr_importance_refs;
-
-/*
- * Activity id Generation defines
- */
-#define MACH_ACTIVITY_ID_COUNT_MAX 16
-
-#endif  /* _MACH_VOUCHER_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine.h b/lib/libc/include/x86_64-macos.10-none/mach/machine.h
deleted file mode 100644
index 30aafcc8124aeb9bae9399844e4598c727465c91..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine.h
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- * Copyright (c) 2007-2016 Apple, Inc. All rights reserved.
- * Copyright (c) 2000 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@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*	File:	machine.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date:	1986
- *
- *	Machine independent machine abstraction.
- */
-
-#ifndef _MACH_MACHINE_H_
-#define _MACH_MACHINE_H_
-
-#ifndef __ASSEMBLER__
-
-#include 
-#include 
-#include 
-
-typedef integer_t       cpu_type_t;
-typedef integer_t       cpu_subtype_t;
-typedef integer_t       cpu_threadtype_t;
-
-#define CPU_STATE_MAX           4
-
-#define CPU_STATE_USER          0
-#define CPU_STATE_SYSTEM        1
-#define CPU_STATE_IDLE          2
-#define CPU_STATE_NICE          3
-
-
-
-/*
- * Capability bits used in the definition of cpu_type.
- */
-#define CPU_ARCH_MASK           0xff000000      /* mask for architecture bits */
-#define CPU_ARCH_ABI64          0x01000000      /* 64 bit ABI */
-#define CPU_ARCH_ABI64_32       0x02000000      /* ABI for 64-bit hardware with 32-bit types; LP32 */
-
-/*
- *	Machine types known by all.
- */
-
-#define CPU_TYPE_ANY            ((cpu_type_t) -1)
-
-#define CPU_TYPE_VAX            ((cpu_type_t) 1)
-/* skip				((cpu_type_t) 2)	*/
-/* skip				((cpu_type_t) 3)	*/
-/* skip				((cpu_type_t) 4)	*/
-/* skip				((cpu_type_t) 5)	*/
-#define CPU_TYPE_MC680x0        ((cpu_type_t) 6)
-#define CPU_TYPE_X86            ((cpu_type_t) 7)
-#define CPU_TYPE_I386           CPU_TYPE_X86            /* compatibility */
-#define CPU_TYPE_X86_64         (CPU_TYPE_X86 | CPU_ARCH_ABI64)
-
-/* skip CPU_TYPE_MIPS		((cpu_type_t) 8)	*/
-/* skip                         ((cpu_type_t) 9)	*/
-#define CPU_TYPE_MC98000        ((cpu_type_t) 10)
-#define CPU_TYPE_HPPA           ((cpu_type_t) 11)
-#define CPU_TYPE_ARM            ((cpu_type_t) 12)
-#define CPU_TYPE_ARM64          (CPU_TYPE_ARM | CPU_ARCH_ABI64)
-#define CPU_TYPE_ARM64_32       (CPU_TYPE_ARM | CPU_ARCH_ABI64_32)
-#define CPU_TYPE_MC88000        ((cpu_type_t) 13)
-#define CPU_TYPE_SPARC          ((cpu_type_t) 14)
-#define CPU_TYPE_I860           ((cpu_type_t) 15)
-/* skip	CPU_TYPE_ALPHA		((cpu_type_t) 16)	*/
-/* skip				((cpu_type_t) 17)	*/
-#define CPU_TYPE_POWERPC                ((cpu_type_t) 18)
-#define CPU_TYPE_POWERPC64              (CPU_TYPE_POWERPC | CPU_ARCH_ABI64)
-/* skip				((cpu_type_t) 19)	*/
-
-/*
- *	Machine subtypes (these are defined here, instead of in a machine
- *	dependent directory, so that any program can get all definitions
- *	regardless of where is it compiled).
- */
-
-/*
- * Capability bits used in the definition of cpu_subtype.
- */
-#define CPU_SUBTYPE_MASK        0xff000000      /* mask for feature flags */
-#define CPU_SUBTYPE_LIB64       0x80000000      /* 64 bit libraries */
-
-
-/*
- *	Object files that are hand-crafted to run on any
- *	implementation of an architecture are tagged with
- *	CPU_SUBTYPE_MULTIPLE.  This functions essentially the same as
- *	the "ALL" subtype of an architecture except that it allows us
- *	to easily find object files that may need to be modified
- *	whenever a new implementation of an architecture comes out.
- *
- *	It is the responsibility of the implementor to make sure the
- *	software handles unsupported implementations elegantly.
- */
-#define CPU_SUBTYPE_MULTIPLE            ((cpu_subtype_t) -1)
-#define CPU_SUBTYPE_LITTLE_ENDIAN       ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_BIG_ENDIAN          ((cpu_subtype_t) 1)
-
-/*
- *     Machine threadtypes.
- *     This is none - not defined - for most machine types/subtypes.
- */
-#define CPU_THREADTYPE_NONE             ((cpu_threadtype_t) 0)
-
-/*
- *	VAX subtypes (these do *not* necessary conform to the actual cpu
- *	ID assigned by DEC available via the SID register).
- */
-
-#define CPU_SUBTYPE_VAX_ALL     ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_VAX780      ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_VAX785      ((cpu_subtype_t) 2)
-#define CPU_SUBTYPE_VAX750      ((cpu_subtype_t) 3)
-#define CPU_SUBTYPE_VAX730      ((cpu_subtype_t) 4)
-#define CPU_SUBTYPE_UVAXI       ((cpu_subtype_t) 5)
-#define CPU_SUBTYPE_UVAXII      ((cpu_subtype_t) 6)
-#define CPU_SUBTYPE_VAX8200     ((cpu_subtype_t) 7)
-#define CPU_SUBTYPE_VAX8500     ((cpu_subtype_t) 8)
-#define CPU_SUBTYPE_VAX8600     ((cpu_subtype_t) 9)
-#define CPU_SUBTYPE_VAX8650     ((cpu_subtype_t) 10)
-#define CPU_SUBTYPE_VAX8800     ((cpu_subtype_t) 11)
-#define CPU_SUBTYPE_UVAXIII     ((cpu_subtype_t) 12)
-
-/*
- *      680x0 subtypes
- *
- * The subtype definitions here are unusual for historical reasons.
- * NeXT used to consider 68030 code as generic 68000 code.  For
- * backwards compatability:
- *
- *	CPU_SUBTYPE_MC68030 symbol has been preserved for source code
- *	compatability.
- *
- *	CPU_SUBTYPE_MC680x0_ALL has been defined to be the same
- *	subtype as CPU_SUBTYPE_MC68030 for binary comatability.
- *
- *	CPU_SUBTYPE_MC68030_ONLY has been added to allow new object
- *	files to be tagged as containing 68030-specific instructions.
- */
-
-#define CPU_SUBTYPE_MC680x0_ALL         ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_MC68030             ((cpu_subtype_t) 1) /* compat */
-#define CPU_SUBTYPE_MC68040             ((cpu_subtype_t) 2)
-#define CPU_SUBTYPE_MC68030_ONLY        ((cpu_subtype_t) 3)
-
-/*
- *	I386 subtypes
- */
-
-#define CPU_SUBTYPE_INTEL(f, m) ((cpu_subtype_t) (f) + ((m) << 4))
-
-#define CPU_SUBTYPE_I386_ALL                    CPU_SUBTYPE_INTEL(3, 0)
-#define CPU_SUBTYPE_386                                 CPU_SUBTYPE_INTEL(3, 0)
-#define CPU_SUBTYPE_486                                 CPU_SUBTYPE_INTEL(4, 0)
-#define CPU_SUBTYPE_486SX                               CPU_SUBTYPE_INTEL(4, 8) // 8 << 4 = 128
-#define CPU_SUBTYPE_586                                 CPU_SUBTYPE_INTEL(5, 0)
-#define CPU_SUBTYPE_PENT        CPU_SUBTYPE_INTEL(5, 0)
-#define CPU_SUBTYPE_PENTPRO     CPU_SUBTYPE_INTEL(6, 1)
-#define CPU_SUBTYPE_PENTII_M3   CPU_SUBTYPE_INTEL(6, 3)
-#define CPU_SUBTYPE_PENTII_M5   CPU_SUBTYPE_INTEL(6, 5)
-#define CPU_SUBTYPE_CELERON                             CPU_SUBTYPE_INTEL(7, 6)
-#define CPU_SUBTYPE_CELERON_MOBILE              CPU_SUBTYPE_INTEL(7, 7)
-#define CPU_SUBTYPE_PENTIUM_3                   CPU_SUBTYPE_INTEL(8, 0)
-#define CPU_SUBTYPE_PENTIUM_3_M                 CPU_SUBTYPE_INTEL(8, 1)
-#define CPU_SUBTYPE_PENTIUM_3_XEON              CPU_SUBTYPE_INTEL(8, 2)
-#define CPU_SUBTYPE_PENTIUM_M                   CPU_SUBTYPE_INTEL(9, 0)
-#define CPU_SUBTYPE_PENTIUM_4                   CPU_SUBTYPE_INTEL(10, 0)
-#define CPU_SUBTYPE_PENTIUM_4_M                 CPU_SUBTYPE_INTEL(10, 1)
-#define CPU_SUBTYPE_ITANIUM                             CPU_SUBTYPE_INTEL(11, 0)
-#define CPU_SUBTYPE_ITANIUM_2                   CPU_SUBTYPE_INTEL(11, 1)
-#define CPU_SUBTYPE_XEON                                CPU_SUBTYPE_INTEL(12, 0)
-#define CPU_SUBTYPE_XEON_MP                             CPU_SUBTYPE_INTEL(12, 1)
-
-#define CPU_SUBTYPE_INTEL_FAMILY(x)     ((x) & 15)
-#define CPU_SUBTYPE_INTEL_FAMILY_MAX    15
-
-#define CPU_SUBTYPE_INTEL_MODEL(x)      ((x) >> 4)
-#define CPU_SUBTYPE_INTEL_MODEL_ALL     0
-
-/*
- *	X86 subtypes.
- */
-
-#define CPU_SUBTYPE_X86_ALL             ((cpu_subtype_t)3)
-#define CPU_SUBTYPE_X86_64_ALL          ((cpu_subtype_t)3)
-#define CPU_SUBTYPE_X86_ARCH1           ((cpu_subtype_t)4)
-#define CPU_SUBTYPE_X86_64_H            ((cpu_subtype_t)8)      /* Haswell feature subset */
-
-
-#define CPU_THREADTYPE_INTEL_HTT        ((cpu_threadtype_t) 1)
-
-/*
- *	Mips subtypes.
- */
-
-#define CPU_SUBTYPE_MIPS_ALL    ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_MIPS_R2300  ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_MIPS_R2600  ((cpu_subtype_t) 2)
-#define CPU_SUBTYPE_MIPS_R2800  ((cpu_subtype_t) 3)
-#define CPU_SUBTYPE_MIPS_R2000a ((cpu_subtype_t) 4)     /* pmax */
-#define CPU_SUBTYPE_MIPS_R2000  ((cpu_subtype_t) 5)
-#define CPU_SUBTYPE_MIPS_R3000a ((cpu_subtype_t) 6)     /* 3max */
-#define CPU_SUBTYPE_MIPS_R3000  ((cpu_subtype_t) 7)
-
-/*
- *	MC98000 (PowerPC) subtypes
- */
-#define CPU_SUBTYPE_MC98000_ALL ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_MC98601     ((cpu_subtype_t) 1)
-
-/*
- *	HPPA subtypes for Hewlett-Packard HP-PA family of
- *	risc processors. Port by NeXT to 700 series.
- */
-
-#define CPU_SUBTYPE_HPPA_ALL            ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_HPPA_7100           ((cpu_subtype_t) 0) /* compat */
-#define CPU_SUBTYPE_HPPA_7100LC         ((cpu_subtype_t) 1)
-
-/*
- *	MC88000 subtypes.
- */
-#define CPU_SUBTYPE_MC88000_ALL ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_MC88100     ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_MC88110     ((cpu_subtype_t) 2)
-
-/*
- *	SPARC subtypes
- */
-#define CPU_SUBTYPE_SPARC_ALL           ((cpu_subtype_t) 0)
-
-/*
- *	I860 subtypes
- */
-#define CPU_SUBTYPE_I860_ALL    ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_I860_860    ((cpu_subtype_t) 1)
-
-/*
- *	PowerPC subtypes
- */
-#define CPU_SUBTYPE_POWERPC_ALL         ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_POWERPC_601         ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_POWERPC_602         ((cpu_subtype_t) 2)
-#define CPU_SUBTYPE_POWERPC_603         ((cpu_subtype_t) 3)
-#define CPU_SUBTYPE_POWERPC_603e        ((cpu_subtype_t) 4)
-#define CPU_SUBTYPE_POWERPC_603ev       ((cpu_subtype_t) 5)
-#define CPU_SUBTYPE_POWERPC_604         ((cpu_subtype_t) 6)
-#define CPU_SUBTYPE_POWERPC_604e        ((cpu_subtype_t) 7)
-#define CPU_SUBTYPE_POWERPC_620         ((cpu_subtype_t) 8)
-#define CPU_SUBTYPE_POWERPC_750         ((cpu_subtype_t) 9)
-#define CPU_SUBTYPE_POWERPC_7400        ((cpu_subtype_t) 10)
-#define CPU_SUBTYPE_POWERPC_7450        ((cpu_subtype_t) 11)
-#define CPU_SUBTYPE_POWERPC_970         ((cpu_subtype_t) 100)
-
-/*
- *	ARM subtypes
- */
-#define CPU_SUBTYPE_ARM_ALL             ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_ARM_V4T             ((cpu_subtype_t) 5)
-#define CPU_SUBTYPE_ARM_V6              ((cpu_subtype_t) 6)
-#define CPU_SUBTYPE_ARM_V5TEJ           ((cpu_subtype_t) 7)
-#define CPU_SUBTYPE_ARM_XSCALE          ((cpu_subtype_t) 8)
-#define CPU_SUBTYPE_ARM_V7              ((cpu_subtype_t) 9)  /* ARMv7-A and ARMv7-R */
-#define CPU_SUBTYPE_ARM_V7F             ((cpu_subtype_t) 10) /* Cortex A9 */
-#define CPU_SUBTYPE_ARM_V7S             ((cpu_subtype_t) 11) /* Swift */
-#define CPU_SUBTYPE_ARM_V7K             ((cpu_subtype_t) 12)
-#define CPU_SUBTYPE_ARM_V8              ((cpu_subtype_t) 13)
-#define CPU_SUBTYPE_ARM_V6M             ((cpu_subtype_t) 14) /* Not meant to be run under xnu */
-#define CPU_SUBTYPE_ARM_V7M             ((cpu_subtype_t) 15) /* Not meant to be run under xnu */
-#define CPU_SUBTYPE_ARM_V7EM            ((cpu_subtype_t) 16) /* Not meant to be run under xnu */
-#define CPU_SUBTYPE_ARM_V8M             ((cpu_subtype_t) 17) /* Not meant to be run under xnu */
-
-/*
- *  ARM64 subtypes
- */
-#define CPU_SUBTYPE_ARM64_ALL           ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_ARM64_V8            ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_ARM64E              ((cpu_subtype_t) 2)
-
-/* CPU subtype feature flags for ptrauth on arm64e platforms */
-#define CPU_SUBTYPE_ARM64_PTR_AUTH_MASK 0x0f000000
-#define CPU_SUBTYPE_ARM64_PTR_AUTH_VERSION(x) (((x) & CPU_SUBTYPE_ARM64_PTR_AUTH_MASK) >> 24)
-
-/*
- *  ARM64_32 subtypes
- */
-#define CPU_SUBTYPE_ARM64_32_ALL        ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_ARM64_32_V8 ((cpu_subtype_t) 1)
-
-#endif /* !__ASSEMBLER__ */
-
-/*
- *	CPU families (sysctl hw.cpufamily)
- *
- * These are meant to identify the CPU's marketing name - an
- * application can map these to (possibly) localized strings.
- * NB: the encodings of the CPU families are intentionally arbitrary.
- * There is no ordering, and you should never try to deduce whether
- * or not some feature is available based on the family.
- * Use feature flags (eg, hw.optional.altivec) to test for optional
- * functionality.
- */
-#define CPUFAMILY_UNKNOWN               0
-#define CPUFAMILY_POWERPC_G3            0xcee41549
-#define CPUFAMILY_POWERPC_G4            0x77c184ae
-#define CPUFAMILY_POWERPC_G5            0xed76d8aa
-#define CPUFAMILY_INTEL_6_13            0xaa33392b
-#define CPUFAMILY_INTEL_PENRYN          0x78ea4fbc
-#define CPUFAMILY_INTEL_NEHALEM         0x6b5a4cd2
-#define CPUFAMILY_INTEL_WESTMERE        0x573b5eec
-#define CPUFAMILY_INTEL_SANDYBRIDGE     0x5490b78c
-#define CPUFAMILY_INTEL_IVYBRIDGE       0x1f65e835
-#define CPUFAMILY_INTEL_HASWELL         0x10b282dc
-#define CPUFAMILY_INTEL_BROADWELL       0x582ed09c
-#define CPUFAMILY_INTEL_SKYLAKE         0x37fc219f
-#define CPUFAMILY_INTEL_KABYLAKE        0x0f817246
-#if !defined(RC_HIDE_XNU_ICELAKE)
-#define CPUFAMILY_INTEL_ICELAKE         0x38435547
-#endif /* not RC_HIDE_XNU_ICELAKE */
-#if !defined(RC_HIDE_XNU_COMETLAKE)
-#define CPUFAMILY_INTEL_COMETLAKE       0x1cf8a03e
-#endif /* not RC_HIDE_XNU_COMETLAKE */
-#define CPUFAMILY_ARM_9                 0xe73283ae
-#define CPUFAMILY_ARM_11                0x8ff620d8
-#define CPUFAMILY_ARM_XSCALE            0x53b005f5
-#define CPUFAMILY_ARM_12                0xbd1b0ae9
-#define CPUFAMILY_ARM_13                0x0cc90e64
-#define CPUFAMILY_ARM_14                0x96077ef1
-#define CPUFAMILY_ARM_15                0xa8511bca
-#define CPUFAMILY_ARM_SWIFT             0x1e2d6381
-#define CPUFAMILY_ARM_CYCLONE           0x37a09642
-#define CPUFAMILY_ARM_TYPHOON           0x2c91a47e
-#define CPUFAMILY_ARM_TWISTER           0x92fb37c8
-#define CPUFAMILY_ARM_HURRICANE         0x67ceee93
-#define CPUFAMILY_ARM_MONSOON_MISTRAL   0xe81e7ef6
-#define CPUFAMILY_ARM_VORTEX_TEMPEST    0x07d34b9f
-#define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504d2
-
-/* The following synonyms are deprecated: */
-#define CPUFAMILY_INTEL_6_23    CPUFAMILY_INTEL_PENRYN
-#define CPUFAMILY_INTEL_6_26    CPUFAMILY_INTEL_NEHALEM
-
-
-#endif  /* _MACH_MACHINE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/_structs.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/_structs.h
deleted file mode 100644
index 0a61125417b4fb9e6e26cbf75afbfc66d54a4307..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/_structs.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2017 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 _MACH_MACHINE__STRUCTS_H_
-#define _MACH_MACHINE__STRUCTS_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/_structs.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE__STRUCTS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/boolean.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/boolean.h
deleted file mode 100644
index d373913b406e66faf8297d278adf8eb322227396..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/boolean.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_BOOLEAN_H_
-#define _MACH_MACHINE_BOOLEAN_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/boolean.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_BOOLEAN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/exception.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/exception.h
deleted file mode 100644
index f3e960d43651090252d3ac1f01d95e97510b0dd8..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/exception.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_EXCEPTION_H_
-#define _MACH_MACHINE_EXCEPTION_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/exception.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_EXCEPTION_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/kern_return.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/kern_return.h
deleted file mode 100644
index b764492d29ba41e9e99731868589b817907b8f57..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/kern_return.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_KERN_RETURN_H_
-#define _MACH_MACHINE_KERN_RETURN_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/kern_return.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_KERN_RETURN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/processor_info.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/processor_info.h
deleted file mode 100644
index 4e5028d24d9833be34a6d1b7fecc11826f0e0679..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/processor_info.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_PROCESSOR_INFO_H_
-#define _MACH_MACHINE_PROCESSOR_INFO_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/processor_info.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_PROCESSOR_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/rpc.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/rpc.h
deleted file mode 100644
index 7d6ccee5f836b08f6bb85f916840378aaadad564..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/rpc.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_RPC_H_
-#define _MACH_MACHINE_RPC_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/rpc.h"
-#else
-#error architecture not supported
-#endif
-
-#endif  /* _MACH_MACHINE_RPC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/thread_state.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/thread_state.h
deleted file mode 100644
index 91daad86711a3629a92b6665b36bb13ed06215c6..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/thread_state.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_THREAD_STATE_H_
-#define _MACH_MACHINE_THREAD_STATE_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/thread_state.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_THREAD_STATE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/thread_status.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/thread_status.h
deleted file mode 100644
index 7e65df246e64ddee3e77b4e0df4e6481c4823e0a..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/thread_status.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_THREAD_STATUS_H_
-#define _MACH_MACHINE_THREAD_STATUS_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/thread_status.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_THREAD_STATUS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/vm_param.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/vm_param.h
deleted file mode 100644
index 7f272f5b70f9a8d8a7323af6d5fb1f1c2c344e3b..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/vm_param.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_VM_PARAM_H_
-#define _MACH_MACHINE_VM_PARAM_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/vm_param.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_VM_PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/machine/vm_types.h b/lib/libc/include/x86_64-macos.10-none/mach/machine/vm_types.h
deleted file mode 100644
index 5d16a871ea551c19c41f2c05d8245189c33e5163..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/machine/vm_types.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_MACHINE_VM_TYPES_H_
-#define _MACH_MACHINE_VM_TYPES_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/vm_types.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_VM_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/memory_object_types.h b/lib/libc/include/x86_64-macos.10-none/mach/memory_object_types.h
deleted file mode 100644
index fec6e535933a3f017fc1b68239b6299fe69d03e8..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/memory_object_types.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	memory_object.h
- *	Author:	Michael Wayne Young
- *
- *	External memory management interface definition.
- */
-
-#ifndef _MACH_MEMORY_OBJECT_TYPES_H_
-#define _MACH_MEMORY_OBJECT_TYPES_H_
-
-/*
- *	User-visible types used in the external memory
- *	management interface:
- */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-
-#define VM_64_BIT_DATA_OBJECTS
-
-typedef unsigned long long      memory_object_offset_t;
-typedef unsigned long long      memory_object_size_t;
-typedef natural_t               memory_object_cluster_size_t;
-typedef natural_t *             memory_object_fault_info_t;
-
-typedef unsigned long long      vm_object_id_t;
-
-
-/*
- * Temporary until real EMMI version gets re-implemented
- */
-
-
-typedef mach_port_t     memory_object_t;
-typedef mach_port_t     memory_object_control_t;
-
-
-typedef memory_object_t *memory_object_array_t;
-/* A memory object ... */
-/*  Used by the kernel to retrieve */
-/*  or store data */
-
-typedef mach_port_t     memory_object_name_t;
-/* Used to describe the memory ... */
-/*  object in vm_regions() calls */
-
-typedef mach_port_t     memory_object_default_t;
-/* Registered with the host ... */
-/*  for creating new internal objects */
-
-#define MEMORY_OBJECT_NULL              ((memory_object_t) 0)
-#define MEMORY_OBJECT_CONTROL_NULL      ((memory_object_control_t) 0)
-#define MEMORY_OBJECT_NAME_NULL         ((memory_object_name_t) 0)
-#define MEMORY_OBJECT_DEFAULT_NULL      ((memory_object_default_t) 0)
-
-
-typedef int             memory_object_copy_strategy_t;
-/* How memory manager handles copy: */
-#define         MEMORY_OBJECT_COPY_NONE         0
-/* ... No special support */
-#define         MEMORY_OBJECT_COPY_CALL         1
-/* ... Make call on memory manager */
-#define         MEMORY_OBJECT_COPY_DELAY        2
-/* ... Memory manager doesn't
- *     change data externally.
- */
-#define         MEMORY_OBJECT_COPY_TEMPORARY    3
-/* ... Memory manager doesn't
- *     change data externally, and
- *     doesn't need to see changes.
- */
-#define         MEMORY_OBJECT_COPY_SYMMETRIC    4
-/* ... Memory manager doesn't
- *     change data externally,
- *     doesn't need to see changes,
- *     and object will not be
- *     multiply mapped.
- *
- *     XXX
- *     Not yet safe for non-kernel use.
- */
-
-#define         MEMORY_OBJECT_COPY_INVALID      5
-/* ...	An invalid copy strategy,
- *	for external objects which
- *	have not been initialized.
- *	Allows copy_strategy to be
- *	examined without also
- *	examining pager_ready and
- *	internal.
- */
-
-typedef int             memory_object_return_t;
-/* Which pages to return to manager
- *  this time (lock_request) */
-#define         MEMORY_OBJECT_RETURN_NONE       0
-/* ... don't return any. */
-#define         MEMORY_OBJECT_RETURN_DIRTY      1
-/* ... only dirty pages. */
-#define         MEMORY_OBJECT_RETURN_ALL        2
-/* ... dirty and precious pages. */
-#define         MEMORY_OBJECT_RETURN_ANYTHING   3
-/* ... any resident page. */
-
-/*
- *	Data lock request flags
- */
-
-#define         MEMORY_OBJECT_DATA_FLUSH        0x1
-#define         MEMORY_OBJECT_DATA_NO_CHANGE    0x2
-#define         MEMORY_OBJECT_DATA_PURGE        0x4
-#define         MEMORY_OBJECT_COPY_SYNC         0x8
-#define         MEMORY_OBJECT_DATA_SYNC         0x10
-#define         MEMORY_OBJECT_IO_SYNC           0x20
-#define         MEMORY_OBJECT_DATA_FLUSH_ALL    0x40
-
-/*
- *	Types for the memory object flavor interfaces
- */
-
-#define MEMORY_OBJECT_INFO_MAX      (1024)
-typedef int     *memory_object_info_t;
-typedef int      memory_object_flavor_t;
-typedef int      memory_object_info_data_t[MEMORY_OBJECT_INFO_MAX];
-
-
-#define MEMORY_OBJECT_PERFORMANCE_INFO  11
-#define MEMORY_OBJECT_ATTRIBUTE_INFO    14
-#define MEMORY_OBJECT_BEHAVIOR_INFO     15
-
-
-struct memory_object_perf_info {
-	memory_object_cluster_size_t    cluster_size;
-	boolean_t                       may_cache;
-};
-
-struct memory_object_attr_info {
-	memory_object_copy_strategy_t   copy_strategy;
-	memory_object_cluster_size_t    cluster_size;
-	boolean_t                       may_cache_object;
-	boolean_t                       temporary;
-};
-
-struct memory_object_behave_info {
-	memory_object_copy_strategy_t   copy_strategy;
-	boolean_t                       temporary;
-	boolean_t                       invalidate;
-	boolean_t                       silent_overwrite;
-	boolean_t                       advisory_pageout;
-};
-
-
-typedef struct memory_object_behave_info *memory_object_behave_info_t;
-typedef struct memory_object_behave_info memory_object_behave_info_data_t;
-
-typedef struct memory_object_perf_info  *memory_object_perf_info_t;
-typedef struct memory_object_perf_info  memory_object_perf_info_data_t;
-
-typedef struct memory_object_attr_info  *memory_object_attr_info_t;
-typedef struct memory_object_attr_info  memory_object_attr_info_data_t;
-
-#define MEMORY_OBJECT_BEHAVE_INFO_COUNT ((mach_msg_type_number_t)       \
-	        (sizeof(memory_object_behave_info_data_t)/sizeof(int)))
-#define MEMORY_OBJECT_PERF_INFO_COUNT   ((mach_msg_type_number_t)       \
-	        (sizeof(memory_object_perf_info_data_t)/sizeof(int)))
-#define MEMORY_OBJECT_ATTR_INFO_COUNT   ((mach_msg_type_number_t)       \
-	        (sizeof(memory_object_attr_info_data_t)/sizeof(int)))
-
-#define invalid_memory_object_flavor(f)                                 \
-	(f != MEMORY_OBJECT_ATTRIBUTE_INFO &&                           \
-	 f != MEMORY_OBJECT_PERFORMANCE_INFO &&                         \
-	 f != OLD_MEMORY_OBJECT_BEHAVIOR_INFO &&                        \
-	 f != MEMORY_OBJECT_BEHAVIOR_INFO &&                            \
-	 f != OLD_MEMORY_OBJECT_ATTRIBUTE_INFO)
-
-
-/*
- * Used to support options on memory_object_release_name call
- */
-#define MEMORY_OBJECT_TERMINATE_IDLE    0x1
-#define MEMORY_OBJECT_RESPECT_CACHE     0x2
-#define MEMORY_OBJECT_RELEASE_NO_OP     0x4
-
-
-/* named entry processor mapping options */
-/* enumerated */
-#define MAP_MEM_NOOP                      0
-#define MAP_MEM_COPYBACK                  1
-#define MAP_MEM_IO                        2
-#define MAP_MEM_WTHRU                     3
-#define MAP_MEM_WCOMB                     4       /* Write combining mode */
-                                                  /* aka store gather     */
-#define MAP_MEM_INNERWBACK                5
-#define MAP_MEM_POSTED                    6
-#define MAP_MEM_RT                        7
-#define MAP_MEM_POSTED_REORDERED          8
-#define MAP_MEM_POSTED_COMBINED_REORDERED 9
-
-#define GET_MAP_MEM(flags)      \
-	((((unsigned int)(flags)) >> 24) & 0xFF)
-
-#define SET_MAP_MEM(caching, flags)     \
-	((flags) = ((((unsigned int)(caching)) << 24) \
-	                & 0xFF000000) | ((flags) & 0xFFFFFF));
-
-/* leave room for vm_prot bits (0xFF ?) */
-#define MAP_MEM_LEDGER_TAGGED        0x002000 /* object owned by a specific task and ledger */
-#define MAP_MEM_PURGABLE_KERNEL_ONLY 0x004000 /* volatility controlled by kernel */
-#define MAP_MEM_GRAB_SECLUDED   0x008000 /* can grab secluded pages */
-#define MAP_MEM_ONLY            0x010000 /* change processor caching  */
-#define MAP_MEM_NAMED_CREATE    0x020000 /* create extant object      */
-#define MAP_MEM_PURGABLE        0x040000 /* create a purgable VM object */
-#define MAP_MEM_NAMED_REUSE     0x080000 /* reuse provided entry if identical */
-#define MAP_MEM_USE_DATA_ADDR   0x100000 /* preserve address of data, rather than base of page */
-#define MAP_MEM_VM_COPY         0x200000 /* make a copy of a VM range */
-#define MAP_MEM_VM_SHARE        0x400000 /* extract a VM range for remap */
-#define MAP_MEM_4K_DATA_ADDR    0x800000 /* preserve 4K aligned address of data */
-
-#define MAP_MEM_FLAGS_MASK 0x00FFFF00
-#define MAP_MEM_FLAGS_USER (                               \
-	MAP_MEM_PURGABLE_KERNEL_ONLY |                     \
-	MAP_MEM_GRAB_SECLUDED |                            \
-	MAP_MEM_ONLY |                                     \
-	MAP_MEM_NAMED_CREATE |                             \
-	MAP_MEM_PURGABLE |                                 \
-	MAP_MEM_NAMED_REUSE |                              \
-	MAP_MEM_USE_DATA_ADDR |                            \
-	MAP_MEM_VM_COPY |                                  \
-	MAP_MEM_VM_SHARE |                                 \
-	MAP_MEM_LEDGER_TAGGED |                            \
-	MAP_MEM_4K_DATA_ADDR)
-#define MAP_MEM_FLAGS_ALL (                     \
-	MAP_MEM_FLAGS_USER)
-
-
-#endif  /* _MACH_MEMORY_OBJECT_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/message.h b/lib/libc/include/x86_64-macos.10-none/mach/message.h
deleted file mode 100644
index 3f9f9a0605c22db0739d6838679ef99c3caab8c3..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/message.h
+++ /dev/null
@@ -1,902 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- * NOTICE: This file was modified by McAfee Research in 2004 to introduce
- * support for mandatory and extensible security protections.  This notice
- * is included in support of clause 2.2 (b) of the Apple Public License,
- * Version 2.0.
- * Copyright (c) 2005 SPARTA, Inc.
- */
-/*
- */
-/*
- *	File:	mach/message.h
- *
- *	Mach IPC message and primitive function definitions.
- */
-
-#ifndef _MACH_MESSAGE_H_
-#define _MACH_MESSAGE_H_
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-
-/*
- *  The timeout mechanism uses mach_msg_timeout_t values,
- *  passed by value.  The timeout units are milliseconds.
- *  It is controlled with the MACH_SEND_TIMEOUT
- *  and MACH_RCV_TIMEOUT options.
- */
-
-typedef natural_t mach_msg_timeout_t;
-
-/*
- *  The value to be used when there is no timeout.
- *  (No MACH_SEND_TIMEOUT/MACH_RCV_TIMEOUT option.)
- */
-
-#define MACH_MSG_TIMEOUT_NONE           ((mach_msg_timeout_t) 0)
-
-/*
- *  The kernel uses MACH_MSGH_BITS_COMPLEX as a hint.  If it isn't on, it
- *  assumes the body of the message doesn't contain port rights or OOL
- *  data.  The field is set in received messages.  A user task must
- *  use caution in interpreting the body of a message if the bit isn't
- *  on, because the mach_msg_type's in the body might "lie" about the
- *  contents.  If the bit isn't on, but the mach_msg_types
- *  in the body specify rights or OOL data, the behavior is undefined.
- *  (Ie, an error may or may not be produced.)
- *
- *  The value of MACH_MSGH_BITS_REMOTE determines the interpretation
- *  of the msgh_remote_port field.  It is handled like a msgt_name,
- *  but must result in a send or send-once type right.
- *
- *  The value of MACH_MSGH_BITS_LOCAL determines the interpretation
- *  of the msgh_local_port field.  It is handled like a msgt_name,
- *  and also must result in a send or send-once type right.
- *
- *  The value of MACH_MSGH_BITS_VOUCHER determines the interpretation
- *  of the msgh_voucher_port field.  It is handled like a msgt_name,
- *  but must result in a send right (and the msgh_voucher_port field
- *  must be the name of a send right to a Mach voucher kernel object.
- *
- *  MACH_MSGH_BITS() combines two MACH_MSG_TYPE_* values, for the remote
- *  and local fields, into a single value suitable for msgh_bits.
- *
- *  MACH_MSGH_BITS_CIRCULAR should be zero; is is used internally.
- *
- *  The unused bits should be zero and are reserved for the kernel
- *  or for future interface expansion.
- */
-
-#define MACH_MSGH_BITS_ZERO             0x00000000
-
-#define MACH_MSGH_BITS_REMOTE_MASK      0x0000001f
-#define MACH_MSGH_BITS_LOCAL_MASK       0x00001f00
-#define MACH_MSGH_BITS_VOUCHER_MASK     0x001f0000
-
-#define MACH_MSGH_BITS_PORTS_MASK               \
-	        (MACH_MSGH_BITS_REMOTE_MASK |   \
-	         MACH_MSGH_BITS_LOCAL_MASK |    \
-	         MACH_MSGH_BITS_VOUCHER_MASK)
-
-#define MACH_MSGH_BITS_COMPLEX          0x80000000U     /* message is complex */
-
-#define MACH_MSGH_BITS_USER             0x801f1f1fU     /* allowed bits user->kernel */
-
-#define MACH_MSGH_BITS_RAISEIMP         0x20000000U     /* importance raised due to msg */
-#define MACH_MSGH_BITS_DENAP            MACH_MSGH_BITS_RAISEIMP
-
-#define MACH_MSGH_BITS_IMPHOLDASRT      0x10000000U     /* assertion help, userland private */
-#define MACH_MSGH_BITS_DENAPHOLDASRT    MACH_MSGH_BITS_IMPHOLDASRT
-
-#define MACH_MSGH_BITS_CIRCULAR         0x10000000U     /* message circular, kernel private */
-
-#define MACH_MSGH_BITS_USED             0xb01f1f1fU
-
-/* setter macros for the bits */
-#define MACH_MSGH_BITS(remote, local)  /* legacy */             \
-	        ((remote) | ((local) << 8))
-#define MACH_MSGH_BITS_SET_PORTS(remote, local, voucher)        \
-	(((remote) & MACH_MSGH_BITS_REMOTE_MASK) |              \
-	 (((local) << 8) & MACH_MSGH_BITS_LOCAL_MASK) |         \
-	 (((voucher) << 16) & MACH_MSGH_BITS_VOUCHER_MASK))
-#define MACH_MSGH_BITS_SET(remote, local, voucher, other)       \
-	(MACH_MSGH_BITS_SET_PORTS((remote), (local), (voucher)) \
-	 | ((other) &~ MACH_MSGH_BITS_PORTS_MASK))
-
-/* getter macros for pulling values out of the bits field */
-#define MACH_MSGH_BITS_REMOTE(bits)                             \
-	        ((bits) & MACH_MSGH_BITS_REMOTE_MASK)
-#define MACH_MSGH_BITS_LOCAL(bits)                              \
-	        (((bits) & MACH_MSGH_BITS_LOCAL_MASK) >> 8)
-#define MACH_MSGH_BITS_VOUCHER(bits)                            \
-	        (((bits) & MACH_MSGH_BITS_VOUCHER_MASK) >> 16)
-#define MACH_MSGH_BITS_PORTS(bits)                              \
-	((bits) & MACH_MSGH_BITS_PORTS_MASK)
-#define MACH_MSGH_BITS_OTHER(bits)                              \
-	        ((bits) &~ MACH_MSGH_BITS_PORTS_MASK)
-
-/* checking macros */
-#define MACH_MSGH_BITS_HAS_REMOTE(bits)                         \
-	(MACH_MSGH_BITS_REMOTE(bits) != MACH_MSGH_BITS_ZERO)
-#define MACH_MSGH_BITS_HAS_LOCAL(bits)                          \
-	(MACH_MSGH_BITS_LOCAL(bits) != MACH_MSGH_BITS_ZERO)
-#define MACH_MSGH_BITS_HAS_VOUCHER(bits)                        \
-	(MACH_MSGH_BITS_VOUCHER(bits) != MACH_MSGH_BITS_ZERO)
-#define MACH_MSGH_BITS_IS_COMPLEX(bits)                         \
-	(((bits) & MACH_MSGH_BITS_COMPLEX) != MACH_MSGH_BITS_ZERO)
-
-/* importance checking macros */
-#define MACH_MSGH_BITS_RAISED_IMPORTANCE(bits)                  \
-	(((bits) & MACH_MSGH_BITS_RAISEIMP) != MACH_MSGH_BITS_ZERO)
-#define MACH_MSGH_BITS_HOLDS_IMPORTANCE_ASSERTION(bits)         \
-	(((bits) & MACH_MSGH_BITS_IMPHOLDASRT) != MACH_MSGH_BITS_ZERO)
-
-/*
- *  Every message starts with a message header.
- *  Following the message header, if the message is complex, are a count
- *  of type descriptors and the type descriptors themselves
- *  (mach_msg_descriptor_t). The size of the message must be specified in
- *  bytes, and includes the message header, descriptor count, descriptors,
- *  and inline data.
- *
- *  The msgh_remote_port field specifies the destination of the message.
- *  It must specify a valid send or send-once right for a port.
- *
- *  The msgh_local_port field specifies a "reply port".  Normally,
- *  This field carries a send-once right that the receiver will use
- *  to reply to the message.  It may carry the values MACH_PORT_NULL,
- *  MACH_PORT_DEAD, a send-once right, or a send right.
- *
- *  The msgh_voucher_port field specifies a Mach voucher port. Only
- *  send rights to kernel-implemented Mach Voucher kernel objects in
- *  addition to MACH_PORT_NULL or MACH_PORT_DEAD may be passed.
- *
- *  The msgh_id field is uninterpreted by the message primitives.
- *  It normally carries information specifying the format
- *  or meaning of the message.
- */
-
-typedef unsigned int mach_msg_bits_t;
-typedef natural_t mach_msg_size_t;
-typedef integer_t mach_msg_id_t;
-
-#define MACH_MSG_SIZE_NULL (mach_msg_size_t *) 0
-
-typedef unsigned int mach_msg_priority_t;
-
-#define MACH_MSG_PRIORITY_UNSPECIFIED (mach_msg_priority_t) 0
-
-typedef unsigned int mach_msg_type_name_t;
-
-#define MACH_MSG_TYPE_MOVE_RECEIVE      16      /* Must hold receive right */
-#define MACH_MSG_TYPE_MOVE_SEND         17      /* Must hold send right(s) */
-#define MACH_MSG_TYPE_MOVE_SEND_ONCE    18      /* Must hold sendonce right */
-#define MACH_MSG_TYPE_COPY_SEND         19      /* Must hold send right(s) */
-#define MACH_MSG_TYPE_MAKE_SEND         20      /* Must hold receive right */
-#define MACH_MSG_TYPE_MAKE_SEND_ONCE    21      /* Must hold receive right */
-#define MACH_MSG_TYPE_COPY_RECEIVE      22      /* NOT VALID */
-#define MACH_MSG_TYPE_DISPOSE_RECEIVE   24      /* must hold receive right */
-#define MACH_MSG_TYPE_DISPOSE_SEND      25      /* must hold send right(s) */
-#define MACH_MSG_TYPE_DISPOSE_SEND_ONCE 26      /* must hold sendonce right */
-
-typedef unsigned int mach_msg_copy_options_t;
-
-#define MACH_MSG_PHYSICAL_COPY          0
-#define MACH_MSG_VIRTUAL_COPY           1
-#define MACH_MSG_ALLOCATE               2
-#define MACH_MSG_OVERWRITE              3       /* deprecated */
-#ifdef  MACH_KERNEL
-#define MACH_MSG_KALLOC_COPY_T          4
-#endif  /* MACH_KERNEL */
-
-#define MACH_MSG_GUARD_FLAGS_NONE                   0x0000
-#define MACH_MSG_GUARD_FLAGS_IMMOVABLE_RECEIVE      0x0001    /* Move the receive right and mark it as immovable */
-#define MACH_MSG_GUARD_FLAGS_UNGUARDED_ON_SEND      0x0002    /* Verify that the port is unguarded */
-#define MACH_MSG_GUARD_FLAGS_MASK                   0x0003    /* Valid flag bits */
-typedef unsigned int mach_msg_guard_flags_t;
-
-/*
- * In a complex mach message, the mach_msg_header_t is followed by
- * a descriptor count, then an array of that number of descriptors
- * (mach_msg_*_descriptor_t). The type field of mach_msg_type_descriptor_t
- * (which any descriptor can be cast to) indicates the flavor of the
- * descriptor.
- *
- * Note that in LP64, the various types of descriptors are no longer all
- * the same size as mach_msg_descriptor_t, so the array cannot be indexed
- * as expected.
- */
-
-typedef unsigned int mach_msg_descriptor_type_t;
-
-#define MACH_MSG_PORT_DESCRIPTOR                0
-#define MACH_MSG_OOL_DESCRIPTOR                 1
-#define MACH_MSG_OOL_PORTS_DESCRIPTOR           2
-#define MACH_MSG_OOL_VOLATILE_DESCRIPTOR        3
-#define MACH_MSG_GUARDED_PORT_DESCRIPTOR        4
-
-#pragma pack(push, 4)
-
-typedef struct{
-	natural_t                     pad1;
-	mach_msg_size_t               pad2;
-	unsigned int                  pad3 : 24;
-	mach_msg_descriptor_type_t    type : 8;
-} mach_msg_type_descriptor_t;
-
-typedef struct{
-	mach_port_t                   name;
-// Pad to 8 bytes everywhere except the K64 kernel where mach_port_t is 8 bytes
-	mach_msg_size_t               pad1;
-	unsigned int                  pad2 : 16;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-} mach_msg_port_descriptor_t;
-
-typedef struct{
-	uint32_t                      address;
-	mach_msg_size_t               size;
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	unsigned int                  pad1: 8;
-	mach_msg_descriptor_type_t    type: 8;
-} mach_msg_ool_descriptor32_t;
-
-typedef struct{
-	uint64_t                      address;
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	unsigned int                  pad1: 8;
-	mach_msg_descriptor_type_t    type: 8;
-	mach_msg_size_t               size;
-} mach_msg_ool_descriptor64_t;
-
-typedef struct{
-	void*                         address;
-#if !defined(__LP64__)
-	mach_msg_size_t               size;
-#endif
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	unsigned int                  pad1: 8;
-	mach_msg_descriptor_type_t    type: 8;
-#if defined(__LP64__)
-	mach_msg_size_t               size;
-#endif
-} mach_msg_ool_descriptor_t;
-
-typedef struct{
-	uint32_t                      address;
-	mach_msg_size_t               count;
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-} mach_msg_ool_ports_descriptor32_t;
-
-typedef struct{
-	uint64_t                      address;
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-	mach_msg_size_t               count;
-} mach_msg_ool_ports_descriptor64_t;
-
-typedef struct{
-	void*                         address;
-#if !defined(__LP64__)
-	mach_msg_size_t               count;
-#endif
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-#if defined(__LP64__)
-	mach_msg_size_t               count;
-#endif
-} mach_msg_ool_ports_descriptor_t;
-
-typedef struct{
-	uint32_t                      context;
-	mach_port_name_t              name;
-	mach_msg_guard_flags_t        flags : 16;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-} mach_msg_guarded_port_descriptor32_t;
-
-typedef struct{
-	uint64_t                      context;
-	mach_msg_guard_flags_t        flags : 16;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-	mach_port_name_t              name;
-} mach_msg_guarded_port_descriptor64_t;
-
-typedef struct{
-	mach_port_context_t           context;
-#if !defined(__LP64__)
-	mach_port_name_t              name;
-#endif
-	mach_msg_guard_flags_t        flags : 16;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-#if defined(__LP64__)
-	mach_port_name_t              name;
-#endif /* defined(__LP64__) */
-} mach_msg_guarded_port_descriptor_t;
-
-/*
- * LP64support - This union definition is not really
- * appropriate in LP64 mode because not all descriptors
- * are of the same size in that environment.
- */
-typedef union{
-	mach_msg_port_descriptor_t            port;
-	mach_msg_ool_descriptor_t             out_of_line;
-	mach_msg_ool_ports_descriptor_t       ool_ports;
-	mach_msg_type_descriptor_t            type;
-	mach_msg_guarded_port_descriptor_t    guarded_port;
-} mach_msg_descriptor_t;
-
-typedef struct{
-	mach_msg_size_t msgh_descriptor_count;
-} mach_msg_body_t;
-
-#define MACH_MSG_BODY_NULL (mach_msg_body_t *) 0
-#define MACH_MSG_DESCRIPTOR_NULL (mach_msg_descriptor_t *) 0
-
-typedef struct{
-	mach_msg_bits_t       msgh_bits;
-	mach_msg_size_t       msgh_size;
-	mach_port_t           msgh_remote_port;
-	mach_port_t           msgh_local_port;
-	mach_port_name_t      msgh_voucher_port;
-	mach_msg_id_t         msgh_id;
-} mach_msg_header_t;
-
-#define msgh_reserved           msgh_voucher_port
-#define MACH_MSG_NULL   (mach_msg_header_t *) 0
-
-typedef struct{
-	mach_msg_header_t       header;
-	mach_msg_body_t         body;
-} mach_msg_base_t;
-
-typedef unsigned int mach_msg_trailer_type_t;
-
-#define MACH_MSG_TRAILER_FORMAT_0       0
-
-typedef unsigned int mach_msg_trailer_size_t;
-typedef char *mach_msg_trailer_info_t;
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-} mach_msg_trailer_t;
-
-/*
- *  The msgh_seqno field carries a sequence number
- *  associated with the received-from port.  A port's
- *  sequence number is incremented every time a message
- *  is received from it and included in the received
- *  trailer to help put messages back in sequence if
- *  multiple threads receive and/or process received
- *  messages.
- */
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-} mach_msg_seqno_trailer_t;
-
-typedef struct{
-	unsigned int                  val[2];
-} security_token_t;
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-	security_token_t              msgh_sender;
-} mach_msg_security_trailer_t;
-
-/*
- * The audit token is an opaque token which identifies
- * Mach tasks and senders of Mach messages as subjects
- * to the BSM audit system.  Only the appropriate BSM
- * library routines should be used to interpret the
- * contents of the audit token as the representation
- * of the subject identity within the token may change
- * over time.
- */
-typedef struct{
-	unsigned int                  val[8];
-} audit_token_t;
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-	security_token_t              msgh_sender;
-	audit_token_t                 msgh_audit;
-} mach_msg_audit_trailer_t;
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-	security_token_t              msgh_sender;
-	audit_token_t                 msgh_audit;
-	mach_port_context_t           msgh_context;
-} mach_msg_context_trailer_t;
-
-
-
-typedef struct{
-	mach_port_name_t sender;
-} msg_labels_t;
-
-/*
- *  Trailer type to pass MAC policy label info as a mach message trailer.
- *
- */
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-	security_token_t              msgh_sender;
-	audit_token_t                 msgh_audit;
-	mach_port_context_t           msgh_context;
-	int                           msgh_ad;
-	msg_labels_t                  msgh_labels;
-} mach_msg_mac_trailer_t;
-
-
-#define MACH_MSG_TRAILER_MINIMUM_SIZE  sizeof(mach_msg_trailer_t)
-
-/*
- * These values can change from release to release - but clearly
- * code cannot request additional trailer elements one was not
- * compiled to understand.  Therefore, it is safe to use this
- * constant when the same module specified the receive options.
- * Otherwise, you run the risk that the options requested by
- * another module may exceed the local modules notion of
- * MAX_TRAILER_SIZE.
- */
-
-typedef mach_msg_mac_trailer_t mach_msg_max_trailer_t;
-#define MAX_TRAILER_SIZE ((mach_msg_size_t)sizeof(mach_msg_max_trailer_t))
-
-/*
- * Legacy requirements keep us from ever updating these defines (even
- * when the format_0 trailers gain new option data fields in the future).
- * Therefore, they shouldn't be used going forward.  Instead, the sizes
- * should be compared against the specific element size requested using
- * REQUESTED_TRAILER_SIZE.
- */
-typedef mach_msg_security_trailer_t mach_msg_format_0_trailer_t;
-
-/*typedef mach_msg_mac_trailer_t mach_msg_format_0_trailer_t;
- */
-
-#define MACH_MSG_TRAILER_FORMAT_0_SIZE sizeof(mach_msg_format_0_trailer_t)
-
-#define   KERNEL_SECURITY_TOKEN_VALUE  { {0, 1} }
-extern const security_token_t KERNEL_SECURITY_TOKEN;
-
-#define   KERNEL_AUDIT_TOKEN_VALUE  { {0, 0, 0, 0, 0, 0, 0, 0} }
-extern const audit_token_t KERNEL_AUDIT_TOKEN;
-
-typedef integer_t mach_msg_options_t;
-
-typedef struct{
-	mach_msg_header_t     header;
-} mach_msg_empty_send_t;
-
-typedef struct{
-	mach_msg_header_t     header;
-	mach_msg_trailer_t    trailer;
-} mach_msg_empty_rcv_t;
-
-typedef union{
-	mach_msg_empty_send_t send;
-	mach_msg_empty_rcv_t  rcv;
-} mach_msg_empty_t;
-
-#pragma pack(pop)
-
-/* utility to round the message size - will become machine dependent */
-#define round_msg(x)    (((mach_msg_size_t)(x) + sizeof (natural_t) - 1) & \
-	                        ~(sizeof (natural_t) - 1))
-
-
-/*
- *  There is no fixed upper bound to the size of Mach messages.
- */
-#define MACH_MSG_SIZE_MAX       ((mach_msg_size_t) ~0)
-
-#if defined(__APPLE_API_PRIVATE)
-/*
- *  But architectural limits of a given implementation, or
- *  temporal conditions may cause unpredictable send failures
- *  for messages larger than MACH_MSG_SIZE_RELIABLE.
- *
- *  In either case, waiting for memory is [currently] outside
- *  the scope of send timeout values provided to IPC.
- */
-#define MACH_MSG_SIZE_RELIABLE  ((mach_msg_size_t) 256 * 1024)
-#endif
-/*
- *  Compatibility definitions, for code written
- *  when there was a msgh_kind instead of msgh_seqno.
- */
-#define MACH_MSGH_KIND_NORMAL           0x00000000
-#define MACH_MSGH_KIND_NOTIFICATION     0x00000001
-#define msgh_kind                       msgh_seqno
-#define mach_msg_kind_t                 mach_port_seqno_t
-
-typedef natural_t mach_msg_type_size_t;
-typedef natural_t mach_msg_type_number_t;
-
-/*
- *  Values received/carried in messages.  Tells the receiver what
- *  sort of port right he now has.
- *
- *  MACH_MSG_TYPE_PORT_NAME is used to transfer a port name
- *  which should remain uninterpreted by the kernel.  (Port rights
- *  are not transferred, just the port name.)
- */
-
-#define MACH_MSG_TYPE_PORT_NONE         0
-
-#define MACH_MSG_TYPE_PORT_NAME         15
-#define MACH_MSG_TYPE_PORT_RECEIVE      MACH_MSG_TYPE_MOVE_RECEIVE
-#define MACH_MSG_TYPE_PORT_SEND         MACH_MSG_TYPE_MOVE_SEND
-#define MACH_MSG_TYPE_PORT_SEND_ONCE    MACH_MSG_TYPE_MOVE_SEND_ONCE
-
-#define MACH_MSG_TYPE_LAST              22              /* Last assigned */
-
-/*
- *  A dummy value.  Mostly used to indicate that the actual value
- *  will be filled in later, dynamically.
- */
-
-#define MACH_MSG_TYPE_POLYMORPHIC       ((mach_msg_type_name_t) -1)
-
-/*
- *	Is a given item a port type?
- */
-
-#define MACH_MSG_TYPE_PORT_ANY(x)                       \
-	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) &&         \
-	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
-
-#define MACH_MSG_TYPE_PORT_ANY_SEND(x)                  \
-	(((x) >= MACH_MSG_TYPE_MOVE_SEND) &&            \
-	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
-
-#define MACH_MSG_TYPE_PORT_ANY_RIGHT(x)                 \
-	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) &&         \
-	 ((x) <= MACH_MSG_TYPE_MOVE_SEND_ONCE))
-
-typedef integer_t mach_msg_option_t;
-
-#define MACH_MSG_OPTION_NONE    0x00000000
-
-#define MACH_SEND_MSG           0x00000001
-#define MACH_RCV_MSG            0x00000002
-
-#define MACH_RCV_LARGE          0x00000004      /* report large message sizes */
-#define MACH_RCV_LARGE_IDENTITY 0x00000008      /* identify source of large messages */
-
-#define MACH_SEND_TIMEOUT       0x00000010      /* timeout value applies to send */
-#define MACH_SEND_OVERRIDE      0x00000020      /* priority override for send */
-#define MACH_SEND_INTERRUPT     0x00000040      /* don't restart interrupted sends */
-#define MACH_SEND_NOTIFY        0x00000080      /* arm send-possible notify */
-#define MACH_SEND_ALWAYS        0x00010000      /* ignore qlimits - kernel only */
-#define MACH_SEND_TRAILER       0x00020000      /* sender-provided trailer */
-#define MACH_SEND_NOIMPORTANCE  0x00040000      /* msg won't carry importance */
-#define MACH_SEND_NODENAP       MACH_SEND_NOIMPORTANCE
-#define MACH_SEND_IMPORTANCE    0x00080000      /* msg carries importance - kernel only */
-#define MACH_SEND_SYNC_OVERRIDE 0x00100000      /* msg should do sync ipc override */
-#define MACH_SEND_PROPAGATE_QOS 0x00200000      /* IPC should propagate the caller's QoS */
-#define MACH_SEND_SYNC_USE_THRPRI       MACH_SEND_PROPAGATE_QOS /* obsolete name */
-#define MACH_SEND_KERNEL        0x00400000      /* full send from kernel space - kernel only */
-#define MACH_SEND_SYNC_BOOTSTRAP_CHECKIN  0x00800000      /* special reply port should boost thread doing sync bootstrap checkin */
-
-#define MACH_RCV_TIMEOUT        0x00000100      /* timeout value applies to receive */
-#define MACH_RCV_NOTIFY         0x00000000      /* legacy name (value was: 0x00000200) */
-#define MACH_RCV_INTERRUPT      0x00000400      /* don't restart interrupted receive */
-#define MACH_RCV_VOUCHER        0x00000800      /* willing to receive voucher port */
-#define MACH_RCV_OVERWRITE      0x00000000      /* scatter receive (deprecated) */
-#define MACH_RCV_GUARDED_DESC   0x00001000      /* Can receive new guarded descriptor */
-#define MACH_RCV_SYNC_WAIT      0x00004000      /* sync waiter waiting for rcv */
-#define MACH_RCV_SYNC_PEEK      0x00008000      /* sync waiter waiting to peek */
-
-#define MACH_MSG_STRICT_REPLY   0x00000200      /* Enforce specific properties about the reply port, and
-	                                         * the context in which a thread replies to a message.
-	                                         * This flag must be passed on both the SEND and RCV */
-
-
-/*
- * NOTE: a 0x00------ RCV mask implies to ask for
- * a MACH_MSG_TRAILER_FORMAT_0 with 0 Elements,
- * which is equivalent to a mach_msg_trailer_t.
- *
- * XXXMAC: unlike the rest of the MACH_RCV_* flags, MACH_RCV_TRAILER_LABELS
- * needs its own private bit since we only calculate its fields when absolutely
- * required.
- */
-#define MACH_RCV_TRAILER_NULL   0
-#define MACH_RCV_TRAILER_SEQNO  1
-#define MACH_RCV_TRAILER_SENDER 2
-#define MACH_RCV_TRAILER_AUDIT  3
-#define MACH_RCV_TRAILER_CTX    4
-#define MACH_RCV_TRAILER_AV     7
-#define MACH_RCV_TRAILER_LABELS 8
-
-#define MACH_RCV_TRAILER_TYPE(x)     (((x) & 0xf) << 28)
-#define MACH_RCV_TRAILER_ELEMENTS(x) (((x) & 0xf) << 24)
-#define MACH_RCV_TRAILER_MASK        ((0xf << 24))
-
-#define GET_RCV_ELEMENTS(y) (((y) >> 24) & 0xf)
-
-
-/*
- * XXXMAC: note that in the case of MACH_RCV_TRAILER_LABELS,
- * we just fall through to mach_msg_max_trailer_t.
- * This is correct behavior since mach_msg_max_trailer_t is defined as
- * mac_msg_mac_trailer_t which is used for the LABELS trailer.
- * It also makes things work properly if MACH_RCV_TRAILER_LABELS is ORed
- * with one of the other options.
- */
-
-#define REQUESTED_TRAILER_SIZE_NATIVE(y)                        \
-	((mach_msg_trailer_size_t)                              \
-	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_NULL) ?      \
-	  sizeof(mach_msg_trailer_t) :                          \
-	  ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SEQNO) ?    \
-	   sizeof(mach_msg_seqno_trailer_t) :                   \
-	  ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SENDER) ?   \
-	   sizeof(mach_msg_security_trailer_t) :                \
-	   ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AUDIT) ?   \
-	    sizeof(mach_msg_audit_trailer_t) :                  \
-	    ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_CTX) ?    \
-	     sizeof(mach_msg_context_trailer_t) :               \
-	     ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AV) ?    \
-	      sizeof(mach_msg_mac_trailer_t) :                  \
-	     sizeof(mach_msg_max_trailer_t))))))))
-
-
-#define REQUESTED_TRAILER_SIZE(y) REQUESTED_TRAILER_SIZE_NATIVE(y)
-
-/*
- *  Much code assumes that mach_msg_return_t == kern_return_t.
- *  This definition is useful for descriptive purposes.
- *
- *  See  for the format of error codes.
- *  IPC errors are system 4.  Send errors are subsystem 0;
- *  receive errors are subsystem 1.  The code field is always non-zero.
- *  The high bits of the code field communicate extra information
- *  for some error codes.  MACH_MSG_MASK masks off these special bits.
- */
-
-typedef kern_return_t mach_msg_return_t;
-
-#define MACH_MSG_SUCCESS                0x00000000
-
-
-#define MACH_MSG_MASK                   0x00003e00
-/* All special error code bits defined below. */
-#define MACH_MSG_IPC_SPACE              0x00002000
-/* No room in IPC name space for another capability name. */
-#define MACH_MSG_VM_SPACE               0x00001000
-/* No room in VM address space for out-of-line memory. */
-#define MACH_MSG_IPC_KERNEL             0x00000800
-/* Kernel resource shortage handling an IPC capability. */
-#define MACH_MSG_VM_KERNEL              0x00000400
-/* Kernel resource shortage handling out-of-line memory. */
-
-#define MACH_SEND_IN_PROGRESS           0x10000001
-/* Thread is waiting to send.  (Internal use only.) */
-#define MACH_SEND_INVALID_DATA          0x10000002
-/* Bogus in-line data. */
-#define MACH_SEND_INVALID_DEST          0x10000003
-/* Bogus destination port. */
-#define MACH_SEND_TIMED_OUT             0x10000004
-/* Message not sent before timeout expired. */
-#define MACH_SEND_INVALID_VOUCHER       0x10000005
-/* Bogus voucher port. */
-#define MACH_SEND_INTERRUPTED           0x10000007
-/* Software interrupt. */
-#define MACH_SEND_MSG_TOO_SMALL         0x10000008
-/* Data doesn't contain a complete message. */
-#define MACH_SEND_INVALID_REPLY         0x10000009
-/* Bogus reply port. */
-#define MACH_SEND_INVALID_RIGHT         0x1000000a
-/* Bogus port rights in the message body. */
-#define MACH_SEND_INVALID_NOTIFY        0x1000000b
-/* Bogus notify port argument. */
-#define MACH_SEND_INVALID_MEMORY        0x1000000c
-/* Invalid out-of-line memory pointer. */
-#define MACH_SEND_NO_BUFFER             0x1000000d
-/* No message buffer is available. */
-#define MACH_SEND_TOO_LARGE             0x1000000e
-/* Send is too large for port */
-#define MACH_SEND_INVALID_TYPE          0x1000000f
-/* Invalid msg-type specification. */
-#define MACH_SEND_INVALID_HEADER        0x10000010
-/* A field in the header had a bad value. */
-#define MACH_SEND_INVALID_TRAILER       0x10000011
-/* The trailer to be sent does not match kernel format. */
-#define MACH_SEND_INVALID_CONTEXT       0x10000012
-/* The sending thread context did not match the context on the dest port */
-#define MACH_SEND_INVALID_RT_OOL_SIZE   0x10000015
-/* compatibility: no longer a returned error */
-#define MACH_SEND_NO_GRANT_DEST         0x10000016
-/* The destination port doesn't accept ports in body */
-
-#define MACH_RCV_IN_PROGRESS            0x10004001
-/* Thread is waiting for receive.  (Internal use only.) */
-#define MACH_RCV_INVALID_NAME           0x10004002
-/* Bogus name for receive port/port-set. */
-#define MACH_RCV_TIMED_OUT              0x10004003
-/* Didn't get a message within the timeout value. */
-#define MACH_RCV_TOO_LARGE              0x10004004
-/* Message buffer is not large enough for inline data. */
-#define MACH_RCV_INTERRUPTED            0x10004005
-/* Software interrupt. */
-#define MACH_RCV_PORT_CHANGED           0x10004006
-/* compatibility: no longer a returned error */
-#define MACH_RCV_INVALID_NOTIFY         0x10004007
-/* Bogus notify port argument. */
-#define MACH_RCV_INVALID_DATA           0x10004008
-/* Bogus message buffer for inline data. */
-#define MACH_RCV_PORT_DIED              0x10004009
-/* Port/set was sent away/died during receive. */
-#define MACH_RCV_IN_SET                 0x1000400a
-/* compatibility: no longer a returned error */
-#define MACH_RCV_HEADER_ERROR           0x1000400b
-/* Error receiving message header.  See special bits. */
-#define MACH_RCV_BODY_ERROR             0x1000400c
-/* Error receiving message body.  See special bits. */
-#define MACH_RCV_INVALID_TYPE           0x1000400d
-/* Invalid msg-type specification in scatter list. */
-#define MACH_RCV_SCATTER_SMALL          0x1000400e
-/* Out-of-line overwrite region is not large enough */
-#define MACH_RCV_INVALID_TRAILER        0x1000400f
-/* trailer type or number of trailer elements not supported */
-#define MACH_RCV_IN_PROGRESS_TIMED      0x10004011
-/* Waiting for receive with timeout. (Internal use only.) */
-#define MACH_RCV_INVALID_REPLY          0x10004012
-/* invalid reply port used in a STRICT_REPLY message */
-
-
-
-__BEGIN_DECLS
-
-/*
- *	Routine:	mach_msg_overwrite
- *	Purpose:
- *		Send and/or receive a message.  If the message operation
- *		is interrupted, and the user did not request an indication
- *		of that fact, then restart the appropriate parts of the
- *		operation silently (trap version does not restart).
- *
- *		Distinct send and receive buffers may be specified.  If
- *		no separate receive buffer is specified, the msg parameter
- *		will be used for both send and receive operations.
- *
- *		In addition to a distinct receive buffer, that buffer may
- *		already contain scatter control information to direct the
- *		receiving of the message.
- */
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_overwrite(
-	mach_msg_header_t *msg,
-	mach_msg_option_t option,
-	mach_msg_size_t send_size,
-	mach_msg_size_t rcv_size,
-	mach_port_name_t rcv_name,
-	mach_msg_timeout_t timeout,
-	mach_port_name_t notify,
-	mach_msg_header_t *rcv_msg,
-	mach_msg_size_t rcv_limit);
-
-
-/*
- *	Routine:	mach_msg
- *	Purpose:
- *		Send and/or receive a message.  If the message operation
- *		is interrupted, and the user did not request an indication
- *		of that fact, then restart the appropriate parts of the
- *		operation silently (trap version does not restart).
- */
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg(
-	mach_msg_header_t *msg,
-	mach_msg_option_t option,
-	mach_msg_size_t send_size,
-	mach_msg_size_t rcv_size,
-	mach_port_name_t rcv_name,
-	mach_msg_timeout_t timeout,
-	mach_port_name_t notify);
-
-/*
- *	Routine:	mach_voucher_deallocate
- *	Purpose:
- *		Deallocate a mach voucher created or received in a message.  Drops
- *		one (send right) reference to the voucher.
- */
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern kern_return_t            mach_voucher_deallocate(
-	mach_port_name_t voucher);
-
-
-__END_DECLS
-
-#endif  /* _MACH_MESSAGE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/mig.h b/lib/libc/include/x86_64-macos.10-none/mach/mig.h
deleted file mode 100644
index aa7bcf7448e518e68be2f9779209973b1874261d..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/mig.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-/*
- * Mach MIG Subsystem Interfaces
- */
-
-#ifndef _MACH_MIG_H_
-#define _MACH_MIG_H_
-
-#include 
-#include 
-#include 
-#include 
-
-#include 
-
-#if defined(MACH_KERNEL)
-
-#if !defined(__MigTypeCheck)
-/* Turn MIG type checking on by default for kernel */
-#define __MigTypeCheck 1
-#endif
-
-#define __MigKernelSpecificCode 1
-#define _MIG_KERNEL_SPECIFIC_CODE_ 1
-
-#elif !defined(__MigTypeCheck)
-
-#if defined(TypeCheck)
-/* use legacy setting (temporary) */
-#define __MigTypeCheck TypeCheck
-#else
-/* default MIG type checking on */
-#define __MigTypeCheck 1
-#endif
-
-#endif /* !defined(MACH_KERNEL) && !defined(__MigTypeCheck) */
-
-/*
- * Pack MIG message structs.
- * This is an indicator of the need to view shared structs in a
- * binary-compatible format - and MIG message structs are no different.
- */
-#define __MigPackStructs 1
-
-/*
- * Definition for MIG-generated server stub routines.  These routines
- * unpack the request message, call the server procedure, and pack the
- * reply message.
- */
-typedef void    (*mig_stub_routine_t) (mach_msg_header_t *InHeadP,
-    mach_msg_header_t *OutHeadP);
-
-typedef mig_stub_routine_t mig_routine_t;
-
-/*
- * Definition for MIG-generated server routine.  This routine takes a
- * message, and returns the appropriate stub function for handling that
- * message.
- */
-typedef mig_routine_t (*mig_server_routine_t) (mach_msg_header_t *InHeadP);
-
-/*
- * Generic definition for implementation routines.  These routines do
- * the real work associated with this request.  This generic type is
- * used for keeping the pointers in the subsystem array.
- */
-typedef kern_return_t   (*mig_impl_routine_t)(void);
-
-typedef mach_msg_type_descriptor_t routine_arg_descriptor;
-typedef mach_msg_type_descriptor_t *routine_arg_descriptor_t;
-typedef mach_msg_type_descriptor_t *mig_routine_arg_descriptor_t;
-
-#define MIG_ROUTINE_ARG_DESCRIPTOR_NULL ((mig_routine_arg_descriptor_t)0)
-
-struct routine_descriptor {
-	mig_impl_routine_t      impl_routine;   /* Server work func pointer   */
-	mig_stub_routine_t      stub_routine;   /* Unmarshalling func pointer */
-	unsigned int            argc;                   /* Number of argument words   */
-	unsigned int            descr_count;    /* Number complex descriptors */
-	routine_arg_descriptor_t
-	    arg_descr;                                                  /* pointer to descriptor array*/
-	unsigned int            max_reply_msg;  /* Max size for reply msg     */
-};
-typedef struct routine_descriptor *routine_descriptor_t;
-
-typedef struct routine_descriptor mig_routine_descriptor;
-typedef mig_routine_descriptor *mig_routine_descriptor_t;
-
-#define MIG_ROUTINE_DESCRIPTOR_NULL ((mig_routine_descriptor_t)0)
-
-typedef struct mig_subsystem {
-	mig_server_routine_t server;            /* pointer to demux routine	*/
-	mach_msg_id_t            start;                 /* Min routine number	    */
-	mach_msg_id_t            end;                   /* Max routine number + 1   */
-	mach_msg_size_t          maxsize;               /* Max reply message size   */
-	vm_address_t             reserved;              /* reserved for MIG use	    */
-	mig_routine_descriptor
-	    routine[1];                                         /* Routine descriptor array */
-} *mig_subsystem_t;
-
-#define MIG_SUBSYSTEM_NULL              ((mig_subsystem_t)0)
-
-typedef struct mig_symtab {
-	char                            *ms_routine_name;
-	int                                     ms_routine_number;
-	void                            (*ms_routine)(void);    /* Since the functions in the
-	                                                         * symbol table have unknown
-	                                                         * signatures, this is the best
-	                                                         * we can do...
-	                                                         */
-} mig_symtab_t;
-
-/*
- * A compiler attribute for annotating all MIG server routines and other
- * functions that should behave similarly.  Allows the compiler to perform
- * additional static bug-finding over them.
- */
-#if __has_attribute(mig_server_routine)
-#define MIG_SERVER_ROUTINE __attribute__((mig_server_routine))
-#else
-#define MIG_SERVER_ROUTINE
-#endif
-
-
-__BEGIN_DECLS
-
-/* Client side reply port allocate */
-extern mach_port_t mig_get_reply_port(void);
-
-/* Client side reply port deallocate */
-extern void mig_dealloc_reply_port(mach_port_t reply_port);
-
-/* Client side reply port "deallocation" */
-extern void mig_put_reply_port(mach_port_t reply_port);
-
-/* Bounded string copy */
-extern int mig_strncpy(char     *dest, const char *src, int     len);
-extern int mig_strncpy_zerofill(char    *dest, const char *src, int     len);
-
-
-/* Allocate memory for out-of-line mig structures */
-extern void mig_allocate(vm_address_t *, vm_size_t);
-
-/* Deallocate memory used for out-of-line mig structures */
-extern void mig_deallocate(vm_address_t, vm_size_t);
-
-
-__END_DECLS
-
-#endif  /* _MACH_MIG_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/port.h b/lib/libc/include/x86_64-macos.10-none/mach/port.h
deleted file mode 100644
index 3547576e80d101efeefd0efc0d59fef95508b000..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/port.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- * NOTICE: This file was modified by McAfee Research in 2004 to introduce
- * support for mandatory and extensible security protections.  This notice
- * is included in support of clause 2.2 (b) of the Apple Public License,
- * Version 2.0.
- */
-/*
- */
-/*
- *	File:	mach/port.h
- *
- *	Definition of a Mach port
- *
- *	Mach ports are the endpoints to Mach-implemented communications
- *	channels (usually uni-directional message queues, but other types
- *	also exist).
- *
- *	Unique collections of these endpoints are maintained for each
- *	Mach task.  Each Mach port in the task's collection is given a
- *	[task-local] name to identify it - and the the various "rights"
- *	held by the task for that specific endpoint.
- *
- *	This header defines the types used to identify these Mach ports
- *	and the various rights associated with them.  For more info see:
- *
- *	 - manipulation of port rights in a given space
- *	 - message queue [and port right passing] mechanism
- *
- */
-
-#ifndef _MACH_PORT_H_
-#define _MACH_PORT_H_
-
-#include 
-#include 
-#include 
-#include 
-
-/*
- *	mach_port_name_t - the local identity for a Mach port
- *
- *	The name is Mach port namespace specific.  It is used to
- *	identify the rights held for that port by the task whose
- *	namespace is implied [or specifically provided].
- *
- *	Use of this type usually implies just a name - no rights.
- *	See mach_port_t for a type that implies a "named right."
- *
- */
-
-typedef natural_t mach_port_name_t;
-typedef mach_port_name_t *mach_port_name_array_t;
-
-
-/*
- *	mach_port_t - a named port right
- *
- *	In user-space, "rights" are represented by the name of the
- *	right in the Mach port namespace.  Even so, this type is
- *	presented as a unique one to more clearly denote the presence
- *	of a right coming along with the name.
- *
- *	Often, various rights for a port held in a single name space
- *	will coalesce and are, therefore, be identified by a single name
- *	[this is the case for send and receive rights].  But not
- *	always [send-once rights currently get a unique name for
- *	each right].
- *
- */
-
-#include 
-#include 
-
-
-typedef mach_port_t                     *mach_port_array_t;
-
-/*
- *  MACH_PORT_NULL is a legal value that can be carried in messages.
- *  It indicates the absence of any port or port rights.  (A port
- *  argument keeps the message from being "simple", even if the
- *  value is MACH_PORT_NULL.)  The value MACH_PORT_DEAD is also a legal
- *  value that can be carried in messages.  It indicates
- *  that a port right was present, but it died.
- */
-
-#define MACH_PORT_NULL          0  /* intentional loose typing */
-#define MACH_PORT_DEAD          ((mach_port_name_t) ~0)
-#define MACH_PORT_VALID(name)                           \
-	        (((name) != MACH_PORT_NULL) &&          \
-	         ((name) != MACH_PORT_DEAD))
-
-
-/*
- *	For kernel-selected [assigned] port names, the name is
- *	comprised of two parts: a generation number and an index.
- *	This approach keeps the exact same name from being generated
- *	and reused too quickly [to catch right/reference counting bugs].
- *	The dividing line between the constituent parts is exposed so
- *	that efficient "mach_port_name_t to data structure pointer"
- *	conversion implementation can be made.  But it is possible
- *	for user-level code to assign their own names to Mach ports.
- *	These are not required to participate in this algorithm.  So
- *	care should be taken before "assuming" this model.
- *
- */
-
-#ifndef NO_PORT_GEN
-
-#define MACH_PORT_INDEX(name)           ((name) >> 8)
-#define MACH_PORT_GEN(name)             (((name) & 0xff) << 24)
-#define MACH_PORT_MAKE(index, gen)      \
-	        (((index) << 8) | (gen) >> 24)
-
-#else   /* NO_PORT_GEN */
-
-#define MACH_PORT_INDEX(name)           (name)
-#define MACH_PORT_GEN(name)             (0)
-#define MACH_PORT_MAKE(index, gen)      (index)
-
-#endif  /* NO_PORT_GEN */
-
-
-/*
- *  These are the different rights a task may have for a port.
- *  The MACH_PORT_RIGHT_* definitions are used as arguments
- *  to mach_port_allocate, mach_port_get_refs, etc, to specify
- *  a particular right to act upon.  The mach_port_names and
- *  mach_port_type calls return bitmasks using the MACH_PORT_TYPE_*
- *  definitions.  This is because a single name may denote
- *  multiple rights.
- */
-
-typedef natural_t mach_port_right_t;
-
-#define MACH_PORT_RIGHT_SEND            ((mach_port_right_t) 0)
-#define MACH_PORT_RIGHT_RECEIVE         ((mach_port_right_t) 1)
-#define MACH_PORT_RIGHT_SEND_ONCE       ((mach_port_right_t) 2)
-#define MACH_PORT_RIGHT_PORT_SET        ((mach_port_right_t) 3)
-#define MACH_PORT_RIGHT_DEAD_NAME       ((mach_port_right_t) 4)
-#define MACH_PORT_RIGHT_LABELH          ((mach_port_right_t) 5) /* obsolete right */
-#define MACH_PORT_RIGHT_NUMBER          ((mach_port_right_t) 6) /* right not implemented */
-
-
-typedef natural_t mach_port_type_t;
-typedef mach_port_type_t *mach_port_type_array_t;
-
-#define MACH_PORT_TYPE(right)                                           \
-	        ((mach_port_type_t)(((mach_port_type_t) 1)              \
-	        << ((right) + ((mach_port_right_t) 16))))
-#define MACH_PORT_TYPE_NONE         ((mach_port_type_t) 0L)
-#define MACH_PORT_TYPE_SEND         MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND)
-#define MACH_PORT_TYPE_RECEIVE      MACH_PORT_TYPE(MACH_PORT_RIGHT_RECEIVE)
-#define MACH_PORT_TYPE_SEND_ONCE    MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND_ONCE)
-#define MACH_PORT_TYPE_PORT_SET     MACH_PORT_TYPE(MACH_PORT_RIGHT_PORT_SET)
-#define MACH_PORT_TYPE_DEAD_NAME    MACH_PORT_TYPE(MACH_PORT_RIGHT_DEAD_NAME)
-#define MACH_PORT_TYPE_LABELH       MACH_PORT_TYPE(MACH_PORT_RIGHT_LABELH) /* obsolete */
-
-
-
-/* Convenient combinations. */
-
-#define MACH_PORT_TYPE_SEND_RECEIVE                                     \
-	        (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_RECEIVE)
-#define MACH_PORT_TYPE_SEND_RIGHTS                                      \
-	        (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_SEND_ONCE)
-#define MACH_PORT_TYPE_PORT_RIGHTS                                      \
-	        (MACH_PORT_TYPE_SEND_RIGHTS|MACH_PORT_TYPE_RECEIVE)
-#define MACH_PORT_TYPE_PORT_OR_DEAD                                     \
-	        (MACH_PORT_TYPE_PORT_RIGHTS|MACH_PORT_TYPE_DEAD_NAME)
-#define MACH_PORT_TYPE_ALL_RIGHTS                                       \
-	        (MACH_PORT_TYPE_PORT_OR_DEAD|MACH_PORT_TYPE_PORT_SET)
-
-/* Dummy type bits that mach_port_type/mach_port_names can return. */
-
-#define MACH_PORT_TYPE_DNREQUEST                0x80000000
-#define MACH_PORT_TYPE_SPREQUEST                0x40000000
-#define MACH_PORT_TYPE_SPREQUEST_DELAYED        0x20000000
-
-/* User-references for capabilities. */
-
-typedef natural_t mach_port_urefs_t;
-typedef integer_t mach_port_delta_t;                    /* change in urefs */
-
-/* Attributes of ports.  (See mach_port_get_receive_status.) */
-
-typedef natural_t mach_port_seqno_t;            /* sequence number */
-typedef natural_t mach_port_mscount_t;          /* make-send count */
-typedef natural_t mach_port_msgcount_t;         /* number of msgs */
-typedef natural_t mach_port_rights_t;           /* number of rights */
-
-/*
- *	Are there outstanding send rights for a given port?
- */
-#define MACH_PORT_SRIGHTS_NONE          0               /* no srights */
-#define MACH_PORT_SRIGHTS_PRESENT       1               /* srights */
-typedef unsigned int mach_port_srights_t;       /* status of send rights */
-
-typedef struct mach_port_status {
-	mach_port_rights_t      mps_pset;       /* count of containing port sets */
-	mach_port_seqno_t       mps_seqno;      /* sequence number */
-	mach_port_mscount_t     mps_mscount;    /* make-send count */
-	mach_port_msgcount_t    mps_qlimit;     /* queue limit */
-	mach_port_msgcount_t    mps_msgcount;   /* number in the queue */
-	mach_port_rights_t      mps_sorights;   /* how many send-once rights */
-	boolean_t               mps_srights;    /* do send rights exist? */
-	boolean_t               mps_pdrequest;  /* port-deleted requested? */
-	boolean_t               mps_nsrequest;  /* no-senders requested? */
-	natural_t               mps_flags;              /* port flags */
-} mach_port_status_t;
-
-/* System-wide values for setting queue limits on a port */
-#define MACH_PORT_QLIMIT_ZERO           (0)
-#define MACH_PORT_QLIMIT_BASIC          (5)
-#define MACH_PORT_QLIMIT_SMALL          (16)
-#define MACH_PORT_QLIMIT_LARGE          (1024)
-#define MACH_PORT_QLIMIT_KERNEL         (65534)
-#define MACH_PORT_QLIMIT_MIN            MACH_PORT_QLIMIT_ZERO
-#define MACH_PORT_QLIMIT_DEFAULT        MACH_PORT_QLIMIT_BASIC
-#define MACH_PORT_QLIMIT_MAX            MACH_PORT_QLIMIT_LARGE
-
-typedef struct mach_port_limits {
-	mach_port_msgcount_t    mpl_qlimit;     /* number of msgs */
-} mach_port_limits_t;
-
-/* Possible values for mps_flags (part of mach_port_status_t) */
-#define MACH_PORT_STATUS_FLAG_TEMPOWNER         0x01
-#define MACH_PORT_STATUS_FLAG_GUARDED           0x02
-#define MACH_PORT_STATUS_FLAG_STRICT_GUARD      0x04
-#define MACH_PORT_STATUS_FLAG_IMP_DONATION      0x08
-#define MACH_PORT_STATUS_FLAG_REVIVE            0x10
-#define MACH_PORT_STATUS_FLAG_TASKPTR           0x20
-#define MACH_PORT_STATUS_FLAG_GUARD_IMMOVABLE_RECEIVE 0x40
-#define MACH_PORT_STATUS_FLAG_NO_GRANT          0x80
-
-typedef struct mach_port_info_ext {
-	mach_port_status_t      mpie_status;
-	mach_port_msgcount_t    mpie_boost_cnt;
-	uint32_t                reserved[6];
-} mach_port_info_ext_t;
-
-typedef integer_t *mach_port_info_t;            /* varying array of natural_t */
-
-/* Flavors for mach_port_get/set_attributes() */
-typedef int     mach_port_flavor_t;
-#define MACH_PORT_LIMITS_INFO           1       /* uses mach_port_limits_t */
-#define MACH_PORT_RECEIVE_STATUS        2       /* uses mach_port_status_t */
-#define MACH_PORT_DNREQUESTS_SIZE       3       /* info is int */
-#define MACH_PORT_TEMPOWNER             4       /* indicates receive right will be reassigned to another task */
-#define MACH_PORT_IMPORTANCE_RECEIVER   5       /* indicates recieve right accepts priority donation */
-#define MACH_PORT_DENAP_RECEIVER        6       /* indicates receive right accepts de-nap donation */
-#define MACH_PORT_INFO_EXT              7       /* uses mach_port_info_ext_t */
-
-#define MACH_PORT_LIMITS_INFO_COUNT     ((natural_t) \
-	(sizeof(mach_port_limits_t)/sizeof(natural_t)))
-#define MACH_PORT_RECEIVE_STATUS_COUNT  ((natural_t) \
-	(sizeof(mach_port_status_t)/sizeof(natural_t)))
-#define MACH_PORT_DNREQUESTS_SIZE_COUNT 1
-#define MACH_PORT_INFO_EXT_COUNT        ((natural_t) \
-	(sizeof(mach_port_info_ext_t)/sizeof(natural_t)))
-/*
- * Structure used to pass information about port allocation requests.
- * Must be padded to 64-bits total length.
- */
-typedef struct mach_port_qos {
-	unsigned int            name:1;         /* name given */
-	unsigned int            prealloc:1;     /* prealloced message */
-	boolean_t               pad1:30;
-	natural_t               len;
-} mach_port_qos_t;
-
-/* Mach Port Guarding definitions */
-
-/*
- * Flags for mach_port_options (used for
- * invocation of mach_port_construct).
- * Indicates attributes to be set for the newly
- * allocated port.
- */
-#define MPO_CONTEXT_AS_GUARD    0x01    /* Add guard to the port */
-#define MPO_QLIMIT              0x02    /* Set qlimit for the port msg queue */
-#define MPO_TEMPOWNER           0x04    /* Set the tempowner bit of the port */
-#define MPO_IMPORTANCE_RECEIVER 0x08    /* Mark the port as importance receiver */
-#define MPO_INSERT_SEND_RIGHT   0x10    /* Insert a send right for the port */
-#define MPO_STRICT              0x20    /* Apply strict guarding for port */
-#define MPO_DENAP_RECEIVER      0x40    /* Mark the port as App de-nap receiver */
-#define MPO_IMMOVABLE_RECEIVE   0x80    /* Mark the port as immovable; protected by the guard context */
-/*
- * Structure to define optional attributes for a newly
- * constructed port.
- */
-typedef struct mach_port_options {
-	uint32_t                flags;          /* Flags defining attributes for port */
-	mach_port_limits_t      mpl;            /* Message queue limit for port */
-	uint64_t                reserved[2];    /* Reserved */
-}mach_port_options_t;
-
-typedef mach_port_options_t *mach_port_options_ptr_t;
-
-/*
- * EXC_GUARD represents a guard violation for both
- * mach ports and file descriptors. GUARD_TYPE_ is used
- * to differentiate among them.
- */
-#define GUARD_TYPE_MACH_PORT    0x1
-
-/* Reasons for exception for a guarded mach port */
-enum mach_port_guard_exception_codes {
-	kGUARD_EXC_DESTROY                       = 1u << 0,
-	kGUARD_EXC_MOD_REFS                      = 1u << 1,
-	kGUARD_EXC_SET_CONTEXT               = 1u << 2,
-	kGUARD_EXC_UNGUARDED                 = 1u << 3,
-	kGUARD_EXC_INCORRECT_GUARD           = 1u << 4,
-	kGUARD_EXC_IMMOVABLE                 = 1u << 5,
-	kGUARD_EXC_STRICT_REPLY              = 1u << 6,
-	/* start of [optionally] non-fatal guards */
-	kGUARD_EXC_INVALID_RIGHT         = 1u << 8,
-	kGUARD_EXC_INVALID_NAME          = 1u << 9,
-	kGUARD_EXC_INVALID_VALUE         = 1u << 10,
-	kGUARD_EXC_INVALID_ARGUMENT      = 1u << 11,
-	kGUARD_EXC_RIGHT_EXISTS          = 1u << 12,
-	kGUARD_EXC_KERN_NO_SPACE         = 1u << 13,
-	kGUARD_EXC_KERN_FAILURE          = 1u << 14,
-	kGUARD_EXC_KERN_RESOURCE         = 1u << 15,
-	kGUARD_EXC_SEND_INVALID_REPLY    = 1u << 16,
-	kGUARD_EXC_SEND_INVALID_VOUCHER  = 1u << 17,
-	kGUARD_EXC_SEND_INVALID_RIGHT    = 1u << 18,
-	kGUARD_EXC_RCV_INVALID_NAME      = 1u << 19,
-	kGUARD_EXC_RCV_GUARDED_DESC      = 1u << 20, /* should never be fatal; for development only */
-};
-
-#define MAX_FATAL_kGUARD_EXC_CODE (1u << 6)
-
-/*
- * These flags are used as bits in the subcode of kGUARD_EXC_STRICT_REPLY exceptions.
- */
-#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_DISP  (0x01ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_PORT  (0x02ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_INVALID_VOUCHER     (0x04ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_NO_BANK_ATTR        (0x08ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_MISMATCHED_PERSONA  (0x10ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_MASK                (0xffull << 56)
-
-/*
- * Flags for mach_port_guard_with_flags. These flags extend
- * the attributes associated with a guarded port.
- */
-#define MPG_STRICT              0x01    /* Apply strict guarding for a port */
-#define MPG_IMMOVABLE_RECEIVE   0x02    /* Receive right cannot be moved out of the space */
-
-#if     !__DARWIN_UNIX03 && !defined(_NO_PORT_T_FROM_MACH)
-/*
- *  Mach 3.0 renamed everything to have mach_ in front of it.
- *  These types and macros are provided for backward compatibility
- *	but are deprecated.
- */
-typedef mach_port_t             port_t;
-typedef mach_port_name_t        port_name_t;
-typedef mach_port_name_t        *port_name_array_t;
-
-#define PORT_NULL               ((port_t) 0)
-#define PORT_DEAD               ((port_t) ~0)
-#define PORT_VALID(name) \
-	        ((port_t)(name) != PORT_NULL && (port_t)(name) != PORT_DEAD)
-
-#endif  /* !__DARWIN_UNIX03 && !_NO_PORT_T_FROM_MACH */
-
-#endif  /* _MACH_PORT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/processor.h b/lib/libc/include/x86_64-macos.10-none/mach/processor.h
deleted file mode 100644
index 64cf6b97b39a676fa16342be5a43701fd2f8cb20..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/processor.h
+++ /dev/null
@@ -1,360 +0,0 @@
-#ifndef	_processor_user_
-#define	_processor_user_
-
-/* Module processor */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	processor_MSG_COUNT
-#define	processor_MSG_COUNT	6
-#endif	/* processor_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine processor_start */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_start
-(
-	processor_t processor
-);
-
-/* Routine processor_exit */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_exit
-(
-	processor_t processor
-);
-
-/* Routine processor_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_info
-(
-	processor_t processor,
-	processor_flavor_t flavor,
-	host_t *host,
-	processor_info_t processor_info_out,
-	mach_msg_type_number_t *processor_info_outCnt
-);
-
-/* Routine processor_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_control
-(
-	processor_t processor,
-	processor_info_t processor_cmd,
-	mach_msg_type_number_t processor_cmdCnt
-);
-
-/* Routine processor_assign */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_assign
-(
-	processor_t processor,
-	processor_set_t new_set,
-	boolean_t wait
-);
-
-/* Routine processor_get_assignment */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_get_assignment
-(
-	processor_t processor,
-	processor_set_name_t *assigned_set
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__processor_subsystem__defined
-#define __Request__processor_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_start_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_exit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		processor_flavor_t flavor;
-		mach_msg_type_number_t processor_info_outCnt;
-	} __Request__processor_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_msg_type_number_t processor_cmdCnt;
-		integer_t processor_cmd[20];
-	} __Request__processor_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_set;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t wait;
-	} __Request__processor_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__processor_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__processor_subsystem__defined
-#define __RequestUnion__processor_subsystem__defined
-union __RequestUnion__processor_subsystem {
-	__Request__processor_start_t Request_processor_start;
-	__Request__processor_exit_t Request_processor_exit;
-	__Request__processor_info_t Request_processor_info;
-	__Request__processor_control_t Request_processor_control;
-	__Request__processor_assign_t Request_processor_assign;
-	__Request__processor_get_assignment_t Request_processor_get_assignment;
-};
-#endif /* !__RequestUnion__processor_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__processor_subsystem__defined
-#define __Reply__processor_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_start_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_exit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t host;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t processor_info_outCnt;
-		integer_t processor_info_out[20];
-	} __Reply__processor_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t assigned_set;
-		/* end of the kernel processed data */
-	} __Reply__processor_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__processor_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__processor_subsystem__defined
-#define __ReplyUnion__processor_subsystem__defined
-union __ReplyUnion__processor_subsystem {
-	__Reply__processor_start_t Reply_processor_start;
-	__Reply__processor_exit_t Reply_processor_exit;
-	__Reply__processor_info_t Reply_processor_info;
-	__Reply__processor_control_t Reply_processor_control;
-	__Reply__processor_assign_t Reply_processor_assign;
-	__Reply__processor_get_assignment_t Reply_processor_get_assignment;
-};
-#endif /* !__RequestUnion__processor_subsystem__defined */
-
-#ifndef subsystem_to_name_map_processor
-#define subsystem_to_name_map_processor \
-    { "processor_start", 3000 },\
-    { "processor_exit", 3001 },\
-    { "processor_info", 3002 },\
-    { "processor_control", 3003 },\
-    { "processor_assign", 3004 },\
-    { "processor_get_assignment", 3005 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _processor_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/processor_set.h b/lib/libc/include/x86_64-macos.10-none/mach/processor_set.h
deleted file mode 100644
index c7637d1f1931c8fa439a89ee5a5576563760a6ec..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/processor_set.h
+++ /dev/null
@@ -1,540 +0,0 @@
-#ifndef	_processor_set_user_
-#define	_processor_set_user_
-
-/* Module processor_set */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	processor_set_MSG_COUNT
-#define	processor_set_MSG_COUNT	10
-#endif	/* processor_set_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine processor_set_statistics */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_statistics
-(
-	processor_set_name_t pset,
-	processor_set_flavor_t flavor,
-	processor_set_info_t info_out,
-	mach_msg_type_number_t *info_outCnt
-);
-
-/* Routine processor_set_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_destroy
-(
-	processor_set_t set
-);
-
-/* Routine processor_set_max_priority */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_max_priority
-(
-	processor_set_t processor_set,
-	int max_priority,
-	boolean_t change_threads
-);
-
-/* Routine processor_set_policy_enable */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_policy_enable
-(
-	processor_set_t processor_set,
-	int policy
-);
-
-/* Routine processor_set_policy_disable */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_policy_disable
-(
-	processor_set_t processor_set,
-	int policy,
-	boolean_t change_threads
-);
-
-/* Routine processor_set_tasks */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_tasks
-(
-	processor_set_t processor_set,
-	task_array_t *task_list,
-	mach_msg_type_number_t *task_listCnt
-);
-
-/* Routine processor_set_threads */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_threads
-(
-	processor_set_t processor_set,
-	thread_act_array_t *thread_list,
-	mach_msg_type_number_t *thread_listCnt
-);
-
-/* Routine processor_set_policy_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_policy_control
-(
-	processor_set_t pset,
-	processor_set_flavor_t flavor,
-	processor_set_info_t policy_info,
-	mach_msg_type_number_t policy_infoCnt,
-	boolean_t change
-);
-
-/* Routine processor_set_stack_usage */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_stack_usage
-(
-	processor_set_t pset,
-	unsigned *ltotal,
-	vm_size_t *space,
-	vm_size_t *resident,
-	vm_size_t *maxusage,
-	vm_offset_t *maxstack
-);
-
-/* Routine processor_set_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_info
-(
-	processor_set_name_t set_name,
-	int flavor,
-	host_t *host,
-	processor_set_info_t info_out,
-	mach_msg_type_number_t *info_outCnt
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__processor_set_subsystem__defined
-#define __Request__processor_set_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		processor_set_flavor_t flavor;
-		mach_msg_type_number_t info_outCnt;
-	} __Request__processor_set_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int max_priority;
-		boolean_t change_threads;
-	} __Request__processor_set_max_priority_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int policy;
-	} __Request__processor_set_policy_enable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int policy;
-		boolean_t change_threads;
-	} __Request__processor_set_policy_disable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_tasks_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_threads_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		processor_set_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[5];
-		boolean_t change;
-	} __Request__processor_set_policy_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_stack_usage_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int flavor;
-		mach_msg_type_number_t info_outCnt;
-	} __Request__processor_set_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__processor_set_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__processor_set_subsystem__defined
-#define __RequestUnion__processor_set_subsystem__defined
-union __RequestUnion__processor_set_subsystem {
-	__Request__processor_set_statistics_t Request_processor_set_statistics;
-	__Request__processor_set_destroy_t Request_processor_set_destroy;
-	__Request__processor_set_max_priority_t Request_processor_set_max_priority;
-	__Request__processor_set_policy_enable_t Request_processor_set_policy_enable;
-	__Request__processor_set_policy_disable_t Request_processor_set_policy_disable;
-	__Request__processor_set_tasks_t Request_processor_set_tasks;
-	__Request__processor_set_threads_t Request_processor_set_threads;
-	__Request__processor_set_policy_control_t Request_processor_set_policy_control;
-	__Request__processor_set_stack_usage_t Request_processor_set_stack_usage;
-	__Request__processor_set_info_t Request_processor_set_info;
-};
-#endif /* !__RequestUnion__processor_set_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__processor_set_subsystem__defined
-#define __Reply__processor_set_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t info_outCnt;
-		integer_t info_out[5];
-	} __Reply__processor_set_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_max_priority_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_policy_enable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_policy_disable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t task_list;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t task_listCnt;
-	} __Reply__processor_set_tasks_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t thread_list;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t thread_listCnt;
-	} __Reply__processor_set_threads_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_policy_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		unsigned ltotal;
-		vm_size_t space;
-		vm_size_t resident;
-		vm_size_t maxusage;
-		vm_offset_t maxstack;
-	} __Reply__processor_set_stack_usage_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t host;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t info_outCnt;
-		integer_t info_out[5];
-	} __Reply__processor_set_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__processor_set_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__processor_set_subsystem__defined
-#define __ReplyUnion__processor_set_subsystem__defined
-union __ReplyUnion__processor_set_subsystem {
-	__Reply__processor_set_statistics_t Reply_processor_set_statistics;
-	__Reply__processor_set_destroy_t Reply_processor_set_destroy;
-	__Reply__processor_set_max_priority_t Reply_processor_set_max_priority;
-	__Reply__processor_set_policy_enable_t Reply_processor_set_policy_enable;
-	__Reply__processor_set_policy_disable_t Reply_processor_set_policy_disable;
-	__Reply__processor_set_tasks_t Reply_processor_set_tasks;
-	__Reply__processor_set_threads_t Reply_processor_set_threads;
-	__Reply__processor_set_policy_control_t Reply_processor_set_policy_control;
-	__Reply__processor_set_stack_usage_t Reply_processor_set_stack_usage;
-	__Reply__processor_set_info_t Reply_processor_set_info;
-};
-#endif /* !__RequestUnion__processor_set_subsystem__defined */
-
-#ifndef subsystem_to_name_map_processor_set
-#define subsystem_to_name_map_processor_set \
-    { "processor_set_statistics", 4000 },\
-    { "processor_set_destroy", 4001 },\
-    { "processor_set_max_priority", 4002 },\
-    { "processor_set_policy_enable", 4003 },\
-    { "processor_set_policy_disable", 4004 },\
-    { "processor_set_tasks", 4005 },\
-    { "processor_set_threads", 4006 },\
-    { "processor_set_policy_control", 4007 },\
-    { "processor_set_stack_usage", 4008 },\
-    { "processor_set_info", 4009 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _processor_set_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/sync_policy.h b/lib/libc/include/x86_64-macos.10-none/mach/sync_policy.h
deleted file mode 100644
index a4c477bf5d96396e8ff0a7e6194355c000792ba1..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/sync_policy.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_SYNC_POLICY_H_
-#define _MACH_SYNC_POLICY_H_
-
-typedef int sync_policy_t;
-
-/*
- *	These options define the wait ordering of the synchronizers
- */
-#define SYNC_POLICY_FIFO                0x0
-#define SYNC_POLICY_FIXED_PRIORITY      0x1
-#define SYNC_POLICY_REVERSED            0x2
-#define SYNC_POLICY_ORDER_MASK          0x3
-#define SYNC_POLICY_LIFO                (SYNC_POLICY_FIFO|SYNC_POLICY_REVERSED)
-
-
-#define SYNC_POLICY_MAX                 0x7
-
-#endif  /* _MACH_SYNC_POLICY_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/task.h b/lib/libc/include/x86_64-macos.10-none/mach/task.h
deleted file mode 100644
index 5f0de2dcd542287280a3ba6af0f061c67a7ef19e..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/task.h
+++ /dev/null
@@ -1,2523 +0,0 @@
-#ifndef	_task_user_
-#define	_task_user_
-
-/* Module task */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	task_MSG_COUNT
-#define	task_MSG_COUNT	55
-#endif	/* task_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine task_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_create
-(
-	task_t target_task,
-	ledger_array_t ledgers,
-	mach_msg_type_number_t ledgersCnt,
-	boolean_t inherit_memory,
-	task_t *child_task
-);
-
-/* Routine task_terminate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_terminate
-(
-	task_t target_task
-);
-
-/* Routine task_threads */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_threads
-(
-	task_inspect_t target_task,
-	thread_act_array_t *act_list,
-	mach_msg_type_number_t *act_listCnt
-);
-
-/* Routine mach_ports_register */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t mach_ports_register
-(
-	task_t target_task,
-	mach_port_array_t init_port_set,
-	mach_msg_type_number_t init_port_setCnt
-);
-
-/* Routine mach_ports_lookup */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t mach_ports_lookup
-(
-	task_t target_task,
-	mach_port_array_t *init_port_set,
-	mach_msg_type_number_t *init_port_setCnt
-);
-
-/* Routine task_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_info
-(
-	task_name_t target_task,
-	task_flavor_t flavor,
-	task_info_t task_info_out,
-	mach_msg_type_number_t *task_info_outCnt
-);
-
-/* Routine task_set_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_info
-(
-	task_t target_task,
-	task_flavor_t flavor,
-	task_info_t task_info_in,
-	mach_msg_type_number_t task_info_inCnt
-);
-
-/* Routine task_suspend */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_suspend
-(
-	task_t target_task
-);
-
-/* Routine task_resume */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_resume
-(
-	task_t target_task
-);
-
-/* Routine task_get_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_get_special_port
-(
-	task_inspect_t task,
-	int which_port,
-	mach_port_t *special_port
-);
-
-/* Routine task_set_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_special_port
-(
-	task_t task,
-	int which_port,
-	mach_port_t special_port
-);
-
-/* Routine thread_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_create
-(
-	task_t parent_task,
-	thread_act_t *child_act
-);
-
-/* Routine thread_create_running */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_create_running
-(
-	task_t parent_task,
-	thread_state_flavor_t flavor,
-	thread_state_t new_state,
-	mach_msg_type_number_t new_stateCnt,
-	thread_act_t *child_act
-);
-
-/* Routine task_set_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_exception_ports
-(
-	task_t task,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor
-);
-
-/* Routine task_get_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_get_exception_ports
-(
-	task_inspect_t task,
-	exception_mask_t exception_mask,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlers,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine task_swap_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_swap_exception_ports
-(
-	task_t task,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlerss,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine lock_set_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_set_create
-(
-	task_t task,
-	lock_set_t *new_lock_set,
-	int n_ulocks,
-	int policy
-);
-
-/* Routine lock_set_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_set_destroy
-(
-	task_t task,
-	lock_set_t lock_set
-);
-
-/* Routine semaphore_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t semaphore_create
-(
-	task_t task,
-	semaphore_t *semaphore,
-	int policy,
-	int value
-);
-
-/* Routine semaphore_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t semaphore_destroy
-(
-	task_t task,
-	semaphore_t semaphore
-);
-
-/* Routine task_policy_set */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_policy_set
-(
-	task_t task,
-	task_policy_flavor_t flavor,
-	task_policy_t policy_info,
-	mach_msg_type_number_t policy_infoCnt
-);
-
-/* Routine task_policy_get */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_policy_get
-(
-	task_t task,
-	task_policy_flavor_t flavor,
-	task_policy_t policy_info,
-	mach_msg_type_number_t *policy_infoCnt,
-	boolean_t *get_default
-);
-
-/* Routine task_sample */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_sample
-(
-	task_t task,
-	mach_port_t reply
-);
-
-/* Routine task_policy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_policy
-(
-	task_t task,
-	policy_t policy,
-	policy_base_t base,
-	mach_msg_type_number_t baseCnt,
-	boolean_t set_limit,
-	boolean_t change
-);
-
-/* Routine task_set_emulation */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_emulation
-(
-	task_t target_port,
-	vm_address_t routine_entry_pt,
-	int routine_number
-);
-
-/* Routine task_get_emulation_vector */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_get_emulation_vector
-(
-	task_t task,
-	int *vector_start,
-	emulation_vector_t *emulation_vector,
-	mach_msg_type_number_t *emulation_vectorCnt
-);
-
-/* Routine task_set_emulation_vector */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_emulation_vector
-(
-	task_t task,
-	int vector_start,
-	emulation_vector_t emulation_vector,
-	mach_msg_type_number_t emulation_vectorCnt
-);
-
-/* Routine task_set_ras_pc */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_ras_pc
-(
-	task_t target_task,
-	vm_address_t basepc,
-	vm_address_t boundspc
-);
-
-/* Routine task_zone_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_zone_info
-(
-	task_t target_task,
-	mach_zone_name_array_t *names,
-	mach_msg_type_number_t *namesCnt,
-	task_zone_info_array_t *info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine task_assign */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_assign
-(
-	task_t task,
-	processor_set_t new_set,
-	boolean_t assign_threads
-);
-
-/* Routine task_assign_default */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_assign_default
-(
-	task_t task,
-	boolean_t assign_threads
-);
-
-/* Routine task_get_assignment */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_get_assignment
-(
-	task_t task,
-	processor_set_name_t *assigned_set
-);
-
-/* Routine task_set_policy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_policy
-(
-	task_t task,
-	processor_set_t pset,
-	policy_t policy,
-	policy_base_t base,
-	mach_msg_type_number_t baseCnt,
-	policy_limit_t limit,
-	mach_msg_type_number_t limitCnt,
-	boolean_t change
-);
-
-/* Routine task_get_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_get_state
-(
-	task_t task,
-	thread_state_flavor_t flavor,
-	thread_state_t old_state,
-	mach_msg_type_number_t *old_stateCnt
-);
-
-/* Routine task_set_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_state
-(
-	task_t task,
-	thread_state_flavor_t flavor,
-	thread_state_t new_state,
-	mach_msg_type_number_t new_stateCnt
-);
-
-/* Routine task_set_phys_footprint_limit */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_phys_footprint_limit
-(
-	task_t task,
-	int new_limit,
-	int *old_limit
-);
-
-/* Routine task_suspend2 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_suspend2
-(
-	task_t target_task,
-	task_suspension_token_t *suspend_token
-);
-
-/* Routine task_resume2 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_resume2
-(
-	task_suspension_token_t suspend_token
-);
-
-/* Routine task_purgable_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_purgable_info
-(
-	task_t task,
-	task_purgable_info_t *stats
-);
-
-/* Routine task_get_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_get_mach_voucher
-(
-	task_t task,
-	mach_voucher_selector_t which,
-	ipc_voucher_t *voucher
-);
-
-/* Routine task_set_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_mach_voucher
-(
-	task_t task,
-	ipc_voucher_t voucher
-);
-
-/* Routine task_swap_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_swap_mach_voucher
-(
-	task_t task,
-	ipc_voucher_t new_voucher,
-	ipc_voucher_t *old_voucher
-);
-
-/* Routine task_generate_corpse */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_generate_corpse
-(
-	task_t task,
-	mach_port_t *corpse_task_port
-);
-
-/* Routine task_map_corpse_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_map_corpse_info
-(
-	task_t task,
-	task_t corspe_task,
-	vm_address_t *kcd_addr_begin,
-	uint32_t *kcd_size
-);
-
-/* Routine task_register_dyld_image_infos */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_register_dyld_image_infos
-(
-	task_t task,
-	dyld_kernel_image_info_array_t dyld_images,
-	mach_msg_type_number_t dyld_imagesCnt
-);
-
-/* Routine task_unregister_dyld_image_infos */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_unregister_dyld_image_infos
-(
-	task_t task,
-	dyld_kernel_image_info_array_t dyld_images,
-	mach_msg_type_number_t dyld_imagesCnt
-);
-
-/* Routine task_get_dyld_image_infos */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_get_dyld_image_infos
-(
-	task_inspect_t task,
-	dyld_kernel_image_info_array_t *dyld_images,
-	mach_msg_type_number_t *dyld_imagesCnt
-);
-
-/* Routine task_register_dyld_shared_cache_image_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_register_dyld_shared_cache_image_info
-(
-	task_t task,
-	dyld_kernel_image_info_t dyld_cache_image,
-	boolean_t no_cache,
-	boolean_t private_cache
-);
-
-/* Routine task_register_dyld_set_dyld_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_register_dyld_set_dyld_state
-(
-	task_t task,
-	uint8_t dyld_state
-);
-
-/* Routine task_register_dyld_get_process_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_register_dyld_get_process_state
-(
-	task_t task,
-	dyld_kernel_process_info_t *dyld_process_state
-);
-
-/* Routine task_map_corpse_info_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_map_corpse_info_64
-(
-	task_t task,
-	task_t corspe_task,
-	mach_vm_address_t *kcd_addr_begin,
-	mach_vm_size_t *kcd_size
-);
-
-/* Routine task_inspect */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_inspect
-(
-	task_inspect_t task,
-	task_inspect_flavor_t flavor,
-	task_inspect_info_t info_out,
-	mach_msg_type_number_t *info_outCnt
-);
-
-/* Routine task_get_exc_guard_behavior */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_get_exc_guard_behavior
-(
-	task_inspect_t task,
-	task_exc_guard_behavior_t *behavior
-);
-
-/* Routine task_set_exc_guard_behavior */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_exc_guard_behavior
-(
-	task_t task,
-	task_exc_guard_behavior_t behavior
-);
-
-/* Routine task_create_suid_cred */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_create_suid_cred
-(
-	task_t task,
-	suid_cred_path_t path,
-	suid_cred_uid_t uid,
-	suid_cred_t *delegation
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__task_subsystem__defined
-#define __Request__task_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t ledgers;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t ledgersCnt;
-		boolean_t inherit_memory;
-	} __Request__task_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_terminate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_threads_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t init_port_set;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t init_port_setCnt;
-	} __Request__mach_ports_register_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_ports_lookup_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_flavor_t flavor;
-		mach_msg_type_number_t task_info_outCnt;
-	} __Request__task_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_flavor_t flavor;
-		mach_msg_type_number_t task_info_inCnt;
-		integer_t task_info_in[87];
-	} __Request__task_set_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_suspend_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_resume_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int which_port;
-	} __Request__task_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t special_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int which_port;
-	} __Request__task_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Request__thread_create_running_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__task_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-	} __Request__task_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__task_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int n_ulocks;
-		int policy;
-	} __Request__lock_set_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t lock_set;
-		/* end of the kernel processed data */
-	} __Request__lock_set_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int policy;
-		int value;
-	} __Request__semaphore_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t semaphore;
-		/* end of the kernel processed data */
-	} __Request__semaphore_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_policy_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[16];
-	} __Request__task_policy_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_policy_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		boolean_t get_default;
-	} __Request__task_policy_get_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t reply;
-		/* end of the kernel processed data */
-	} __Request__task_sample_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		policy_t policy;
-		mach_msg_type_number_t baseCnt;
-		integer_t base[5];
-		boolean_t set_limit;
-		boolean_t change;
-	} __Request__task_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t routine_entry_pt;
-		int routine_number;
-	} __Request__task_set_emulation_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_get_emulation_vector_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t emulation_vector;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int vector_start;
-		mach_msg_type_number_t emulation_vectorCnt;
-	} __Request__task_set_emulation_vector_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t basepc;
-		vm_address_t boundspc;
-	} __Request__task_set_ras_pc_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_zone_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_set;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t assign_threads;
-	} __Request__task_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		boolean_t assign_threads;
-	} __Request__task_assign_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t pset;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		policy_t policy;
-		mach_msg_type_number_t baseCnt;
-		integer_t base[5];
-		mach_msg_type_number_t limitCnt;
-		integer_t limit[1];
-		boolean_t change;
-	} __Request__task_set_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t old_stateCnt;
-	} __Request__task_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Request__task_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int new_limit;
-	} __Request__task_set_phys_footprint_limit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_suspend2_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_resume2_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_purgable_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_voucher_selector_t which;
-	} __Request__task_get_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Request__task_set_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_voucher;
-		mach_msg_port_descriptor_t old_voucher;
-		/* end of the kernel processed data */
-	} __Request__task_swap_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_generate_corpse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t corspe_task;
-		/* end of the kernel processed data */
-	} __Request__task_map_corpse_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t dyld_images;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dyld_imagesCnt;
-	} __Request__task_register_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t dyld_images;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dyld_imagesCnt;
-	} __Request__task_unregister_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_get_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		dyld_kernel_image_info_t dyld_cache_image;
-		boolean_t no_cache;
-		boolean_t private_cache;
-	} __Request__task_register_dyld_shared_cache_image_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		uint8_t dyld_state;
-		char dyld_statePad[3];
-	} __Request__task_register_dyld_set_dyld_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_register_dyld_get_process_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t corspe_task;
-		/* end of the kernel processed data */
-	} __Request__task_map_corpse_info_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_inspect_flavor_t flavor;
-		mach_msg_type_number_t info_outCnt;
-	} __Request__task_inspect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_get_exc_guard_behavior_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_exc_guard_behavior_t behavior;
-	} __Request__task_set_exc_guard_behavior_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_msg_type_number_t pathOffset; /* MiG doesn't use it */
-		mach_msg_type_number_t pathCnt;
-		char path[1024];
-		suid_cred_uid_t uid;
-	} __Request__task_create_suid_cred_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__task_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__task_subsystem__defined
-#define __RequestUnion__task_subsystem__defined
-union __RequestUnion__task_subsystem {
-	__Request__task_create_t Request_task_create;
-	__Request__task_terminate_t Request_task_terminate;
-	__Request__task_threads_t Request_task_threads;
-	__Request__mach_ports_register_t Request_mach_ports_register;
-	__Request__mach_ports_lookup_t Request_mach_ports_lookup;
-	__Request__task_info_t Request_task_info;
-	__Request__task_set_info_t Request_task_set_info;
-	__Request__task_suspend_t Request_task_suspend;
-	__Request__task_resume_t Request_task_resume;
-	__Request__task_get_special_port_t Request_task_get_special_port;
-	__Request__task_set_special_port_t Request_task_set_special_port;
-	__Request__thread_create_t Request_thread_create;
-	__Request__thread_create_running_t Request_thread_create_running;
-	__Request__task_set_exception_ports_t Request_task_set_exception_ports;
-	__Request__task_get_exception_ports_t Request_task_get_exception_ports;
-	__Request__task_swap_exception_ports_t Request_task_swap_exception_ports;
-	__Request__lock_set_create_t Request_lock_set_create;
-	__Request__lock_set_destroy_t Request_lock_set_destroy;
-	__Request__semaphore_create_t Request_semaphore_create;
-	__Request__semaphore_destroy_t Request_semaphore_destroy;
-	__Request__task_policy_set_t Request_task_policy_set;
-	__Request__task_policy_get_t Request_task_policy_get;
-	__Request__task_sample_t Request_task_sample;
-	__Request__task_policy_t Request_task_policy;
-	__Request__task_set_emulation_t Request_task_set_emulation;
-	__Request__task_get_emulation_vector_t Request_task_get_emulation_vector;
-	__Request__task_set_emulation_vector_t Request_task_set_emulation_vector;
-	__Request__task_set_ras_pc_t Request_task_set_ras_pc;
-	__Request__task_zone_info_t Request_task_zone_info;
-	__Request__task_assign_t Request_task_assign;
-	__Request__task_assign_default_t Request_task_assign_default;
-	__Request__task_get_assignment_t Request_task_get_assignment;
-	__Request__task_set_policy_t Request_task_set_policy;
-	__Request__task_get_state_t Request_task_get_state;
-	__Request__task_set_state_t Request_task_set_state;
-	__Request__task_set_phys_footprint_limit_t Request_task_set_phys_footprint_limit;
-	__Request__task_suspend2_t Request_task_suspend2;
-	__Request__task_resume2_t Request_task_resume2;
-	__Request__task_purgable_info_t Request_task_purgable_info;
-	__Request__task_get_mach_voucher_t Request_task_get_mach_voucher;
-	__Request__task_set_mach_voucher_t Request_task_set_mach_voucher;
-	__Request__task_swap_mach_voucher_t Request_task_swap_mach_voucher;
-	__Request__task_generate_corpse_t Request_task_generate_corpse;
-	__Request__task_map_corpse_info_t Request_task_map_corpse_info;
-	__Request__task_register_dyld_image_infos_t Request_task_register_dyld_image_infos;
-	__Request__task_unregister_dyld_image_infos_t Request_task_unregister_dyld_image_infos;
-	__Request__task_get_dyld_image_infos_t Request_task_get_dyld_image_infos;
-	__Request__task_register_dyld_shared_cache_image_info_t Request_task_register_dyld_shared_cache_image_info;
-	__Request__task_register_dyld_set_dyld_state_t Request_task_register_dyld_set_dyld_state;
-	__Request__task_register_dyld_get_process_state_t Request_task_register_dyld_get_process_state;
-	__Request__task_map_corpse_info_64_t Request_task_map_corpse_info_64;
-	__Request__task_inspect_t Request_task_inspect;
-	__Request__task_get_exc_guard_behavior_t Request_task_get_exc_guard_behavior;
-	__Request__task_set_exc_guard_behavior_t Request_task_set_exc_guard_behavior;
-	__Request__task_create_suid_cred_t Request_task_create_suid_cred;
-};
-#endif /* !__RequestUnion__task_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__task_subsystem__defined
-#define __Reply__task_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t child_task;
-		/* end of the kernel processed data */
-	} __Reply__task_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_terminate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t act_list;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t act_listCnt;
-	} __Reply__task_threads_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_ports_register_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t init_port_set;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t init_port_setCnt;
-	} __Reply__mach_ports_lookup_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t task_info_outCnt;
-		integer_t task_info_out[87];
-	} __Reply__task_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_suspend_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_resume_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t special_port;
-		/* end of the kernel processed data */
-	} __Reply__task_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t child_act;
-		/* end of the kernel processed data */
-	} __Reply__thread_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t child_act;
-		/* end of the kernel processed data */
-	} __Reply__thread_create_running_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlers[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__task_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlerss[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__task_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_lock_set;
-		/* end of the kernel processed data */
-	} __Reply__lock_set_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_set_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t semaphore;
-		/* end of the kernel processed data */
-	} __Reply__semaphore_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__semaphore_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_policy_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[16];
-		boolean_t get_default;
-	} __Reply__task_policy_get_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_sample_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_emulation_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t emulation_vector;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int vector_start;
-		mach_msg_type_number_t emulation_vectorCnt;
-	} __Reply__task_get_emulation_vector_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_emulation_vector_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_ras_pc_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t names;
-		mach_msg_ool_descriptor_t info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t namesCnt;
-		mach_msg_type_number_t infoCnt;
-	} __Reply__task_zone_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_assign_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t assigned_set;
-		/* end of the kernel processed data */
-	} __Reply__task_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t old_stateCnt;
-		natural_t old_state[614];
-	} __Reply__task_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int old_limit;
-	} __Reply__task_set_phys_footprint_limit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t suspend_token;
-		/* end of the kernel processed data */
-	} __Reply__task_suspend2_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_resume2_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		task_purgable_info_t stats;
-	} __Reply__task_purgable_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Reply__task_get_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_voucher;
-		/* end of the kernel processed data */
-	} __Reply__task_swap_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t corpse_task_port;
-		/* end of the kernel processed data */
-	} __Reply__task_generate_corpse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t kcd_addr_begin;
-		uint32_t kcd_size;
-	} __Reply__task_map_corpse_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_register_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_unregister_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t dyld_images;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dyld_imagesCnt;
-	} __Reply__task_get_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_register_dyld_shared_cache_image_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_register_dyld_set_dyld_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		dyld_kernel_process_info_t dyld_process_state;
-	} __Reply__task_register_dyld_get_process_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_address_t kcd_addr_begin;
-		mach_vm_size_t kcd_size;
-	} __Reply__task_map_corpse_info_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t info_outCnt;
-		integer_t info_out[4];
-	} __Reply__task_inspect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		task_exc_guard_behavior_t behavior;
-	} __Reply__task_get_exc_guard_behavior_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_exc_guard_behavior_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t delegation;
-		/* end of the kernel processed data */
-	} __Reply__task_create_suid_cred_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__task_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__task_subsystem__defined
-#define __ReplyUnion__task_subsystem__defined
-union __ReplyUnion__task_subsystem {
-	__Reply__task_create_t Reply_task_create;
-	__Reply__task_terminate_t Reply_task_terminate;
-	__Reply__task_threads_t Reply_task_threads;
-	__Reply__mach_ports_register_t Reply_mach_ports_register;
-	__Reply__mach_ports_lookup_t Reply_mach_ports_lookup;
-	__Reply__task_info_t Reply_task_info;
-	__Reply__task_set_info_t Reply_task_set_info;
-	__Reply__task_suspend_t Reply_task_suspend;
-	__Reply__task_resume_t Reply_task_resume;
-	__Reply__task_get_special_port_t Reply_task_get_special_port;
-	__Reply__task_set_special_port_t Reply_task_set_special_port;
-	__Reply__thread_create_t Reply_thread_create;
-	__Reply__thread_create_running_t Reply_thread_create_running;
-	__Reply__task_set_exception_ports_t Reply_task_set_exception_ports;
-	__Reply__task_get_exception_ports_t Reply_task_get_exception_ports;
-	__Reply__task_swap_exception_ports_t Reply_task_swap_exception_ports;
-	__Reply__lock_set_create_t Reply_lock_set_create;
-	__Reply__lock_set_destroy_t Reply_lock_set_destroy;
-	__Reply__semaphore_create_t Reply_semaphore_create;
-	__Reply__semaphore_destroy_t Reply_semaphore_destroy;
-	__Reply__task_policy_set_t Reply_task_policy_set;
-	__Reply__task_policy_get_t Reply_task_policy_get;
-	__Reply__task_sample_t Reply_task_sample;
-	__Reply__task_policy_t Reply_task_policy;
-	__Reply__task_set_emulation_t Reply_task_set_emulation;
-	__Reply__task_get_emulation_vector_t Reply_task_get_emulation_vector;
-	__Reply__task_set_emulation_vector_t Reply_task_set_emulation_vector;
-	__Reply__task_set_ras_pc_t Reply_task_set_ras_pc;
-	__Reply__task_zone_info_t Reply_task_zone_info;
-	__Reply__task_assign_t Reply_task_assign;
-	__Reply__task_assign_default_t Reply_task_assign_default;
-	__Reply__task_get_assignment_t Reply_task_get_assignment;
-	__Reply__task_set_policy_t Reply_task_set_policy;
-	__Reply__task_get_state_t Reply_task_get_state;
-	__Reply__task_set_state_t Reply_task_set_state;
-	__Reply__task_set_phys_footprint_limit_t Reply_task_set_phys_footprint_limit;
-	__Reply__task_suspend2_t Reply_task_suspend2;
-	__Reply__task_resume2_t Reply_task_resume2;
-	__Reply__task_purgable_info_t Reply_task_purgable_info;
-	__Reply__task_get_mach_voucher_t Reply_task_get_mach_voucher;
-	__Reply__task_set_mach_voucher_t Reply_task_set_mach_voucher;
-	__Reply__task_swap_mach_voucher_t Reply_task_swap_mach_voucher;
-	__Reply__task_generate_corpse_t Reply_task_generate_corpse;
-	__Reply__task_map_corpse_info_t Reply_task_map_corpse_info;
-	__Reply__task_register_dyld_image_infos_t Reply_task_register_dyld_image_infos;
-	__Reply__task_unregister_dyld_image_infos_t Reply_task_unregister_dyld_image_infos;
-	__Reply__task_get_dyld_image_infos_t Reply_task_get_dyld_image_infos;
-	__Reply__task_register_dyld_shared_cache_image_info_t Reply_task_register_dyld_shared_cache_image_info;
-	__Reply__task_register_dyld_set_dyld_state_t Reply_task_register_dyld_set_dyld_state;
-	__Reply__task_register_dyld_get_process_state_t Reply_task_register_dyld_get_process_state;
-	__Reply__task_map_corpse_info_64_t Reply_task_map_corpse_info_64;
-	__Reply__task_inspect_t Reply_task_inspect;
-	__Reply__task_get_exc_guard_behavior_t Reply_task_get_exc_guard_behavior;
-	__Reply__task_set_exc_guard_behavior_t Reply_task_set_exc_guard_behavior;
-	__Reply__task_create_suid_cred_t Reply_task_create_suid_cred;
-};
-#endif /* !__RequestUnion__task_subsystem__defined */
-
-#ifndef subsystem_to_name_map_task
-#define subsystem_to_name_map_task \
-    { "task_create", 3400 },\
-    { "task_terminate", 3401 },\
-    { "task_threads", 3402 },\
-    { "mach_ports_register", 3403 },\
-    { "mach_ports_lookup", 3404 },\
-    { "task_info", 3405 },\
-    { "task_set_info", 3406 },\
-    { "task_suspend", 3407 },\
-    { "task_resume", 3408 },\
-    { "task_get_special_port", 3409 },\
-    { "task_set_special_port", 3410 },\
-    { "thread_create", 3411 },\
-    { "thread_create_running", 3412 },\
-    { "task_set_exception_ports", 3413 },\
-    { "task_get_exception_ports", 3414 },\
-    { "task_swap_exception_ports", 3415 },\
-    { "lock_set_create", 3416 },\
-    { "lock_set_destroy", 3417 },\
-    { "semaphore_create", 3418 },\
-    { "semaphore_destroy", 3419 },\
-    { "task_policy_set", 3420 },\
-    { "task_policy_get", 3421 },\
-    { "task_sample", 3422 },\
-    { "task_policy", 3423 },\
-    { "task_set_emulation", 3424 },\
-    { "task_get_emulation_vector", 3425 },\
-    { "task_set_emulation_vector", 3426 },\
-    { "task_set_ras_pc", 3427 },\
-    { "task_zone_info", 3428 },\
-    { "task_assign", 3429 },\
-    { "task_assign_default", 3430 },\
-    { "task_get_assignment", 3431 },\
-    { "task_set_policy", 3432 },\
-    { "task_get_state", 3433 },\
-    { "task_set_state", 3434 },\
-    { "task_set_phys_footprint_limit", 3435 },\
-    { "task_suspend2", 3436 },\
-    { "task_resume2", 3437 },\
-    { "task_purgable_info", 3438 },\
-    { "task_get_mach_voucher", 3439 },\
-    { "task_set_mach_voucher", 3440 },\
-    { "task_swap_mach_voucher", 3441 },\
-    { "task_generate_corpse", 3442 },\
-    { "task_map_corpse_info", 3443 },\
-    { "task_register_dyld_image_infos", 3444 },\
-    { "task_unregister_dyld_image_infos", 3445 },\
-    { "task_get_dyld_image_infos", 3446 },\
-    { "task_register_dyld_shared_cache_image_info", 3447 },\
-    { "task_register_dyld_set_dyld_state", 3448 },\
-    { "task_register_dyld_get_process_state", 3449 },\
-    { "task_map_corpse_info_64", 3450 },\
-    { "task_inspect", 3451 },\
-    { "task_get_exc_guard_behavior", 3452 },\
-    { "task_set_exc_guard_behavior", 3453 },\
-    { "task_create_suid_cred", 3454 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _task_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/task_info.h b/lib/libc/include/x86_64-macos.10-none/mach/task_info.h
deleted file mode 100644
index 5b2046a700619854dcdc5edf1594dc1ac6c89136..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/task_info.h
+++ /dev/null
@@ -1,478 +0,0 @@
-/*
- * Copyright (c) 2000-2007, 2015 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@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- *	Machine-independent task information structures and definitions.
- *
- *	The definitions in this file are exported to the user.  The kernel
- *	will translate its internal data structures to these structures
- *	as appropriate.
- *
- */
-
-#ifndef _MACH_TASK_INFO_H_
-#define _MACH_TASK_INFO_H_
-
-#include 
-#include 
-#include 
-#include 
-#include  /* for vm_extmod_statistics_data_t */
-#include 
-
-#include 
-
-/*
- *	Generic information structure to allow for expansion.
- */
-typedef natural_t       task_flavor_t;
-typedef integer_t       *task_info_t;           /* varying array of int */
-
-/* Deprecated, use per structure _data_t's instead */
-#define TASK_INFO_MAX   (1024)          /* maximum array size */
-typedef integer_t       task_info_data_t[TASK_INFO_MAX];
-
-/*
- *	Currently defined information structures.
- */
-
-#pragma pack(push, 4)
-
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-#define TASK_BASIC_INFO_32      4       /* basic information */
-#define TASK_BASIC2_INFO_32      6
-
-struct task_basic_info_32 {
-	integer_t       suspend_count;  /* suspend count for task */
-	natural_t       virtual_size;   /* virtual memory size (bytes) */
-	natural_t       resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-typedef struct task_basic_info_32       task_basic_info_32_data_t;
-typedef struct task_basic_info_32       *task_basic_info_32_t;
-#define TASK_BASIC_INFO_32_COUNT   \
-	        (sizeof(task_basic_info_32_data_t) / sizeof(natural_t))
-
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-struct task_basic_info_64 {
-	integer_t       suspend_count;  /* suspend count for task */
-	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
-	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-typedef struct task_basic_info_64       task_basic_info_64_data_t;
-typedef struct task_basic_info_64       *task_basic_info_64_t;
-
-#define TASK_BASIC_INFO_64      5       /* 64-bit capable basic info */
-#define TASK_BASIC_INFO_64_COUNT   \
-	        (sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
-
-
-/* localized structure - cannot be safely passed between tasks of differing sizes */
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-struct task_basic_info {
-	integer_t       suspend_count;  /* suspend count for task */
-	vm_size_t       virtual_size;   /* virtual memory size (bytes) */
-	vm_size_t       resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-
-typedef struct task_basic_info          task_basic_info_data_t;
-typedef struct task_basic_info          *task_basic_info_t;
-#define TASK_BASIC_INFO_COUNT   \
-	        (sizeof(task_basic_info_data_t) / sizeof(natural_t))
-#if !defined(__LP64__)
-#define TASK_BASIC_INFO TASK_BASIC_INFO_32
-#else
-#define TASK_BASIC_INFO TASK_BASIC_INFO_64
-#endif
-
-
-
-#define TASK_EVENTS_INFO        2       /* various event counts */
-
-struct task_events_info {
-	integer_t       faults;         /* number of page faults */
-	integer_t       pageins;        /* number of actual pageins */
-	integer_t       cow_faults;     /* number of copy-on-write faults */
-	integer_t       messages_sent;  /* number of messages sent */
-	integer_t       messages_received; /* number of messages received */
-	integer_t       syscalls_mach;  /* number of mach system calls */
-	integer_t       syscalls_unix;  /* number of unix system calls */
-	integer_t       csw;            /* number of context switches */
-};
-typedef struct task_events_info         task_events_info_data_t;
-typedef struct task_events_info         *task_events_info_t;
-#define TASK_EVENTS_INFO_COUNT          ((mach_msg_type_number_t) \
-	        (sizeof(task_events_info_data_t) / sizeof(natural_t)))
-
-#define TASK_THREAD_TIMES_INFO  3       /* total times for live threads -
-	                                 *  only accurate if suspended */
-
-struct task_thread_times_info {
-	time_value_t    user_time;      /* total user run time for
-	                                 *  live threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  live threads */
-};
-
-typedef struct task_thread_times_info   task_thread_times_info_data_t;
-typedef struct task_thread_times_info   *task_thread_times_info_t;
-#define TASK_THREAD_TIMES_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof(task_thread_times_info_data_t) / sizeof(natural_t)))
-
-#define TASK_ABSOLUTETIME_INFO  1
-
-struct task_absolutetime_info {
-	uint64_t                total_user;
-	uint64_t                total_system;
-	uint64_t                threads_user;   /* existing threads only */
-	uint64_t                threads_system;
-};
-
-typedef struct task_absolutetime_info   task_absolutetime_info_data_t;
-typedef struct task_absolutetime_info   *task_absolutetime_info_t;
-#define TASK_ABSOLUTETIME_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof (task_absolutetime_info_data_t) / sizeof (natural_t)))
-
-#define TASK_KERNELMEMORY_INFO  7
-
-struct task_kernelmemory_info {
-	uint64_t                total_palloc;   /* private kernel mem alloc'ed */
-	uint64_t                total_pfree;    /* private kernel mem freed */
-	uint64_t                total_salloc;   /* shared kernel mem alloc'ed */
-	uint64_t                total_sfree;    /* shared kernel mem freed */
-};
-
-typedef struct task_kernelmemory_info   task_kernelmemory_info_data_t;
-typedef struct task_kernelmemory_info   *task_kernelmemory_info_t;
-#define TASK_KERNELMEMORY_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof (task_kernelmemory_info_data_t) / sizeof (natural_t)))
-
-#define TASK_SECURITY_TOKEN             13
-#define TASK_SECURITY_TOKEN_COUNT       ((mach_msg_type_number_t) \
-	        (sizeof(security_token_t) / sizeof(natural_t)))
-
-#define TASK_AUDIT_TOKEN                15
-#define TASK_AUDIT_TOKEN_COUNT  \
-	        (sizeof(audit_token_t) / sizeof(natural_t))
-
-
-#define TASK_AFFINITY_TAG_INFO          16      /* This is experimental. */
-
-struct task_affinity_tag_info {
-	integer_t               set_count;
-	integer_t               min;
-	integer_t               max;
-	integer_t               task_count;
-};
-typedef struct task_affinity_tag_info   task_affinity_tag_info_data_t;
-typedef struct task_affinity_tag_info   *task_affinity_tag_info_t;
-#define TASK_AFFINITY_TAG_INFO_COUNT    \
-	        (sizeof(task_affinity_tag_info_data_t) / sizeof(natural_t))
-
-#define TASK_DYLD_INFO                  17
-
-struct task_dyld_info {
-	mach_vm_address_t       all_image_info_addr;
-	mach_vm_size_t          all_image_info_size;
-	integer_t               all_image_info_format;
-};
-typedef struct task_dyld_info   task_dyld_info_data_t;
-typedef struct task_dyld_info   *task_dyld_info_t;
-#define TASK_DYLD_INFO_COUNT    \
-	        (sizeof(task_dyld_info_data_t) / sizeof(natural_t))
-#define TASK_DYLD_ALL_IMAGE_INFO_32     0       /* format value */
-#define TASK_DYLD_ALL_IMAGE_INFO_64     1       /* format value */
-
-
-#define TASK_EXTMOD_INFO                        19
-
-struct task_extmod_info {
-	unsigned char   task_uuid[16];
-	vm_extmod_statistics_data_t             extmod_statistics;
-};
-typedef struct task_extmod_info task_extmod_info_data_t;
-typedef struct task_extmod_info *task_extmod_info_t;
-#define TASK_EXTMOD_INFO_COUNT  \
-	        (sizeof(task_extmod_info_data_t) / sizeof(natural_t))
-
-
-#define MACH_TASK_BASIC_INFO     20         /* always 64-bit basic info */
-struct mach_task_basic_info {
-	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
-	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
-	mach_vm_size_t  resident_size_max;  /* maximum resident memory size (bytes) */
-	time_value_t    user_time;          /* total user run time for
-	                                     *  terminated threads */
-	time_value_t    system_time;        /* total system run time for
-	                                     *  terminated threads */
-	policy_t        policy;             /* default policy for new threads */
-	integer_t       suspend_count;      /* suspend count for task */
-};
-typedef struct mach_task_basic_info       mach_task_basic_info_data_t;
-typedef struct mach_task_basic_info       *mach_task_basic_info_t;
-#define MACH_TASK_BASIC_INFO_COUNT   \
-	        (sizeof(mach_task_basic_info_data_t) / sizeof(natural_t))
-
-
-#define TASK_POWER_INFO 21
-
-struct task_power_info {
-	uint64_t                total_user;
-	uint64_t                total_system;
-	uint64_t                task_interrupt_wakeups;
-	uint64_t                task_platform_idle_wakeups;
-	uint64_t                task_timer_wakeups_bin_1;
-	uint64_t                task_timer_wakeups_bin_2;
-};
-
-typedef struct task_power_info  task_power_info_data_t;
-typedef struct task_power_info  *task_power_info_t;
-#define TASK_POWER_INFO_COUNT   ((mach_msg_type_number_t) \
-	        (sizeof (task_power_info_data_t) / sizeof (natural_t)))
-
-
-
-#define TASK_VM_INFO            22
-#define TASK_VM_INFO_PURGEABLE  23
-struct task_vm_info {
-	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
-	integer_t       region_count;       /* number of memory regions */
-	integer_t       page_size;
-	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
-	mach_vm_size_t  resident_size_peak; /* peak resident size (bytes) */
-
-	mach_vm_size_t  device;
-	mach_vm_size_t  device_peak;
-	mach_vm_size_t  internal;
-	mach_vm_size_t  internal_peak;
-	mach_vm_size_t  external;
-	mach_vm_size_t  external_peak;
-	mach_vm_size_t  reusable;
-	mach_vm_size_t  reusable_peak;
-	mach_vm_size_t  purgeable_volatile_pmap;
-	mach_vm_size_t  purgeable_volatile_resident;
-	mach_vm_size_t  purgeable_volatile_virtual;
-	mach_vm_size_t  compressed;
-	mach_vm_size_t  compressed_peak;
-	mach_vm_size_t  compressed_lifetime;
-
-	/* added for rev1 */
-	mach_vm_size_t  phys_footprint;
-
-	/* added for rev2 */
-	mach_vm_address_t       min_address;
-	mach_vm_address_t       max_address;
-
-	/* added for rev3 */
-	int64_t ledger_phys_footprint_peak;
-	int64_t ledger_purgeable_nonvolatile;
-	int64_t ledger_purgeable_novolatile_compressed;
-	int64_t ledger_purgeable_volatile;
-	int64_t ledger_purgeable_volatile_compressed;
-	int64_t ledger_tag_network_nonvolatile;
-	int64_t ledger_tag_network_nonvolatile_compressed;
-	int64_t ledger_tag_network_volatile;
-	int64_t ledger_tag_network_volatile_compressed;
-	int64_t ledger_tag_media_footprint;
-	int64_t ledger_tag_media_footprint_compressed;
-	int64_t ledger_tag_media_nofootprint;
-	int64_t ledger_tag_media_nofootprint_compressed;
-	int64_t ledger_tag_graphics_footprint;
-	int64_t ledger_tag_graphics_footprint_compressed;
-	int64_t ledger_tag_graphics_nofootprint;
-	int64_t ledger_tag_graphics_nofootprint_compressed;
-	int64_t ledger_tag_neural_footprint;
-	int64_t ledger_tag_neural_footprint_compressed;
-	int64_t ledger_tag_neural_nofootprint;
-	int64_t ledger_tag_neural_nofootprint_compressed;
-
-	/* added for rev4 */
-	uint64_t limit_bytes_remaining;
-
-	/* added for rev5 */
-	integer_t decompressions;
-};
-typedef struct task_vm_info     task_vm_info_data_t;
-typedef struct task_vm_info     *task_vm_info_t;
-#define TASK_VM_INFO_COUNT      ((mach_msg_type_number_t) \
-	        (sizeof (task_vm_info_data_t) / sizeof (natural_t)))
-#define TASK_VM_INFO_REV5_COUNT TASK_VM_INFO_COUNT
-#define TASK_VM_INFO_REV4_COUNT /* doesn't include decompressions */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV5_COUNT - 1))
-#define TASK_VM_INFO_REV3_COUNT /* doesn't include limit bytes */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV4_COUNT - 2))
-#define TASK_VM_INFO_REV2_COUNT /* doesn't include extra ledgers info */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV3_COUNT - 42))
-#define TASK_VM_INFO_REV1_COUNT /* doesn't include min and max address */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV2_COUNT - 4))
-#define TASK_VM_INFO_REV0_COUNT /* doesn't include phys_footprint */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV1_COUNT - 2))
-
-typedef struct vm_purgeable_info        task_purgable_info_t;
-
-
-#define TASK_TRACE_MEMORY_INFO  24
-struct task_trace_memory_info {
-	uint64_t  user_memory_address;  /* address of start of trace memory buffer */
-	uint64_t  buffer_size;                  /* size of buffer in bytes */
-	uint64_t  mailbox_array_size;   /* size of mailbox area in bytes */
-};
-typedef struct task_trace_memory_info task_trace_memory_info_data_t;
-typedef struct task_trace_memory_info * task_trace_memory_info_t;
-#define TASK_TRACE_MEMORY_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_trace_memory_info_data_t) / sizeof(natural_t)))
-
-#define TASK_WAIT_STATE_INFO  25    /* deprecated. */
-struct task_wait_state_info {
-	uint64_t  total_wait_state_time;        /* Time that all threads past and present have been in a wait state */
-	uint64_t  total_wait_sfi_state_time;    /* Time that threads have been in SFI wait (should be a subset of total wait state time */
-	uint32_t  _reserved[4];
-};
-typedef struct task_wait_state_info task_wait_state_info_data_t;
-typedef struct task_wait_state_info * task_wait_state_info_t;
-#define TASK_WAIT_STATE_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_wait_state_info_data_t) / sizeof(natural_t)))
-
-#define TASK_POWER_INFO_V2      26
-
-typedef struct {
-	uint64_t                task_gpu_utilisation;
-	uint64_t                task_gpu_stat_reserved0;
-	uint64_t                task_gpu_stat_reserved1;
-	uint64_t                task_gpu_stat_reserved2;
-} gpu_energy_data;
-
-typedef gpu_energy_data *gpu_energy_data_t;
-struct task_power_info_v2 {
-	task_power_info_data_t  cpu_energy;
-	gpu_energy_data gpu_energy;
-	uint64_t                task_ptime;
-	uint64_t                task_pset_switches;
-};
-
-typedef struct task_power_info_v2       task_power_info_v2_data_t;
-typedef struct task_power_info_v2       *task_power_info_v2_t;
-#define TASK_POWER_INFO_V2_COUNT_OLD    \
-	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) - sizeof(uint64_t)*2) / sizeof (natural_t))
-#define TASK_POWER_INFO_V2_COUNT        \
-	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) / sizeof (natural_t)))
-
-#define TASK_VM_INFO_PURGEABLE_ACCOUNT 27 /* Used for xnu purgeable vm unit tests */
-
-
-#define TASK_FLAGS_INFO  28                     /* return t_flags field */
-struct task_flags_info {
-	uint32_t        flags;                          /* task flags */
-};
-typedef struct task_flags_info task_flags_info_data_t;
-typedef struct task_flags_info * task_flags_info_t;
-#define TASK_FLAGS_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_flags_info_data_t) / sizeof (natural_t)))
-
-#define TF_LP64         0x00000001 /* task has 64-bit addressing */
-#define TF_64B_DATA     0x00000002 /* task has 64-bit data registers */
-
-#define TASK_DEBUG_INFO_INTERNAL    29 /* Used for kernel internal development tests. */
-
-
-/*
- * Type to control EXC_GUARD delivery options for a task
- * via task_get/set_exc_guard_behavior interface(s).
- */
-typedef uint32_t task_exc_guard_behavior_t;
-
-/* EXC_GUARD optional delivery settings on a per-task basis */
-#define TASK_EXC_GUARD_VM_DELIVER            0x01 /* Deliver virtual memory EXC_GUARD exceptions */
-#define TASK_EXC_GUARD_VM_ONCE               0x02 /* Deliver them only once */
-#define TASK_EXC_GUARD_VM_CORPSE             0x04 /* Deliver them via a forked corpse */
-#define TASK_EXC_GUARD_VM_FATAL              0x08 /* Virtual Memory EXC_GUARD delivery is fatal */
-#define TASK_EXC_GUARD_VM_ALL                0x0f
-
-#define TASK_EXC_GUARD_MP_DELIVER            0x10 /* Deliver mach port EXC_GUARD exceptions */
-#define TASK_EXC_GUARD_MP_ONCE               0x20 /* Deliver them only once */
-#define TASK_EXC_GUARD_MP_CORPSE             0x40 /* Deliver them via a forked corpse */
-#define TASK_EXC_GUARD_MP_FATAL              0x80 /* mach port EXC_GUARD delivery is fatal */
-#define TASK_EXC_GUARD_MP_ALL                0xf0
-
-#define TASK_EXC_GUARD_ALL                   0xff /* All optional deliver settings */
-
-
-/*
- * Obsolete interfaces.
- */
-
-#define TASK_SCHED_TIMESHARE_INFO       10
-#define TASK_SCHED_RR_INFO              11
-#define TASK_SCHED_FIFO_INFO            12
-
-#define TASK_SCHED_INFO                 14
-
-#pragma pack(pop)
-
-#endif  /* _MACH_TASK_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/task_inspect.h b/lib/libc/include/x86_64-macos.10-none/mach/task_inspect.h
deleted file mode 100644
index 1ae3c6e5f1c75824f19ad6016d656da42d1774e1..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/task_inspect.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2017 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 MACH_TASK_INSPECT_H
-#define MACH_TASK_INSPECT_H
-
-/*
- * XXX These interfaces are still in development -- they are subject to change
- * without notice.
- */
-
-typedef natural_t task_inspect_flavor_t;
-
-enum task_inspect_flavor {
-	TASK_INSPECT_BASIC_COUNTS = 1,
-};
-
-struct task_inspect_basic_counts {
-	uint64_t instructions;
-	uint64_t cycles;
-};
-#define TASK_INSPECT_BASIC_COUNTS_COUNT \
-	(sizeof(struct task_inspect_basic_counts) / sizeof(natural_t))
-typedef struct task_inspect_basic_counts task_inspect_basic_counts_data_t;
-typedef struct task_inspect_basic_counts *task_inspect_basic_counts_t;
-
-typedef integer_t *task_inspect_info_t;
-
-#endif /* !defined(MACH_TASK_INSPECT_H) */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/task_policy.h b/lib/libc/include/x86_64-macos.10-none/mach/task_policy.h
deleted file mode 100644
index 4b6d3f9449d3f4c265edbef76b1fe818642ac43a..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/task_policy.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (c) 2000-2005 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 _MACH_TASK_POLICY_H_
-#define _MACH_TASK_POLICY_H_
-
-#include 
-
-/*
- * These are the calls for accessing the policy parameters
- * of a particular task.
- *
- * The extra 'get_default' parameter to the second call is
- * IN/OUT as follows:
- * 1) if asserted on the way in it indicates that the default
- * values should be returned, not the ones currently set, in
- * this case 'get_default' will always be asserted on return;
- * 2) if unasserted on the way in, the current settings are
- * desired and if still unasserted on return, then the info
- * returned reflects the current settings, otherwise if
- * 'get_default' returns asserted, it means that there are no
- * current settings due to other parameters taking precedence,
- * and the default ones are being returned instead.
- */
-
-typedef natural_t       task_policy_flavor_t;
-typedef integer_t       *task_policy_t;
-
-/*
- *  kern_return_t	task_policy_set(
- *                                       task_t					task,
- *                                       task_policy_flavor_t	flavor,
- *                                       task_policy_t			policy_info,
- *                                       mach_msg_type_number_t	count);
- *
- *  kern_return_t	task_policy_get(
- *                                       task_t					task,
- *                                       task_policy_flavor_t	flavor,
- *                                       task_policy_t			policy_info,
- *                                       mach_msg_type_number_t	*count,
- *                                       boolean_t				*get_default);
- */
-
-/*
- * Defined flavors.
- */
-/*
- * TASK_CATEGORY_POLICY:
- *
- * This provides information to the kernel about the role
- * of the task in the system.
- *
- * Parameters:
- *
- * role: Enumerated as follows:
- *
- * TASK_UNSPECIFIED is the default, since the role is not
- * inherited from the parent.
- *
- * TASK_FOREGROUND_APPLICATION should be assigned when the
- * task is a normal UI application in the foreground from
- * the HI point of view.
- * **N.B. There may be more than one of these at a given time.
- *
- * TASK_BACKGROUND_APPLICATION should be assigned when the
- * task is a normal UI application in the background from
- * the HI point of view.
- *
- * TASK_CONTROL_APPLICATION should be assigned to the unique
- * UI application which implements the pop-up application dialog.
- * There can only be one task at a time with this designation,
- * which is assigned FCFS.
- *
- * TASK_GRAPHICS_SERVER should be assigned to the graphics
- * management (window) server.  There can only be one task at
- * a time with this designation, which is assigned FCFS.
- */
-
-#define TASK_CATEGORY_POLICY            1
-
-#define TASK_SUPPRESSION_POLICY         3
-#define TASK_POLICY_STATE               4
-#define TASK_BASE_QOS_POLICY            8
-#define TASK_OVERRIDE_QOS_POLICY        9
-#define TASK_BASE_LATENCY_QOS_POLICY    10
-#define TASK_BASE_THROUGHPUT_QOS_POLICY 11
-
-
-enum task_role {
-	TASK_RENICED                    = -1,
-	TASK_UNSPECIFIED                = 0,
-	TASK_FOREGROUND_APPLICATION     = 1,
-	TASK_BACKGROUND_APPLICATION     = 2,
-	TASK_CONTROL_APPLICATION        = 3,
-	TASK_GRAPHICS_SERVER            = 4,
-	TASK_THROTTLE_APPLICATION       = 5,
-	TASK_NONUI_APPLICATION          = 6,
-	TASK_DEFAULT_APPLICATION        = 7,
-	TASK_DARWINBG_APPLICATION       = 8,
-};
-
-typedef integer_t       task_role_t;
-
-struct task_category_policy {
-	task_role_t             role;
-};
-
-typedef struct task_category_policy             task_category_policy_data_t;
-typedef struct task_category_policy             *task_category_policy_t;
-
-#define TASK_CATEGORY_POLICY_COUNT      ((mach_msg_type_number_t) \
-	(sizeof (task_category_policy_data_t) / sizeof (integer_t)))
-
-
-enum task_latency_qos {
-	LATENCY_QOS_TIER_UNSPECIFIED = 0x0,
-	LATENCY_QOS_TIER_0 = ((0xFF << 16) | 1),
-	LATENCY_QOS_TIER_1 = ((0xFF << 16) | 2),
-	LATENCY_QOS_TIER_2 = ((0xFF << 16) | 3),
-	LATENCY_QOS_TIER_3 = ((0xFF << 16) | 4),
-	LATENCY_QOS_TIER_4 = ((0xFF << 16) | 5),
-	LATENCY_QOS_TIER_5 = ((0xFF << 16) | 6)
-};
-typedef integer_t       task_latency_qos_t;
-enum task_throughput_qos {
-	THROUGHPUT_QOS_TIER_UNSPECIFIED = 0x0,
-	THROUGHPUT_QOS_TIER_0 = ((0xFE << 16) | 1),
-	THROUGHPUT_QOS_TIER_1 = ((0xFE << 16) | 2),
-	THROUGHPUT_QOS_TIER_2 = ((0xFE << 16) | 3),
-	THROUGHPUT_QOS_TIER_3 = ((0xFE << 16) | 4),
-	THROUGHPUT_QOS_TIER_4 = ((0xFE << 16) | 5),
-	THROUGHPUT_QOS_TIER_5 = ((0xFE << 16) | 6),
-};
-
-#define LATENCY_QOS_LAUNCH_DEFAULT_TIER LATENCY_QOS_TIER_3
-#define THROUGHPUT_QOS_LAUNCH_DEFAULT_TIER THROUGHPUT_QOS_TIER_3
-
-typedef integer_t       task_throughput_qos_t;
-
-struct task_qos_policy {
-	task_latency_qos_t task_latency_qos_tier;
-	task_throughput_qos_t task_throughput_qos_tier;
-};
-
-typedef struct task_qos_policy *task_qos_policy_t;
-#define TASK_QOS_POLICY_COUNT   ((mach_msg_type_number_t) \
-	(sizeof (struct task_qos_policy) / sizeof (integer_t)))
-
-/* These should be removed - they belong in proc_info.h */
-#define PROC_FLAG_DARWINBG           0x8000    /* process in darwin background */
-#define PROC_FLAG_EXT_DARWINBG           0x10000   /* process in darwin background - external enforcement */
-#define PROC_FLAG_IOS_APPLEDAEMON    0x20000   /* process is apple ios daemon */
-#define PROC_FLAG_IOS_IMPPROMOTION   0x80000   /* process is apple ios daemon */
-#define PROC_FLAG_ADAPTIVE           0x100000  /* Process is adaptive */
-#define PROC_FLAG_ADAPTIVE_IMPORTANT 0x200000  /* Process is adaptive, and is currently important */
-#define PROC_FLAG_IMPORTANCE_DONOR   0x400000  /* Process is marked as an importance donor */
-#define PROC_FLAG_SUPPRESSED         0x800000  /* Process is suppressed */
-#define PROC_FLAG_APPLICATION        0x1000000 /* Process is an application */
-#define PROC_FLAG_IOS_APPLICATION PROC_FLAG_APPLICATION /* Process is an application */
-
-
-
-
-#endif  /* _MACH_TASK_POLICY_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/task_special_ports.h b/lib/libc/include/x86_64-macos.10-none/mach/task_special_ports.h
deleted file mode 100644
index f8ee7c2bbfa5ef547e9e524c525be95682a444b8..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/task_special_ports.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2000-2010 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/task_special_ports.h
- *
- *	Defines codes for special_purpose task ports.  These are NOT
- *	port identifiers - they are only used for the task_get_special_port
- *	and task_set_special_port routines.
- *
- */
-
-#ifndef _MACH_TASK_SPECIAL_PORTS_H_
-#define _MACH_TASK_SPECIAL_PORTS_H_
-
-typedef int     task_special_port_t;
-
-#define TASK_KERNEL_PORT        1       /* Represents task to the outside
-	                                 *  world.*/
-
-#define TASK_HOST_PORT          2       /* The host (priv) port for task.  */
-
-#define TASK_NAME_PORT          3       /* the name (unpriv) port for task */
-
-#define TASK_BOOTSTRAP_PORT     4       /* Bootstrap environment for task. */
-
-/*
- * Evolving and likely to change.
- */
-
-#define TASK_SEATBELT_PORT      7       /* Seatbelt compiler/DEM port for task. */
-
-/* PORT 8 was the GSSD TASK PORT which transformed to a host port */
-
-#define TASK_ACCESS_PORT        9       /* Permission check for task_for_pid. */
-
-#define TASK_DEBUG_CONTROL_PORT 10      /* debug control port */
-
-#define TASK_RESOURCE_NOTIFY_PORT   11  /* overrides host special RN port */
-
-#define TASK_MAX_SPECIAL_PORT TASK_RESOURCE_NOTIFY_PORT
-
-/*
- *	Definitions for ease of use
- */
-
-#define task_get_kernel_port(task, port)        \
-	        (task_get_special_port((task), TASK_KERNEL_PORT, (port)))
-
-#define task_set_kernel_port(task, port)        \
-	        (task_set_special_port((task), TASK_KERNEL_PORT, (port)))
-
-#define task_get_host_port(task, port)          \
-	        (task_get_special_port((task), TASK_HOST_PORT, (port)))
-
-#define task_set_host_port(task, port)  \
-	        (task_set_special_port((task), TASK_HOST_PORT, (port)))
-
-#define task_get_bootstrap_port(task, port)     \
-	        (task_get_special_port((task), TASK_BOOTSTRAP_PORT, (port)))
-
-#define task_get_debug_control_port(task, port) \
-	        (task_get_special_port((task), TASK_DEBUG_CONTROL_PORT, (port)))
-
-#define task_set_bootstrap_port(task, port)     \
-	        (task_set_special_port((task), TASK_BOOTSTRAP_PORT, (port)))
-
-#define task_get_task_access_port(task, port)   \
-	        (task_get_special_port((task), TASK_ACCESS_PORT, (port)))
-
-#define task_set_task_access_port(task, port)   \
-	        (task_set_special_port((task), TASK_ACCESS_PORT, (port)))
-
-#define task_set_task_debug_control_port(task, port) \
-	        (task_set_special_port((task), TASK_DEBUG_CONTROL_PORT, (port)))
-
-
-#endif  /* _MACH_TASK_SPECIAL_PORTS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/thread_act.h b/lib/libc/include/x86_64-macos.10-none/mach/thread_act.h
deleted file mode 100644
index 88561082cd080abb01420c474d79e76280f9f812..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/thread_act.h
+++ /dev/null
@@ -1,1336 +0,0 @@
-#ifndef	_thread_act_user_
-#define	_thread_act_user_
-
-/* Module thread_act */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	thread_act_MSG_COUNT
-#define	thread_act_MSG_COUNT	28
-#endif	/* thread_act_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine thread_terminate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_terminate
-(
-	thread_act_t target_act
-);
-
-/* Routine act_get_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t act_get_state
-(
-	thread_act_t target_act,
-	int flavor,
-	thread_state_t old_state,
-	mach_msg_type_number_t *old_stateCnt
-);
-
-/* Routine act_set_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t act_set_state
-(
-	thread_act_t target_act,
-	int flavor,
-	thread_state_t new_state,
-	mach_msg_type_number_t new_stateCnt
-);
-
-/* Routine thread_get_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_get_state
-(
-	thread_act_t target_act,
-	thread_state_flavor_t flavor,
-	thread_state_t old_state,
-	mach_msg_type_number_t *old_stateCnt
-);
-
-/* Routine thread_set_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_set_state
-(
-	thread_act_t target_act,
-	thread_state_flavor_t flavor,
-	thread_state_t new_state,
-	mach_msg_type_number_t new_stateCnt
-);
-
-/* Routine thread_suspend */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_suspend
-(
-	thread_act_t target_act
-);
-
-/* Routine thread_resume */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_resume
-(
-	thread_act_t target_act
-);
-
-/* Routine thread_abort */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_abort
-(
-	thread_act_t target_act
-);
-
-/* Routine thread_abort_safely */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_abort_safely
-(
-	thread_act_t target_act
-);
-
-/* Routine thread_depress_abort */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_depress_abort
-(
-	thread_act_t thread
-);
-
-/* Routine thread_get_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_get_special_port
-(
-	thread_act_t thr_act,
-	int which_port,
-	mach_port_t *special_port
-);
-
-/* Routine thread_set_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_set_special_port
-(
-	thread_act_t thr_act,
-	int which_port,
-	mach_port_t special_port
-);
-
-/* Routine thread_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_info
-(
-	thread_inspect_t target_act,
-	thread_flavor_t flavor,
-	thread_info_t thread_info_out,
-	mach_msg_type_number_t *thread_info_outCnt
-);
-
-/* Routine thread_set_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_set_exception_ports
-(
-	thread_act_t thread,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor
-);
-
-/* Routine thread_get_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_get_exception_ports
-(
-	thread_inspect_t thread,
-	exception_mask_t exception_mask,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlers,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine thread_swap_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_swap_exception_ports
-(
-	thread_act_t thread,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlers,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine thread_policy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_policy
-(
-	thread_act_t thr_act,
-	policy_t policy,
-	policy_base_t base,
-	mach_msg_type_number_t baseCnt,
-	boolean_t set_limit
-);
-
-/* Routine thread_policy_set */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_policy_set
-(
-	thread_act_t thread,
-	thread_policy_flavor_t flavor,
-	thread_policy_t policy_info,
-	mach_msg_type_number_t policy_infoCnt
-);
-
-/* Routine thread_policy_get */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_policy_get
-(
-	thread_inspect_t thread,
-	thread_policy_flavor_t flavor,
-	thread_policy_t policy_info,
-	mach_msg_type_number_t *policy_infoCnt,
-	boolean_t *get_default
-);
-
-/* Routine thread_sample */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_sample
-(
-	thread_act_t thread,
-	mach_port_t reply
-);
-
-/* Routine etap_trace_thread */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t etap_trace_thread
-(
-	thread_act_t target_act,
-	boolean_t trace_status
-);
-
-/* Routine thread_assign */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_assign
-(
-	thread_act_t thread,
-	processor_set_t new_set
-);
-
-/* Routine thread_assign_default */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_assign_default
-(
-	thread_act_t thread
-);
-
-/* Routine thread_get_assignment */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_get_assignment
-(
-	thread_act_t thread,
-	processor_set_name_t *assigned_set
-);
-
-/* Routine thread_set_policy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_set_policy
-(
-	thread_act_t thr_act,
-	processor_set_t pset,
-	policy_t policy,
-	policy_base_t base,
-	mach_msg_type_number_t baseCnt,
-	policy_limit_t limit,
-	mach_msg_type_number_t limitCnt
-);
-
-/* Routine thread_get_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_get_mach_voucher
-(
-	thread_act_t thr_act,
-	mach_voucher_selector_t which,
-	ipc_voucher_t *voucher
-);
-
-/* Routine thread_set_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_set_mach_voucher
-(
-	thread_act_t thr_act,
-	ipc_voucher_t voucher
-);
-
-/* Routine thread_swap_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_swap_mach_voucher
-(
-	thread_act_t thr_act,
-	ipc_voucher_t new_voucher,
-	ipc_voucher_t *old_voucher
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__thread_act_subsystem__defined
-#define __Request__thread_act_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_terminate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int flavor;
-		mach_msg_type_number_t old_stateCnt;
-	} __Request__act_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Request__act_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t old_stateCnt;
-	} __Request__thread_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Request__thread_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_suspend_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_resume_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_abort_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_abort_safely_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_depress_abort_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int which_port;
-	} __Request__thread_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t special_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int which_port;
-	} __Request__thread_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_flavor_t flavor;
-		mach_msg_type_number_t thread_info_outCnt;
-	} __Request__thread_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__thread_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-	} __Request__thread_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__thread_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		policy_t policy;
-		mach_msg_type_number_t baseCnt;
-		integer_t base[5];
-		boolean_t set_limit;
-	} __Request__thread_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_policy_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[16];
-	} __Request__thread_policy_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_policy_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		boolean_t get_default;
-	} __Request__thread_policy_get_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t reply;
-		/* end of the kernel processed data */
-	} __Request__thread_sample_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		boolean_t trace_status;
-	} __Request__etap_trace_thread_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_set;
-		/* end of the kernel processed data */
-	} __Request__thread_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_assign_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t pset;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		policy_t policy;
-		mach_msg_type_number_t baseCnt;
-		integer_t base[5];
-		mach_msg_type_number_t limitCnt;
-		integer_t limit[1];
-	} __Request__thread_set_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_voucher_selector_t which;
-	} __Request__thread_get_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Request__thread_set_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_voucher;
-		mach_msg_port_descriptor_t old_voucher;
-		/* end of the kernel processed data */
-	} __Request__thread_swap_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__thread_act_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__thread_act_subsystem__defined
-#define __RequestUnion__thread_act_subsystem__defined
-union __RequestUnion__thread_act_subsystem {
-	__Request__thread_terminate_t Request_thread_terminate;
-	__Request__act_get_state_t Request_act_get_state;
-	__Request__act_set_state_t Request_act_set_state;
-	__Request__thread_get_state_t Request_thread_get_state;
-	__Request__thread_set_state_t Request_thread_set_state;
-	__Request__thread_suspend_t Request_thread_suspend;
-	__Request__thread_resume_t Request_thread_resume;
-	__Request__thread_abort_t Request_thread_abort;
-	__Request__thread_abort_safely_t Request_thread_abort_safely;
-	__Request__thread_depress_abort_t Request_thread_depress_abort;
-	__Request__thread_get_special_port_t Request_thread_get_special_port;
-	__Request__thread_set_special_port_t Request_thread_set_special_port;
-	__Request__thread_info_t Request_thread_info;
-	__Request__thread_set_exception_ports_t Request_thread_set_exception_ports;
-	__Request__thread_get_exception_ports_t Request_thread_get_exception_ports;
-	__Request__thread_swap_exception_ports_t Request_thread_swap_exception_ports;
-	__Request__thread_policy_t Request_thread_policy;
-	__Request__thread_policy_set_t Request_thread_policy_set;
-	__Request__thread_policy_get_t Request_thread_policy_get;
-	__Request__thread_sample_t Request_thread_sample;
-	__Request__etap_trace_thread_t Request_etap_trace_thread;
-	__Request__thread_assign_t Request_thread_assign;
-	__Request__thread_assign_default_t Request_thread_assign_default;
-	__Request__thread_get_assignment_t Request_thread_get_assignment;
-	__Request__thread_set_policy_t Request_thread_set_policy;
-	__Request__thread_get_mach_voucher_t Request_thread_get_mach_voucher;
-	__Request__thread_set_mach_voucher_t Request_thread_set_mach_voucher;
-	__Request__thread_swap_mach_voucher_t Request_thread_swap_mach_voucher;
-};
-#endif /* !__RequestUnion__thread_act_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__thread_act_subsystem__defined
-#define __Reply__thread_act_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_terminate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t old_stateCnt;
-		natural_t old_state[614];
-	} __Reply__act_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__act_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t old_stateCnt;
-		natural_t old_state[614];
-	} __Reply__thread_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_suspend_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_resume_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_abort_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_abort_safely_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_depress_abort_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t special_port;
-		/* end of the kernel processed data */
-	} __Reply__thread_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t thread_info_outCnt;
-		integer_t thread_info_out[32];
-	} __Reply__thread_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlers[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__thread_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlers[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__thread_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_policy_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[16];
-		boolean_t get_default;
-	} __Reply__thread_policy_get_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_sample_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__etap_trace_thread_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_assign_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t assigned_set;
-		/* end of the kernel processed data */
-	} __Reply__thread_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Reply__thread_get_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_voucher;
-		/* end of the kernel processed data */
-	} __Reply__thread_swap_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__thread_act_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__thread_act_subsystem__defined
-#define __ReplyUnion__thread_act_subsystem__defined
-union __ReplyUnion__thread_act_subsystem {
-	__Reply__thread_terminate_t Reply_thread_terminate;
-	__Reply__act_get_state_t Reply_act_get_state;
-	__Reply__act_set_state_t Reply_act_set_state;
-	__Reply__thread_get_state_t Reply_thread_get_state;
-	__Reply__thread_set_state_t Reply_thread_set_state;
-	__Reply__thread_suspend_t Reply_thread_suspend;
-	__Reply__thread_resume_t Reply_thread_resume;
-	__Reply__thread_abort_t Reply_thread_abort;
-	__Reply__thread_abort_safely_t Reply_thread_abort_safely;
-	__Reply__thread_depress_abort_t Reply_thread_depress_abort;
-	__Reply__thread_get_special_port_t Reply_thread_get_special_port;
-	__Reply__thread_set_special_port_t Reply_thread_set_special_port;
-	__Reply__thread_info_t Reply_thread_info;
-	__Reply__thread_set_exception_ports_t Reply_thread_set_exception_ports;
-	__Reply__thread_get_exception_ports_t Reply_thread_get_exception_ports;
-	__Reply__thread_swap_exception_ports_t Reply_thread_swap_exception_ports;
-	__Reply__thread_policy_t Reply_thread_policy;
-	__Reply__thread_policy_set_t Reply_thread_policy_set;
-	__Reply__thread_policy_get_t Reply_thread_policy_get;
-	__Reply__thread_sample_t Reply_thread_sample;
-	__Reply__etap_trace_thread_t Reply_etap_trace_thread;
-	__Reply__thread_assign_t Reply_thread_assign;
-	__Reply__thread_assign_default_t Reply_thread_assign_default;
-	__Reply__thread_get_assignment_t Reply_thread_get_assignment;
-	__Reply__thread_set_policy_t Reply_thread_set_policy;
-	__Reply__thread_get_mach_voucher_t Reply_thread_get_mach_voucher;
-	__Reply__thread_set_mach_voucher_t Reply_thread_set_mach_voucher;
-	__Reply__thread_swap_mach_voucher_t Reply_thread_swap_mach_voucher;
-};
-#endif /* !__RequestUnion__thread_act_subsystem__defined */
-
-#ifndef subsystem_to_name_map_thread_act
-#define subsystem_to_name_map_thread_act \
-    { "thread_terminate", 3600 },\
-    { "act_get_state", 3601 },\
-    { "act_set_state", 3602 },\
-    { "thread_get_state", 3603 },\
-    { "thread_set_state", 3604 },\
-    { "thread_suspend", 3605 },\
-    { "thread_resume", 3606 },\
-    { "thread_abort", 3607 },\
-    { "thread_abort_safely", 3608 },\
-    { "thread_depress_abort", 3609 },\
-    { "thread_get_special_port", 3610 },\
-    { "thread_set_special_port", 3611 },\
-    { "thread_info", 3612 },\
-    { "thread_set_exception_ports", 3613 },\
-    { "thread_get_exception_ports", 3614 },\
-    { "thread_swap_exception_ports", 3615 },\
-    { "thread_policy", 3616 },\
-    { "thread_policy_set", 3617 },\
-    { "thread_policy_get", 3618 },\
-    { "thread_sample", 3619 },\
-    { "etap_trace_thread", 3620 },\
-    { "thread_assign", 3621 },\
-    { "thread_assign_default", 3622 },\
-    { "thread_get_assignment", 3623 },\
-    { "thread_set_policy", 3624 },\
-    { "thread_get_mach_voucher", 3625 },\
-    { "thread_set_mach_voucher", 3626 },\
-    { "thread_swap_mach_voucher", 3627 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _thread_act_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/thread_policy.h b/lib/libc/include/x86_64-macos.10-none/mach/thread_policy.h
deleted file mode 100644
index e15504cff4729d41979d101dbc14996fb03bb132..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/thread_policy.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _MACH_THREAD_POLICY_H_
-#define _MACH_THREAD_POLICY_H_
-
-#include 
-
-/*
- * These are the calls for accessing the policy parameters
- * of a particular thread.
- *
- * The extra 'get_default' parameter to the second call is
- * IN/OUT as follows:
- * 1) if asserted on the way in it indicates that the default
- * values should be returned, not the ones currently set, in
- * this case 'get_default' will always be asserted on return;
- * 2) if unasserted on the way in, the current settings are
- * desired and if still unasserted on return, then the info
- * returned reflects the current settings, otherwise if
- * 'get_default' returns asserted, it means that there are no
- * current settings due to other parameters taking precedence,
- * and the default ones are being returned instead.
- */
-
-typedef natural_t       thread_policy_flavor_t;
-typedef integer_t       *thread_policy_t;
-
-/*
- *  kern_return_t	thread_policy_set(
- *                                       thread_t					thread,
- *                                       thread_policy_flavor_t		flavor,
- *                                       thread_policy_t				policy_info,
- *                                       mach_msg_type_number_t		count);
- *
- *  kern_return_t	thread_policy_get(
- *                                       thread_t					thread,
- *                                       thread_policy_flavor_t		flavor,
- *                                       thread_policy_t				policy_info,
- *                                       mach_msg_type_number_t		*count,
- *                                       boolean_t					*get_default);
- */
-
-/*
- * Defined flavors.
- */
-/*
- * THREAD_STANDARD_POLICY:
- *
- * This is the standard (fair) scheduling mode, assigned to new
- * threads.  The thread will be given processor time in a manner
- * which apportions approximately equal share to long running
- * computations.
- *
- * Parameters:
- *	[none]
- */
-
-#define THREAD_STANDARD_POLICY                  1
-
-struct thread_standard_policy {
-	natural_t               no_data;
-};
-
-typedef struct thread_standard_policy   thread_standard_policy_data_t;
-typedef struct thread_standard_policy   *thread_standard_policy_t;
-
-#define THREAD_STANDARD_POLICY_COUNT    0
-
-/*
- * THREAD_EXTENDED_POLICY:
- *
- * Extended form of THREAD_STANDARD_POLICY, which supplies a
- * hint indicating whether this is a long running computation.
- *
- * Parameters:
- *
- * timeshare: TRUE (the default) results in identical scheduling
- * behavior as THREAD_STANDARD_POLICY.
- */
-
-#define THREAD_EXTENDED_POLICY                  1
-
-struct thread_extended_policy {
-	boolean_t               timeshare;
-};
-
-typedef struct thread_extended_policy   thread_extended_policy_data_t;
-typedef struct thread_extended_policy   *thread_extended_policy_t;
-
-#define THREAD_EXTENDED_POLICY_COUNT    ((mach_msg_type_number_t) \
-	(sizeof (thread_extended_policy_data_t) / sizeof (integer_t)))
-
-/*
- * THREAD_TIME_CONSTRAINT_POLICY:
- *
- * This scheduling mode is for threads which have real time
- * constraints on their execution.
- *
- * Parameters:
- *
- * period: This is the nominal amount of time between separate
- * processing arrivals, specified in absolute time units.  A
- * value of 0 indicates that there is no inherent periodicity in
- * the computation.
- *
- * computation: This is the nominal amount of computation
- * time needed during a separate processing arrival, specified
- * in absolute time units.
- *
- * constraint: This is the maximum amount of real time that
- * may elapse from the start of a separate processing arrival
- * to the end of computation for logically correct functioning,
- * specified in absolute time units.  Must be (>= computation).
- * Note that latency = (constraint - computation).
- *
- * preemptible: This indicates that the computation may be
- * interrupted, subject to the constraint specified above.
- */
-
-#define THREAD_TIME_CONSTRAINT_POLICY   2
-
-struct thread_time_constraint_policy {
-	uint32_t                period;
-	uint32_t                computation;
-	uint32_t                constraint;
-	boolean_t               preemptible;
-};
-
-typedef struct thread_time_constraint_policy    \
-        thread_time_constraint_policy_data_t;
-typedef struct thread_time_constraint_policy    \
-        *thread_time_constraint_policy_t;
-
-#define THREAD_TIME_CONSTRAINT_POLICY_COUNT     ((mach_msg_type_number_t) \
-	(sizeof (thread_time_constraint_policy_data_t) / sizeof (integer_t)))
-
-/*
- * THREAD_PRECEDENCE_POLICY:
- *
- * This may be used to indicate the relative value of the
- * computation compared to the other threads in the task.
- *
- * Parameters:
- *
- * importance: The importance is specified as a signed value.
- */
-
-#define THREAD_PRECEDENCE_POLICY                3
-
-struct thread_precedence_policy {
-	integer_t               importance;
-};
-
-typedef struct thread_precedence_policy         thread_precedence_policy_data_t;
-typedef struct thread_precedence_policy         *thread_precedence_policy_t;
-
-#define THREAD_PRECEDENCE_POLICY_COUNT  ((mach_msg_type_number_t) \
-	(sizeof (thread_precedence_policy_data_t) / sizeof (integer_t)))
-
-/*
- * THREAD_AFFINITY_POLICY:
- *
- * This policy is experimental.
- * This may be used to express affinity relationships
- * between threads in the task. Threads with the same affinity tag will
- * be scheduled to share an L2 cache if possible. That is, affinity tags
- * are a hint to the scheduler for thread placement.
- *
- * The namespace of affinity tags is generally local to one task. However,
- * a child task created after the assignment of affinity tags by its parent
- * will share that namespace. In particular, a family of forked processes
- * may be created with a shared affinity namespace.
- *
- * Parameters:
- * tag: The affinity set identifier.
- */
-
-#define THREAD_AFFINITY_POLICY          4
-
-struct thread_affinity_policy {
-	integer_t       affinity_tag;
-};
-
-#define THREAD_AFFINITY_TAG_NULL                0
-
-typedef struct thread_affinity_policy           thread_affinity_policy_data_t;
-typedef struct thread_affinity_policy           *thread_affinity_policy_t;
-
-#define THREAD_AFFINITY_POLICY_COUNT    ((mach_msg_type_number_t) \
-	(sizeof (thread_affinity_policy_data_t) / sizeof (integer_t)))
-
-/*
- * THREAD_BACKGROUND_POLICY:
- */
-
-#define THREAD_BACKGROUND_POLICY        5
-
-struct thread_background_policy {
-	integer_t       priority;
-};
-
-#define THREAD_BACKGROUND_POLICY_DARWIN_BG 0x1000
-
-typedef struct thread_background_policy         thread_background_policy_data_t;
-typedef struct thread_background_policy         *thread_background_policy_t;
-
-#define THREAD_BACKGROUND_POLICY_COUNT  ((mach_msg_type_number_t) \
-	(sizeof (thread_background_policy_data_t) / sizeof (integer_t)))
-
-
-#define THREAD_LATENCY_QOS_POLICY       7
-typedef integer_t       thread_latency_qos_t;
-
-struct thread_latency_qos_policy {
-	thread_latency_qos_t thread_latency_qos_tier;
-};
-
-typedef struct thread_latency_qos_policy        thread_latency_qos_policy_data_t;
-typedef struct thread_latency_qos_policy        *thread_latency_qos_policy_t;
-
-#define THREAD_LATENCY_QOS_POLICY_COUNT ((mach_msg_type_number_t)       \
-	    (sizeof (thread_latency_qos_policy_data_t) / sizeof (integer_t)))
-
-#define THREAD_THROUGHPUT_QOS_POLICY    8
-typedef integer_t       thread_throughput_qos_t;
-
-struct thread_throughput_qos_policy {
-	thread_throughput_qos_t thread_throughput_qos_tier;
-};
-
-typedef struct thread_throughput_qos_policy     thread_throughput_qos_policy_data_t;
-typedef struct thread_throughput_qos_policy     *thread_throughput_qos_policy_t;
-
-#define THREAD_THROUGHPUT_QOS_POLICY_COUNT      ((mach_msg_type_number_t) \
-	    (sizeof (thread_throughput_qos_policy_data_t) / sizeof (integer_t)))
-
-
-
-
-#endif  /* _MACH_THREAD_POLICY_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/thread_special_ports.h b/lib/libc/include/x86_64-macos.10-none/mach/thread_special_ports.h
deleted file mode 100644
index f777e0060c403da47f318f83aaac5ed25cbbfee9..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/thread_special_ports.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/thread_special_ports.h
- *
- *	Defines codes for special_purpose thread ports.  These are NOT
- *	port identifiers - they are only used for the thread_get_special_port
- *	and thread_set_special_port routines.
- *
- */
-
-#ifndef _MACH_THREAD_SPECIAL_PORTS_H_
-#define _MACH_THREAD_SPECIAL_PORTS_H_
-
-#define THREAD_KERNEL_PORT      1       /* Represents the thread to the outside
-	                                 *  world.*/
-
-/*
- *	Definitions for ease of use
- */
-
-#define thread_get_kernel_port(thread, port)    \
-	        (thread_get_special_port((thread), THREAD_KERNEL_PORT, (port)))
-
-#define thread_set_kernel_port(thread, port)    \
-	        (thread_set_special_port((thread), THREAD_KERNEL_PORT, (port)))
-
-#endif  /* _MACH_THREAD_SPECIAL_PORTS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/thread_state.h b/lib/libc/include/x86_64-macos.10-none/mach/thread_state.h
deleted file mode 100644
index 33b38b8665c9d7e7e08cd3a0e95a9c3d356b75dc..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/thread_state.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2015 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 _MACH_THREAD_STATE_H_
-#define _MACH_THREAD_STATE_H_
-
-#include 
-#include 
-
-#ifndef KERNEL
-/*
- * Gets all register values in the target thread with pointer-like contents.
- *
- * There is no guarantee that the returned values are valid pointers, but all
- * valid pointers will be returned.  The order and count of the provided
- * register values is unspecified and may change; registers with values that
- * are not valid pointers may be omitted, so the number of pointers returned
- * may vary from call to call.
- *
- * sp is an out parameter that will contain the stack pointer.
- * length is an in/out parameter for the length of the values array.
- * values is an array of pointers.
- *
- * This may only be called on threads in the current task.  If the current
- * platform defines a stack red zone, the stack pointer returned will be
- * adjusted to account for red zone.
- *
- * If length is insufficient, KERN_INSUFFICIENT_BUFFER_SIZE will be returned
- * and length set to the amount of memory required.  Callers MUST NOT assume
- * that any particular size of buffer will be sufficient and should retry with
- * an appropriately sized buffer upon this error.
- */
-__API_AVAILABLE(macosx(10.14), ios(12.0), tvos(9.0), watchos(5.0))
-kern_return_t thread_get_register_pointer_values(thread_t thread,
-    uintptr_t *sp, size_t *length, uintptr_t *values);
-#endif
-
-#endif /* _MACH_THREAD_STATE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/thread_status.h b/lib/libc/include/x86_64-macos.10-none/mach/thread_status.h
deleted file mode 100644
index 886cae365c2a6465571b118d0e8cae7bfe335013..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/thread_status.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/thread_status.h
- *	Author:	Avadis Tevanian, Jr.
- *
- *	This file contains the structure definitions for the user-visible
- *	thread state.  This thread state is examined with the thread_get_state
- *	kernel call and may be changed with the thread_set_state kernel call.
- *
- */
-
-#ifndef _MACH_THREAD_STATUS_H_
-#define _MACH_THREAD_STATUS_H_
-
-/*
- *	The actual structure that comprises the thread state is defined
- *	in the machine dependent module.
- */
-#include 
-#include 
-#include 
-
-/*
- *	Generic definition for machine-dependent thread status.
- */
-
-typedef natural_t       *thread_state_t;        /* Variable-length array */
-
-/* THREAD_STATE_MAX is now defined in  */
-typedef natural_t       thread_state_data_t[THREAD_STATE_MAX];
-
-#define THREAD_STATE_FLAVOR_LIST        0       /* List of valid flavors */
-#define THREAD_STATE_FLAVOR_LIST_NEW    128
-#define THREAD_STATE_FLAVOR_LIST_10_9   129
-#define THREAD_STATE_FLAVOR_LIST_10_13  130
-#define THREAD_STATE_FLAVOR_LIST_10_15  131
-
-typedef int                     thread_state_flavor_t;
-typedef thread_state_flavor_t   *thread_state_flavor_array_t;
-
-#endif  /* _MACH_THREAD_STATUS_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/vm_map.h b/lib/libc/include/x86_64-macos.10-none/mach/vm_map.h
deleted file mode 100644
index 59b3e7ffac28c933051a232c1ed2b932776d824d..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/vm_map.h
+++ /dev/null
@@ -1,1440 +0,0 @@
-#ifndef	_vm_map_user_
-#define	_vm_map_user_
-
-/* Module vm_map */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include()
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include() */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	vm_map_MSG_COUNT
-#define	vm_map_MSG_COUNT	32
-#endif	/* vm_map_MSG_COUNT */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include 
-__BEGIN_DECLS
-
-
-/* Routine vm_region */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_region
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t *size,
-	vm_region_flavor_t flavor,
-	vm_region_info_t info,
-	mach_msg_type_number_t *infoCnt,
-	mach_port_t *object_name
-);
-
-/* Routine vm_allocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_allocate
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t size,
-	int flags
-);
-
-/* Routine vm_deallocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_deallocate
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size
-);
-
-/* Routine vm_protect */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_protect
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	boolean_t set_maximum,
-	vm_prot_t new_protection
-);
-
-/* Routine vm_inherit */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_inherit
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_inherit_t new_inheritance
-);
-
-/* Routine vm_read */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_read
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_offset_t *data,
-	mach_msg_type_number_t *dataCnt
-);
-
-/* Routine vm_read_list */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_read_list
-(
-	vm_map_t target_task,
-	vm_read_entry_t data_list,
-	natural_t count
-);
-
-/* Routine vm_write */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_write
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_offset_t data,
-	mach_msg_type_number_t dataCnt
-);
-
-/* Routine vm_copy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_copy
-(
-	vm_map_t target_task,
-	vm_address_t source_address,
-	vm_size_t size,
-	vm_address_t dest_address
-);
-
-/* Routine vm_read_overwrite */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_read_overwrite
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_address_t data,
-	vm_size_t *outsize
-);
-
-/* Routine vm_msync */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_msync
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_sync_t sync_flags
-);
-
-/* Routine vm_behavior_set */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_behavior_set
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_behavior_t new_behavior
-);
-
-/* Routine vm_map */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_map
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t size,
-	vm_address_t mask,
-	int flags,
-	mem_entry_name_port_t object,
-	vm_offset_t offset,
-	boolean_t copy,
-	vm_prot_t cur_protection,
-	vm_prot_t max_protection,
-	vm_inherit_t inheritance
-);
-
-/* Routine vm_machine_attribute */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_machine_attribute
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_machine_attribute_t attribute,
-	vm_machine_attribute_val_t *value
-);
-
-/* Routine vm_remap */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_remap
-(
-	vm_map_t target_task,
-	vm_address_t *target_address,
-	vm_size_t size,
-	vm_address_t mask,
-	int flags,
-	vm_map_t src_task,
-	vm_address_t src_address,
-	boolean_t copy,
-	vm_prot_t *cur_protection,
-	vm_prot_t *max_protection,
-	vm_inherit_t inheritance
-);
-
-/* Routine task_wire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_wire
-(
-	vm_map_t target_task,
-	boolean_t must_wire
-);
-
-/* Routine mach_make_memory_entry */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_make_memory_entry
-(
-	vm_map_t target_task,
-	vm_size_t *size,
-	vm_offset_t offset,
-	vm_prot_t permission,
-	mem_entry_name_port_t *object_handle,
-	mem_entry_name_port_t parent_entry
-);
-
-/* Routine vm_map_page_query */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_map_page_query
-(
-	vm_map_t target_map,
-	vm_offset_t offset,
-	integer_t *disposition,
-	integer_t *ref_count
-);
-
-/* Routine mach_vm_region_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_region_info
-(
-	vm_map_t task,
-	vm_address_t address,
-	vm_info_region_t *region,
-	vm_info_object_array_t *objects,
-	mach_msg_type_number_t *objectsCnt
-);
-
-/* Routine vm_mapped_pages_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_mapped_pages_info
-(
-	vm_map_t task,
-	page_address_array_t *pages,
-	mach_msg_type_number_t *pagesCnt
-);
-
-/* Routine vm_region_recurse */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_region_recurse
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t *size,
-	natural_t *nesting_depth,
-	vm_region_recurse_info_t info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine vm_region_recurse_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_region_recurse_64
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t *size,
-	natural_t *nesting_depth,
-	vm_region_recurse_info_t info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine mach_vm_region_info_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_region_info_64
-(
-	vm_map_t task,
-	vm_address_t address,
-	vm_info_region_64_t *region,
-	vm_info_object_array_t *objects,
-	mach_msg_type_number_t *objectsCnt
-);
-
-/* Routine vm_region_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_region_64
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t *size,
-	vm_region_flavor_t flavor,
-	vm_region_info_t info,
-	mach_msg_type_number_t *infoCnt,
-	mach_port_t *object_name
-);
-
-/* Routine mach_make_memory_entry_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_make_memory_entry_64
-(
-	vm_map_t target_task,
-	memory_object_size_t *size,
-	memory_object_offset_t offset,
-	vm_prot_t permission,
-	mach_port_t *object_handle,
-	mem_entry_name_port_t parent_entry
-);
-
-/* Routine vm_map_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_map_64
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t size,
-	vm_address_t mask,
-	int flags,
-	mem_entry_name_port_t object,
-	memory_object_offset_t offset,
-	boolean_t copy,
-	vm_prot_t cur_protection,
-	vm_prot_t max_protection,
-	vm_inherit_t inheritance
-);
-
-/* Routine vm_purgable_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_purgable_control
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_purgable_t control,
-	int *state
-);
-
-/* Routine vm_map_exec_lockdown */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_map_exec_lockdown
-(
-	vm_map_t target_task
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__vm_map_subsystem__defined
-#define __Request__vm_map_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_region_flavor_t flavor;
-		mach_msg_type_number_t infoCnt;
-	} __Request__vm_region_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		int flags;
-	} __Request__vm_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-	} __Request__vm_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		boolean_t set_maximum;
-		vm_prot_t new_protection;
-	} __Request__vm_protect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_inherit_t new_inheritance;
-	} __Request__vm_inherit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-	} __Request__vm_read_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_read_entry_t data_list;
-		natural_t count;
-	} __Request__vm_read_list_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		mach_msg_type_number_t dataCnt;
-	} __Request__vm_write_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t source_address;
-		vm_size_t size;
-		vm_address_t dest_address;
-	} __Request__vm_copy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_address_t data;
-	} __Request__vm_read_overwrite_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_sync_t sync_flags;
-	} __Request__vm_msync_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_behavior_t new_behavior;
-	} __Request__vm_behavior_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_address_t mask;
-		int flags;
-		vm_offset_t offset;
-		boolean_t copy;
-		vm_prot_t cur_protection;
-		vm_prot_t max_protection;
-		vm_inherit_t inheritance;
-	} __Request__vm_map_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_machine_attribute_t attribute;
-		vm_machine_attribute_val_t value;
-	} __Request__vm_machine_attribute_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t src_task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t target_address;
-		vm_size_t size;
-		vm_address_t mask;
-		int flags;
-		vm_address_t src_address;
-		boolean_t copy;
-		vm_inherit_t inheritance;
-	} __Request__vm_remap_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		boolean_t must_wire;
-	} __Request__task_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t parent_entry;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_size_t size;
-		vm_offset_t offset;
-		vm_prot_t permission;
-	} __Request__mach_make_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_offset_t offset;
-	} __Request__vm_map_page_query_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-	} __Request__mach_vm_region_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__vm_mapped_pages_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-	} __Request__vm_region_recurse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-	} __Request__vm_region_recurse_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-	} __Request__mach_vm_region_info_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_region_flavor_t flavor;
-		mach_msg_type_number_t infoCnt;
-	} __Request__vm_region_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t parent_entry;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		memory_object_size_t size;
-		memory_object_offset_t offset;
-		vm_prot_t permission;
-	} __Request__mach_make_memory_entry_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_address_t mask;
-		int flags;
-		memory_object_offset_t offset;
-		boolean_t copy;
-		vm_prot_t cur_protection;
-		vm_prot_t max_protection;
-		vm_inherit_t inheritance;
-	} __Request__vm_map_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_purgable_t control;
-		int state;
-	} __Request__vm_purgable_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__vm_map_exec_lockdown_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__vm_map_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__vm_map_subsystem__defined
-#define __RequestUnion__vm_map_subsystem__defined
-union __RequestUnion__vm_map_subsystem {
-	__Request__vm_region_t Request_vm_region;
-	__Request__vm_allocate_t Request_vm_allocate;
-	__Request__vm_deallocate_t Request_vm_deallocate;
-	__Request__vm_protect_t Request_vm_protect;
-	__Request__vm_inherit_t Request_vm_inherit;
-	__Request__vm_read_t Request_vm_read;
-	__Request__vm_read_list_t Request_vm_read_list;
-	__Request__vm_write_t Request_vm_write;
-	__Request__vm_copy_t Request_vm_copy;
-	__Request__vm_read_overwrite_t Request_vm_read_overwrite;
-	__Request__vm_msync_t Request_vm_msync;
-	__Request__vm_behavior_set_t Request_vm_behavior_set;
-	__Request__vm_map_t Request_vm_map;
-	__Request__vm_machine_attribute_t Request_vm_machine_attribute;
-	__Request__vm_remap_t Request_vm_remap;
-	__Request__task_wire_t Request_task_wire;
-	__Request__mach_make_memory_entry_t Request_mach_make_memory_entry;
-	__Request__vm_map_page_query_t Request_vm_map_page_query;
-	__Request__mach_vm_region_info_t Request_mach_vm_region_info;
-	__Request__vm_mapped_pages_info_t Request_vm_mapped_pages_info;
-	__Request__vm_region_recurse_t Request_vm_region_recurse;
-	__Request__vm_region_recurse_64_t Request_vm_region_recurse_64;
-	__Request__mach_vm_region_info_64_t Request_mach_vm_region_info_64;
-	__Request__vm_region_64_t Request_vm_region_64;
-	__Request__mach_make_memory_entry_64_t Request_mach_make_memory_entry_64;
-	__Request__vm_map_64_t Request_vm_map_64;
-	__Request__vm_purgable_control_t Request_vm_purgable_control;
-	__Request__vm_map_exec_lockdown_t Request_vm_map_exec_lockdown;
-};
-#endif /* !__RequestUnion__vm_map_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__vm_map_subsystem__defined
-#define __Reply__vm_map_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_name;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		mach_msg_type_number_t infoCnt;
-		int info[10];
-	} __Reply__vm_region_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-	} __Reply__vm_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_protect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_inherit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dataCnt;
-	} __Reply__vm_read_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_read_entry_t data_list;
-	} __Reply__vm_read_list_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_write_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_copy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_size_t outsize;
-	} __Reply__vm_read_overwrite_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_msync_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_behavior_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-	} __Reply__vm_map_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_machine_attribute_val_t value;
-	} __Reply__vm_machine_attribute_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t target_address;
-		vm_prot_t cur_protection;
-		vm_prot_t max_protection;
-	} __Reply__vm_remap_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_handle;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_size_t size;
-	} __Reply__mach_make_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		integer_t disposition;
-		integer_t ref_count;
-	} __Reply__vm_map_page_query_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t objects;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_info_region_t region;
-		mach_msg_type_number_t objectsCnt;
-	} __Reply__mach_vm_region_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t pages;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t pagesCnt;
-	} __Reply__vm_mapped_pages_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-		vm_size_t size;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-		int info[19];
-	} __Reply__vm_region_recurse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-		vm_size_t size;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-		int info[19];
-	} __Reply__vm_region_recurse_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t objects;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_info_region_64_t region;
-		mach_msg_type_number_t objectsCnt;
-	} __Reply__mach_vm_region_info_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_name;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		mach_msg_type_number_t infoCnt;
-		int info[10];
-	} __Reply__vm_region_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_handle;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		memory_object_size_t size;
-	} __Reply__mach_make_memory_entry_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-	} __Reply__vm_map_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int state;
-	} __Reply__vm_purgable_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_map_exec_lockdown_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__vm_map_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__vm_map_subsystem__defined
-#define __ReplyUnion__vm_map_subsystem__defined
-union __ReplyUnion__vm_map_subsystem {
-	__Reply__vm_region_t Reply_vm_region;
-	__Reply__vm_allocate_t Reply_vm_allocate;
-	__Reply__vm_deallocate_t Reply_vm_deallocate;
-	__Reply__vm_protect_t Reply_vm_protect;
-	__Reply__vm_inherit_t Reply_vm_inherit;
-	__Reply__vm_read_t Reply_vm_read;
-	__Reply__vm_read_list_t Reply_vm_read_list;
-	__Reply__vm_write_t Reply_vm_write;
-	__Reply__vm_copy_t Reply_vm_copy;
-	__Reply__vm_read_overwrite_t Reply_vm_read_overwrite;
-	__Reply__vm_msync_t Reply_vm_msync;
-	__Reply__vm_behavior_set_t Reply_vm_behavior_set;
-	__Reply__vm_map_t Reply_vm_map;
-	__Reply__vm_machine_attribute_t Reply_vm_machine_attribute;
-	__Reply__vm_remap_t Reply_vm_remap;
-	__Reply__task_wire_t Reply_task_wire;
-	__Reply__mach_make_memory_entry_t Reply_mach_make_memory_entry;
-	__Reply__vm_map_page_query_t Reply_vm_map_page_query;
-	__Reply__mach_vm_region_info_t Reply_mach_vm_region_info;
-	__Reply__vm_mapped_pages_info_t Reply_vm_mapped_pages_info;
-	__Reply__vm_region_recurse_t Reply_vm_region_recurse;
-	__Reply__vm_region_recurse_64_t Reply_vm_region_recurse_64;
-	__Reply__mach_vm_region_info_64_t Reply_mach_vm_region_info_64;
-	__Reply__vm_region_64_t Reply_vm_region_64;
-	__Reply__mach_make_memory_entry_64_t Reply_mach_make_memory_entry_64;
-	__Reply__vm_map_64_t Reply_vm_map_64;
-	__Reply__vm_purgable_control_t Reply_vm_purgable_control;
-	__Reply__vm_map_exec_lockdown_t Reply_vm_map_exec_lockdown;
-};
-#endif /* !__RequestUnion__vm_map_subsystem__defined */
-
-#ifndef subsystem_to_name_map_vm_map
-#define subsystem_to_name_map_vm_map \
-    { "vm_region", 3800 },\
-    { "vm_allocate", 3801 },\
-    { "vm_deallocate", 3802 },\
-    { "vm_protect", 3803 },\
-    { "vm_inherit", 3804 },\
-    { "vm_read", 3805 },\
-    { "vm_read_list", 3806 },\
-    { "vm_write", 3807 },\
-    { "vm_copy", 3808 },\
-    { "vm_read_overwrite", 3809 },\
-    { "vm_msync", 3810 },\
-    { "vm_behavior_set", 3811 },\
-    { "vm_map", 3812 },\
-    { "vm_machine_attribute", 3813 },\
-    { "vm_remap", 3814 },\
-    { "task_wire", 3815 },\
-    { "mach_make_memory_entry", 3816 },\
-    { "vm_map_page_query", 3817 },\
-    { "mach_vm_region_info", 3818 },\
-    { "vm_mapped_pages_info", 3819 },\
-    { "vm_region_recurse", 3821 },\
-    { "vm_region_recurse_64", 3822 },\
-    { "mach_vm_region_info_64", 3823 },\
-    { "vm_region_64", 3824 },\
-    { "mach_make_memory_entry_64", 3825 },\
-    { "vm_map_64", 3826 },\
-    { "vm_purgable_control", 3830 },\
-    { "vm_map_exec_lockdown", 3831 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _vm_map_user_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/vm_param.h b/lib/libc/include/x86_64-macos.10-none/mach/vm_param.h
deleted file mode 100644
index f2ebe0a3ec86b477f8349aeafc2c5df89c6964cb..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/vm_param.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_param.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *	Date:	1985
- *
- *	Machine independent virtual memory parameters.
- *
- */
-
-#ifndef _MACH_VM_PARAM_H_
-#define _MACH_VM_PARAM_H_
-
-#include 
-
-
-#endif  /* _MACH_VM_PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/vm_prot.h b/lib/libc/include/x86_64-macos.10-none/mach/vm_prot.h
deleted file mode 100644
index 75812fedf6244069a10b4dc10fc3a4b6d74dfd75..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/vm_prot.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_prot.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *
- *	Virtual memory protection definitions.
- *
- */
-
-#ifndef _MACH_VM_PROT_H_
-#define _MACH_VM_PROT_H_
-
-/*
- *	Types defined:
- *
- *	vm_prot_t		VM protection values.
- */
-
-typedef int             vm_prot_t;
-
-/*
- *	Protection values, defined as bits within the vm_prot_t type
- */
-
-#define VM_PROT_NONE    ((vm_prot_t) 0x00)
-
-#define VM_PROT_READ    ((vm_prot_t) 0x01)      /* read permission */
-#define VM_PROT_WRITE   ((vm_prot_t) 0x02)      /* write permission */
-#define VM_PROT_EXECUTE ((vm_prot_t) 0x04)      /* execute permission */
-
-/*
- *	The default protection for newly-created virtual memory
- */
-
-#define VM_PROT_DEFAULT (VM_PROT_READ|VM_PROT_WRITE)
-
-/*
- *	The maximum privileges possible, for parameter checking.
- */
-
-#define VM_PROT_ALL     (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
-
-/*
- *	An invalid protection value.
- *	Used only by memory_object_lock_request to indicate no change
- *	to page locks.  Using -1 here is a bad idea because it
- *	looks like VM_PROT_ALL and then some.
- */
-
-#define VM_PROT_NO_CHANGE       ((vm_prot_t) 0x08)
-
-/*
- *      When a caller finds that he cannot obtain write permission on a
- *      mapped entry, the following flag can be used.  The entry will
- *      be made "needs copy" effectively copying the object (using COW),
- *      and write permission will be added to the maximum protections
- *      for the associated entry.
- */
-
-#define VM_PROT_COPY            ((vm_prot_t) 0x10)
-
-
-/*
- *	Another invalid protection value.
- *	Used only by memory_object_data_request upon an object
- *	which has specified a copy_call copy strategy. It is used
- *	when the kernel wants a page belonging to a copy of the
- *	object, and is only asking the object as a result of
- *	following a shadow chain. This solves the race between pages
- *	being pushed up by the memory manager and the kernel
- *	walking down the shadow chain.
- */
-
-#define VM_PROT_WANTS_COPY      ((vm_prot_t) 0x10)
-
-
-/*
- *      Another invalid protection value.
- *	Indicates that the other protection bits are to be applied as a mask
- *	against the actual protection bits of the map entry.
- */
-#define VM_PROT_IS_MASK         ((vm_prot_t) 0x40)
-
-/*
- * Another invalid protection value to support execute-only protection.
- * VM_PROT_STRIP_READ is a special marker that tells mprotect to not
- * set VM_PROT_READ. We have to do it this way because existing code
- * expects the system to set VM_PROT_READ if VM_PROT_EXECUTE is set.
- * VM_PROT_EXECUTE_ONLY is just a convenience value to indicate that
- * the memory should be executable and explicitly not readable. It will
- * be ignored on platforms that do not support this type of protection.
- */
-#define VM_PROT_STRIP_READ              ((vm_prot_t) 0x80)
-#define VM_PROT_EXECUTE_ONLY    (VM_PROT_EXECUTE|VM_PROT_STRIP_READ)
-
-#endif  /* _MACH_VM_PROT_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach/vm_statistics.h b/lib/libc/include/x86_64-macos.10-none/mach/vm_statistics.h
deleted file mode 100644
index 2bfd8136b40958ee8e9587e28e324535cea7a406..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach/vm_statistics.h
+++ /dev/null
@@ -1,523 +0,0 @@
-/*
- * Copyright (c) 2000-2019 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@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_statistics.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young, David Golub
- *
- *	Virtual memory statistics structure.
- *
- */
-
-#ifndef _MACH_VM_STATISTICS_H_
-#define _MACH_VM_STATISTICS_H_
-
-#include 
-
-
-/*
- * vm_statistics
- *
- * History:
- *	rev0 -  original structure.
- *	rev1 -  added purgable info (purgable_count and purges).
- *	rev2 -  added speculative_count.
- *
- * Note: you cannot add any new fields to this structure. Add them below in
- *       vm_statistics64.
- */
-
-struct vm_statistics {
-	natural_t       free_count;             /* # of pages free */
-	natural_t       active_count;           /* # of pages active */
-	natural_t       inactive_count;         /* # of pages inactive */
-	natural_t       wire_count;             /* # of pages wired down */
-	natural_t       zero_fill_count;        /* # of zero fill pages */
-	natural_t       reactivations;          /* # of pages reactivated */
-	natural_t       pageins;                /* # of pageins */
-	natural_t       pageouts;               /* # of pageouts */
-	natural_t       faults;                 /* # of faults */
-	natural_t       cow_faults;             /* # of copy-on-writes */
-	natural_t       lookups;                /* object cache lookups */
-	natural_t       hits;                   /* object cache hits */
-
-	/* added for rev1 */
-	natural_t       purgeable_count;        /* # of pages purgeable */
-	natural_t       purges;                 /* # of pages purged */
-
-	/* added for rev2 */
-	/*
-	 * NB: speculative pages are already accounted for in "free_count",
-	 * so "speculative_count" is the number of "free" pages that are
-	 * used to hold data that was read speculatively from disk but
-	 * haven't actually been used by anyone so far.
-	 */
-	natural_t       speculative_count;      /* # of pages speculative */
-};
-
-/* Used by all architectures */
-typedef struct vm_statistics    *vm_statistics_t;
-typedef struct vm_statistics    vm_statistics_data_t;
-
-/*
- * vm_statistics64
- *
- * History:
- *	rev0 -  original structure.
- *	rev1 -  added purgable info (purgable_count and purges).
- *	rev2 -  added speculative_count.
- *	   ----
- *	rev3 -  changed name to vm_statistics64.
- *		changed some fields in structure to 64-bit on
- *		arm, i386 and x86_64 architectures.
- *	rev4 -  require 64-bit alignment for efficient access
- *		in the kernel. No change to reported data.
- *
- */
-
-struct vm_statistics64 {
-	natural_t       free_count;             /* # of pages free */
-	natural_t       active_count;           /* # of pages active */
-	natural_t       inactive_count;         /* # of pages inactive */
-	natural_t       wire_count;             /* # of pages wired down */
-	uint64_t        zero_fill_count;        /* # of zero fill pages */
-	uint64_t        reactivations;          /* # of pages reactivated */
-	uint64_t        pageins;                /* # of pageins */
-	uint64_t        pageouts;               /* # of pageouts */
-	uint64_t        faults;                 /* # of faults */
-	uint64_t        cow_faults;             /* # of copy-on-writes */
-	uint64_t        lookups;                /* object cache lookups */
-	uint64_t        hits;                   /* object cache hits */
-	uint64_t        purges;                 /* # of pages purged */
-	natural_t       purgeable_count;        /* # of pages purgeable */
-	/*
-	 * NB: speculative pages are already accounted for in "free_count",
-	 * so "speculative_count" is the number of "free" pages that are
-	 * used to hold data that was read speculatively from disk but
-	 * haven't actually been used by anyone so far.
-	 */
-	natural_t       speculative_count;      /* # of pages speculative */
-
-	/* added for rev1 */
-	uint64_t        decompressions;         /* # of pages decompressed */
-	uint64_t        compressions;           /* # of pages compressed */
-	uint64_t        swapins;                /* # of pages swapped in (via compression segments) */
-	uint64_t        swapouts;               /* # of pages swapped out (via compression segments) */
-	natural_t       compressor_page_count;  /* # of pages used by the compressed pager to hold all the compressed data */
-	natural_t       throttled_count;        /* # of pages throttled */
-	natural_t       external_page_count;    /* # of pages that are file-backed (non-swap) */
-	natural_t       internal_page_count;    /* # of pages that are anonymous */
-	uint64_t        total_uncompressed_pages_in_compressor; /* # of pages (uncompressed) held within the compressor. */
-} __attribute__((aligned(8)));
-
-typedef struct vm_statistics64  *vm_statistics64_t;
-typedef struct vm_statistics64  vm_statistics64_data_t;
-
-/*
- * VM_STATISTICS_TRUNCATE_TO_32_BIT
- *
- * This is used by host_statistics() to truncate and peg the 64-bit in-kernel values from
- * vm_statistics64 to the 32-bit values of the older structure above (vm_statistics).
- */
-#define VM_STATISTICS_TRUNCATE_TO_32_BIT(value) ((uint32_t)(((value) > UINT32_MAX ) ? UINT32_MAX : (value)))
-
-/*
- * vm_extmod_statistics
- *
- * Structure to record modifications to a task by an
- * external agent.
- *
- * History:
- *	rev0 -  original structure.
- */
-
-struct vm_extmod_statistics {
-	int64_t task_for_pid_count;                     /* # of times task port was looked up */
-	int64_t task_for_pid_caller_count;      /* # of times this task called task_for_pid */
-	int64_t thread_creation_count;          /* # of threads created in task */
-	int64_t thread_creation_caller_count;   /* # of threads created by task */
-	int64_t thread_set_state_count;         /* # of register state sets in task */
-	int64_t thread_set_state_caller_count;  /* # of register state sets by task */
-} __attribute__((aligned(8)));
-
-typedef struct vm_extmod_statistics *vm_extmod_statistics_t;
-typedef struct vm_extmod_statistics vm_extmod_statistics_data_t;
-
-typedef struct vm_purgeable_stat {
-	uint64_t        count;
-	uint64_t        size;
-}vm_purgeable_stat_t;
-
-struct vm_purgeable_info {
-	vm_purgeable_stat_t fifo_data[8];
-	vm_purgeable_stat_t obsolete_data;
-	vm_purgeable_stat_t lifo_data[8];
-};
-
-typedef struct vm_purgeable_info        *vm_purgeable_info_t;
-
-/* included for the vm_map_page_query call */
-
-#define VM_PAGE_QUERY_PAGE_PRESENT      0x1
-#define VM_PAGE_QUERY_PAGE_FICTITIOUS   0x2
-#define VM_PAGE_QUERY_PAGE_REF          0x4
-#define VM_PAGE_QUERY_PAGE_DIRTY        0x8
-#define VM_PAGE_QUERY_PAGE_PAGED_OUT    0x10
-#define VM_PAGE_QUERY_PAGE_COPIED       0x20
-#define VM_PAGE_QUERY_PAGE_SPECULATIVE  0x40
-#define VM_PAGE_QUERY_PAGE_EXTERNAL     0x80
-#define VM_PAGE_QUERY_PAGE_CS_VALIDATED 0x100
-#define VM_PAGE_QUERY_PAGE_CS_TAINTED   0x200
-#define VM_PAGE_QUERY_PAGE_CS_NX        0x400
-#define VM_PAGE_QUERY_PAGE_REUSABLE     0x800
-
-
-/*
- * VM allocation flags:
- *
- * VM_FLAGS_FIXED
- *      (really the absence of VM_FLAGS_ANYWHERE)
- *	Allocate new VM region at the specified virtual address, if possible.
- *
- * VM_FLAGS_ANYWHERE
- *	Allocate new VM region anywhere it would fit in the address space.
- *
- * VM_FLAGS_PURGABLE
- *	Create a purgable VM object for that new VM region.
- *
- * VM_FLAGS_4GB_CHUNK
- *	The new VM region will be chunked up into 4GB sized pieces.
- *
- * VM_FLAGS_NO_PMAP_CHECK
- *	(for DEBUG kernel config only, ignored for other configs)
- *	Do not check that there is no stale pmap mapping for the new VM region.
- *	This is useful for kernel memory allocations at bootstrap when building
- *	the initial kernel address space while some memory is already in use.
- *
- * VM_FLAGS_OVERWRITE
- *	The new VM region can replace existing VM regions if necessary
- *	(to be used in combination with VM_FLAGS_FIXED).
- *
- * VM_FLAGS_NO_CACHE
- *	Pages brought in to this VM region are placed on the speculative
- *	queue instead of the active queue.  In other words, they are not
- *	cached so that they will be stolen first if memory runs low.
- */
-
-#define VM_FLAGS_FIXED          0x0000
-#define VM_FLAGS_ANYWHERE       0x0001
-#define VM_FLAGS_PURGABLE       0x0002
-#define VM_FLAGS_4GB_CHUNK      0x0004
-#define VM_FLAGS_RANDOM_ADDR    0x0008
-#define VM_FLAGS_NO_CACHE       0x0010
-#define VM_FLAGS_RESILIENT_CODESIGN     0x0020
-#define VM_FLAGS_RESILIENT_MEDIA        0x0040
-#define VM_FLAGS_OVERWRITE      0x4000  /* delete any existing mappings first */
-/*
- * VM_FLAGS_SUPERPAGE_MASK
- *	3 bits that specify whether large pages should be used instead of
- *	base pages (!=0), as well as the requested page size.
- */
-#define VM_FLAGS_SUPERPAGE_MASK 0x70000 /* bits 0x10000, 0x20000, 0x40000 */
-#define VM_FLAGS_RETURN_DATA_ADDR       0x100000 /* Return address of target data, rather than base of page */
-#define VM_FLAGS_RETURN_4K_DATA_ADDR    0x800000 /* 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
-#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 |            \
-	                         VM_FLAGS_PURGABLE |            \
-	                         VM_FLAGS_4GB_CHUNK |           \
-	                         VM_FLAGS_RANDOM_ADDR |         \
-	                         VM_FLAGS_NO_CACHE |            \
-	                         VM_FLAGS_OVERWRITE |           \
-	                         VM_FLAGS_SUPERPAGE_MASK |      \
-	                         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 |         \
-	                         VM_FLAGS_OVERWRITE|            \
-	                         VM_FLAGS_RETURN_DATA_ADDR |    \
-	                         VM_FLAGS_RESILIENT_CODESIGN |  \
-	                         VM_FLAGS_RESILIENT_MEDIA)
-
-#define VM_FLAGS_SUPERPAGE_SHIFT 16
-#define SUPERPAGE_NONE                  0       /* no superpages, if all bits are 0 */
-#define SUPERPAGE_SIZE_ANY              1
-#define VM_FLAGS_SUPERPAGE_NONE     (SUPERPAGE_NONE     << VM_FLAGS_SUPERPAGE_SHIFT)
-#define VM_FLAGS_SUPERPAGE_SIZE_ANY (SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT)
-#define SUPERPAGE_SIZE_2MB              2
-#define VM_FLAGS_SUPERPAGE_SIZE_2MB (SUPERPAGE_SIZE_2MB<
-#include 
-
-#include 
-
-typedef vm_offset_t             pointer_t;
-typedef vm_offset_t             vm_address_t;
-
-/*
- * We use addr64_t for 64-bit addresses that are used on both
- * 32 and 64-bit machines.  On PPC, they are passed and returned as
- * two adjacent 32-bit GPRs.  We use addr64_t in places where
- * common code must be useable both on 32 and 64-bit machines.
- */
-typedef uint64_t addr64_t;              /* Basic effective address */
-
-/*
- * We use reg64_t for addresses that are 32 bits on a 32-bit
- * machine, and 64 bits on a 64-bit machine, but are always
- * passed and returned in a single GPR on PPC.  This type
- * cannot be used in generic 32-bit c, since on a 64-bit
- * machine the upper half of the register will be ignored
- * by the c compiler in 32-bit mode.  In c, we can only use the
- * type in prototypes of functions that are written in and called
- * from assembly language.  This type is basically a comment.
- */
-typedef uint32_t        reg64_t;
-
-/*
- * To minimize the use of 64-bit fields, we keep some physical
- * 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 */
-#define PPNUM_MAX UINT32_MAX
-
-
-
-typedef mach_port_t             vm_map_t;
-
-
-#define VM_MAP_NULL             ((vm_map_t) 0)
-
-/*
- * Evolving definitions, likely to change.
- */
-
-typedef uint64_t                vm_object_offset_t;
-typedef uint64_t                vm_object_size_t;
-
-
-
-
-typedef mach_port_t             upl_t;
-typedef mach_port_t             vm_named_entry_t;
-
-
-#define UPL_NULL                ((upl_t) 0)
-#define VM_NAMED_ENTRY_NULL     ((vm_named_entry_t) 0)
-
-#endif  /* _MACH_VM_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach_debug/ipc_info.h b/lib/libc/include/x86_64-macos.10-none/mach_debug/ipc_info.h
deleted file mode 100644
index deb07cac5e8437d765cafb8d8ccc484c2d013d75..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach_debug/ipc_info.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach_debug/ipc_info.h
- *	Author:	Rich Draves
- *	Date:	March, 1990
- *
- *	Definitions for the IPC debugging interface.
- */
-
-#ifndef _MACH_DEBUG_IPC_INFO_H_
-#define _MACH_DEBUG_IPC_INFO_H_
-
-#include 
-#include 
-#include 
-
-/*
- *	Remember to update the mig type definitions
- *	in mach_debug_types.defs when adding/removing fields.
- */
-
-typedef struct ipc_info_space {
-	natural_t iis_genno_mask;       /* generation number mask */
-	natural_t iis_table_size;       /* size of table */
-	natural_t iis_table_next;       /* next possible size of table */
-	natural_t iis_tree_size;        /* size of tree (UNUSED) */
-	natural_t iis_tree_small;       /* # of small entries in tree (UNUSED) */
-	natural_t iis_tree_hash;        /* # of hashed entries in tree (UNUSED) */
-} ipc_info_space_t;
-
-typedef struct ipc_info_space_basic {
-	natural_t iisb_genno_mask;      /* generation number mask */
-	natural_t iisb_table_size;      /* size of table */
-	natural_t iisb_table_next;      /* next possible size of table */
-	natural_t iisb_table_inuse;     /* number of entries in use */
-	natural_t iisb_reserved[2];     /* future expansion */
-} ipc_info_space_basic_t;
-
-typedef struct ipc_info_name {
-	mach_port_name_t iin_name;              /* port name, including gen number */
-/*boolean_t*/ integer_t iin_collision;   /* collision at this entry? */
-	mach_port_type_t iin_type;      /* straight port type */
-	mach_port_urefs_t iin_urefs;    /* user-references */
-	natural_t iin_object;           /* object pointer/identifier */
-	natural_t iin_next;             /* marequest/next in free list */
-	natural_t iin_hash;             /* hash index */
-} ipc_info_name_t;
-
-typedef ipc_info_name_t *ipc_info_name_array_t;
-
-/* UNUSED */
-typedef struct ipc_info_tree_name {
-	ipc_info_name_t iitn_name;
-	mach_port_name_t iitn_lchild;   /* name of left child */
-	mach_port_name_t iitn_rchild;   /* name of right child */
-} ipc_info_tree_name_t;
-
-typedef ipc_info_tree_name_t *ipc_info_tree_name_array_t;
-
-#endif  /* _MACH_DEBUG_IPC_INFO_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/mach_debug/mach_debug_types.h b/lib/libc/include/x86_64-macos.10-none/mach_debug/mach_debug_types.h
deleted file mode 100644
index a4a2f3d7c718eb52d71c47fc0dcc2c878d842806..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/mach_debug/mach_debug_types.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	Mach kernel debugging interface type declarations
- */
-
-#ifndef _MACH_DEBUG_MACH_DEBUG_TYPES_H_
-#define _MACH_DEBUG_MACH_DEBUG_TYPES_H_
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#define MACH_CORE_FILEHEADER_SIGNATURE  0x0063614d20646152ULL
-#define MACH_CORE_FILEHEADER_MAXFILES 16
-#define MACH_CORE_FILEHEADER_NAMELEN 16
-
-typedef char    symtab_name_t[32];
-
-struct mach_core_details {
-	uint64_t gzip_offset;
-	uint64_t gzip_length;
-	char core_name[MACH_CORE_FILEHEADER_NAMELEN];
-};
-
-struct mach_core_fileheader {
-	uint64_t signature;
-	uint64_t log_offset;
-	uint64_t log_length;
-	uint64_t num_files;
-	struct mach_core_details files[MACH_CORE_FILEHEADER_MAXFILES];
-};
-
-#define KOBJECT_DESCRIPTION_LENGTH      512
-typedef char kobject_description_t[KOBJECT_DESCRIPTION_LENGTH];
-
-#endif  /* _MACH_DEBUG_MACH_DEBUG_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/machine/_mcontext.h b/lib/libc/include/x86_64-macos.10-none/machine/_mcontext.h
deleted file mode 100644
index 9ccd985fcc42b7cf5fc2d73d58b7cbe7bd944608..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/machine/_mcontext.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2003-2012 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@
- */
-#if defined (__i386__) || defined (__x86_64__)
-#include "i386/_mcontext.h"
-#else
-#error architecture not supported
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/machine/_param.h b/lib/libc/include/x86_64-macos.10-none/machine/_param.h
deleted file mode 100644
index c40232c3c29f5cedc004b3fe6ec77e4428c7ce28..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/machine/_param.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2004-2007 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@
- */
-#if defined (__i386__) || defined (__x86_64__)
-#include "i386/_param.h"
-#else
-#error architecture not supported
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/machine/_types.h b/lib/libc/include/x86_64-macos.10-none/machine/_types.h
deleted file mode 100644
index 0ed6acf67743c090e142a52c912b7b961b57750d..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/machine/_types.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2003-2007 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 _BSD_MACHINE__TYPES_H_
-#define _BSD_MACHINE__TYPES_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "i386/_types.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _BSD_MACHINE__TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/machine/endian.h b/lib/libc/include/x86_64-macos.10-none/machine/endian.h
deleted file mode 100644
index 85c8f12508b932a3eec2ac0970f6e5314d0a3fe2..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/machine/endian.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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@
- */
-/*
- * Copyright 1995 NeXT Computer, Inc. All rights reserved.
- */
-#ifndef _BSD_MACHINE_ENDIAN_H_
-#define _BSD_MACHINE_ENDIAN_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "i386/endian.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _BSD_MACHINE_ENDIAN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/machine/limits.h b/lib/libc/include/x86_64-macos.10-none/machine/limits.h
deleted file mode 100644
index 9763e810b6c8ac7fda883fd928358ad350723ee6..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/machine/limits.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* This is the `system' limits.h, independent of any particular
- *  compiler.  GCC provides its own limits.h which can be found in
- *  /usr/lib/gcc, although it is not very informative.
- *  This file is public domain.  */
-#if defined (__i386__) || defined(__x86_64__)
-#include 
-#else
-#error architecture not supported
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/machine/param.h b/lib/libc/include/x86_64-macos.10-none/machine/param.h
deleted file mode 100644
index 8435acbdfb79d81e83cd339847e87e469d9a098b..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/machine/param.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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@
- */
-/*
- * Copyright 1995 NeXT Computer, Inc. All rights reserved.
- */
-#ifndef _BSD_MACHINE_PARAM_H_
-#define _BSD_MACHINE_PARAM_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "i386/param.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _BSD_MACHINE_PARAM_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/machine/signal.h b/lib/libc/include/x86_64-macos.10-none/machine/signal.h
deleted file mode 100644
index 19ef535ebdd354f698d463a6856e3e467e58fde6..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/machine/signal.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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 _BSD_MACHINE_SIGNAL_H_
-#define _BSD_MACHINE_SIGNAL_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "i386/signal.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _BSD_MACHINE_SIGNAL_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/machine/types.h b/lib/libc/include/x86_64-macos.10-none/machine/types.h
deleted file mode 100644
index 5d1a1e575ffb56c873cfe16901a82be2269437d0..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/machine/types.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2000-2007 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@
- */
-/*
- * Copyright 1995 NeXT Computer, Inc. All rights reserved.
- */
-#ifndef _BSD_MACHINE_TYPES_H_
-#define _BSD_MACHINE_TYPES_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "i386/types.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _BSD_MACHINE_TYPES_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/malloc/_malloc.h b/lib/libc/include/x86_64-macos.10-none/malloc/_malloc.h
deleted file mode 100644
index 91555d11bbb269d41d03fa27d97dd20600f2eb53..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/malloc/_malloc.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2018 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 _MALLOC_UNDERSCORE_MALLOC_H_
-#define _MALLOC_UNDERSCORE_MALLOC_H_
-
-/*
- * This header is included from , so the contents of this file have
- * broad source compatibility and POSIX conformance implications.
- * Be cautious about what is included and declared here.
- */
-
-#include 
-#include 
-#include <_types.h>
-#include 
-
-__BEGIN_DECLS
-
-void	*malloc(size_t __size) __result_use_check __alloc_size(1);
-void	*calloc(size_t __count, size_t __size) __result_use_check __alloc_size(1,2);
-void	 free(void *);
-void	*realloc(void *__ptr, size_t __size) __result_use_check __alloc_size(2);
-#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-void	*valloc(size_t) __alloc_size(1);
-#endif // !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-#if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL) && \
-        ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
-         (defined(__cplusplus) && __cplusplus >= 201703L))
-void    *aligned_alloc(size_t __alignment, size_t __size) __result_use_check __alloc_size(2) __OSX_AVAILABLE(10.15) __IOS_AVAILABLE(13.0) __TVOS_AVAILABLE(13.0) __WATCHOS_AVAILABLE(6.0);
-#endif
-int 	 posix_memalign(void **__memptr, size_t __alignment, size_t __size) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
-
-__END_DECLS
-
-#endif /* _MALLOC_UNDERSCORE_MALLOC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/malloc/malloc.h b/lib/libc/include/x86_64-macos.10-none/malloc/malloc.h
deleted file mode 100644
index 0bddfda43b1236e7d02e94381213c64828abcbbf..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/malloc/malloc.h
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Copyright (c) 1999 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 _MALLOC_MALLOC_H_
-#define _MALLOC_MALLOC_H_
-
-#include 
-#include 
-#include 
-#include 
-
-#if __has_feature(ptrauth_calls)
-#include 
-
-// Zone function pointer, type-diversified but not address-diversified (because
-// the zone can be copied). Process-independent because the zone structure may
-// be in the shared library cache.
-#define MALLOC_ZONE_FN_PTR(fn) __ptrauth(ptrauth_key_process_independent_code, \
-		FALSE, ptrauth_string_discriminator("malloc_zone_fn." #fn)) fn
-
-// Introspection function pointer, address- and type-diversified.
-// Process-independent because the malloc_introspection_t structure that contains
-// these pointers may be in the shared library cache.
-#define MALLOC_INTROSPECT_FN_PTR(fn) __ptrauth(ptrauth_key_process_independent_code, \
-		TRUE, ptrauth_string_discriminator("malloc_introspect_fn." #fn)) fn
-
-// Pointer to the introspection pointer table, type-diversified but not
-// address-diversified (because the zone can be copied).
-// Process-independent because the table pointer may be in the shared library cache.
-#define MALLOC_INTROSPECT_TBL_PTR(ptr) __ptrauth(ptrauth_key_process_independent_data,\
-		FALSE, ptrauth_string_discriminator("malloc_introspect_tbl")) ptr
-
-#endif	// __has_feature(ptrauth_calls)
-
-#ifndef MALLOC_ZONE_FN_PTR
-#define MALLOC_ZONE_FN_PTR(fn) fn
-#define MALLOC_INTROSPECT_FN_PTR(fn) fn
-#define MALLOC_INTROSPECT_TBL_PTR(ptr) ptr
-#endif // MALLOC_ZONE_FN_PTR
-
-__BEGIN_DECLS
-/*********	Type definitions	************/
-
-typedef struct _malloc_zone_t {
-    /* Only zone implementors should depend on the layout of this structure;
-    Regular callers should use the access functions below */
-    void	*reserved1;	/* RESERVED FOR CFAllocator DO NOT USE */
-    void	*reserved2;	/* RESERVED FOR CFAllocator DO NOT USE */
-    size_t 	(* MALLOC_ZONE_FN_PTR(size))(struct _malloc_zone_t *zone, const void *ptr); /* returns the size of a block or 0 if not in this zone; must be fast, especially for negative answers */
-    void 	*(* MALLOC_ZONE_FN_PTR(malloc))(struct _malloc_zone_t *zone, size_t size);
-    void 	*(* MALLOC_ZONE_FN_PTR(calloc))(struct _malloc_zone_t *zone, size_t num_items, size_t size); /* same as malloc, but block returned is set to zero */
-    void 	*(* MALLOC_ZONE_FN_PTR(valloc))(struct _malloc_zone_t *zone, size_t size); /* same as malloc, but block returned is set to zero and is guaranteed to be page aligned */
-    void 	(* MALLOC_ZONE_FN_PTR(free))(struct _malloc_zone_t *zone, void *ptr);
-    void 	*(* MALLOC_ZONE_FN_PTR(realloc))(struct _malloc_zone_t *zone, void *ptr, size_t size);
-    void 	(* MALLOC_ZONE_FN_PTR(destroy))(struct _malloc_zone_t *zone); /* zone is destroyed and all memory reclaimed */
-    const char	*zone_name;
-
-    /* Optional batch callbacks; these may be NULL */
-    unsigned	(* MALLOC_ZONE_FN_PTR(batch_malloc))(struct _malloc_zone_t *zone, size_t size, void **results, unsigned num_requested); /* given a size, returns pointers capable of holding that size; returns the number of pointers allocated (maybe 0 or less than num_requested) */
-    void	(* MALLOC_ZONE_FN_PTR(batch_free))(struct _malloc_zone_t *zone, void **to_be_freed, unsigned num_to_be_freed); /* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process */
-
-    struct malloc_introspection_t	* MALLOC_INTROSPECT_TBL_PTR(introspect);
-    unsigned	version;
-    	
-    /* aligned memory allocation. The callback may be NULL. Present in version >= 5. */
-    void *(* MALLOC_ZONE_FN_PTR(memalign))(struct _malloc_zone_t *zone, size_t alignment, size_t size);
-    
-    /* free a pointer known to be in zone and known to have the given size. The callback may be NULL. Present in version >= 6.*/
-    void (* MALLOC_ZONE_FN_PTR(free_definite_size))(struct _malloc_zone_t *zone, void *ptr, size_t size);
-
-    /* Empty out caches in the face of memory pressure. The callback may be NULL. Present in version >= 8. */
-    size_t 	(* MALLOC_ZONE_FN_PTR(pressure_relief))(struct _malloc_zone_t *zone, size_t goal);
-
-	/*
-	 * Checks whether an address might belong to the zone. May be NULL. Present in version >= 10.
-	 * False positives are allowed (e.g. the pointer was freed, or it's in zone space that has
-	 * not yet been allocated. False negatives are not allowed.
-	 */
-    boolean_t (* MALLOC_ZONE_FN_PTR(claimed_address))(struct _malloc_zone_t *zone, void *ptr);
-} malloc_zone_t;
-
-/*********	Creation and destruction	************/
-
-extern malloc_zone_t *malloc_default_zone(void);
-    /* The initial zone */
-
-extern malloc_zone_t *malloc_create_zone(vm_size_t start_size, unsigned flags);
-    /* Creates a new zone with default behavior and registers it */
-
-extern void malloc_destroy_zone(malloc_zone_t *zone);
-    /* Destroys zone and everything it allocated */
-
-/*********	Block creation and manipulation	************/
-
-extern void *malloc_zone_malloc(malloc_zone_t *zone, size_t size) __alloc_size(2);
-    /* Allocates a new pointer of size size; zone must be non-NULL */
-
-extern void *malloc_zone_calloc(malloc_zone_t *zone, size_t num_items, size_t size) __alloc_size(2,3);
-    /* Allocates a new pointer of size num_items * size; block is cleared; zone must be non-NULL */
-
-extern void *malloc_zone_valloc(malloc_zone_t *zone, size_t size) __alloc_size(2);
-    /* Allocates a new pointer of size size; zone must be non-NULL; Pointer is guaranteed to be page-aligned and block is cleared */
-
-extern void malloc_zone_free(malloc_zone_t *zone, void *ptr);
-    /* Frees pointer in zone; zone must be non-NULL */
-
-extern void *malloc_zone_realloc(malloc_zone_t *zone, void *ptr, size_t size) __alloc_size(3);
-    /* Enlarges block if necessary; zone must be non-NULL */
-
-extern malloc_zone_t *malloc_zone_from_ptr(const void *ptr);
-    /* Returns the zone for a pointer, or NULL if not in any zone.
-    The ptr must have been returned from a malloc or realloc call. */
-
-extern size_t malloc_size(const void *ptr);
-    /* Returns size of given ptr */
-
-extern size_t malloc_good_size(size_t size);
-    /* Returns number of bytes greater than or equal to size that can be allocated without padding */
-
-extern void *malloc_zone_memalign(malloc_zone_t *zone, size_t alignment, size_t size) __alloc_size(3) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
-    /* 
-     * Allocates a new pointer of size size whose address is an exact multiple of alignment.
-     * alignment must be a power of two and at least as large as sizeof(void *).
-     * zone must be non-NULL.
-     */
-
-/*********	Batch methods	************/
-
-extern unsigned malloc_zone_batch_malloc(malloc_zone_t *zone, size_t size, void **results, unsigned num_requested);
-    /* Allocates num blocks of the same size; Returns the number truly allocated (may be 0) */
-
-extern void malloc_zone_batch_free(malloc_zone_t *zone, void **to_be_freed, unsigned num);
-    /* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process; This function will always free even if the zone has no batch callback */
-
-/*********	Functions for libcache	************/
-
-extern malloc_zone_t *malloc_default_purgeable_zone(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
-    /* Returns a pointer to the default purgeable_zone. */
-
-extern void malloc_make_purgeable(void *ptr) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
-    /* Make an allocation from the purgeable zone purgeable if possible.  */
-
-extern int malloc_make_nonpurgeable(void *ptr) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
-    /* Makes an allocation from the purgeable zone nonpurgeable.
-     * Returns zero if the contents were not purged since the last
-     * call to malloc_make_purgeable, else returns non-zero. */
-
-/*********	Functions for zone implementors	************/
-
-extern void malloc_zone_register(malloc_zone_t *zone);
-    /* Registers a custom malloc zone; Should typically be called after a 
-     * malloc_zone_t has been filled in with custom methods by a client.  See
-     * malloc_create_zone for creating additional malloc zones with the
-     * default allocation and free behavior. */
-
-extern void malloc_zone_unregister(malloc_zone_t *zone);
-    /* De-registers a zone
-    Should typically be called before calling the zone destruction routine */
-
-extern void malloc_set_zone_name(malloc_zone_t *zone, const char *name);
-    /* Sets the name of a zone */
-
-extern const char *malloc_get_zone_name(malloc_zone_t *zone);
-    /* Returns the name of a zone */
-
-size_t malloc_zone_pressure_relief(malloc_zone_t *zone, size_t goal) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-    /* malloc_zone_pressure_relief() advises the malloc subsystem that the process is under memory pressure and 
-     * that the subsystem should make its best effort towards releasing (i.e. munmap()-ing) "goal" bytes from "zone". 
-     * If "goal" is passed as zero, the malloc subsystem will attempt to achieve maximal pressure relief in "zone". 
-     * If "zone" is passed as NULL, all zones are examined for pressure relief opportunities. 
-     * malloc_zone_pressure_relief() returns the number of bytes released. 
-     */
-
-typedef struct {
-    vm_address_t	address;
-    vm_size_t		size;
-} vm_range_t;
-
-typedef struct malloc_statistics_t {
-    unsigned	blocks_in_use;
-    size_t	size_in_use;
-    size_t	max_size_in_use;	/* high water mark of touched memory */
-    size_t	size_allocated;		/* reserved in memory */
-} malloc_statistics_t;
-
-typedef kern_return_t memory_reader_t(task_t remote_task, vm_address_t remote_address, vm_size_t size, void **local_memory);
-    /* given a task, "reads" the memory at the given address and size
-local_memory: set to a contiguous chunk of memory; validity of local_memory is assumed to be limited (until next call) */
-
-#define MALLOC_PTR_IN_USE_RANGE_TYPE	1	/* for allocated pointers */
-#define MALLOC_PTR_REGION_RANGE_TYPE	2	/* for region containing pointers */
-#define MALLOC_ADMIN_REGION_RANGE_TYPE	4	/* for region used internally */
-#define MALLOC_ZONE_SPECIFIC_FLAGS	0xff00	/* bits reserved for zone-specific purposes */
-
-typedef void vm_range_recorder_t(task_t, void *, unsigned type, vm_range_t *, unsigned);
-    /* given a task and context, "records" the specified addresses */
-
-/* Print function for the print_task() operation. */
-typedef void print_task_printer_t(const char *fmt, ...);
-
-typedef struct malloc_introspection_t {
-	kern_return_t (* MALLOC_INTROSPECT_FN_PTR(enumerator))(task_t task, void *, unsigned type_mask, vm_address_t zone_address, memory_reader_t reader, vm_range_recorder_t recorder); /* enumerates all the malloc pointers in use */
-	size_t	(* MALLOC_INTROSPECT_FN_PTR(good_size))(malloc_zone_t *zone, size_t size);
-	boolean_t 	(* MALLOC_INTROSPECT_FN_PTR(check))(malloc_zone_t *zone); /* Consistency checker */
-	void 	(* MALLOC_INTROSPECT_FN_PTR(print))(malloc_zone_t *zone, boolean_t verbose); /* Prints zone  */
-	void	(* MALLOC_INTROSPECT_FN_PTR(log))(malloc_zone_t *zone, void *address); /* Enables logging of activity */
-	void	(* MALLOC_INTROSPECT_FN_PTR(force_lock))(malloc_zone_t *zone); /* Forces locking zone */
-	void	(* MALLOC_INTROSPECT_FN_PTR(force_unlock))(malloc_zone_t *zone); /* Forces unlocking zone */
-	void	(* MALLOC_INTROSPECT_FN_PTR(statistics))(malloc_zone_t *zone, malloc_statistics_t *stats); /* Fills statistics */
-	boolean_t   (* MALLOC_INTROSPECT_FN_PTR(zone_locked))(malloc_zone_t *zone); /* Are any zone locks held */
-
-    /* Discharge checking. Present in version >= 7. */
-	boolean_t	(* MALLOC_INTROSPECT_FN_PTR(enable_discharge_checking))(malloc_zone_t *zone);
-	void	(* MALLOC_INTROSPECT_FN_PTR(disable_discharge_checking))(malloc_zone_t *zone);
-	void	(* MALLOC_INTROSPECT_FN_PTR(discharge))(malloc_zone_t *zone, void *memory);
-#ifdef __BLOCKS__
-	void     (* MALLOC_INTROSPECT_FN_PTR(enumerate_discharged_pointers))(malloc_zone_t *zone, void (^report_discharged)(void *memory, void *info));
-	#else
-    void	*enumerate_unavailable_without_blocks;   
-#endif /* __BLOCKS__ */
-	void	(* MALLOC_INTROSPECT_FN_PTR(reinit_lock))(malloc_zone_t *zone); /* Reinitialize zone locks, called only from atfork_child handler. Present in version >= 9. */
-	void	(* MALLOC_INTROSPECT_FN_PTR(print_task))(task_t task, unsigned level, vm_address_t zone_address, memory_reader_t reader, print_task_printer_t printer); /* debug print for another process. Present in version >= 11. */
-	void (* MALLOC_INTROSPECT_FN_PTR(task_statistics))(task_t task, vm_address_t zone_address, memory_reader_t reader, malloc_statistics_t *stats); /* Present in version >= 12 */
-} malloc_introspection_t;
-
-// The value of "level" when passed to print_task() that corresponds to
-// verbose passed to print()
-#define MALLOC_VERBOSE_PRINT_LEVEL	2
-
-extern void malloc_printf(const char *format, ...);
-    /* Convenience for logging errors and warnings;
-    No allocation is performed during execution of this function;
-    Only understands usual %p %d %s formats, and %y that expresses a number of bytes (5b,10KB,1MB...)
-    */
-
-/*********	Functions for performance tools	************/
-
-extern kern_return_t malloc_get_all_zones(task_t task, memory_reader_t reader, vm_address_t **addresses, unsigned *count);
-    /* Fills addresses and count with the addresses of the zones in task;
-    Note that the validity of the addresses returned correspond to the validity of the memory returned by reader */
-
-/*********	Debug helpers	************/
-
-extern void malloc_zone_print_ptr_info(void *ptr);
-    /* print to stdout if this pointer is in the malloc heap, free status, and size */
-
-extern boolean_t malloc_zone_check(malloc_zone_t *zone);
-    /* Checks zone is well formed; if !zone, checks all zones */
-
-extern void malloc_zone_print(malloc_zone_t *zone, boolean_t verbose);
-    /* Prints summary on zone; if !zone, prints all zones */
-
-extern void malloc_zone_statistics(malloc_zone_t *zone, malloc_statistics_t *stats);
-    /* Fills statistics for zone; if !zone, sums up all zones */
-
-extern void malloc_zone_log(malloc_zone_t *zone, void *address);
-    /* Controls logging of all activity; if !zone, for all zones;
-    If address==0 nothing is logged;
-    If address==-1 all activity is logged;
-    Else only the activity regarding address is logged */
-
-struct mstats {
-    size_t	bytes_total;
-    size_t	chunks_used;
-    size_t	bytes_used;
-    size_t	chunks_free;
-    size_t	bytes_free;
-};
-
-extern struct mstats mstats(void);
-
-extern boolean_t malloc_zone_enable_discharge_checking(malloc_zone_t *zone) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-/* Increment the discharge checking enabled counter for a zone. Returns true if the zone supports checking, false if it does not. */
-
-extern void malloc_zone_disable_discharge_checking(malloc_zone_t *zone) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-/* Decrement the discharge checking enabled counter for a zone. */
-
-extern void malloc_zone_discharge(malloc_zone_t *zone, void *memory) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-/* Register memory that the programmer expects to be freed soon. 
-   zone may be NULL in which case the zone is determined using malloc_zone_from_ptr(). 
-   If discharge checking is off for the zone this function is a no-op. */
- 
-#ifdef __BLOCKS__
-extern void malloc_zone_enumerate_discharged_pointers(malloc_zone_t *zone, void (^report_discharged)(void *memory, void *info)) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-/* Calls report_discharged for each block that was registered using malloc_zone_discharge() but has not yet been freed. 
-   info is used to provide zone defined information about the memory block. 
-   If zone is NULL then the enumeration covers all zones. */
-#else
-extern void malloc_zone_enumerate_discharged_pointers(malloc_zone_t *zone, void *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-#endif /* __BLOCKS__ */
-
-__END_DECLS
-
-#endif /* _MALLOC_MALLOC_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/math.h b/lib/libc/include/x86_64-macos.10-none/math.h
deleted file mode 100644
index 8bb019247eee154323a49e87e09915444de807e6..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/math.h
+++ /dev/null
@@ -1,771 +0,0 @@
-/*
- * Copyright (c) 2002-2017 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 __MATH_H__
-#define __MATH_H__
-
-#ifndef __MATH__
-#define __MATH__
-#endif
-
-#include 
-#include 
-
-__BEGIN_DECLS
-
-/******************************************************************************
- * Floating point data types                                                  *
- ******************************************************************************/
-
-/*  Define float_t and double_t per C standard, ISO/IEC 9899:2011 7.12 2,
-    taking advantage of GCC's __FLT_EVAL_METHOD__ (which a compiler may
-    define anytime and GCC does) that shadows FLT_EVAL_METHOD (which a
-    compiler must define only in float.h).                                    */
-#if __FLT_EVAL_METHOD__ == 0
-    typedef float float_t;
-    typedef double double_t;
-#elif __FLT_EVAL_METHOD__ == 1
-    typedef double float_t;
-    typedef double double_t;
-#elif __FLT_EVAL_METHOD__ == 2 || __FLT_EVAL_METHOD__ == -1
-    typedef long double float_t;
-    typedef long double double_t;
-#else /* __FLT_EVAL_METHOD__ */
-#   error "Unsupported value of __FLT_EVAL_METHOD__."
-#endif /* __FLT_EVAL_METHOD__ */
-
-#if defined(__GNUC__)
-#   define    HUGE_VAL     __builtin_huge_val()
-#   define    HUGE_VALF    __builtin_huge_valf()
-#   define    HUGE_VALL    __builtin_huge_vall()
-#   define    NAN          __builtin_nanf("0x7fc00000")
-#else
-#   define    HUGE_VAL     1e500
-#   define    HUGE_VALF    1e50f
-#   define    HUGE_VALL    1e5000L
-#   define    NAN          __nan()
-#endif
-
-#define INFINITY    HUGE_VALF
-
-/******************************************************************************
- *      Taxonomy of floating point data types                                 *
- ******************************************************************************/
-
-#define FP_NAN          1
-#define FP_INFINITE     2
-#define FP_ZERO         3
-#define FP_NORMAL       4
-#define FP_SUBNORMAL    5
-#define FP_SUPERNORMAL  6 /* legacy PowerPC support; this is otherwise unused */
-
-#if defined __arm64__ || defined __ARM_VFPV4__
-/*  On these architectures, fma(), fmaf( ), and fmal( ) are generally about as
-    fast as (or faster than) separate multiply and add of the same operands.  */
-#   define FP_FAST_FMA     1
-#   define FP_FAST_FMAF    1
-#   define FP_FAST_FMAL    1
-#elif (defined __i386__ || defined __x86_64__) && (defined __FMA__ || defined __AVX512F__)
-/*  When targeting the FMA ISA extension, fma() and fmaf( ) are generally
-    about as fast as (or faster than) separate multiply and add of the same
-    operands, but fmal( ) may be more costly.                                 */
-#   define FP_FAST_FMA     1
-#   define FP_FAST_FMAF    1
-#   undef  FP_FAST_FMAL
-#else
-/*  On these architectures, fma( ), fmaf( ), and fmal( ) function calls are
-    significantly more costly than separate multiply and add operations.      */
-#   undef  FP_FAST_FMA
-#   undef  FP_FAST_FMAF
-#   undef  FP_FAST_FMAL
-#endif
-
-/* The values returned by `ilogb' for 0 and NaN respectively. */
-#define FP_ILOGB0      (-2147483647 - 1)
-#define FP_ILOGBNAN    (-2147483647 - 1)
-
-/* Bitmasks for the math_errhandling macro.  */
-#define MATH_ERRNO        1    /* errno set by math functions.  */
-#define MATH_ERREXCEPT    2    /* Exceptions raised by math functions.  */
-
-#define math_errhandling (__math_errhandling())
-extern int __math_errhandling(void);
-
-/******************************************************************************
- *                                                                            *
- *                              Inquiry macros                                *
- *                                                                            *
- *  fpclassify      Returns one of the FP_* values.                           *
- *  isnormal        Non-zero if and only if the argument x is normalized.     *
- *  isfinite        Non-zero if and only if the argument x is finite.         *
- *  isnan           Non-zero if and only if the argument x is a NaN.          *
- *  signbit         Non-zero if and only if the sign of the argument x is     *
- *                  negative.  This includes, NaNs, infinities and zeros.     *
- *                                                                            *
- ******************************************************************************/
-
-#define fpclassify(x)                                                    \
-    ( sizeof(x) == sizeof(float)  ? __fpclassifyf((float)(x))            \
-    : sizeof(x) == sizeof(double) ? __fpclassifyd((double)(x))           \
-                                  : __fpclassifyl((long double)(x)))
-
-extern int __fpclassifyf(float);
-extern int __fpclassifyd(double);
-extern int __fpclassifyl(long double);
-
-#if (defined(__GNUC__) && 0 == __FINITE_MATH_ONLY__)
-/*  These inline functions may fail to return expected results if unsafe
-    math optimizations like those enabled by -ffast-math are turned on.
-    Thus, (somewhat surprisingly) you only get the fast inline
-    implementations if such compiler options are NOT enabled.  This is
-    because the inline functions require the compiler to be adhering to
-    the standard in order to work properly; -ffast-math, among other
-    things, implies that NaNs don't happen, which allows the compiler to
-    optimize away checks like x != x, which might lead to things like
-    isnan(NaN) returning false.                                               
- 
-    Thus, if you compile with -ffast-math, actual function calls are
-    generated for these utilities.                                            */
-    
-#define isnormal(x)                                                      \
-    ( sizeof(x) == sizeof(float)  ? __inline_isnormalf((float)(x))       \
-    : sizeof(x) == sizeof(double) ? __inline_isnormald((double)(x))      \
-                                  : __inline_isnormall((long double)(x)))
-
-#define isfinite(x)                                                      \
-    ( sizeof(x) == sizeof(float)  ? __inline_isfinitef((float)(x))       \
-    : sizeof(x) == sizeof(double) ? __inline_isfinited((double)(x))      \
-                                  : __inline_isfinitel((long double)(x)))
-
-#define isinf(x)                                                         \
-    ( sizeof(x) == sizeof(float)  ? __inline_isinff((float)(x))          \
-    : sizeof(x) == sizeof(double) ? __inline_isinfd((double)(x))         \
-                                  : __inline_isinfl((long double)(x)))
-
-#define isnan(x)                                                         \
-    ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
-    : sizeof(x) == sizeof(double) ? __inline_isnand((double)(x))         \
-                                  : __inline_isnanl((long double)(x)))
-
-#define signbit(x)                                                       \
-    ( sizeof(x) == sizeof(float)  ? __inline_signbitf((float)(x))        \
-    : sizeof(x) == sizeof(double) ? __inline_signbitd((double)(x))       \
-                                  : __inline_signbitl((long double)(x)))
-
-__header_always_inline int __inline_isfinitef(float);
-__header_always_inline int __inline_isfinited(double);
-__header_always_inline int __inline_isfinitel(long double);
-__header_always_inline int __inline_isinff(float);
-__header_always_inline int __inline_isinfd(double);
-__header_always_inline int __inline_isinfl(long double);
-__header_always_inline int __inline_isnanf(float);
-__header_always_inline int __inline_isnand(double);
-__header_always_inline int __inline_isnanl(long double);
-__header_always_inline int __inline_isnormalf(float);
-__header_always_inline int __inline_isnormald(double);
-__header_always_inline int __inline_isnormall(long double);
-__header_always_inline int __inline_signbitf(float);
-__header_always_inline int __inline_signbitd(double);
-__header_always_inline int __inline_signbitl(long double);
-    
-__header_always_inline int __inline_isfinitef(float __x) {
-    return __x == __x && __builtin_fabsf(__x) != __builtin_inff();
-}
-__header_always_inline int __inline_isfinited(double __x) {
-    return __x == __x && __builtin_fabs(__x) != __builtin_inf();
-}
-__header_always_inline int __inline_isfinitel(long double __x) {
-    return __x == __x && __builtin_fabsl(__x) != __builtin_infl();
-}
-__header_always_inline int __inline_isinff(float __x) {
-    return __builtin_fabsf(__x) == __builtin_inff();
-}
-__header_always_inline int __inline_isinfd(double __x) {
-    return __builtin_fabs(__x) == __builtin_inf();
-}
-__header_always_inline int __inline_isinfl(long double __x) {
-    return __builtin_fabsl(__x) == __builtin_infl();
-}
-__header_always_inline int __inline_isnanf(float __x) {
-    return __x != __x;
-}
-__header_always_inline int __inline_isnand(double __x) {
-    return __x != __x;
-}
-__header_always_inline int __inline_isnanl(long double __x) {
-    return __x != __x;
-}
-__header_always_inline int __inline_signbitf(float __x) {
-    union { float __f; unsigned int __u; } __u;
-    __u.__f = __x;
-    return (int)(__u.__u >> 31);
-}
-__header_always_inline int __inline_signbitd(double __x) {
-    union { double __f; unsigned long long __u; } __u;
-    __u.__f = __x;
-    return (int)(__u.__u >> 63);
-}
-#if defined __i386__ || defined __x86_64__
-__header_always_inline int __inline_signbitl(long double __x) {
-    union {
-        long double __ld;
-        struct{ unsigned long long __m; unsigned short __sexp; } __p;
-    } __u;
-    __u.__ld = __x;
-    return (int)(__u.__p.__sexp >> 15);
-}
-#else
-__header_always_inline int __inline_signbitl(long double __x) {
-    union { long double __f; unsigned long long __u;} __u;
-    __u.__f = __x;
-    return (int)(__u.__u >> 63);
-}
-#endif
-__header_always_inline int __inline_isnormalf(float __x) {
-    return __inline_isfinitef(__x) && __builtin_fabsf(__x) >= __FLT_MIN__;
-}
-__header_always_inline int __inline_isnormald(double __x) {
-    return __inline_isfinited(__x) && __builtin_fabs(__x) >= __DBL_MIN__;
-}
-__header_always_inline int __inline_isnormall(long double __x) {
-    return __inline_isfinitel(__x) && __builtin_fabsl(__x) >= __LDBL_MIN__;
-}
-    
-#else /* defined(__GNUC__) && 0 == __FINITE_MATH_ONLY__ */
-
-/*  Implementations making function calls to fall back on when -ffast-math
-    or similar is specified.  These are not available in iOS versions prior
-    to 6.0.  If you need them, you must target that version or later.         */
-    
-#define isnormal(x)                                               \
-    ( sizeof(x) == sizeof(float)  ? __isnormalf((float)(x))       \
-    : sizeof(x) == sizeof(double) ? __isnormald((double)(x))      \
-                                  : __isnormall((long double)(x)))
-    
-#define isfinite(x)                                               \
-    ( sizeof(x) == sizeof(float)  ? __isfinitef((float)(x))       \
-    : sizeof(x) == sizeof(double) ? __isfinited((double)(x))      \
-                                  : __isfinitel((long double)(x)))
-    
-#define isinf(x)                                                  \
-    ( sizeof(x) == sizeof(float)  ? __isinff((float)(x))          \
-    : sizeof(x) == sizeof(double) ? __isinfd((double)(x))         \
-                                  : __isinfl((long double)(x)))
-    
-#define isnan(x)                                                  \
-    ( sizeof(x) == sizeof(float)  ? __isnanf((float)(x))          \
-    : sizeof(x) == sizeof(double) ? __isnand((double)(x))         \
-                                  : __isnanl((long double)(x)))
-    
-#define signbit(x)                                                \
-    ( sizeof(x) == sizeof(float)  ? __signbitf((float)(x))        \
-    : sizeof(x) == sizeof(double) ? __signbitd((double)(x))       \
-                                  : __signbitl((long double)(x)))
-    
-extern int __isnormalf(float);
-extern int __isnormald(double);
-extern int __isnormall(long double);
-extern int __isfinitef(float);
-extern int __isfinited(double);
-extern int __isfinitel(long double);
-extern int __isinff(float);
-extern int __isinfd(double);
-extern int __isinfl(long double);
-extern int __isnanf(float);
-extern int __isnand(double);
-extern int __isnanl(long double);
-extern int __signbitf(float);
-extern int __signbitd(double);
-extern int __signbitl(long double);
-
-#endif /* defined(__GNUC__) && 0 == __FINITE_MATH_ONLY__ */
-
-/******************************************************************************
- *                                                                            *
- *                              Math Functions                                *
- *                                                                            *
- ******************************************************************************/
-    
-extern float acosf(float);
-extern double acos(double);
-extern long double acosl(long double);
-    
-extern float asinf(float);
-extern double asin(double);
-extern long double asinl(long double);
-    
-extern float atanf(float);
-extern double atan(double);
-extern long double atanl(long double);
-    
-extern float atan2f(float, float);
-extern double atan2(double, double);
-extern long double atan2l(long double, long double);
-    
-extern float cosf(float);
-extern double cos(double);
-extern long double cosl(long double);
-    
-extern float sinf(float);
-extern double sin(double);
-extern long double sinl(long double);
-    
-extern float tanf(float);
-extern double tan(double);
-extern long double tanl(long double);
-    
-extern float acoshf(float);
-extern double acosh(double);
-extern long double acoshl(long double);
-    
-extern float asinhf(float);
-extern double asinh(double);
-extern long double asinhl(long double);
-    
-extern float atanhf(float);
-extern double atanh(double);
-extern long double atanhl(long double);
-    
-extern float coshf(float);
-extern double cosh(double);
-extern long double coshl(long double);
-    
-extern float sinhf(float);
-extern double sinh(double);
-extern long double sinhl(long double);
-    
-extern float tanhf(float);
-extern double tanh(double);
-extern long double tanhl(long double);
-    
-extern float expf(float);
-extern double exp(double);
-extern long double expl(long double);
-
-extern float exp2f(float);
-extern double exp2(double); 
-extern long double exp2l(long double); 
-
-extern float expm1f(float);
-extern double expm1(double); 
-extern long double expm1l(long double); 
-
-extern float logf(float);
-extern double log(double);
-extern long double logl(long double);
-
-extern float log10f(float);
-extern double log10(double);
-extern long double log10l(long double);
-
-extern float log2f(float);
-extern double log2(double);
-extern long double log2l(long double);
-
-extern float log1pf(float);
-extern double log1p(double);
-extern long double log1pl(long double);
-
-extern float logbf(float);
-extern double logb(double);
-extern long double logbl(long double);
-
-extern float modff(float, float *);
-extern double modf(double, double *);
-extern long double modfl(long double, long double *);
-
-extern float ldexpf(float, int);
-extern double ldexp(double, int);
-extern long double ldexpl(long double, int);
-
-extern float frexpf(float, int *);
-extern double frexp(double, int *);
-extern long double frexpl(long double, int *);
-
-extern int ilogbf(float);
-extern int ilogb(double);
-extern int ilogbl(long double);
-
-extern float scalbnf(float, int);
-extern double scalbn(double, int);
-extern long double scalbnl(long double, int);
-
-extern float scalblnf(float, long int);
-extern double scalbln(double, long int);
-extern long double scalblnl(long double, long int);
-
-extern float fabsf(float);
-extern double fabs(double);
-extern long double fabsl(long double);
-
-extern float cbrtf(float);
-extern double cbrt(double);
-extern long double cbrtl(long double);
-
-extern float hypotf(float, float);
-extern double hypot(double, double);
-extern long double hypotl(long double, long double);
-
-extern float powf(float, float);
-extern double pow(double, double);
-extern long double powl(long double, long double);
-
-extern float sqrtf(float);
-extern double sqrt(double);
-extern long double sqrtl(long double);
-
-extern float erff(float);
-extern double erf(double);
-extern long double erfl(long double);
-
-extern float erfcf(float);
-extern double erfc(double);
-extern long double erfcl(long double);
-
-/*	lgammaf, lgamma, and lgammal are not thread-safe. The thread-safe
-    variants lgammaf_r, lgamma_r, and lgammal_r are made available if
-    you define the _REENTRANT symbol before including                 */
-extern float lgammaf(float);
-extern double lgamma(double);
-extern long double lgammal(long double);
-
-extern float tgammaf(float);
-extern double tgamma(double);
-extern long double tgammal(long double);
-
-extern float ceilf(float);
-extern double ceil(double);
-extern long double ceill(long double);
-
-extern float floorf(float);
-extern double floor(double);
-extern long double floorl(long double);
-
-extern float nearbyintf(float);
-extern double nearbyint(double);
-extern long double nearbyintl(long double);
-
-extern float rintf(float);
-extern double rint(double);
-extern long double rintl(long double);
-
-extern long int lrintf(float);
-extern long int lrint(double);
-extern long int lrintl(long double);
-
-extern float roundf(float);
-extern double round(double);
-extern long double roundl(long double);
-
-extern long int lroundf(float);
-extern long int lround(double);
-extern long int lroundl(long double);
-    
-/*  long long is not part of C90. Make sure you are passing -std=c99 or
-    -std=gnu99 or higher if you need these functions returning long longs     */
-#if !(__DARWIN_NO_LONG_LONG)
-extern long long int llrintf(float);
-extern long long int llrint(double);
-extern long long int llrintl(long double);
-
-extern long long int llroundf(float);
-extern long long int llround(double);
-extern long long int llroundl(long double);
-#endif /* !(__DARWIN_NO_LONG_LONG) */
-
-extern float truncf(float);
-extern double trunc(double);
-extern long double truncl(long double);
-
-extern float fmodf(float, float);
-extern double fmod(double, double);
-extern long double fmodl(long double, long double);
-
-extern float remainderf(float, float);
-extern double remainder(double, double);
-extern long double remainderl(long double, long double);
-
-extern float remquof(float, float, int *);
-extern double remquo(double, double, int *);
-extern long double remquol(long double, long double, int *);
-
-extern float copysignf(float, float);
-extern double copysign(double, double);
-extern long double copysignl(long double, long double);
-
-extern float nanf(const char *);
-extern double nan(const char *);
-extern long double nanl(const char *);
-
-extern float nextafterf(float, float);
-extern double nextafter(double, double);
-extern long double nextafterl(long double, long double);
-
-extern double nexttoward(double, long double);
-extern float nexttowardf(float, long double);
-extern long double nexttowardl(long double, long double);
-
-extern float fdimf(float, float);
-extern double fdim(double, double);
-extern long double fdiml(long double, long double);
-
-extern float fmaxf(float, float);
-extern double fmax(double, double);
-extern long double fmaxl(long double, long double);
-
-extern float fminf(float, float);
-extern double fmin(double, double);
-extern long double fminl(long double, long double);
-
-extern float fmaf(float, float, float);
-extern double fma(double, double, double);
-extern long double fmal(long double, long double, long double);
-
-#define isgreater(x, y) __builtin_isgreater((x),(y))
-#define isgreaterequal(x, y) __builtin_isgreaterequal((x),(y))
-#define isless(x, y) __builtin_isless((x),(y))
-#define islessequal(x, y) __builtin_islessequal((x),(y))
-#define islessgreater(x, y) __builtin_islessgreater((x),(y))
-#define isunordered(x, y) __builtin_isunordered((x),(y))
-
-/* Deprecated functions; use the INFINITY and NAN macros instead.             */
-extern float __inff(void)
-__API_DEPRECATED("use `(float)INFINITY` instead", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-extern double __inf(void)
-__API_DEPRECATED("use `INFINITY` instead", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-extern long double __infl(void)
-__API_DEPRECATED("use `(long double)INFINITY` instead", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-extern float __nan(void)
-__API_DEPRECATED("use `NAN` instead", macos(10.0, 10.14)) __API_UNAVAILABLE(ios, watchos, tvos);
-
-/******************************************************************************
- *  Reentrant variants of lgamma[fl]                                          *
- ******************************************************************************/
-
-#ifdef _REENTRANT
-/*  Reentrant variants of the lgamma[fl] functions.                           */
-extern float lgammaf_r(float, int *) __API_AVAILABLE(macos(10.6), ios(3.1));
-extern double lgamma_r(double, int *) __API_AVAILABLE(macos(10.6), ios(3.1));
-extern long double lgammal_r(long double, int *) __API_AVAILABLE(macos(10.6), ios(3.1));
-#endif /* _REENTRANT */
-
-/******************************************************************************
- *  Apple extensions to the C standard                                        *
- ******************************************************************************/
-
-/*  Because these functions are not specified by any relevant standard, they
-    are prefixed with __, which places them in the implementor's namespace, so
-    they should not conflict with any developer or third-party code.  If they
-    are added to a relevant standard in the future, un-prefixed names may be
-    added to the library and they may be moved out of this section of the
-    header.                                                                   
- 
-    Because these functions are non-standard, they may not be available on non-
-    Apple platforms.                                                          */
-
-/*  __exp10(x) returns 10**x.  Edge cases match those of exp( ) and exp2( ).  */
-extern float __exp10f(float) __API_AVAILABLE(macos(10.9), ios(7.0));
-extern double __exp10(double) __API_AVAILABLE(macos(10.9), ios(7.0));
-
-/*  __sincos(x,sinp,cosp) computes the sine and cosine of x with a single
-    function call, storing the sine in the memory pointed to by sinp, and
-    the cosine in the memory pointed to by cosp. Edge cases match those of
-    separate calls to sin( ) and cos( ).                                      */
-__header_always_inline void __sincosf(float __x, float *__sinp, float *__cosp);
-__header_always_inline void __sincos(double __x, double *__sinp, double *__cosp);
-
-/*  __sinpi(x) returns the sine of pi times x; __cospi(x) and __tanpi(x) return
-    the cosine and tangent, respectively.  These functions can produce a more
-    accurate answer than expressions of the form sin(M_PI * x) because they
-    avoid any loss of precision that results from rounding the result of the
-    multiplication M_PI * x.  They may also be significantly more efficient in
-    some cases because the argument reduction for these functions is easier
-    to compute.  Consult the man pages for edge case details.                 */
-extern float __cospif(float) __API_AVAILABLE(macos(10.9), ios(7.0));
-extern double __cospi(double) __API_AVAILABLE(macos(10.9), ios(7.0));
-extern float __sinpif(float) __API_AVAILABLE(macos(10.9), ios(7.0));
-extern double __sinpi(double) __API_AVAILABLE(macos(10.9), ios(7.0));
-extern float __tanpif(float) __API_AVAILABLE(macos(10.9), ios(7.0));
-extern double __tanpi(double) __API_AVAILABLE(macos(10.9), ios(7.0));
-
-#if (defined __MAC_OS_X_VERSION_MIN_REQUIRED && __MAC_OS_X_VERSION_MIN_REQUIRED < 1090) || \
-    (defined __IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED < 70000)
-/*  __sincos and __sincosf were introduced in OSX 10.9 and iOS 7.0.  When
-    targeting an older system, we simply split them up into discrete calls
-    to sin( ) and cos( ).                                                     */
-__header_always_inline void __sincosf(float __x, float *__sinp, float *__cosp) {
-  *__sinp = sinf(__x);
-  *__cosp = cosf(__x);
-}
-
-__header_always_inline void __sincos(double __x, double *__sinp, double *__cosp) {
-  *__sinp = sin(__x);
-  *__cosp = cos(__x);
-}
-#else
-/*  __sincospi(x,sinp,cosp) computes the sine and cosine of pi times x with a
-    single function call, storing the sine in the memory pointed to by sinp,
-    and the cosine in the memory pointed to by cosp.  Edge cases match those
-    of separate calls to __sinpi( ) and __cospi( ), and are documented in the
-    man pages.
- 
-    These functions were introduced in OSX 10.9 and iOS 7.0.  Because they are
-    implemented as header inlines, weak-linking does not function as normal,
-    and they are simply hidden when targeting earlier OS versions.            */
-__header_always_inline void __sincospif(float __x, float *__sinp, float *__cosp);
-__header_always_inline void __sincospi(double __x, double *__sinp, double *__cosp);
-
-/*  Implementation details of __sincos and __sincospi allowing them to return
-    two results while allowing the compiler to optimize away unnecessary load-
-    store traffic.  Although these interfaces are exposed in the math.h header
-    to allow compilers to generate better code, users should call __sincos[f]
-    and __sincospi[f] instead and allow the compiler to emit these calls.     */
-struct __float2 { float __sinval; float __cosval; };
-struct __double2 { double __sinval; double __cosval; };
-
-extern struct __float2 __sincosf_stret(float);
-extern struct __double2 __sincos_stret(double);
-extern struct __float2 __sincospif_stret(float);
-extern struct __double2 __sincospi_stret(double);
-
-__header_always_inline void __sincosf(float __x, float *__sinp, float *__cosp) {
-    const struct __float2 __stret = __sincosf_stret(__x);
-    *__sinp = __stret.__sinval; *__cosp = __stret.__cosval;
-}
-
-__header_always_inline void __sincos(double __x, double *__sinp, double *__cosp) {
-    const struct __double2 __stret = __sincos_stret(__x);
-    *__sinp = __stret.__sinval; *__cosp = __stret.__cosval;
-}
-
-__header_always_inline void __sincospif(float __x, float *__sinp, float *__cosp) {
-    const struct __float2 __stret = __sincospif_stret(__x);
-    *__sinp = __stret.__sinval; *__cosp = __stret.__cosval;
-}
-
-__header_always_inline void __sincospi(double __x, double *__sinp, double *__cosp) {
-    const struct __double2 __stret = __sincospi_stret(__x);
-    *__sinp = __stret.__sinval; *__cosp = __stret.__cosval;
-}
-#endif
-
-/******************************************************************************
- *  POSIX/UNIX extensions to the C standard                                   *
- ******************************************************************************/
-
-#if __DARWIN_C_LEVEL >= 199506L
-extern double j0(double) __API_AVAILABLE(macos(10.0), ios(3.2));
-extern double j1(double) __API_AVAILABLE(macos(10.0), ios(3.2));
-extern double jn(int, double) __API_AVAILABLE(macos(10.0), ios(3.2));
-extern double y0(double) __API_AVAILABLE(macos(10.0), ios(3.2));
-extern double y1(double) __API_AVAILABLE(macos(10.0), ios(3.2));
-extern double yn(int, double) __API_AVAILABLE(macos(10.0), ios(3.2));
-extern double scalb(double, double); 
-extern int signgam;
-
-/*  Even though these might be more useful as long doubles, POSIX requires
-    that they be double-precision literals.                                   */
-#define M_E         2.71828182845904523536028747135266250   /* e              */
-#define M_LOG2E     1.44269504088896340735992468100189214   /* log2(e)        */
-#define M_LOG10E    0.434294481903251827651128918916605082  /* log10(e)       */
-#define M_LN2       0.693147180559945309417232121458176568  /* loge(2)        */
-#define M_LN10      2.30258509299404568401799145468436421   /* loge(10)       */
-#define M_PI        3.14159265358979323846264338327950288   /* pi             */
-#define M_PI_2      1.57079632679489661923132169163975144   /* pi/2           */
-#define M_PI_4      0.785398163397448309615660845819875721  /* pi/4           */
-#define M_1_PI      0.318309886183790671537767526745028724  /* 1/pi           */
-#define M_2_PI      0.636619772367581343075535053490057448  /* 2/pi           */
-#define M_2_SQRTPI  1.12837916709551257389615890312154517   /* 2/sqrt(pi)     */
-#define M_SQRT2     1.41421356237309504880168872420969808   /* sqrt(2)        */
-#define M_SQRT1_2   0.707106781186547524400844362104849039  /* 1/sqrt(2)      */
-
-#define MAXFLOAT    0x1.fffffep+127f
-#endif /* __DARWIN_C_LEVEL >= 199506L */
-
-/*  Long-double versions of M_E, etc for convenience on Intel where long-
-    double is not the same as double.  Define __MATH_LONG_DOUBLE_CONSTANTS
-    to make these constants available.                                        */
-#if defined __MATH_LONG_DOUBLE_CONSTANTS
-#define M_El        0xa.df85458a2bb4a9bp-2L
-#define M_LOG2El    0xb.8aa3b295c17f0bcp-3L
-#define M_LOG10El   0xd.e5bd8a937287195p-5L
-#define M_LN2l      0xb.17217f7d1cf79acp-4L
-#define M_LN10l     0x9.35d8dddaaa8ac17p-2L
-#define M_PIl       0xc.90fdaa22168c235p-2L
-#define M_PI_2l     0xc.90fdaa22168c235p-3L
-#define M_PI_4l     0xc.90fdaa22168c235p-4L
-#define M_1_PIl     0xa.2f9836e4e44152ap-5L
-#define M_2_PIl     0xa.2f9836e4e44152ap-4L
-#define M_2_SQRTPIl 0x9.06eba8214db688dp-3L
-#define M_SQRT2l    0xb.504f333f9de6484p-3L
-#define M_SQRT1_2l  0xb.504f333f9de6484p-4L
-#endif /* defined __MATH_LONG_DOUBLE_CONSTANTS */
-
-/******************************************************************************
- *  Legacy BSD extensions to the C standard                                   *
- ******************************************************************************/
-
-#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
-#define FP_SNAN		FP_NAN
-#define FP_QNAN		FP_NAN
-#define	HUGE		MAXFLOAT
-#define X_TLOSS		1.41484755040568800000e+16 
-#define	DOMAIN		1
-#define	SING		2
-#define	OVERFLOW	3
-#define	UNDERFLOW	4
-#define	TLOSS		5
-#define	PLOSS		6
-
-/* Legacy BSD API; use the C99 `lrint( )` function instead.                   */
-extern long int rinttol(double)
-__API_DEPRECATED_WITH_REPLACEMENT("lrint", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-/* Legacy BSD API; use the C99 `lround( )` function instead.                  */
-extern long int roundtol(double)
-__API_DEPRECATED_WITH_REPLACEMENT("lround", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-/* Legacy BSD API; use the C99 `remainder( )` function instead.               */
-extern double drem(double, double)
-__API_DEPRECATED_WITH_REPLACEMENT("remainder", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-/* Legacy BSD API; use the C99 `isfinite( )` macro instead.                   */
-extern int finite(double)
-__API_DEPRECATED("Use `isfinite((double)x)` instead.", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-/* Legacy BSD API; use the C99 `tgamma( )` function instead.                  */
-extern double gamma(double)
-__API_DEPRECATED_WITH_REPLACEMENT("tgamma", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-/* Legacy BSD API; use `2*frexp( )` or `scalbn(x, -ilogb(x))` instead.        */
-extern double significand(double)
-__API_DEPRECATED("Use `2*frexp( )` or `scalbn(x, -ilogb(x))` instead.", macos(10.0, 10.9)) __API_UNAVAILABLE(ios, watchos, tvos);
-
-#if !defined __cplusplus
-struct exception {
-    int type;
-    char *name;
-    double arg1;
-    double arg2;
-    double retval;
-};
-
-#endif /* !defined __cplusplus */
-#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
-
-__END_DECLS
-#endif /* __MATH_H__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/net/if.h b/lib/libc/include/x86_64-macos.10-none/net/if.h
deleted file mode 100644
index c0729f0eb8714eb625fd00ee2588ed3055314742..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/net/if.h
+++ /dev/null
@@ -1,442 +0,0 @@
-/*
- * Copyright (c) 2000-2019 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@
- */
-/*
- * Copyright (c) 1982, 1986, 1989, 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.
- *
- *	@(#)if.h	8.1 (Berkeley) 6/10/93
- */
-
-#ifndef _NET_IF_H_
-#define _NET_IF_H_
-
-#include 
-#include 
-
-#define IF_NAMESIZE     16
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#include 
-#ifdef __APPLE__
-
-#include 
-#include 
-#include 
-
-#endif
-
-struct if_clonereq {
-	int     ifcr_total;             /* total cloners (out) */
-	int     ifcr_count;             /* room for this many in user buffer */
-	char    *ifcr_buffer;           /* buffer for cloner names */
-};
-
-
-#define IFF_UP          0x1             /* interface is up */
-#define IFF_BROADCAST   0x2             /* broadcast address valid */
-#define IFF_DEBUG       0x4             /* turn on debugging */
-#define IFF_LOOPBACK    0x8             /* is a loopback net */
-#define IFF_POINTOPOINT 0x10            /* interface is point-to-point link */
-#define IFF_NOTRAILERS  0x20            /* obsolete: avoid use of trailers */
-#define IFF_RUNNING     0x40            /* resources allocated */
-#define IFF_NOARP       0x80            /* no address resolution protocol */
-#define IFF_PROMISC     0x100           /* receive all packets */
-#define IFF_ALLMULTI    0x200           /* receive all multicast packets */
-#define IFF_OACTIVE     0x400           /* transmission in progress */
-#define IFF_SIMPLEX     0x800           /* can't hear own transmissions */
-#define IFF_LINK0       0x1000          /* per link layer defined bit */
-#define IFF_LINK1       0x2000          /* per link layer defined bit */
-#define IFF_LINK2       0x4000          /* per link layer defined bit */
-#define IFF_ALTPHYS     IFF_LINK2       /* use alternate physical connection */
-#define IFF_MULTICAST   0x8000          /* supports multicast */
-
-
-
-/*
- * Capabilities that interfaces can advertise.
- *
- * struct ifnet.if_capabilities
- *   contains the optional features & capabilities a particular interface
- *   supports (not only the driver but also the detected hw revision).
- *   Capabilities are defined by IFCAP_* below.
- * struct ifnet.if_capenable
- *   contains the enabled (either by default or through ifconfig) optional
- *   features & capabilities on this interface.
- *   Capabilities are defined by IFCAP_* below.
- * struct if_data.ifi_hwassist in IFNET_* form, defined in net/kpi_interface.h,
- *   contains the enabled optional features & capabilites that can be used
- *   individually per packet and are specified in the mbuf pkthdr.csum_flags
- *   field.  IFCAP_* and IFNET_* do not match one to one and IFNET_* may be
- *   more detailed or differentiated than IFCAP_*.
- *   IFNET_* hwassist flags have corresponding CSUM_* in sys/mbuf.h
- */
-#define IFCAP_RXCSUM            0x00001 /* can offload checksum on RX */
-#define IFCAP_TXCSUM            0x00002 /* can offload checksum on TX */
-#define IFCAP_VLAN_MTU          0x00004 /* VLAN-compatible MTU */
-#define IFCAP_VLAN_HWTAGGING    0x00008 /* hardware VLAN tag support */
-#define IFCAP_JUMBO_MTU         0x00010 /* 9000 byte MTU supported */
-#define IFCAP_TSO4              0x00020 /* can do TCP Segmentation Offload */
-#define IFCAP_TSO6              0x00040 /* can do TCP6 Segmentation Offload */
-#define IFCAP_LRO               0x00080 /* can do Large Receive Offload */
-#define IFCAP_AV                0x00100 /* can do 802.1 AV Bridging */
-#define IFCAP_TXSTATUS          0x00200 /* can return linklevel xmit status */
-#define IFCAP_SKYWALK           0x00400 /* Skywalk mode supported/enabled */
-#define IFCAP_HW_TIMESTAMP      0x00800 /* Time stamping in hardware */
-#define IFCAP_SW_TIMESTAMP      0x01000 /* Time stamping in software */
-#define IFCAP_CSUM_PARTIAL      0x02000 /* can offload partial checksum */
-#define IFCAP_CSUM_ZERO_INVERT  0x04000 /* can invert 0 to -0 (0xffff) */
-
-#define IFCAP_HWCSUM    (IFCAP_RXCSUM | IFCAP_TXCSUM)
-#define IFCAP_TSO       (IFCAP_TSO4 | IFCAP_TSO6)
-
-#define IFCAP_VALID (IFCAP_HWCSUM | IFCAP_TSO | IFCAP_LRO | IFCAP_VLAN_MTU | \
-	IFCAP_VLAN_HWTAGGING | IFCAP_JUMBO_MTU | IFCAP_AV | IFCAP_TXSTATUS | \
-	IFCAP_SKYWALK | IFCAP_SW_TIMESTAMP | IFCAP_HW_TIMESTAMP | \
-	IFCAP_CSUM_PARTIAL | IFCAP_CSUM_ZERO_INVERT)
-
-#define IFQ_MAXLEN      128
-#define IFNET_SLOWHZ    1       /* granularity is 1 second */
-#define IFQ_TARGET_DELAY        (10ULL * 1000 * 1000)   /* 10 ms */
-#define IFQ_UPDATE_INTERVAL     (100ULL * 1000 * 1000)  /* 100 ms */
-
-/*
- * Message format for use in obtaining information about interfaces
- * from sysctl and the routing socket
- */
-struct if_msghdr {
-	unsigned short  ifm_msglen;     /* to skip non-understood messages */
-	unsigned char   ifm_version;    /* future binary compatability */
-	unsigned char   ifm_type;       /* message type */
-	int             ifm_addrs;      /* like rtm_addrs */
-	int             ifm_flags;      /* value of if_flags */
-	unsigned short  ifm_index;      /* index for associated ifp */
-	struct  if_data ifm_data;       /* statistics and other data about if */
-};
-
-/*
- * Message format for use in obtaining information about interface addresses
- * from sysctl and the routing socket
- */
-struct ifa_msghdr {
-	unsigned short  ifam_msglen;    /* to skip non-understood messages */
-	unsigned char   ifam_version;   /* future binary compatability */
-	unsigned char   ifam_type;      /* message type */
-	int             ifam_addrs;     /* like rtm_addrs */
-	int             ifam_flags;     /* value of ifa_flags */
-	unsigned short  ifam_index;     /* index for associated ifp */
-	int             ifam_metric;    /* value of ifa_metric */
-};
-
-/*
- * Message format for use in obtaining information about multicast addresses
- * from the routing socket
- */
-struct ifma_msghdr {
-	unsigned short  ifmam_msglen;   /* to skip non-understood messages */
-	unsigned char   ifmam_version;  /* future binary compatability */
-	unsigned char   ifmam_type;     /* message type */
-	int             ifmam_addrs;    /* like rtm_addrs */
-	int             ifmam_flags;    /* value of ifa_flags */
-	unsigned short  ifmam_index;    /* index for associated ifp */
-};
-
-/*
- * Message format for use in obtaining information about interfaces
- * from sysctl
- */
-struct if_msghdr2 {
-	u_short ifm_msglen;     /* to skip over non-understood messages */
-	u_char  ifm_version;    /* future binary compatability */
-	u_char  ifm_type;       /* message type */
-	int     ifm_addrs;      /* like rtm_addrs */
-	int     ifm_flags;      /* value of if_flags */
-	u_short ifm_index;      /* index for associated ifp */
-	int     ifm_snd_len;    /* instantaneous length of send queue */
-	int     ifm_snd_maxlen; /* maximum length of send queue */
-	int     ifm_snd_drops;  /* number of drops in send queue */
-	int     ifm_timer;      /* time until if_watchdog called */
-	struct if_data64        ifm_data;       /* statistics and other data */
-};
-
-/*
- * Message format for use in obtaining information about multicast addresses
- * from sysctl
- */
-struct ifma_msghdr2 {
-	u_short ifmam_msglen;   /* to skip over non-understood messages */
-	u_char  ifmam_version;  /* future binary compatability */
-	u_char  ifmam_type;     /* message type */
-	int     ifmam_addrs;    /* like rtm_addrs */
-	int     ifmam_flags;    /* value of ifa_flags */
-	u_short ifmam_index;    /* index for associated ifp */
-	int32_t ifmam_refcount;
-};
-
-/*
- * ifdevmtu: interface device mtu
- *    Used with SIOCGIFDEVMTU to get the current mtu in use by the device,
- *    as well as the minimum and maximum mtu allowed by the device.
- */
-struct ifdevmtu {
-	int     ifdm_current;
-	int     ifdm_min;
-	int     ifdm_max;
-};
-
-#pragma pack(4)
-
-/*
- *  ifkpi: interface kpi ioctl
- *  Used with SIOCSIFKPI and SIOCGIFKPI.
- *
- *  ifk_module_id - From in the kernel, a value from kev_vendor_code_find. From
- *       user space, a value from SIOCGKEVVENDOR ioctl on a kernel event socket.
- *  ifk_type - The type. Types are specific to each module id.
- *  ifk_data - The data. ifk_ptr may be a 64bit pointer for 64 bit processes.
- *
- *  Copying data between user space and kernel space is done using copyin
- *  and copyout. A process may be running in 64bit mode. In such a case,
- *  the pointer will be a 64bit pointer, not a 32bit pointer. The following
- *  sample is a safe way to copy the data in to the kernel from either a
- *  32bit or 64bit process:
- *
- *  user_addr_t tmp_ptr;
- *  if (IS_64BIT_PROCESS(current_proc())) {
- *       tmp_ptr = CAST_USER_ADDR_T(ifkpi.ifk_data.ifk_ptr64);
- *  }
- *  else {
- *       tmp_ptr = CAST_USER_ADDR_T(ifkpi.ifk_data.ifk_ptr);
- *  }
- *  error = copyin(tmp_ptr, allocated_dst_buffer, size of allocated_dst_buffer);
- */
-
-struct ifkpi {
-	unsigned int    ifk_module_id;
-	unsigned int    ifk_type;
-	union {
-		void            *ifk_ptr;
-		int             ifk_value;
-	} ifk_data;
-};
-
-/* Wake capabilities of a interface */
-#define IF_WAKE_ON_MAGIC_PACKET         0x01
-
-
-#pragma pack()
-
-/*
- * Interface request structure used for socket
- * ioctl's.  All interface ioctl's must have parameter
- * definitions which begin with ifr_name.  The
- * remainder may be interface specific.
- */
-struct  ifreq {
-#ifndef IFNAMSIZ
-#define IFNAMSIZ        IF_NAMESIZE
-#endif
-	char    ifr_name[IFNAMSIZ];             /* if name, e.g. "en0" */
-	union {
-		struct  sockaddr ifru_addr;
-		struct  sockaddr ifru_dstaddr;
-		struct  sockaddr ifru_broadaddr;
-		short   ifru_flags;
-		int     ifru_metric;
-		int     ifru_mtu;
-		int     ifru_phys;
-		int     ifru_media;
-		int     ifru_intval;
-		caddr_t ifru_data;
-		struct  ifdevmtu ifru_devmtu;
-		struct  ifkpi   ifru_kpi;
-		u_int32_t ifru_wake_flags;
-		u_int32_t ifru_route_refcnt;
-		int     ifru_cap[2];
-		u_int32_t ifru_functional_type;
-#define IFRTYPE_FUNCTIONAL_UNKNOWN              0
-#define IFRTYPE_FUNCTIONAL_LOOPBACK             1
-#define IFRTYPE_FUNCTIONAL_WIRED                2
-#define IFRTYPE_FUNCTIONAL_WIFI_INFRA           3
-#define IFRTYPE_FUNCTIONAL_WIFI_AWDL            4
-#define IFRTYPE_FUNCTIONAL_CELLULAR             5
-#define IFRTYPE_FUNCTIONAL_INTCOPROC            6
-#define IFRTYPE_FUNCTIONAL_COMPANIONLINK        7
-#define IFRTYPE_FUNCTIONAL_LAST                 7
-	} ifr_ifru;
-#define ifr_addr        ifr_ifru.ifru_addr      /* address */
-#define ifr_dstaddr     ifr_ifru.ifru_dstaddr   /* other end of p-to-p link */
-#define ifr_broadaddr   ifr_ifru.ifru_broadaddr /* broadcast address */
-#ifdef __APPLE__
-#define ifr_flags       ifr_ifru.ifru_flags     /* flags */
-#else
-#define ifr_flags       ifr_ifru.ifru_flags[0]  /* flags */
-#define ifr_prevflags   ifr_ifru.ifru_flags[1]  /* flags */
-#endif /* __APPLE__ */
-#define ifr_metric      ifr_ifru.ifru_metric    /* metric */
-#define ifr_mtu         ifr_ifru.ifru_mtu       /* mtu */
-#define ifr_phys        ifr_ifru.ifru_phys      /* physical wire */
-#define ifr_media       ifr_ifru.ifru_media     /* physical media */
-#define ifr_data        ifr_ifru.ifru_data      /* for use by interface */
-#define ifr_devmtu      ifr_ifru.ifru_devmtu
-#define ifr_intval      ifr_ifru.ifru_intval    /* integer value */
-#define ifr_kpi         ifr_ifru.ifru_kpi
-#define ifr_wake_flags  ifr_ifru.ifru_wake_flags /* wake capabilities */
-#define ifr_route_refcnt ifr_ifru.ifru_route_refcnt /* route references count */
-#define ifr_reqcap      ifr_ifru.ifru_cap[0]    /* requested capabilities */
-#define ifr_curcap      ifr_ifru.ifru_cap[1]    /* current capabilities */
-};
-
-#define _SIZEOF_ADDR_IFREQ(ifr) \
-	((ifr).ifr_addr.sa_len > sizeof (struct sockaddr) ? \
-	(sizeof (struct ifreq) - sizeof (struct sockaddr) + \
-	(ifr).ifr_addr.sa_len) : sizeof (struct ifreq))
-
-struct ifaliasreq {
-	char    ifra_name[IFNAMSIZ];            /* if name, e.g. "en0" */
-	struct  sockaddr ifra_addr;
-	struct  sockaddr ifra_broadaddr;
-	struct  sockaddr ifra_mask;
-};
-
-struct rslvmulti_req {
-	struct sockaddr *sa;
-	struct sockaddr **llsa;
-};
-
-#pragma pack(4)
-
-struct ifmediareq {
-	char    ifm_name[IFNAMSIZ];     /* if name, e.g. "en0" */
-	int     ifm_current;            /* current media options */
-	int     ifm_mask;               /* don't care mask */
-	int     ifm_status;             /* media status */
-	int     ifm_active;             /* active options */
-	int     ifm_count;              /* # entries in ifm_ulist array */
-	int     *ifm_ulist;             /* media words */
-};
-
-#pragma pack()
-
-
-
-#pragma pack(4)
-struct  ifdrv {
-	char            ifd_name[IFNAMSIZ];     /* if name, e.g. "en0" */
-	unsigned long   ifd_cmd;
-	size_t          ifd_len;                /* length of ifd_data buffer */
-	void            *ifd_data;
-};
-#pragma pack()
-
-
-/*
- * Structure used to retrieve aux status data from interfaces.
- * Kernel suppliers to this interface should respect the formatting
- * needed by ifconfig(8): each line starts with a TAB and ends with
- * a newline.
- */
-
-#define IFSTATMAX       800             /* 10 lines of text */
-struct ifstat {
-	char    ifs_name[IFNAMSIZ];     /* if name, e.g. "en0" */
-	char    ascii[IFSTATMAX + 1];
-};
-
-/*
- * Structure used in SIOCGIFCONF request.
- * Used to retrieve interface configuration
- * for machine (useful for programs which
- * must know all networks accessible).
- */
-#pragma pack(4)
-struct  ifconf {
-	int     ifc_len;                /* size of associated buffer */
-	union {
-		caddr_t ifcu_buf;
-		struct  ifreq *ifcu_req;
-	} ifc_ifcu;
-};
-#pragma pack()
-#define ifc_buf ifc_ifcu.ifcu_buf       /* buffer address */
-#define ifc_req ifc_ifcu.ifcu_req       /* array of structures returned */
-
-
-/*
- * DLIL KEV_DL_PROTO_ATTACHED/DETACHED structure
- */
-struct kev_dl_proto_data {
-	struct net_event_data           link_data;
-	u_int32_t                       proto_family;
-	u_int32_t                       proto_remaining_count;
-};
-
-
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-
-struct if_nameindex {
-	unsigned int     if_index;      /* 1, 2, ... */
-	char            *if_name;       /* null terminated name: "le0", ... */
-};
-
-__BEGIN_DECLS
-unsigned int     if_nametoindex(const char *);
-char            *if_indextoname(unsigned int, char *);
-struct           if_nameindex *if_nameindex(void);
-void             if_freenameindex(struct if_nameindex *);
-__END_DECLS
-
-
-#endif /* !_NET_IF_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/net/if_var.h b/lib/libc/include/x86_64-macos.10-none/net/if_var.h
deleted file mode 100644
index 6dcaa3842e0a820e8ad54fc13ea8d6335f1c5f6f..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/net/if_var.h
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Copyright (c) 2000-2019 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@
- */
-/*
- * Copyright (c) 1982, 1986, 1989, 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.
- *
- *	From: @(#)if.h	8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/net/if_var.h,v 1.18.2.7 2001/07/24 19:10:18 brooks Exp $
- */
-
-#ifndef _NET_IF_VAR_H_
-#define _NET_IF_VAR_H_
-
-#include 
-#include 
-#include 
-#include 
-#include           /* get TAILQ macros */
-#ifdef BSD_KERN_PRIVATE
-#include 
-#endif
-
-
-#ifdef __APPLE__
-#define APPLE_IF_FAM_LOOPBACK  1
-#define APPLE_IF_FAM_ETHERNET  2
-#define APPLE_IF_FAM_SLIP      3
-#define APPLE_IF_FAM_TUN       4
-#define APPLE_IF_FAM_VLAN      5
-#define APPLE_IF_FAM_PPP       6
-#define APPLE_IF_FAM_PVC       7
-#define APPLE_IF_FAM_DISC      8
-#define APPLE_IF_FAM_MDECAP    9
-#define APPLE_IF_FAM_GIF       10
-#define APPLE_IF_FAM_FAITH     11       /* deprecated */
-#define APPLE_IF_FAM_STF       12
-#define APPLE_IF_FAM_FIREWIRE  13
-#define APPLE_IF_FAM_BOND      14
-#define APPLE_IF_FAM_CELLULAR  15
-#define APPLE_IF_FAM_6LOWPAN   16
-#define APPLE_IF_FAM_UTUN      17
-#define APPLE_IF_FAM_IPSEC     18
-#endif /* __APPLE__ */
-
-/*
- * 72 was chosen below because it is the size of a TCP/IP
- * header (40) + the minimum mss (32).
- */
-#define IF_MINMTU       72
-#define IF_MAXMTU       65535
-
-/*
- * Structures defining a network interface, providing a packet
- * transport mechanism (ala level 0 of the PUP protocols).
- *
- * Each interface accepts output datagrams of a specified maximum
- * length, and provides higher level routines with input datagrams
- * received from its medium.
- *
- * Output occurs when the routine if_output is called, with three parameters:
- *	(*ifp->if_output)(ifp, m, dst, rt)
- * Here m is the mbuf chain to be sent and dst is the destination address.
- * The output routine encapsulates the supplied datagram if necessary,
- * and then transmits it on its medium.
- *
- * On input, each interface unwraps the data received by it, and either
- * places it on the input queue of a internetwork datagram routine
- * and posts the associated software interrupt, or passes the datagram to a raw
- * packet input routine.
- *
- * Routines exist for locating interfaces by their addresses
- * or for locating a interface on a certain network, as well as more general
- * routing and gateway routines maintaining information used to locate
- * interfaces.  These routines live in the files if.c and route.c
- */
-
-#define IFNAMSIZ        16
-
-/* This belongs up in socket.h or socketvar.h, depending on how far the
- *   event bubbles up.
- */
-
-struct net_event_data {
-	u_int32_t       if_family;
-	u_int32_t       if_unit;
-	char            if_name[IFNAMSIZ];
-};
-
-#if defined(__LP64__)
-#include 
-#define IF_DATA_TIMEVAL timeval32
-#else
-#define IF_DATA_TIMEVAL timeval
-#endif
-
-#pragma pack(4)
-
-/*
- * Structure describing information about an interface
- * which may be of interest to management entities.
- */
-struct if_data {
-	/* generic interface information */
-	u_char          ifi_type;       /* ethernet, tokenring, etc */
-	u_char          ifi_typelen;    /* Length of frame type id */
-	u_char          ifi_physical;   /* e.g., AUI, Thinnet, 10base-T, etc */
-	u_char          ifi_addrlen;    /* media address length */
-	u_char          ifi_hdrlen;     /* media header length */
-	u_char          ifi_recvquota;  /* polling quota for receive intrs */
-	u_char          ifi_xmitquota;  /* polling quota for xmit intrs */
-	u_char          ifi_unused1;    /* for future use */
-	u_int32_t       ifi_mtu;        /* maximum transmission unit */
-	u_int32_t       ifi_metric;     /* routing metric (external only) */
-	u_int32_t       ifi_baudrate;   /* linespeed */
-	/* volatile statistics */
-	u_int32_t       ifi_ipackets;   /* packets received on interface */
-	u_int32_t       ifi_ierrors;    /* input errors on interface */
-	u_int32_t       ifi_opackets;   /* packets sent on interface */
-	u_int32_t       ifi_oerrors;    /* output errors on interface */
-	u_int32_t       ifi_collisions; /* collisions on csma interfaces */
-	u_int32_t       ifi_ibytes;     /* total number of octets received */
-	u_int32_t       ifi_obytes;     /* total number of octets sent */
-	u_int32_t       ifi_imcasts;    /* packets received via multicast */
-	u_int32_t       ifi_omcasts;    /* packets sent via multicast */
-	u_int32_t       ifi_iqdrops;    /* dropped on input, this interface */
-	u_int32_t       ifi_noproto;    /* destined for unsupported protocol */
-	u_int32_t       ifi_recvtiming; /* usec spent receiving when timing */
-	u_int32_t       ifi_xmittiming; /* usec spent xmitting when timing */
-	struct IF_DATA_TIMEVAL ifi_lastchange;  /* time of last administrative change */
-	u_int32_t       ifi_unused2;    /* used to be the default_proto */
-	u_int32_t       ifi_hwassist;   /* HW offload capabilities */
-	u_int32_t       ifi_reserved1;  /* for future use */
-	u_int32_t       ifi_reserved2;  /* for future use */
-};
-
-/*
- * Structure describing information about an interface
- * which may be of interest to management entities.
- */
-struct if_data64 {
-	/* generic interface information */
-	u_char          ifi_type;               /* ethernet, tokenring, etc */
-	u_char          ifi_typelen;            /* Length of frame type id */
-	u_char          ifi_physical;           /* e.g., AUI, Thinnet, 10base-T, etc */
-	u_char          ifi_addrlen;            /* media address length */
-	u_char          ifi_hdrlen;             /* media header length */
-	u_char          ifi_recvquota;          /* polling quota for receive intrs */
-	u_char          ifi_xmitquota;          /* polling quota for xmit intrs */
-	u_char          ifi_unused1;            /* for future use */
-	u_int32_t       ifi_mtu;                /* maximum transmission unit */
-	u_int32_t       ifi_metric;             /* routing metric (external only) */
-	u_int64_t       ifi_baudrate;           /* linespeed */
-	/* volatile statistics */
-	u_int64_t       ifi_ipackets;           /* packets received on interface */
-	u_int64_t       ifi_ierrors;            /* input errors on interface */
-	u_int64_t       ifi_opackets;           /* packets sent on interface */
-	u_int64_t       ifi_oerrors;            /* output errors on interface */
-	u_int64_t       ifi_collisions;         /* collisions on csma interfaces */
-	u_int64_t       ifi_ibytes;             /* total number of octets received */
-	u_int64_t       ifi_obytes;             /* total number of octets sent */
-	u_int64_t       ifi_imcasts;            /* packets received via multicast */
-	u_int64_t       ifi_omcasts;            /* packets sent via multicast */
-	u_int64_t       ifi_iqdrops;            /* dropped on input, this interface */
-	u_int64_t       ifi_noproto;            /* destined for unsupported protocol */
-	u_int32_t       ifi_recvtiming;         /* usec spent receiving when timing */
-	u_int32_t       ifi_xmittiming;         /* usec spent xmitting when timing */
-	struct IF_DATA_TIMEVAL ifi_lastchange;  /* time of last administrative change */
-};
-
-
-#pragma pack()
-
-/*
- * Structure defining a queue for a network interface.
- */
-struct  ifqueue {
-	void    *ifq_head;
-	void    *ifq_tail;
-	int     ifq_len;
-	int     ifq_maxlen;
-	int     ifq_drops;
-};
-
-
-
-
-
-
-#endif /* !_NET_IF_VAR_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/net/net_kev.h b/lib/libc/include/x86_64-macos.10-none/net/net_kev.h
deleted file mode 100644
index 0919e59ff2a9ac78e9e09bd58d8ed85048db28f2..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/net/net_kev.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2016-2018 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 _NET_NETKEV_H_
-#define _NET_NETKEV_H_
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-
-/* Kernel event subclass identifiers for KEV_NETWORK_CLASS */
-#define KEV_INET_SUBCLASS       1       /* inet subclass */
-/* KEV_INET_SUBCLASS event codes */
-#define KEV_INET_NEW_ADDR               1 /* Userland configured IP address */
-#define KEV_INET_CHANGED_ADDR           2 /* Address changed event */
-#define KEV_INET_ADDR_DELETED           3 /* IPv6 address was deleted */
-#define KEV_INET_SIFDSTADDR             4 /* Dest. address was set */
-#define KEV_INET_SIFBRDADDR             5 /* Broadcast address was set */
-#define KEV_INET_SIFNETMASK             6 /* Netmask was set */
-#define KEV_INET_ARPCOLLISION           7 /* ARP collision detected */
-#ifdef __APPLE_API_PRIVATE
-#define KEV_INET_PORTINUSE              8 /* use ken_in_portinuse */
-#endif
-#define KEV_INET_ARPRTRFAILURE          9 /* ARP resolution failed for router */
-#define KEV_INET_ARPRTRALIVE            10 /* ARP resolution succeeded for router */
-
-#define KEV_DL_SUBCLASS 2               /* Data Link subclass */
-/*
- * Define Data-Link event subclass, and associated
- * events.
- */
-#define KEV_DL_SIFFLAGS                         1
-#define KEV_DL_SIFMETRICS                       2
-#define KEV_DL_SIFMTU                           3
-#define KEV_DL_SIFPHYS                          4
-#define KEV_DL_SIFMEDIA                         5
-#define KEV_DL_SIFGENERIC                       6
-#define KEV_DL_ADDMULTI                         7
-#define KEV_DL_DELMULTI                         8
-#define KEV_DL_IF_ATTACHED                      9
-#define KEV_DL_IF_DETACHING                     10
-#define KEV_DL_IF_DETACHED                      11
-#define KEV_DL_LINK_OFF                         12
-#define KEV_DL_LINK_ON                          13
-#define KEV_DL_PROTO_ATTACHED                   14
-#define KEV_DL_PROTO_DETACHED                   15
-#define KEV_DL_LINK_ADDRESS_CHANGED             16
-#define KEV_DL_WAKEFLAGS_CHANGED                17
-#define KEV_DL_IF_IDLE_ROUTE_REFCNT             18
-#define KEV_DL_IFCAP_CHANGED                    19
-#define KEV_DL_LINK_QUALITY_METRIC_CHANGED      20
-#define KEV_DL_NODE_PRESENCE                    21
-#define KEV_DL_NODE_ABSENCE                     22
-#define KEV_DL_MASTER_ELECTED                   23
-#define KEV_DL_ISSUES                           24
-#define KEV_DL_IFDELEGATE_CHANGED               25
-#define KEV_DL_AWDL_RESTRICTED                  26
-#define KEV_DL_AWDL_UNRESTRICTED                27
-#define KEV_DL_RRC_STATE_CHANGED                28
-#define KEV_DL_QOS_MODE_CHANGED                 29
-#define KEV_DL_LOW_POWER_MODE_CHANGED           30
-
-
-#define KEV_INET6_SUBCLASS      6       /* inet6 subclass */
-/* KEV_INET6_SUBCLASS event codes */
-#define KEV_INET6_NEW_USER_ADDR         1 /* Userland configured IPv6 address */
-#define KEV_INET6_CHANGED_ADDR          2 /* Address changed event (future) */
-#define KEV_INET6_ADDR_DELETED          3 /* IPv6 address was deleted */
-#define KEV_INET6_NEW_LL_ADDR           4 /* Autoconf LL address appeared */
-#define KEV_INET6_NEW_RTADV_ADDR        5 /* Autoconf address has appeared */
-#define KEV_INET6_DEFROUTER             6 /* Default router detected */
-#define KEV_INET6_REQUEST_NAT64_PREFIX  7 /* Asking for the NAT64-prefix */
-
-#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-#endif /* _NET_NETKEV_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/net/route.h b/lib/libc/include/x86_64-macos.10-none/net/route.h
deleted file mode 100644
index 77ff23a3e1465dc8f03247867269b15a3afc2b87..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/net/route.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- * Copyright (c) 2000-2017 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@
- */
-/*
- * Copyright (c) 1980, 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.
- *
- *	@(#)route.h	8.3 (Berkeley) 4/19/94
- * $FreeBSD: src/sys/net/route.h,v 1.36.2.1 2000/08/16 06:14:23 jayanth Exp $
- */
-
-#ifndef _NET_ROUTE_H_
-#define _NET_ROUTE_H_
-#include 
-#include 
-#include 
-#include 
-
-/*
- * These numbers are used by reliable protocols for determining
- * retransmission behavior and are included in the routing structure.
- */
-struct rt_metrics {
-	u_int32_t       rmx_locks;      /* Kernel leaves these values alone */
-	u_int32_t       rmx_mtu;        /* MTU for this path */
-	u_int32_t       rmx_hopcount;   /* max hops expected */
-	int32_t         rmx_expire;     /* lifetime for route, e.g. redirect */
-	u_int32_t       rmx_recvpipe;   /* inbound delay-bandwidth product */
-	u_int32_t       rmx_sendpipe;   /* outbound delay-bandwidth product */
-	u_int32_t       rmx_ssthresh;   /* outbound gateway buffer limit */
-	u_int32_t       rmx_rtt;        /* estimated round trip time */
-	u_int32_t       rmx_rttvar;     /* estimated rtt variance */
-	u_int32_t       rmx_pksent;     /* packets sent using this route */
-	u_int32_t       rmx_state;      /* route state */
-	u_int32_t       rmx_filler[3];  /* will be used for T/TCP later */
-};
-
-/*
- * rmx_rtt and rmx_rttvar are stored as microseconds;
- */
-#define RTM_RTTUNIT     1000000 /* units for rtt, rttvar, as units per sec */
-
-
-
-#define RTF_UP          0x1             /* route usable */
-#define RTF_GATEWAY     0x2             /* destination is a gateway */
-#define RTF_HOST        0x4             /* host entry (net otherwise) */
-#define RTF_REJECT      0x8             /* host or net unreachable */
-#define RTF_DYNAMIC     0x10            /* created dynamically (by redirect) */
-#define RTF_MODIFIED    0x20            /* modified dynamically (by redirect) */
-#define RTF_DONE        0x40            /* message confirmed */
-#define RTF_DELCLONE    0x80            /* delete cloned route */
-#define RTF_CLONING     0x100           /* generate new routes on use */
-#define RTF_XRESOLVE    0x200           /* external daemon resolves name */
-#define RTF_LLINFO      0x400           /* DEPRECATED - exists ONLY for backward
-	                                 *  compatibility */
-#define RTF_LLDATA      0x400           /* used by apps to add/del L2 entries */
-#define RTF_STATIC      0x800           /* manually added */
-#define RTF_BLACKHOLE   0x1000          /* just discard pkts (during updates) */
-#define RTF_NOIFREF     0x2000          /* not eligible for RTF_IFREF */
-#define RTF_PROTO2      0x4000          /* protocol specific routing flag */
-#define RTF_PROTO1      0x8000          /* protocol specific routing flag */
-
-#define RTF_PRCLONING   0x10000         /* protocol requires cloning */
-#define RTF_WASCLONED   0x20000         /* route generated through cloning */
-#define RTF_PROTO3      0x40000         /* protocol specific routing flag */
-                                        /* 0x80000 unused */
-#define RTF_PINNED      0x100000        /* future use */
-#define RTF_LOCAL       0x200000        /* route represents a local address */
-#define RTF_BROADCAST   0x400000        /* route represents a bcast address */
-#define RTF_MULTICAST   0x800000        /* route represents a mcast address */
-#define RTF_IFSCOPE     0x1000000       /* has valid interface scope */
-#define RTF_CONDEMNED   0x2000000       /* defunct; no longer modifiable */
-#define RTF_IFREF       0x4000000       /* route holds a ref to interface */
-#define RTF_PROXY       0x8000000       /* proxying, no interface scope */
-#define RTF_ROUTER      0x10000000      /* host is a router */
-#define RTF_DEAD        0x20000000      /* Route entry is being freed */
-                                        /* 0x40000000 and up unassigned */
-
-#define RTPRF_OURS      RTF_PROTO3      /* set on routes we manage */
-#define RTF_BITS \
-	"\020\1UP\2GATEWAY\3HOST\4REJECT\5DYNAMIC\6MODIFIED\7DONE" \
-	"\10DELCLONE\11CLONING\12XRESOLVE\13LLINFO\14STATIC\15BLACKHOLE" \
-	"\16NOIFREF\17PROTO2\20PROTO1\21PRCLONING\22WASCLONED\23PROTO3" \
-	"\25PINNED\26LOCAL\27BROADCAST\30MULTICAST\31IFSCOPE\32CONDEMNED" \
-	"\33IFREF\34PROXY\35ROUTER"
-
-#define IS_DIRECT_HOSTROUTE(rt) \
-	(((rt)->rt_flags & (RTF_HOST | RTF_GATEWAY)) == RTF_HOST)
-/*
- * Routing statistics.
- */
-struct  rtstat {
-	short   rts_badredirect;        /* bogus redirect calls */
-	short   rts_dynamic;            /* routes created by redirects */
-	short   rts_newgateway;         /* routes modified by redirects */
-	short   rts_unreach;            /* lookups which failed */
-	short   rts_wildcard;           /* lookups satisfied by a wildcard */
-	short   rts_badrtgwroute;       /* route to gateway is not direct */
-};
-
-/*
- * Structures for routing messages.
- */
-struct rt_msghdr {
-	u_short rtm_msglen;     /* to skip over non-understood messages */
-	u_char  rtm_version;    /* future binary compatibility */
-	u_char  rtm_type;       /* message type */
-	u_short rtm_index;      /* index for associated ifp */
-	int     rtm_flags;      /* flags, incl. kern & message, e.g. DONE */
-	int     rtm_addrs;      /* bitmask identifying sockaddrs in msg */
-	pid_t   rtm_pid;        /* identify sender */
-	int     rtm_seq;        /* for sender to identify action */
-	int     rtm_errno;      /* why failed */
-	int     rtm_use;        /* from rtentry */
-	u_int32_t rtm_inits;    /* which metrics we are initializing */
-	struct rt_metrics rtm_rmx; /* metrics themselves */
-};
-
-struct rt_msghdr2 {
-	u_short rtm_msglen;     /* to skip over non-understood messages */
-	u_char  rtm_version;    /* future binary compatibility */
-	u_char  rtm_type;       /* message type */
-	u_short rtm_index;      /* index for associated ifp */
-	int     rtm_flags;      /* flags, incl. kern & message, e.g. DONE */
-	int     rtm_addrs;      /* bitmask identifying sockaddrs in msg */
-	int32_t rtm_refcnt;     /* reference count */
-	int     rtm_parentflags; /* flags of the parent route */
-	int     rtm_reserved;   /* reserved field set to 0 */
-	int     rtm_use;        /* from rtentry */
-	u_int32_t rtm_inits;    /* which metrics we are initializing */
-	struct rt_metrics rtm_rmx; /* metrics themselves */
-};
-
-
-#define RTM_VERSION     5       /* Up the ante and ignore older versions */
-
-/*
- * Message types.
- */
-#define RTM_ADD         0x1     /* Add Route */
-#define RTM_DELETE      0x2     /* Delete Route */
-#define RTM_CHANGE      0x3     /* Change Metrics or flags */
-#define RTM_GET         0x4     /* Report Metrics */
-#define RTM_LOSING      0x5     /* RTM_LOSING is no longer generated by xnu
-	                         *  and is deprecated */
-#define RTM_REDIRECT    0x6     /* Told to use different route */
-#define RTM_MISS        0x7     /* Lookup failed on this address */
-#define RTM_LOCK        0x8     /* fix specified metrics */
-#define RTM_OLDADD      0x9     /* caused by SIOCADDRT */
-#define RTM_OLDDEL      0xa     /* caused by SIOCDELRT */
-#define RTM_RESOLVE     0xb     /* req to resolve dst to LL addr */
-#define RTM_NEWADDR     0xc     /* address being added to iface */
-#define RTM_DELADDR     0xd     /* address being removed from iface */
-#define RTM_IFINFO      0xe     /* iface going up/down etc. */
-#define RTM_NEWMADDR    0xf     /* mcast group membership being added to if */
-#define RTM_DELMADDR    0x10    /* mcast group membership being deleted */
-#define RTM_IFINFO2     0x12    /* */
-#define RTM_NEWMADDR2   0x13    /* */
-#define RTM_GET2        0x14    /* */
-
-/*
- * Bitmask values for rtm_inits and rmx_locks.
- */
-#define RTV_MTU         0x1     /* init or lock _mtu */
-#define RTV_HOPCOUNT    0x2     /* init or lock _hopcount */
-#define RTV_EXPIRE      0x4     /* init or lock _expire */
-#define RTV_RPIPE       0x8     /* init or lock _recvpipe */
-#define RTV_SPIPE       0x10    /* init or lock _sendpipe */
-#define RTV_SSTHRESH    0x20    /* init or lock _ssthresh */
-#define RTV_RTT         0x40    /* init or lock _rtt */
-#define RTV_RTTVAR      0x80    /* init or lock _rttvar */
-
-/*
- * Bitmask values for rtm_addrs.
- */
-#define RTA_DST         0x1     /* destination sockaddr present */
-#define RTA_GATEWAY     0x2     /* gateway sockaddr present */
-#define RTA_NETMASK     0x4     /* netmask sockaddr present */
-#define RTA_GENMASK     0x8     /* cloning mask sockaddr present */
-#define RTA_IFP         0x10    /* interface name sockaddr present */
-#define RTA_IFA         0x20    /* interface addr sockaddr present */
-#define RTA_AUTHOR      0x40    /* sockaddr for author of redirect */
-#define RTA_BRD         0x80    /* for NEWADDR, broadcast or p-p dest addr */
-
-/*
- * Index offsets for sockaddr array for alternate internal encoding.
- */
-#define RTAX_DST        0       /* destination sockaddr present */
-#define RTAX_GATEWAY    1       /* gateway sockaddr present */
-#define RTAX_NETMASK    2       /* netmask sockaddr present */
-#define RTAX_GENMASK    3       /* cloning mask sockaddr present */
-#define RTAX_IFP        4       /* interface name sockaddr present */
-#define RTAX_IFA        5       /* interface addr sockaddr present */
-#define RTAX_AUTHOR     6       /* sockaddr for author of redirect */
-#define RTAX_BRD        7       /* for NEWADDR, broadcast or p-p dest addr */
-#define RTAX_MAX        8       /* size of array to allocate */
-
-struct rt_addrinfo {
-	int     rti_addrs;
-	struct  sockaddr *rti_info[RTAX_MAX];
-};
-
-
-#endif /* _NET_ROUTE_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/netinet/in.h b/lib/libc/include/x86_64-macos.10-none/netinet/in.h
deleted file mode 100644
index 0e921c2965c8b2fcd5c3577dcb2e363a0a67f4f6..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/netinet/in.h
+++ /dev/null
@@ -1,671 +0,0 @@
-/*
- * Copyright (c) 2000-2018 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@
- */
-/*
- * Copyright (c) 1982, 1986, 1990, 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.
- *
- *	@(#)in.h	8.3 (Berkeley) 1/3/94
- * $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
- */
-
-#ifndef _NETINET_IN_H_
-#define _NETINET_IN_H_
-#include 
-#include 
-#include              /* uint(8|16|32)_t */
-
-#include 
-
-#include 
-
-#include 
-
-/*
- * POSIX 1003.1-2003
- * "Inclusion of the  header may also make visible all
- *  symbols from  and ".
- */
-#include 
-
-/*
- * The following two #includes insure htonl and family are defined
- */
-#include 
-#include 
-
-/*
- * Constants and structures defined by the internet system,
- * Per RFC 790, September 1981, and numerous additions.
- */
-
-/*
- * Protocols (RFC 1700)
- */
-#define IPPROTO_IP              0               /* dummy for IP */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IPPROTO_HOPOPTS 0               /* IP6 hop-by-hop options */
-#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-#define IPPROTO_ICMP            1               /* control message protocol */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IPPROTO_IGMP            2               /* group mgmt protocol */
-#define IPPROTO_GGP             3               /* gateway^2 (deprecated) */
-#define IPPROTO_IPV4            4               /* IPv4 encapsulation */
-#define IPPROTO_IPIP            IPPROTO_IPV4    /* for compatibility */
-#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-#define IPPROTO_TCP             6               /* tcp */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IPPROTO_ST              7               /* Stream protocol II */
-#define IPPROTO_EGP             8               /* exterior gateway protocol */
-#define IPPROTO_PIGP            9               /* private interior gateway */
-#define IPPROTO_RCCMON          10              /* BBN RCC Monitoring */
-#define IPPROTO_NVPII           11              /* network voice protocol*/
-#define IPPROTO_PUP             12              /* pup */
-#define IPPROTO_ARGUS           13              /* Argus */
-#define IPPROTO_EMCON           14              /* EMCON */
-#define IPPROTO_XNET            15              /* Cross Net Debugger */
-#define IPPROTO_CHAOS           16              /* Chaos*/
-#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-#define IPPROTO_UDP             17              /* user datagram protocol */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IPPROTO_MUX             18              /* Multiplexing */
-#define IPPROTO_MEAS            19              /* DCN Measurement Subsystems */
-#define IPPROTO_HMP             20              /* Host Monitoring */
-#define IPPROTO_PRM             21              /* Packet Radio Measurement */
-#define IPPROTO_IDP             22              /* xns idp */
-#define IPPROTO_TRUNK1          23              /* Trunk-1 */
-#define IPPROTO_TRUNK2          24              /* Trunk-2 */
-#define IPPROTO_LEAF1           25              /* Leaf-1 */
-#define IPPROTO_LEAF2           26              /* Leaf-2 */
-#define IPPROTO_RDP             27              /* Reliable Data */
-#define IPPROTO_IRTP            28              /* Reliable Transaction */
-#define IPPROTO_TP              29              /* tp-4 w/ class negotiation */
-#define IPPROTO_BLT             30              /* Bulk Data Transfer */
-#define IPPROTO_NSP             31              /* Network Services */
-#define IPPROTO_INP             32              /* Merit Internodal */
-#define IPPROTO_SEP             33              /* Sequential Exchange */
-#define IPPROTO_3PC             34              /* Third Party Connect */
-#define IPPROTO_IDPR            35              /* InterDomain Policy Routing */
-#define IPPROTO_XTP             36              /* XTP */
-#define IPPROTO_DDP             37              /* Datagram Delivery */
-#define IPPROTO_CMTP            38              /* Control Message Transport */
-#define IPPROTO_TPXX            39              /* TP++ Transport */
-#define IPPROTO_IL              40              /* IL transport protocol */
-#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-#define         IPPROTO_IPV6            41              /* IP6 header */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IPPROTO_SDRP            42              /* Source Demand Routing */
-#define         IPPROTO_ROUTING 43              /* IP6 routing header */
-#define         IPPROTO_FRAGMENT        44              /* IP6 fragmentation header */
-#define IPPROTO_IDRP            45              /* InterDomain Routing*/
-#define         IPPROTO_RSVP            46              /* resource reservation */
-#define IPPROTO_GRE             47              /* General Routing Encap. */
-#define IPPROTO_MHRP            48              /* Mobile Host Routing */
-#define IPPROTO_BHA             49              /* BHA */
-#define IPPROTO_ESP             50              /* IP6 Encap Sec. Payload */
-#define IPPROTO_AH              51              /* IP6 Auth Header */
-#define IPPROTO_INLSP           52              /* Integ. Net Layer Security */
-#define IPPROTO_SWIPE           53              /* IP with encryption */
-#define IPPROTO_NHRP            54              /* Next Hop Resolution */
-/* 55-57: Unassigned */
-#define IPPROTO_ICMPV6          58              /* ICMP6 */
-#define IPPROTO_NONE            59              /* IP6 no next header */
-#define IPPROTO_DSTOPTS         60              /* IP6 destination option */
-#define IPPROTO_AHIP            61              /* any host internal protocol */
-#define IPPROTO_CFTP            62              /* CFTP */
-#define IPPROTO_HELLO           63              /* "hello" routing protocol */
-#define IPPROTO_SATEXPAK        64              /* SATNET/Backroom EXPAK */
-#define IPPROTO_KRYPTOLAN       65              /* Kryptolan */
-#define IPPROTO_RVD             66              /* Remote Virtual Disk */
-#define IPPROTO_IPPC            67              /* Pluribus Packet Core */
-#define IPPROTO_ADFS            68              /* Any distributed FS */
-#define IPPROTO_SATMON          69              /* Satnet Monitoring */
-#define IPPROTO_VISA            70              /* VISA Protocol */
-#define IPPROTO_IPCV            71              /* Packet Core Utility */
-#define IPPROTO_CPNX            72              /* Comp. Prot. Net. Executive */
-#define IPPROTO_CPHB            73              /* Comp. Prot. HeartBeat */
-#define IPPROTO_WSN             74              /* Wang Span Network */
-#define IPPROTO_PVP             75              /* Packet Video Protocol */
-#define IPPROTO_BRSATMON        76              /* BackRoom SATNET Monitoring */
-#define IPPROTO_ND              77              /* Sun net disk proto (temp.) */
-#define IPPROTO_WBMON           78              /* WIDEBAND Monitoring */
-#define IPPROTO_WBEXPAK         79              /* WIDEBAND EXPAK */
-#define IPPROTO_EON             80              /* ISO cnlp */
-#define IPPROTO_VMTP            81              /* VMTP */
-#define IPPROTO_SVMTP           82              /* Secure VMTP */
-#define IPPROTO_VINES           83              /* Banyon VINES */
-#define IPPROTO_TTP             84              /* TTP */
-#define IPPROTO_IGP             85              /* NSFNET-IGP */
-#define IPPROTO_DGP             86              /* dissimilar gateway prot. */
-#define IPPROTO_TCF             87              /* TCF */
-#define IPPROTO_IGRP            88              /* Cisco/GXS IGRP */
-#define IPPROTO_OSPFIGP         89              /* OSPFIGP */
-#define IPPROTO_SRPC            90              /* Strite RPC protocol */
-#define IPPROTO_LARP            91              /* Locus Address Resoloution */
-#define IPPROTO_MTP             92              /* Multicast Transport */
-#define IPPROTO_AX25            93              /* AX.25 Frames */
-#define IPPROTO_IPEIP           94              /* IP encapsulated in IP */
-#define IPPROTO_MICP            95              /* Mobile Int.ing control */
-#define IPPROTO_SCCSP           96              /* Semaphore Comm. security */
-#define IPPROTO_ETHERIP         97              /* Ethernet IP encapsulation */
-#define IPPROTO_ENCAP           98              /* encapsulation header */
-#define IPPROTO_APES            99              /* any private encr. scheme */
-#define IPPROTO_GMTP            100             /* GMTP*/
-/* 101-252: Partly Unassigned */
-#define IPPROTO_PIM             103             /* Protocol Independent Mcast */
-#define IPPROTO_IPCOMP          108             /* payload compression (IPComp) */
-#define IPPROTO_PGM             113             /* PGM */
-#define IPPROTO_SCTP            132             /* SCTP */
-/* 253-254: Experimentation and testing; 255: Reserved (RFC3692) */
-/* BSD Private, local use, namespace incursion */
-#define IPPROTO_DIVERT          254             /* divert pseudo-protocol */
-#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-#define IPPROTO_RAW             255             /* raw IP packet */
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IPPROTO_MAX             256
-
-/* last return value of *_input(), meaning "all job for this pkt is done".  */
-#define IPPROTO_DONE            257
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-
-/*
- * Local port number conventions:
- *
- * When a user does a bind(2) or connect(2) with a port number of zero,
- * a non-conflicting local port address is chosen.
- * The default range is IPPORT_RESERVED through
- * IPPORT_USERRESERVED, although that is settable by sysctl.
- *
- * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
- * default assignment range.
- *
- * The value IP_PORTRANGE_DEFAULT causes the default behavior.
- *
- * The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
- * into the "high" range.  These are reserved for client outbound connections
- * which do not want to be filtered by any firewalls.
- *
- * The value IP_PORTRANGE_LOW changes the range to the "low" are
- * that is (by convention) restricted to privileged processes.  This
- * convention is based on "vouchsafe" principles only.  It is only secure
- * if you trust the remote host to restrict these ports.
- *
- * The default range of ports and the high range can be changed by
- * sysctl(3).  (net.inet.ip.port{hi,low}{first,last}_auto)
- *
- * Changing those values has bad security implications if you are
- * using a a stateless firewall that is allowing packets outside of that
- * range in order to allow transparent outgoing connections.
- *
- * Such a firewall configuration will generally depend on the use of these
- * default values.  If you change them, you may find your Security
- * Administrator looking for you with a heavy object.
- *
- * For a slightly more orthodox text view on this:
- *
- *            ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
- *
- *    port numbers are divided into three ranges:
- *
- *                0 -  1023 Well Known Ports
- *             1024 - 49151 Registered Ports
- *            49152 - 65535 Dynamic and/or Private Ports
- *
- */
-
-#define __DARWIN_IPPORT_RESERVED        1024
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-/*
- * Ports < IPPORT_RESERVED are reserved for
- * privileged processes (e.g. root).         (IP_PORTRANGE_LOW)
- * Ports > IPPORT_USERRESERVED are reserved
- * for servers, not necessarily privileged.  (IP_PORTRANGE_DEFAULT)
- */
-#ifndef IPPORT_RESERVED
-#define IPPORT_RESERVED         __DARWIN_IPPORT_RESERVED
-#endif
-#define IPPORT_USERRESERVED     5000
-
-/*
- * Default local port range to use by setting IP_PORTRANGE_HIGH
- */
-#define IPPORT_HIFIRSTAUTO      49152
-#define IPPORT_HILASTAUTO       65535
-
-/*
- * Scanning for a free reserved port return a value below IPPORT_RESERVED,
- * but higher than IPPORT_RESERVEDSTART.  Traditionally the start value was
- * 512, but that conflicts with some well-known-services that firewalls may
- * have a fit if we use.
- */
-#define IPPORT_RESERVEDSTART    600
-#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-
-/*
- * Internet address (a structure for historical reasons)
- */
-struct in_addr {
-	in_addr_t s_addr;
-};
-
-/*
- * Definitions of bits in internet address integers.
- * On subnets, the decomposition of addresses to host and net parts
- * is done according to subnet mask, not the masks here.
- */
-#define INADDR_ANY              (u_int32_t)0x00000000
-#define INADDR_BROADCAST        (u_int32_t)0xffffffff   /* must be masked */
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IN_CLASSA(i)            (((u_int32_t)(i) & 0x80000000) == 0)
-#define IN_CLASSA_NET           0xff000000
-#define IN_CLASSA_NSHIFT        24
-#define IN_CLASSA_HOST          0x00ffffff
-#define IN_CLASSA_MAX           128
-
-#define IN_CLASSB(i)            (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
-#define IN_CLASSB_NET           0xffff0000
-#define IN_CLASSB_NSHIFT        16
-#define IN_CLASSB_HOST          0x0000ffff
-#define IN_CLASSB_MAX           65536
-
-#define IN_CLASSC(i)            (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
-#define IN_CLASSC_NET           0xffffff00
-#define IN_CLASSC_NSHIFT        8
-#define IN_CLASSC_HOST          0x000000ff
-
-#define IN_CLASSD(i)            (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
-#define IN_CLASSD_NET           0xf0000000      /* These ones aren't really */
-#define IN_CLASSD_NSHIFT        28              /* net and host fields, but */
-#define IN_CLASSD_HOST          0x0fffffff      /* routing needn't know.    */
-#define IN_MULTICAST(i)         IN_CLASSD(i)
-
-#define IN_EXPERIMENTAL(i)      (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
-#define IN_BADCLASS(i)          (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
-
-#define INADDR_LOOPBACK         (u_int32_t)0x7f000001
-
-#define INADDR_NONE             0xffffffff              /* -1 return */
-
-#define INADDR_UNSPEC_GROUP     (u_int32_t)0xe0000000   /* 224.0.0.0 */
-#define INADDR_ALLHOSTS_GROUP   (u_int32_t)0xe0000001   /* 224.0.0.1 */
-#define INADDR_ALLRTRS_GROUP    (u_int32_t)0xe0000002   /* 224.0.0.2 */
-#define INADDR_ALLRPTS_GROUP    (u_int32_t)0xe0000016   /* 224.0.0.22, IGMPv3 */
-#define INADDR_CARP_GROUP       (u_int32_t)0xe0000012   /* 224.0.0.18 */
-#define INADDR_PFSYNC_GROUP     (u_int32_t)0xe00000f0   /* 224.0.0.240 */
-#define INADDR_ALLMDNS_GROUP    (u_int32_t)0xe00000fb   /* 224.0.0.251 */
-#define INADDR_MAX_LOCAL_GROUP  (u_int32_t)0xe00000ff   /* 224.0.0.255 */
-
-#ifdef __APPLE__
-#define IN_LINKLOCALNETNUM      (u_int32_t)0xA9FE0000 /* 169.254.0.0 */
-#define IN_LINKLOCAL(i)         (((u_int32_t)(i) & IN_CLASSB_NET) == IN_LINKLOCALNETNUM)
-#define IN_LOOPBACK(i)          (((u_int32_t)(i) & 0xff000000) == 0x7f000000)
-#define IN_ZERONET(i)           (((u_int32_t)(i) & 0xff000000) == 0)
-
-#define IN_PRIVATE(i)   ((((u_int32_t)(i) & 0xff000000) == 0x0a000000) || \
-	                 (((u_int32_t)(i) & 0xfff00000) == 0xac100000) || \
-	                 (((u_int32_t)(i) & 0xffff0000) == 0xc0a80000))
-
-
-#define IN_LOCAL_GROUP(i)       (((u_int32_t)(i) & 0xffffff00) == 0xe0000000)
-
-#define IN_ANY_LOCAL(i)         (IN_LINKLOCAL(i) || IN_LOCAL_GROUP(i))
-#endif /* __APPLE__ */
-
-#define IN_LOOPBACKNET          127                     /* official! */
-#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-
-/*
- * Socket address, internet style.
- */
-struct sockaddr_in {
-	__uint8_t       sin_len;
-	sa_family_t     sin_family;
-	in_port_t       sin_port;
-	struct  in_addr sin_addr;
-	char            sin_zero[8];
-};
-
-#define IN_ARE_ADDR_EQUAL(a, b) \
-    (bcmp(&(a)->s_addr, &(b)->s_addr, \
-	sizeof (struct in_addr)) == 0)
-
-
-#define INET_ADDRSTRLEN                 16
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-/*
- * Structure used to describe IP options.
- * Used to store options internally, to pass them to a process,
- * or to restore options retrieved earlier.
- * The ip_dst is used for the first-hop gateway when using a source route
- * (this gets put into the header proper).
- */
-struct ip_opts {
-	struct  in_addr ip_dst;         /* first hop, 0 w/o src rt */
-	char    ip_opts[40];            /* actually variable in size */
-};
-
-/*
- * Options for use with [gs]etsockopt at the IP level.
- * First word of comment is data type; bool is stored in int.
- */
-#define IP_OPTIONS              1    /* buf/ip_opts; set/get IP options */
-#define IP_HDRINCL              2    /* int; header is included with data */
-#define IP_TOS                  3    /* int; IP type of service and preced. */
-#define IP_TTL                  4    /* int; IP time to live */
-#define IP_RECVOPTS             5    /* bool; receive all IP opts w/dgram */
-#define IP_RECVRETOPTS          6    /* bool; receive IP opts for response */
-#define IP_RECVDSTADDR          7    /* bool; receive IP dst addr w/dgram */
-#define IP_RETOPTS              8    /* ip_opts; set/get IP options */
-#define IP_MULTICAST_IF         9    /* u_char; set/get IP multicast i/f  */
-#define IP_MULTICAST_TTL        10   /* u_char; set/get IP multicast ttl */
-#define IP_MULTICAST_LOOP       11   /* u_char; set/get IP multicast loopback */
-#define IP_ADD_MEMBERSHIP       12   /* ip_mreq; add an IP group membership */
-#define IP_DROP_MEMBERSHIP      13   /* ip_mreq; drop an IP group membership */
-#define IP_MULTICAST_VIF        14   /* set/get IP mcast virt. iface */
-#define IP_RSVP_ON              15   /* enable RSVP in kernel */
-#define IP_RSVP_OFF             16   /* disable RSVP in kernel */
-#define IP_RSVP_VIF_ON          17   /* set RSVP per-vif socket */
-#define IP_RSVP_VIF_OFF         18   /* unset RSVP per-vif socket */
-#define IP_PORTRANGE            19   /* int; range to choose for unspec port */
-#define IP_RECVIF               20   /* bool; receive reception if w/dgram */
-/* for IPSEC */
-#define IP_IPSEC_POLICY         21   /* int; set/get security policy */
-#define IP_FAITH                22   /* deprecated */
-#ifdef __APPLE__
-#define IP_STRIPHDR             23   /* bool: drop receive of raw IP header */
-#endif
-#define IP_RECVTTL              24   /* bool; receive reception TTL w/dgram */
-#define IP_BOUND_IF             25   /* int; set/get bound interface */
-#define IP_PKTINFO              26   /* get pktinfo on recv socket, set src on sent dgram  */
-#define IP_RECVPKTINFO          IP_PKTINFO      /* receive pktinfo w/dgram */
-#define IP_RECVTOS              27   /* bool; receive IP TOS w/dgram */
-
-#define IP_FW_ADD               40   /* add a firewall rule to chain */
-#define IP_FW_DEL               41   /* delete a firewall rule from chain */
-#define IP_FW_FLUSH             42   /* flush firewall rule chain */
-#define IP_FW_ZERO              43   /* clear single/all firewall counter(s) */
-#define IP_FW_GET               44   /* get entire firewall rule chain */
-#define IP_FW_RESETLOG          45   /* reset logging counters */
-
-/* These older firewall socket option codes are maintained for backward compatibility. */
-#define IP_OLD_FW_ADD           50   /* add a firewall rule to chain */
-#define IP_OLD_FW_DEL           51   /* delete a firewall rule from chain */
-#define IP_OLD_FW_FLUSH         52   /* flush firewall rule chain */
-#define IP_OLD_FW_ZERO          53   /* clear single/all firewall counter(s) */
-#define IP_OLD_FW_GET           54   /* get entire firewall rule chain */
-#define IP_NAT__XXX                     55   /* set/get NAT opts XXX Deprecated, do not use */
-#define IP_OLD_FW_RESETLOG      56   /* reset logging counters */
-
-#define IP_DUMMYNET_CONFIGURE   60   /* add/configure a dummynet pipe */
-#define IP_DUMMYNET_DEL         61   /* delete a dummynet pipe from chain */
-#define IP_DUMMYNET_FLUSH       62   /* flush dummynet */
-#define IP_DUMMYNET_GET         64   /* get entire dummynet pipes */
-
-#define IP_TRAFFIC_MGT_BACKGROUND       65   /* int*; get background IO flags; set background IO */
-#define IP_MULTICAST_IFINDEX    66   /* int*; set/get IP multicast i/f index */
-
-/* IPv4 Source Filter Multicast API [RFC3678] */
-#define IP_ADD_SOURCE_MEMBERSHIP        70   /* join a source-specific group */
-#define IP_DROP_SOURCE_MEMBERSHIP       71   /* drop a single source */
-#define IP_BLOCK_SOURCE                 72   /* block a source */
-#define IP_UNBLOCK_SOURCE               73   /* unblock a source */
-
-/* The following option is private; do not use it from user applications. */
-#define IP_MSFILTER                     74   /* set/get filter list */
-
-/* Protocol Independent Multicast API [RFC3678] */
-#define MCAST_JOIN_GROUP                80   /* join an any-source group */
-#define MCAST_LEAVE_GROUP               81   /* leave all sources for group */
-#define MCAST_JOIN_SOURCE_GROUP         82   /* join a source-specific group */
-#define MCAST_LEAVE_SOURCE_GROUP        83   /* leave a single source */
-#define MCAST_BLOCK_SOURCE              84   /* block a source */
-#define MCAST_UNBLOCK_SOURCE            85   /* unblock a source */
-
-
-/*
- * Defaults and limits for options
- */
-#define IP_DEFAULT_MULTICAST_TTL  1     /* normally limit m'casts to 1 hop  */
-#define IP_DEFAULT_MULTICAST_LOOP 1     /* normally hear sends if a member  */
-
-/*
- * The imo_membership vector for each socket is now dynamically allocated at
- * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
- * according to a power-of-two increment.
- */
-#define IP_MIN_MEMBERSHIPS      31
-#define IP_MAX_MEMBERSHIPS      4095
-
-/*
- * Default resource limits for IPv4 multicast source filtering.
- * These may be modified by sysctl.
- */
-#define IP_MAX_GROUP_SRC_FILTER         512     /* sources per group */
-#define IP_MAX_SOCK_SRC_FILTER          128     /* sources per socket/group */
-#define IP_MAX_SOCK_MUTE_FILTER         128     /* XXX no longer used */
-
-/*
- * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
- */
-struct ip_mreq {
-	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
-	struct  in_addr imr_interface;  /* local IP address of interface */
-};
-
-/*
- * Modified argument structure for IP_MULTICAST_IF, obtained from Linux.
- * This is used to specify an interface index for multicast sends, as
- * the IPv4 legacy APIs do not support this (unless IP_SENDIF is available).
- */
-struct ip_mreqn {
-	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
-	struct  in_addr imr_address;    /* local IP address of interface */
-	int             imr_ifindex;    /* Interface index; cast to uint32_t */
-};
-
-#pragma pack(4)
-/*
- * Argument structure for IPv4 Multicast Source Filter APIs. [RFC3678]
- */
-struct ip_mreq_source {
-	struct  in_addr imr_multiaddr;  /* IP multicast address of group */
-	struct  in_addr imr_sourceaddr; /* IP address of source */
-	struct  in_addr imr_interface;  /* local IP address of interface */
-};
-
-/*
- * Argument structures for Protocol-Independent Multicast Source
- * Filter APIs. [RFC3678]
- */
-struct group_req {
-	uint32_t                gr_interface;   /* interface index */
-	struct sockaddr_storage gr_group;       /* group address */
-};
-
-struct group_source_req {
-	uint32_t                gsr_interface;  /* interface index */
-	struct sockaddr_storage gsr_group;      /* group address */
-	struct sockaddr_storage gsr_source;     /* source address */
-};
-
-#ifndef __MSFILTERREQ_DEFINED
-#define __MSFILTERREQ_DEFINED
-/*
- * The following structure is private; do not use it from user applications.
- * It is used to communicate IP_MSFILTER/IPV6_MSFILTER information between
- * the RFC 3678 libc functions and the kernel.
- */
-struct __msfilterreq {
-	uint32_t                 msfr_ifindex;  /* interface index */
-	uint32_t                 msfr_fmode;    /* filter mode for group */
-	uint32_t                 msfr_nsrcs;    /* # of sources in msfr_srcs */
-	uint32_t                __msfr_align;
-	struct sockaddr_storage  msfr_group;    /* group address */
-	struct sockaddr_storage *msfr_srcs;
-};
-
-#endif /* __MSFILTERREQ_DEFINED */
-
-#pragma pack()
-struct sockaddr;
-
-/*
- * Advanced (Full-state) APIs [RFC3678]
- * The RFC specifies uint_t for the 6th argument to [sg]etsourcefilter().
- * We use uint32_t here to be consistent.
- */
-int     setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t,
-    uint32_t, struct in_addr *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-int     getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *,
-    uint32_t *, struct in_addr *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-int     setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t,
-    uint32_t, uint32_t, struct sockaddr_storage *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-int     getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t,
-    uint32_t *, uint32_t *, struct sockaddr_storage *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
-
-/*
- * Filter modes; also used to represent per-socket filter mode internally.
- */
-#define MCAST_UNDEFINED 0       /* fmode: not yet defined */
-#define MCAST_INCLUDE   1       /* fmode: include these source(s) */
-#define MCAST_EXCLUDE   2       /* fmode: exclude these source(s) */
-
-/*
- * Argument for IP_PORTRANGE:
- * - which range to search when port is unspecified at bind() or connect()
- */
-#define IP_PORTRANGE_DEFAULT    0       /* default range */
-#define IP_PORTRANGE_HIGH       1       /* "high" - request firewall bypass */
-#define IP_PORTRANGE_LOW        2       /* "low" - vouchsafe security */
-
-
-/*
- * IP_PKTINFO: Packet information (equivalent to  RFC2292 sec 5 for IPv4)
- * This structure is used for
- *
- * 1) Receiving ancilliary data about the datagram if IP_PKTINFO sockopt is
- *    set on the socket. In this case ipi_ifindex will contain the interface
- *    index the datagram was received on, ipi_addr is the IP address the
- *    datagram was received to.
- *
- * 2) Sending a datagram using a specific interface or IP source address.
- *    if ipi_ifindex is set to non-zero when in_pktinfo is passed as
- *    ancilliary data of type IP_PKTINFO, this will be used as the source
- *    interface to send the datagram from. If ipi_ifindex is null, ip_spec_dst
- *    will be used for the source address.
- *
- *    Note: if IP_BOUND_IF is set on the socket, ipi_ifindex in the ancillary
- *    IP_PKTINFO option silently overrides the bound interface when it is
- *    specified during send time.
- */
-struct in_pktinfo {
-	unsigned int    ipi_ifindex;    /* send/recv interface index */
-	struct in_addr  ipi_spec_dst;   /* Local address */
-	struct in_addr  ipi_addr;       /* IP Header dst address */
-};
-
-/*
- * Definitions for inet sysctl operations.
- *
- * Third level is protocol number.
- * Fourth level is desired variable within that protocol.
- */
-#define IPPROTO_MAXID   (IPPROTO_AH + 1)        /* don't list to IPPROTO_MAX */
-
-
-/*
- * Names for IP sysctl objects
- */
-#define IPCTL_FORWARDING        1       /* act as router */
-#define IPCTL_SENDREDIRECTS     2       /* may send redirects when forwarding */
-#define IPCTL_DEFTTL            3       /* default TTL */
-#ifdef notyet
-#define IPCTL_DEFMTU            4       /* default MTU */
-#endif
-#define IPCTL_RTEXPIRE          5       /* cloned route expiration time */
-#define IPCTL_RTMINEXPIRE       6       /* min value for expiration time */
-#define IPCTL_RTMAXCACHE        7       /* trigger level for dynamic expire */
-#define IPCTL_SOURCEROUTE       8       /* may perform source routes */
-#define IPCTL_DIRECTEDBROADCAST 9       /* may re-broadcast received packets */
-#define IPCTL_INTRQMAXLEN       10      /* max length of netisr queue */
-#define IPCTL_INTRQDROPS        11      /* number of netisr q drops */
-#define IPCTL_STATS             12      /* ipstat structure */
-#define IPCTL_ACCEPTSOURCEROUTE 13      /* may accept source routed packets */
-#define IPCTL_FASTFORWARDING    14      /* use fast IP forwarding code */
-#define IPCTL_KEEPFAITH         15      /* deprecated */
-#define IPCTL_GIF_TTL           16      /* default TTL for gif encap packet */
-#define IPCTL_MAXID             17
-
-#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-
-/* INET6 stuff */
-#define __KAME_NETINET_IN_H_INCLUDED_
-#include 
-#undef __KAME_NETINET_IN_H_INCLUDED_
-
-
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-__BEGIN_DECLS
-int        bindresvport(int, struct sockaddr_in *);
-struct sockaddr;
-int        bindresvport_sa(int, struct sockaddr *);
-__END_DECLS
-#endif
-#endif /* _NETINET_IN_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/netinet/tcp.h b/lib/libc/include/x86_64-macos.10-none/netinet/tcp.h
deleted file mode 100644
index f089db156e842411e40e171e486f41d1eecc578a..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/netinet/tcp.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * Copyright (c) 2000-2018 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@
- */
-/*
- * 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.
- *
- *	@(#)tcp.h	8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/netinet/tcp.h,v 1.13.2.3 2001/03/01 22:08:42 jlemon Exp $
- */
-
-#ifndef _NETINET_TCP_H_
-#define _NETINET_TCP_H_
-#include 
-#include 
-#include 
-#include  /* __uint32_t */
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-typedef __uint32_t tcp_seq;
-typedef __uint32_t tcp_cc;              /* connection count per rfc1644 */
-
-#define tcp6_seq        tcp_seq /* for KAME src sync over BSD*'s */
-#define tcp6hdr         tcphdr  /* for KAME src sync over BSD*'s */
-
-/*
- * TCP header.
- * Per RFC 793, September, 1981.
- */
-struct tcphdr {
-	unsigned short  th_sport;       /* source port */
-	unsigned short  th_dport;       /* destination port */
-	tcp_seq th_seq;                 /* sequence number */
-	tcp_seq th_ack;                 /* acknowledgement number */
-#if __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN
-	unsigned int    th_x2:4,        /* (unused) */
-	    th_off:4;                   /* data offset */
-#endif
-#if __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN
-	unsigned int    th_off:4,       /* data offset */
-	    th_x2:4;                    /* (unused) */
-#endif
-	unsigned char   th_flags;
-#define TH_FIN  0x01
-#define TH_SYN  0x02
-#define TH_RST  0x04
-#define TH_PUSH 0x08
-#define TH_ACK  0x10
-#define TH_URG  0x20
-#define TH_ECE  0x40
-#define TH_CWR  0x80
-#define TH_FLAGS        (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
-#define TH_ACCEPT       (TH_FIN|TH_SYN|TH_RST|TH_ACK)
-
-	unsigned short  th_win;         /* window */
-	unsigned short  th_sum;         /* checksum */
-	unsigned short  th_urp;         /* urgent pointer */
-};
-
-#define TCPOPT_EOL              0
-#define TCPOPT_NOP              1
-#define TCPOPT_MAXSEG           2
-#define TCPOLEN_MAXSEG          4
-#define TCPOPT_WINDOW           3
-#define TCPOLEN_WINDOW          3
-#define TCPOPT_SACK_PERMITTED   4               /* Experimental */
-#define TCPOLEN_SACK_PERMITTED  2
-#define TCPOPT_SACK             5               /* Experimental */
-#define TCPOLEN_SACK            8               /* len of sack block */
-#define TCPOPT_TIMESTAMP        8
-#define TCPOLEN_TIMESTAMP       10
-#define TCPOLEN_TSTAMP_APPA             (TCPOLEN_TIMESTAMP+2) /* appendix A */
-#define TCPOPT_TSTAMP_HDR               \
-    (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)
-
-#define MAX_TCPOPTLEN           40      /* Absolute maximum TCP options len */
-
-#define TCPOPT_CC               11              /* CC options: RFC-1644 */
-#define TCPOPT_CCNEW            12
-#define TCPOPT_CCECHO           13
-#define    TCPOLEN_CC                   6
-#define    TCPOLEN_CC_APPA              (TCPOLEN_CC+2)
-#define    TCPOPT_CC_HDR(ccopt)         \
-    (TCPOPT_NOP<<24|TCPOPT_NOP<<16|(ccopt)<<8|TCPOLEN_CC)
-#define TCPOPT_SIGNATURE                19      /* Keyed MD5: RFC 2385 */
-#define    TCPOLEN_SIGNATURE            18
-#if MPTCP
-#define TCPOPT_MULTIPATH                30
-#endif
-
-#define TCPOPT_FASTOPEN                 34
-#define TCPOLEN_FASTOPEN_REQ            2
-
-/* Option definitions */
-#define TCPOPT_SACK_PERMIT_HDR  \
-(TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK_PERMITTED<<8|TCPOLEN_SACK_PERMITTED)
-#define TCPOPT_SACK_HDR         (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK<<8)
-/* Miscellaneous constants */
-#define MAX_SACK_BLKS   6       /* Max # SACK blocks stored at sender side */
-
-/*
- * A SACK option that specifies n blocks will have a length of (8*n + 2)
- * bytes, so the 40 bytes available for TCP options can specify a
- * maximum of 4 blocks.
- */
-
-#define TCP_MAX_SACK    4       /* MAX # SACKs sent in any segment */
-
-
-/*
- * Default maximum segment size for TCP.
- * With an IP MTU of 576, this is 536,
- * but 512 is probably more convenient.
- * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)).
- */
-#define TCP_MSS 512
-
-/*
- * TCP_MINMSS is defined to be 216 which is fine for the smallest
- * link MTU (256 bytes, SLIP interface) in the Internet.
- * However it is very unlikely to come across such low MTU interfaces
- * these days (anno dato 2004).
- * Probably it can be set to 512 without ill effects. But we play safe.
- * See tcp_subr.c tcp_minmss SYSCTL declaration for more comments.
- * Setting this to "0" disables the minmss check.
- */
-#define TCP_MINMSS 216
-
-/*
- * Default maximum segment size for TCP6.
- * With an IP6 MSS of 1280, this is 1220,
- * but 1024 is probably more convenient. (xxx kazu in doubt)
- * This should be defined as MIN(1024, IP6_MSS - sizeof (struct tcpip6hdr))
- */
-#define TCP6_MSS        1024
-
-#define TCP_MAXWIN      65535   /* largest value for (unscaled) window */
-#define TTCP_CLIENT_SND_WND     4096    /* dflt send window for T/TCP client */
-
-#define TCP_MAX_WINSHIFT        14      /* maximum window shift */
-
-#define TCP_MAXHLEN     (0xf<<2)        /* max length of header in bytes */
-#define TCP_MAXOLEN     (TCP_MAXHLEN - sizeof(struct tcphdr))
-/* max space left for options */
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-
-/*
- * User-settable options (used with setsockopt).
- */
-#define TCP_NODELAY             0x01    /* don't delay send to coalesce packets */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define TCP_MAXSEG              0x02    /* set maximum segment size */
-#define TCP_NOPUSH              0x04    /* don't push last block of write */
-#define TCP_NOOPT               0x08    /* don't use TCP options */
-#define TCP_KEEPALIVE           0x10    /* idle time used when SO_KEEPALIVE is enabled */
-#define TCP_CONNECTIONTIMEOUT   0x20    /* connection timeout */
-#define PERSIST_TIMEOUT         0x40    /* time after which a connection in
-	                                 *  persist timeout will terminate.
-	                                 *  see draft-ananth-tcpm-persist-02.txt
-	                                 */
-#define TCP_RXT_CONNDROPTIME    0x80    /* time after which tcp retransmissions will be
-	                                 * stopped and the connection will be dropped
-	                                 */
-#define TCP_RXT_FINDROP         0x100   /* when this option is set, drop a connection
-	                                 * after retransmitting the FIN 3 times. It will
-	                                 * prevent holding too many mbufs in socket
-	                                 * buffer queues.
-	                                 */
-#define TCP_KEEPINTVL           0x101   /* interval between keepalives */
-#define TCP_KEEPCNT             0x102   /* number of keepalives before close */
-#define TCP_SENDMOREACKS        0x103   /* always ack every other packet */
-#define TCP_ENABLE_ECN          0x104   /* Enable ECN on a connection */
-#define TCP_FASTOPEN            0x105   /* Enable/Disable TCP Fastopen on this socket */
-#define TCP_CONNECTION_INFO     0x106   /* State of TCP connection */
-
-
-
-#define TCP_NOTSENT_LOWAT       0x201   /* Low water mark for TCP unsent data */
-
-
-struct tcp_connection_info {
-	u_int8_t        tcpi_state;     /* connection state */
-	u_int8_t        tcpi_snd_wscale; /* Window scale for send window */
-	u_int8_t        tcpi_rcv_wscale; /* Window scale for receive window */
-	u_int8_t        __pad1;
-	u_int32_t       tcpi_options;   /* TCP options supported */
-#define TCPCI_OPT_TIMESTAMPS    0x00000001 /* Timestamps enabled */
-#define TCPCI_OPT_SACK          0x00000002 /* SACK enabled */
-#define TCPCI_OPT_WSCALE        0x00000004 /* Window scaling enabled */
-#define TCPCI_OPT_ECN           0x00000008 /* ECN enabled */
-	u_int32_t       tcpi_flags;     /* flags */
-#define TCPCI_FLAG_LOSSRECOVERY 0x00000001
-#define TCPCI_FLAG_REORDERING_DETECTED  0x00000002
-	u_int32_t       tcpi_rto;       /* retransmit timeout in ms */
-	u_int32_t       tcpi_maxseg;    /* maximum segment size supported */
-	u_int32_t       tcpi_snd_ssthresh; /* slow start threshold in bytes */
-	u_int32_t       tcpi_snd_cwnd;  /* send congestion window in bytes */
-	u_int32_t       tcpi_snd_wnd;   /* send widnow in bytes */
-	u_int32_t       tcpi_snd_sbbytes; /* bytes in send socket buffer, including in-flight data */
-	u_int32_t       tcpi_rcv_wnd;   /* receive window in bytes*/
-	u_int32_t       tcpi_rttcur;    /* most recent RTT in ms */
-	u_int32_t       tcpi_srtt;      /* average RTT in ms */
-	u_int32_t       tcpi_rttvar;    /* RTT variance */
-	u_int32_t
-	    tcpi_tfo_cookie_req:1,             /* Cookie requested? */
-	    tcpi_tfo_cookie_rcv:1,             /* Cookie received? */
-	    tcpi_tfo_syn_loss:1,               /* Fallback to reg. TCP after SYN-loss */
-	    tcpi_tfo_syn_data_sent:1,             /* SYN+data has been sent out */
-	    tcpi_tfo_syn_data_acked:1,             /* SYN+data has been fully acknowledged */
-	    tcpi_tfo_syn_data_rcv:1,             /* Server received SYN+data with a valid cookie */
-	    tcpi_tfo_cookie_req_rcv:1,             /* Server received cookie-request */
-	    tcpi_tfo_cookie_sent:1,             /* Server announced cookie */
-	    tcpi_tfo_cookie_invalid:1,             /* Server received an invalid cookie */
-	    tcpi_tfo_cookie_wrong:1,             /* Our sent cookie was wrong */
-	    tcpi_tfo_no_cookie_rcv:1,             /* We did not receive a cookie upon our request */
-	    tcpi_tfo_heuristics_disable:1,             /* TFO-heuristics disabled it */
-	    tcpi_tfo_send_blackhole:1,             /* A sending-blackhole got detected */
-	    tcpi_tfo_recv_blackhole:1,             /* A receiver-blackhole got detected */
-	    tcpi_tfo_onebyte_proxy:1,             /* A proxy acknowledges all but one byte of the SYN */
-	    __pad2:17;
-	u_int64_t       tcpi_txpackets __attribute__((aligned(8)));
-	u_int64_t       tcpi_txbytes __attribute__((aligned(8)));
-	u_int64_t       tcpi_txretransmitbytes __attribute__((aligned(8)));
-	u_int64_t       tcpi_rxpackets __attribute__((aligned(8)));
-	u_int64_t       tcpi_rxbytes __attribute__((aligned(8)));
-	u_int64_t       tcpi_rxoutoforderbytes __attribute__((aligned(8)));
-	u_int64_t       tcpi_txretransmitpackets __attribute__((aligned(8)));
-};
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/netinet6/in6.h b/lib/libc/include/x86_64-macos.10-none/netinet6/in6.h
deleted file mode 100644
index 19899090adda5b0d5c523e6f7de5e2deb85ac2d7..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/netinet6/in6.h
+++ /dev/null
@@ -1,667 +0,0 @@
-/*
- * Copyright (c) 2008-2018 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@
- */
-
-/*
- * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
- * 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. Neither the name of the project 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 PROJECT 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 PROJECT 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.
- */
-
-/*
- * Copyright (c) 1982, 1986, 1990, 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.
- *
- *	@(#)in.h	8.3 (Berkeley) 1/3/94
- */
-
-#ifndef __KAME_NETINET_IN_H_INCLUDED_
-#error "do not include netinet6/in6.h directly, include netinet/in.h. " \
-        " see RFC2553"
-#endif
-
-#ifndef _NETINET6_IN6_H_
-#define _NETINET6_IN6_H_
-#include 
-#include 
-#include 
-
-/*
- * Identification of the network protocol stack
- * for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
- * has the table of implementation/integration differences.
- */
-#define __KAME__
-#define __KAME_VERSION          "2009/apple-darwin"
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-/*
- * Local port number conventions:
- *
- * Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
- * unless a kernel is compiled with IPNOPRIVPORTS defined.
- *
- * When a user does a bind(2) or connect(2) with a port number of zero,
- * a non-conflicting local port address is chosen.
- *
- * The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
- * that is settable by sysctl(3); net.inet.ip.anonportmin and
- * net.inet.ip.anonportmax respectively.
- *
- * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
- * default assignment range.
- *
- * The value IP_PORTRANGE_DEFAULT causes the default behavior.
- *
- * The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
- * and exists only for FreeBSD compatibility purposes.
- *
- * The value IP_PORTRANGE_LOW changes the range to the "low" are
- * that is (by convention) restricted to privileged processes.
- * This convention is based on "vouchsafe" principles only.
- * It is only secure if you trust the remote host to restrict these ports.
- * The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
- */
-
-#define IPV6PORT_RESERVED       1024
-#define IPV6PORT_ANONMIN        49152
-#define IPV6PORT_ANONMAX        65535
-#define IPV6PORT_RESERVEDMIN    600
-#define IPV6PORT_RESERVEDMAX    (IPV6PORT_RESERVED-1)
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-
-/*
- * IPv6 address
- */
-typedef struct in6_addr {
-	union {
-		__uint8_t   __u6_addr8[16];
-		__uint16_t  __u6_addr16[8];
-		__uint32_t  __u6_addr32[4];
-	} __u6_addr;                    /* 128-bit IP6 address */
-} in6_addr_t;
-
-#define s6_addr   __u6_addr.__u6_addr8
-
-#define INET6_ADDRSTRLEN        46
-
-/*
- * Socket address for IPv6
- */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define SIN6_LEN
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-struct sockaddr_in6 {
-	__uint8_t       sin6_len;       /* length of this struct(sa_family_t) */
-	sa_family_t     sin6_family;    /* AF_INET6 (sa_family_t) */
-	in_port_t       sin6_port;      /* Transport layer port # (in_port_t) */
-	__uint32_t      sin6_flowinfo;  /* IP6 flow information */
-	struct in6_addr sin6_addr;      /* IP6 address */
-	__uint32_t      sin6_scope_id;  /* scope zone index */
-};
-
-
-
-
-/*
- * Definition of some useful macros to handle IP6 addresses
- */
-#define IN6ADDR_ANY_INIT \
-	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}}
-#define IN6ADDR_LOOPBACK_INIT \
-	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IN6ADDR_NODELOCAL_ALLNODES_INIT \
-	{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
-#define IN6ADDR_INTFACELOCAL_ALLNODES_INIT \
-	{{{ 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
-#define IN6ADDR_LINKLOCAL_ALLNODES_INIT \
-	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }}}
-#define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \
-	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}}
-#define IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT \
-	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16 }}}
-#define IN6ADDR_V4MAPPED_INIT \
-	{{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	    0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }}}
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-
-extern const struct in6_addr in6addr_any;
-extern const struct in6_addr in6addr_loopback;
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-extern const struct in6_addr in6addr_nodelocal_allnodes;
-extern const struct in6_addr in6addr_linklocal_allnodes;
-extern const struct in6_addr in6addr_linklocal_allrouters;
-extern const struct in6_addr in6addr_linklocal_allv2routers;
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-
-/*
- * Equality
- * NOTE: Some of kernel programming environment (for example, openbsd/sparc)
- * does not supply memcmp().  For userland memcmp() is preferred as it is
- * in ANSI standard.
- */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IN6_ARE_ADDR_EQUAL(a, b) \
-	(memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof (struct in6_addr)) \
-	== 0)
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-
-
-/*
- * Unspecified
- */
-#define IN6_IS_ADDR_UNSPECIFIED(a)      \
-	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == 0))
-
-/*
- * Loopback
- */
-#define IN6_IS_ADDR_LOOPBACK(a)         \
-	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) == ntohl(1)))
-
-/*
- * IPv4 compatible
- */
-#define IN6_IS_ADDR_V4COMPAT(a)         \
-	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[12]) != ntohl(1)))
-
-/*
- * Mapped
- */
-#define IN6_IS_ADDR_V4MAPPED(a)               \
-	((*(const __uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
-	(*(const __uint32_t *)(const void *)(&(a)->s6_addr[8]) == \
-	ntohl(0x0000ffff)))
-
-/*
- * 6to4
- */
-#define IN6_IS_ADDR_6TO4(x)     (ntohs((x)->s6_addr16[0]) == 0x2002)
-
-/*
- * KAME Scope Values
- */
-
-#define __IPV6_ADDR_SCOPE_NODELOCAL     0x01
-#define __IPV6_ADDR_SCOPE_INTFACELOCAL  0x01
-#define __IPV6_ADDR_SCOPE_LINKLOCAL     0x02
-#define __IPV6_ADDR_SCOPE_SITELOCAL     0x05
-#define __IPV6_ADDR_SCOPE_ORGLOCAL      0x08    /* just used in this file */
-#define __IPV6_ADDR_SCOPE_GLOBAL        0x0e
-
-/*
- * Unicast Scope
- * Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
- */
-#define IN6_IS_ADDR_LINKLOCAL(a)        \
-	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80))
-#define IN6_IS_ADDR_SITELOCAL(a)        \
-	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
-
-/*
- * Multicast
- */
-#define IN6_IS_ADDR_MULTICAST(a)        ((a)->s6_addr[0] == 0xff)
-
-/*
- * Unique Local IPv6 Unicast Addresses (per RFC 4193)
- */
-#define IN6_IS_ADDR_UNIQUE_LOCAL(a) \
-	(((a)->s6_addr[0] == 0xfc) || ((a)->s6_addr[0] == 0xfd))
-
-#define __IPV6_ADDR_MC_SCOPE(a)         ((a)->s6_addr[1] & 0x0f)
-
-/*
- * Multicast Scope
- */
-#define IN6_IS_ADDR_MC_NODELOCAL(a)     \
-	(IN6_IS_ADDR_MULTICAST(a) &&    \
-	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_NODELOCAL))
-#define IN6_IS_ADDR_MC_LINKLOCAL(a)     \
-	(IN6_IS_ADDR_MULTICAST(a) &&    \
-	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_LINKLOCAL))
-#define IN6_IS_ADDR_MC_SITELOCAL(a)     \
-	(IN6_IS_ADDR_MULTICAST(a) &&    \
-	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_SITELOCAL))
-#define IN6_IS_ADDR_MC_ORGLOCAL(a)      \
-	(IN6_IS_ADDR_MULTICAST(a) &&    \
-	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_ORGLOCAL))
-#define IN6_IS_ADDR_MC_GLOBAL(a)        \
-	(IN6_IS_ADDR_MULTICAST(a) &&    \
-	(__IPV6_ADDR_MC_SCOPE(a) == __IPV6_ADDR_SCOPE_GLOBAL))
-
-
-
-
-/*
- * Options for use with [gs]etsockopt at the IPV6 level.
- * First word of comment is data type; bool is stored in int.
- */
-/* no hdrincl */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-/*
- * RFC 3542 define the following socket options in a manner incompatible
- * with RFC 2292:
- *   IPV6_PKTINFO
- *   IPV6_HOPLIMIT
- *   IPV6_NEXTHOP
- *   IPV6_HOPOPTS
- *   IPV6_DSTOPTS
- *   IPV6_RTHDR
- *
- * To use the new IPv6 Sockets options introduced by RFC 3542
- * the constant __APPLE_USE_RFC_3542 must be defined before
- * including 
- *
- * To use the old IPv6 Sockets options from RFC 2292
- * the constant __APPLE_USE_RFC_2292 must be defined before
- * including 
- *
- * Note that eventually RFC 3542 is going to be the
- * default and RFC 2292 will be obsolete.
- */
-
-#if defined(__APPLE_USE_RFC_3542) && defined(__APPLE_USE_RFC_2292)
-#error "__APPLE_USE_RFC_3542 and __APPLE_USE_RFC_2292 cannot be both defined"
-#endif
-
-#if 0 /* the followings are relic in IPv4 and hence are disabled */
-#define IPV6_OPTIONS            1  /* buf/ip6_opts; set/get IP6 options */
-#define IPV6_RECVOPTS           5  /* bool; receive all IP6 opts w/dgram */
-#define IPV6_RECVRETOPTS        6  /* bool; receive IP6 opts for response */
-#define IPV6_RECVDSTADDR        7  /* bool; receive IP6 dst addr w/dgram */
-#define IPV6_RETOPTS            8  /* ip6_opts; set/get IP6 options */
-#endif /* 0 */
-#define IPV6_SOCKOPT_RESERVED1  3  /* reserved for future use */
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-#define IPV6_UNICAST_HOPS       4  /* int; IP6 hops */
-#define IPV6_MULTICAST_IF       9  /* __uint8_t; set/get IP6 multicast i/f  */
-#define IPV6_MULTICAST_HOPS     10 /* __uint8_t; set/get IP6 multicast hops */
-#define IPV6_MULTICAST_LOOP     11 /* __uint8_t; set/get IP6 mcast loopback */
-#define IPV6_JOIN_GROUP         12 /* ip6_mreq; join a group membership */
-#define IPV6_LEAVE_GROUP        13 /* ip6_mreq; leave a group membership */
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IPV6_PORTRANGE          14 /* int; range to choose for unspec port */
-#define ICMP6_FILTER            18 /* icmp6_filter; icmp6 filter */
-#define IPV6_2292PKTINFO        19 /* bool; send/recv if, src/dst addr */
-#define IPV6_2292HOPLIMIT       20 /* bool; hop limit */
-#define IPV6_2292NEXTHOP        21 /* bool; next hop addr */
-#define IPV6_2292HOPOPTS        22 /* bool; hop-by-hop option */
-#define IPV6_2292DSTOPTS        23 /* bool; destinaion option */
-#define IPV6_2292RTHDR          24 /* ip6_rthdr: routing header */
-
-/* buf/cmsghdr; set/get IPv6 options [obsoleted by RFC3542] */
-#define IPV6_2292PKTOPTIONS     25
-
-#ifdef __APPLE_USE_RFC_2292
-#define IPV6_PKTINFO    IPV6_2292PKTINFO
-#define IPV6_HOPLIMIT   IPV6_2292HOPLIMIT
-#define IPV6_NEXTHOP    IPV6_2292NEXTHOP
-#define IPV6_HOPOPTS    IPV6_2292HOPOPTS
-#define IPV6_DSTOPTS    IPV6_2292DSTOPTS
-#define IPV6_RTHDR      IPV6_2292RTHDR
-#define IPV6_PKTOPTIONS IPV6_2292PKTOPTIONS
-#endif /* __APPLE_USE_RFC_2292 */
-
-#define IPV6_CHECKSUM           26 /* int; checksum offset for raw socket */
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-#define IPV6_V6ONLY             27 /* bool; only bind INET6 at wildcard bind */
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define IPV6_BINDV6ONLY         IPV6_V6ONLY
-
-
-#if 1 /* IPSEC */
-#define IPV6_IPSEC_POLICY       28 /* struct; get/set security policy */
-#endif /* 1 */
-#define IPV6_FAITH              29 /* deprecated */
-
-#if 1 /* IPV6FIREWALL */
-#define IPV6_FW_ADD             30 /* add a firewall rule to chain */
-#define IPV6_FW_DEL             31 /* delete a firewall rule from chain */
-#define IPV6_FW_FLUSH           32 /* flush firewall rule chain */
-#define IPV6_FW_ZERO            33 /* clear single/all firewall counter(s) */
-#define IPV6_FW_GET             34 /* get entire firewall rule chain */
-#endif /* 1 */
-
-/*
- * APPLE: NOTE the value of those 2 options is kept unchanged from
- *   previous version of darwin/OS X for binary compatibility reasons
- *   and differ from FreeBSD (values 57 and 61). See below.
- */
-#define IPV6_RECVTCLASS         35 /* bool; recv traffic class values */
-#define IPV6_TCLASS             36 /* int; send traffic class value */
-
-#ifdef __APPLE_USE_RFC_3542
-/* new socket options introduced in RFC3542 */
-/*
- * ip6_dest; send dst option before rthdr
- * APPLE: Value purposely different than FreeBSD (35) to avoid
- * collision with definition of IPV6_RECVTCLASS in previous
- * darwin implementations
- */
-#define IPV6_RTHDRDSTOPTS       57
-
-/*
- * bool; recv if, dst addr
- * APPLE: Value purposely different than FreeBSD(36) to avoid
- * collision with definition of IPV6_TCLASS in previous
- * darwin implementations
- */
-#define IPV6_RECVPKTINFO        61
-
-#define IPV6_RECVHOPLIMIT       37 /* bool; recv hop limit */
-#define IPV6_RECVRTHDR          38 /* bool; recv routing header */
-#define IPV6_RECVHOPOPTS        39 /* bool; recv hop-by-hop option */
-#define IPV6_RECVDSTOPTS        40 /* bool; recv dst option after rthdr */
-
-#define IPV6_USE_MIN_MTU        42 /* bool; send packets at the minimum MTU */
-#define IPV6_RECVPATHMTU        43 /* bool; notify an according MTU */
-
-/*
- * mtuinfo; get the current path MTU (sopt), 4 bytes int;
- * MTU notification (cmsg)
- */
-#define IPV6_PATHMTU            44
-
-#if 0 /* obsoleted during 2292bis -> 3542 */
-/* no data; ND reachability confirm (cmsg only/not in of RFC3542) */
-#define IPV6_REACHCONF          45
-#endif
-/* more new socket options introduced in RFC3542 */
-#define IPV6_3542PKTINFO        46 /* in6_pktinfo; send if, src addr */
-#define IPV6_3542HOPLIMIT       47 /* int; send hop limit */
-#define IPV6_3542NEXTHOP        48 /* sockaddr; next hop addr */
-#define IPV6_3542HOPOPTS        49 /* ip6_hbh; send hop-by-hop option */
-#define IPV6_3542DSTOPTS        50 /* ip6_dest; send dst option befor rthdr */
-#define IPV6_3542RTHDR          51 /* ip6_rthdr; send routing header */
-
-#define IPV6_PKTINFO    IPV6_3542PKTINFO
-#define IPV6_HOPLIMIT   IPV6_3542HOPLIMIT
-#define IPV6_NEXTHOP    IPV6_3542NEXTHOP
-#define IPV6_HOPOPTS    IPV6_3542HOPOPTS
-#define IPV6_DSTOPTS    IPV6_3542DSTOPTS
-#define IPV6_RTHDR      IPV6_3542RTHDR
-
-#define IPV6_AUTOFLOWLABEL      59 /* bool; attach flowlabel automagically */
-
-#define IPV6_DONTFRAG           62 /* bool; disable IPv6 fragmentation */
-
-/* int; prefer temporary addresses as the source address. */
-#define IPV6_PREFER_TEMPADDR    63
-
-/*
- * The following option is private; do not use it from user applications.
- * It is deliberately defined to the same value as IP_MSFILTER.
- */
-#define IPV6_MSFILTER           74 /* struct __msfilterreq; */
-#endif /* __APPLE_USE_RFC_3542 */
-
-#define IPV6_BOUND_IF           125 /* int; set/get bound interface */
-
-
-/* to define items, should talk with KAME guys first, for *BSD compatibility */
-
-#define IPV6_RTHDR_LOOSE        0 /* this hop need not be a neighbor. */
-#define IPV6_RTHDR_STRICT       1 /* this hop must be a neighbor. */
-#define IPV6_RTHDR_TYPE_0       0 /* IPv6 routing header type 0 */
-
-/*
- * Defaults and limits for options
- */
-#define IPV6_DEFAULT_MULTICAST_HOPS 1   /* normally limit m'casts to 1 hop  */
-#define IPV6_DEFAULT_MULTICAST_LOOP 1   /* normally hear sends if a member  */
-
-/*
- * The im6o_membership vector for each socket is now dynamically allocated at
- * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
- * according to a power-of-two increment.
- */
-#define IPV6_MIN_MEMBERSHIPS    31
-#define IPV6_MAX_MEMBERSHIPS    4095
-
-/*
- * Default resource limits for IPv6 multicast source filtering.
- * These may be modified by sysctl.
- */
-#define IPV6_MAX_GROUP_SRC_FILTER       512     /* sources per group */
-#define IPV6_MAX_SOCK_SRC_FILTER        128     /* sources per socket/group */
-
-/*
- * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
- */
-struct ipv6_mreq {
-	struct in6_addr ipv6mr_multiaddr;
-	unsigned int    ipv6mr_interface;
-};
-
-/*
- * IPV6_2292PKTINFO: Packet information(RFC2292 sec 5)
- */
-struct in6_pktinfo {
-	struct in6_addr ipi6_addr;      /* src/dst IPv6 address */
-	unsigned int    ipi6_ifindex;   /* send/recv interface index */
-};
-
-/*
- * Control structure for IPV6_RECVPATHMTU socket option.
- */
-struct ip6_mtuinfo {
-	struct sockaddr_in6 ip6m_addr;  /* or sockaddr_storage? */
-	uint32_t ip6m_mtu;
-};
-
-/*
- * Argument for IPV6_PORTRANGE:
- * - which range to search when port is unspecified at bind() or connect()
- */
-#define IPV6_PORTRANGE_DEFAULT  0       /* default range */
-#define IPV6_PORTRANGE_HIGH     1       /* "high" - request firewall bypass */
-#define IPV6_PORTRANGE_LOW      2       /* "low" - vouchsafe security */
-
-/*
- * Definitions for inet6 sysctl operations.
- *
- * Third level is protocol number.
- * Fourth level is desired variable within that protocol.
- */
-#define IPV6PROTO_MAXID (IPPROTO_PIM + 1)  /* don't list to IPV6PROTO_MAX */
-
-/*
- * Names for IP sysctl objects
- */
-#define IPV6CTL_FORWARDING      1       /* act as router */
-#define IPV6CTL_SENDREDIRECTS   2       /* may send redirects when forwarding */
-#define IPV6CTL_DEFHLIM         3       /* default Hop-Limit */
-#ifdef notyet
-#define IPV6CTL_DEFMTU          4       /* default MTU */
-#endif
-#define IPV6CTL_FORWSRCRT       5       /* forward source-routed dgrams */
-#define IPV6CTL_STATS           6       /* stats */
-#define IPV6CTL_MRTSTATS        7       /* multicast forwarding stats */
-#define IPV6CTL_MRTPROTO        8       /* multicast routing protocol */
-#define IPV6CTL_MAXFRAGPACKETS  9       /* max packets reassembly queue */
-#define IPV6CTL_SOURCECHECK     10      /* verify source route and intf */
-#define IPV6CTL_SOURCECHECK_LOGINT 11   /* minimume logging interval */
-#define IPV6CTL_ACCEPT_RTADV    12
-#define IPV6CTL_KEEPFAITH       13      /* deprecated */
-#define IPV6CTL_LOG_INTERVAL    14
-#define IPV6CTL_HDRNESTLIMIT    15
-#define IPV6CTL_DAD_COUNT       16
-#define IPV6CTL_AUTO_FLOWLABEL  17
-#define IPV6CTL_DEFMCASTHLIM    18
-#define IPV6CTL_GIF_HLIM        19      /* default HLIM for gif encap packet */
-#define IPV6CTL_KAME_VERSION    20
-#define IPV6CTL_USE_DEPRECATED  21      /* use deprec addr (RFC2462 5.5.4) */
-#define IPV6CTL_RR_PRUNE        22      /* walk timer for router renumbering */
-#if 0   /* obsolete */
-#define IPV6CTL_MAPPED_ADDR     23
-#endif
-#define IPV6CTL_V6ONLY          24
-#define IPV6CTL_RTEXPIRE        25      /* cloned route expiration time */
-#define IPV6CTL_RTMINEXPIRE     26      /* min value for expiration time */
-#define IPV6CTL_RTMAXCACHE      27      /* trigger level for dynamic expire */
-
-#define IPV6CTL_USETEMPADDR     32      /* use temporary addresses [RFC 4941] */
-#define IPV6CTL_TEMPPLTIME      33      /* preferred lifetime for tmpaddrs */
-#define IPV6CTL_TEMPVLTIME      34      /* valid lifetime for tmpaddrs */
-#define IPV6CTL_AUTO_LINKLOCAL  35      /* automatic link-local addr assign */
-#define IPV6CTL_RIP6STATS       36      /* raw_ip6 stats */
-#define IPV6CTL_PREFER_TEMPADDR 37      /* prefer temporary addr as src */
-#define IPV6CTL_ADDRCTLPOLICY   38      /* get/set address selection policy */
-#define IPV6CTL_USE_DEFAULTZONE 39      /* use default scope zone */
-
-#define IPV6CTL_MAXFRAGS        41      /* max fragments */
-#define IPV6CTL_MCAST_PMTU      44      /* enable pMTU discovery for mcast? */
-
-#define IPV6CTL_NEIGHBORGCTHRESH 46
-#define IPV6CTL_MAXIFPREFIXES   47
-#define IPV6CTL_MAXIFDEFROUTERS 48
-#define IPV6CTL_MAXDYNROUTES    49
-#define ICMPV6CTL_ND6_ONLINKNSRFC4861   50
-
-/* New entries should be added here from current IPV6CTL_MAXID value. */
-/* to define items, should talk with KAME guys first, for *BSD compatibility */
-#define IPV6CTL_MAXID           51
-
-
-
-
-
-__BEGIN_DECLS
-struct cmsghdr;
-
-extern int inet6_option_space(int);
-extern int inet6_option_init(void *, struct cmsghdr **, int);
-extern int inet6_option_append(struct cmsghdr *, const __uint8_t *, int, int);
-extern __uint8_t *inet6_option_alloc(struct cmsghdr *, int, int, int);
-extern int inet6_option_next(const struct cmsghdr *, __uint8_t **);
-extern int inet6_option_find(const struct cmsghdr *, __uint8_t **, int);
-
-extern size_t inet6_rthdr_space(int, int);
-extern struct cmsghdr *inet6_rthdr_init(void *, int);
-extern int inet6_rthdr_add(struct cmsghdr *, const struct in6_addr *,
-    unsigned int);
-extern int inet6_rthdr_lasthop(struct cmsghdr *, unsigned int);
-#if 0 /* not implemented yet */
-extern int inet6_rthdr_reverse(const struct cmsghdr *, struct cmsghdr *);
-#endif
-extern int inet6_rthdr_segments(const struct cmsghdr *);
-extern struct in6_addr *inet6_rthdr_getaddr(struct cmsghdr *, int);
-extern int inet6_rthdr_getflags(const struct cmsghdr *, int);
-
-extern int inet6_opt_init(void *, socklen_t);
-extern int inet6_opt_append(void *, socklen_t, int, __uint8_t, socklen_t,
-    __uint8_t, void **);
-extern int inet6_opt_finish(void *, socklen_t, int);
-extern int inet6_opt_set_val(void *, int, void *, socklen_t);
-
-extern int inet6_opt_next(void *, socklen_t, int, __uint8_t *, socklen_t *,
-    void **);
-extern int inet6_opt_find(void *, socklen_t, int, __uint8_t, socklen_t *,
-    void **);
-extern int inet6_opt_get_val(void *, int, void *, socklen_t);
-extern socklen_t inet6_rth_space(int, int);
-extern void *inet6_rth_init(void *, socklen_t, int, int);
-extern int inet6_rth_add(void *, const struct in6_addr *);
-extern int inet6_rth_reverse(const void *, void *);
-extern int inet6_rth_segments(const void *);
-extern struct in6_addr *inet6_rth_getaddr(const void *, int);
-
-__END_DECLS
-#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
-#endif /* !_NETINET6_IN6_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/objc/NSObjCRuntime.h b/lib/libc/include/x86_64-macos.10-none/objc/NSObjCRuntime.h
deleted file mode 100644
index c0d01f928e3cb9fd8ff30b816ee72bd4bc6461d1..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/objc/NSObjCRuntime.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*	NSObjCRuntime.h
-	Copyright (c) 1994-2012, Apple Inc. All rights reserved.
-*/
-
-#ifndef _OBJC_NSOBJCRUNTIME_H_
-#define _OBJC_NSOBJCRUNTIME_H_
-
-#include 
-#include 
-
-#if __LP64__ || 0 || NS_BUILD_32_LIKE_64
-typedef long NSInteger;
-typedef unsigned long NSUInteger;
-#else
-typedef int NSInteger;
-typedef unsigned int NSUInteger;
-#endif
-
-#define NSIntegerMax    LONG_MAX
-#define NSIntegerMin    LONG_MIN
-#define NSUIntegerMax   ULONG_MAX
-
-#define NSINTEGER_DEFINED 1
-
-#ifndef NS_DESIGNATED_INITIALIZER
-#if __has_attribute(objc_designated_initializer)
-#define NS_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
-#else
-#define NS_DESIGNATED_INITIALIZER
-#endif
-#endif
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/objc/message.h b/lib/libc/include/x86_64-macos.10-none/objc/message.h
deleted file mode 100644
index 3c9a5e0d080bd61919e76aba132c9b0ef7f611f6..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/objc/message.h
+++ /dev/null
@@ -1,388 +0,0 @@
-/*
- * Copyright (c) 1999-2007 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@
- */
-
-#ifndef _OBJC_MESSAGE_H
-#define _OBJC_MESSAGE_H
-
-#include 
-#include 
-
-#ifndef OBJC_SUPER
-#define OBJC_SUPER
-
-/// Specifies the superclass of an instance. 
-struct objc_super {
-    /// Specifies an instance of a class.
-    __unsafe_unretained _Nonnull id receiver;
-
-    /// Specifies the particular superclass of the instance to message. 
-#if !defined(__cplusplus)  &&  !__OBJC2__
-    /* For compatibility with old objc-runtime.h header */
-    __unsafe_unretained _Nonnull Class class;
-#else
-    __unsafe_unretained _Nonnull Class super_class;
-#endif
-    /* super_class is the first class to search */
-};
-#endif
-
-
-/* Basic Messaging Primitives
- *
- * On some architectures, use objc_msgSend_stret for some struct return types.
- * On some architectures, use objc_msgSend_fpret for some float return types.
- * On some architectures, use objc_msgSend_fp2ret for some float return types.
- *
- * These functions must be cast to an appropriate function pointer type 
- * before being called. 
- */
-#if !OBJC_OLD_DISPATCH_PROTOTYPES
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
-OBJC_EXPORT void
-objc_msgSend(void /* id self, SEL op, ... */ )
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-OBJC_EXPORT void
-objc_msgSendSuper(void /* struct objc_super *super, SEL op, ... */ )
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-#pragma clang diagnostic pop
-#else
-/** 
- * Sends a message with a simple return value to an instance of a class.
- * 
- * @param self A pointer to the instance of the class that is to receive the message.
- * @param op The selector of the method that handles the message.
- * @param ... 
- *   A variable argument list containing the arguments to the method.
- * 
- * @return The return value of the method.
- * 
- * @note When it encounters a method call, the compiler generates a call to one of the
- *  functions \c objc_msgSend, \c objc_msgSend_stret, \c objc_msgSendSuper, or \c objc_msgSendSuper_stret.
- *  Messages sent to an object’s superclass (using the \c super keyword) are sent using \c objc_msgSendSuper; 
- *  other messages are sent using \c objc_msgSend. Methods that have data structures as return values
- *  are sent using \c objc_msgSendSuper_stret and \c objc_msgSend_stret.
- */
-OBJC_EXPORT id _Nullable
-objc_msgSend(id _Nullable self, SEL _Nonnull op, ...)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-/** 
- * Sends a message with a simple return value to the superclass of an instance of a class.
- * 
- * @param super A pointer to an \c objc_super data structure. Pass values identifying the
- *  context the message was sent to, including the instance of the class that is to receive the
- *  message and the superclass at which to start searching for the method implementation.
- * @param op A pointer of type SEL. Pass the selector of the method that will handle the message.
- * @param ...
- *   A variable argument list containing the arguments to the method.
- * 
- * @return The return value of the method identified by \e op.
- * 
- * @see objc_msgSend
- */
-OBJC_EXPORT id _Nullable
-objc_msgSendSuper(struct objc_super * _Nonnull super, SEL _Nonnull op, ...)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-#endif
-
-
-/* Struct-returning Messaging Primitives
- *
- * Use these functions to call methods that return structs on the stack. 
- * On some architectures, some structures are returned in registers. 
- * Consult your local function call ABI documentation for details.
- * 
- * These functions must be cast to an appropriate function pointer type 
- * before being called. 
- */
-#if !OBJC_OLD_DISPATCH_PROTOTYPES
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
-OBJC_EXPORT void
-objc_msgSend_stret(void /* id self, SEL op, ... */ )
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-
-OBJC_EXPORT void
-objc_msgSendSuper_stret(void /* struct objc_super *super, SEL op, ... */ )
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-#pragma clang diagnostic pop
-#else
-/** 
- * Sends a message with a data-structure return value to an instance of a class.
- * 
- * @see objc_msgSend
- */
-OBJC_EXPORT void
-objc_msgSend_stret(id _Nullable self, SEL _Nonnull op, ...)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-
-/** 
- * Sends a message with a data-structure return value to the superclass of an instance of a class.
- * 
- * @see objc_msgSendSuper
- */
-OBJC_EXPORT void
-objc_msgSendSuper_stret(struct objc_super * _Nonnull super,
-                        SEL _Nonnull op, ...)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-#endif
-
-
-/* Floating-point-returning Messaging Primitives
- * 
- * Use these functions to call methods that return floating-point values 
- * on the stack. 
- * Consult your local function call ABI documentation for details.
- * 
- * arm:    objc_msgSend_fpret not used
- * i386:   objc_msgSend_fpret used for `float`, `double`, `long double`.
- * x86-64: objc_msgSend_fpret used for `long double`.
- *
- * arm:    objc_msgSend_fp2ret not used
- * i386:   objc_msgSend_fp2ret not used
- * x86-64: objc_msgSend_fp2ret used for `_Complex long double`.
- *
- * These functions must be cast to an appropriate function pointer type 
- * before being called. 
- */
-#if !OBJC_OLD_DISPATCH_PROTOTYPES
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
-
-# if defined(__i386__)
-
-OBJC_EXPORT void
-objc_msgSend_fpret(void /* id self, SEL op, ... */ )
-    OBJC_AVAILABLE(10.4, 2.0, 9.0, 1.0, 2.0);
-
-# elif defined(__x86_64__)
-
-OBJC_EXPORT void
-objc_msgSend_fpret(void /* id self, SEL op, ... */ )
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-OBJC_EXPORT void
-objc_msgSend_fp2ret(void /* id self, SEL op, ... */ )
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-#pragma clang diagnostic pop
-# endif
-
-// !OBJC_OLD_DISPATCH_PROTOTYPES
-#else
-// OBJC_OLD_DISPATCH_PROTOTYPES
-# if defined(__i386__)
-
-/** 
- * Sends a message with a floating-point return value to an instance of a class.
- * 
- * @see objc_msgSend
- * @note On the i386 platform, the ABI for functions returning a floating-point value is
- *  incompatible with that for functions returning an integral type. On the i386 platform, therefore, 
- *  you must use \c objc_msgSend_fpret for functions returning non-integral type. For \c float or 
- *  \c long \c double return types, cast the function to an appropriate function pointer type first.
- */
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
-OBJC_EXPORT double
-objc_msgSend_fpret(id _Nullable self, SEL _Nonnull op, ...)
-    OBJC_AVAILABLE(10.4, 2.0, 9.0, 1.0, 2.0);
-#pragma clang diagnostic pop
-
-/* Use objc_msgSendSuper() for fp-returning messages to super. */
-/* See also objc_msgSendv_fpret() below. */
-
-# elif defined(__x86_64__)
-/** 
- * Sends a message with a floating-point return value to an instance of a class.
- * 
- * @see objc_msgSend
- */
-OBJC_EXPORT long double
-objc_msgSend_fpret(id _Nullable self, SEL _Nonnull op, ...)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-#  if __STDC_VERSION__ >= 199901L
-OBJC_EXPORT _Complex long double
-objc_msgSend_fp2ret(id _Nullable self, SEL _Nonnull op, ...)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-#  else
-OBJC_EXPORT void objc_msgSend_fp2ret(id _Nullable self, SEL _Nonnull op, ...)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-#  endif
-
-/* Use objc_msgSendSuper() for fp-returning messages to super. */
-/* See also objc_msgSendv_fpret() below. */
-
-# endif
-
-// OBJC_OLD_DISPATCH_PROTOTYPES
-#endif
-
-
-/* Direct Method Invocation Primitives
- * Use these functions to call the implementation of a given Method.
- * This is faster than calling method_getImplementation() and method_getName().
- *
- * The receiver must not be nil.
- *
- * These functions must be cast to an appropriate function pointer type 
- * before being called. 
- */
-#if !OBJC_OLD_DISPATCH_PROTOTYPES
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
-OBJC_EXPORT void
-method_invoke(void /* id receiver, Method m, ... */ ) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-OBJC_EXPORT void
-method_invoke_stret(void /* id receiver, Method m, ... */ ) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-#pragma clang diagnostic pop
-#else
-OBJC_EXPORT id _Nullable
-method_invoke(id _Nullable receiver, Method _Nonnull m, ...) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-OBJC_EXPORT void
-method_invoke_stret(id _Nullable receiver, Method _Nonnull m, ...) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-#endif
-
-
-/* Message Forwarding Primitives
- * Use these functions to forward a message as if the receiver did not 
- * respond to it. 
- *
- * The receiver must not be nil.
- * 
- * class_getMethodImplementation() may return (IMP)_objc_msgForward.
- * class_getMethodImplementation_stret() may return (IMP)_objc_msgForward_stret
- * 
- * These functions must be cast to an appropriate function pointer type 
- * before being called. 
- *
- * Before Mac OS X 10.6, _objc_msgForward must not be called directly 
- * but may be compared to other IMP values.
- */
-#if !OBJC_OLD_DISPATCH_PROTOTYPES
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wincompatible-library-redeclaration"
-OBJC_EXPORT void
-_objc_msgForward(void /* id receiver, SEL sel, ... */ ) 
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-OBJC_EXPORT void
-_objc_msgForward_stret(void /* id receiver, SEL sel, ... */ ) 
-    OBJC_AVAILABLE(10.6, 3.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-#pragma clang diagnostic pop
-#else
-OBJC_EXPORT id _Nullable
-_objc_msgForward(id _Nonnull receiver, SEL _Nonnull sel, ...) 
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-OBJC_EXPORT void
-_objc_msgForward_stret(id _Nonnull receiver, SEL _Nonnull sel, ...) 
-    OBJC_AVAILABLE(10.6, 3.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-#endif
-
-
-/* Variable-argument Messaging Primitives
- *
- * Use these functions to call methods with a list of arguments, such 
- * as the one passed to forward:: .
- *
- * The contents of the argument list are architecture-specific. 
- * Consult your local function call ABI documentation for details.
- * 
- * These functions must be cast to an appropriate function pointer type 
- * before being called, except for objc_msgSendv_stret() which must not 
- * be cast to a struct-returning type.
- */
-
-typedef void* marg_list;
-
-OBJC_EXPORT id _Nullable
-objc_msgSendv(id _Nullable self, SEL _Nonnull op, size_t arg_size,
-              marg_list _Nonnull arg_frame)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT void
-objc_msgSendv_stret(void * _Nonnull stretAddr, id _Nullable self,
-                    SEL _Nonnull op, size_t arg_size,
-                    marg_list _Nullable arg_frame)
-    OBJC2_UNAVAILABLE;
-/* Note that objc_msgSendv_stret() does not return a structure type, 
- * and should not be cast to do so. This is unlike objc_msgSend_stret() 
- * and objc_msgSendSuper_stret().
- */
-#if defined(__i386__)
-OBJC_EXPORT double
-objc_msgSendv_fpret(id _Nullable self, SEL _Nonnull op,
-                    unsigned arg_size, marg_list _Nullable arg_frame)
-    OBJC2_UNAVAILABLE;
-#endif
-
-
-/* The following marg_list macros are of marginal utility. They
- * are included for compatibility with the old objc-class.h header. */
-
-#if !__OBJC2__
-
-#define marg_prearg_size	0
-
-#define marg_malloc(margs, method) \
-	do { \
-		margs = (marg_list *)malloc (marg_prearg_size + ((7 + method_getSizeOfArguments(method)) & ~7)); \
-	} while (0)
-
-#define marg_free(margs) \
-	do { \
-		free(margs); \
-	} while (0)
-	
-#define marg_adjustedOffset(method, offset) \
-	(marg_prearg_size + offset)
-
-#define marg_getRef(margs, offset, type) \
-	( (type *)((char *)margs + marg_adjustedOffset(method,offset) ) )
-
-#define marg_getValue(margs, offset, type) \
-	( *marg_getRef(margs, offset, type) )
-
-#define marg_setValue(margs, offset, type, value) \
-	( marg_getValue(margs, offset, type) = (value) )
-
-#endif
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/objc/objc-api.h b/lib/libc/include/x86_64-macos.10-none/objc/objc-api.h
deleted file mode 100644
index 504fee61136e5129866860963f9ac935db68a523..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/objc/objc-api.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Copyright (c) 1999-2006 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 1988-1996 NeXT Software, Inc.
-
-#ifndef _OBJC_OBJC_API_H_
-#define _OBJC_OBJC_API_H_
-
-#include 
-#include 
-#include 
-#include 
-
-#ifndef __has_feature
-#   define __has_feature(x) 0
-#endif
-
-#ifndef __has_extension
-#   define __has_extension __has_feature
-#endif
-
-#ifndef __has_attribute
-#   define __has_attribute(x) 0
-#endif
-
-#if !__has_feature(nullability)
-#   ifndef _Nullable
-#       define _Nullable
-#   endif
-#   ifndef _Nonnull
-#       define _Nonnull
-#   endif
-#   ifndef _Null_unspecified
-#       define _Null_unspecified
-#   endif
-#endif
-
-
-
-/*
- * OBJC_API_VERSION 0 or undef: Tiger and earlier API only
- * OBJC_API_VERSION 2: Leopard and later API available
- */
-#if !defined(OBJC_API_VERSION)
-#   if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)  &&  __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_5
-#       define OBJC_API_VERSION 0
-#   else
-#       define OBJC_API_VERSION 2
-#   endif
-#endif
-
-
-/*
- * OBJC_NO_GC 1: GC is not supported
- * OBJC_NO_GC undef: GC is supported. This SDK no longer supports this mode.
- *
- * OBJC_NO_GC_API undef: Libraries must export any symbols that 
- *                       dual-mode code may links to.
- * OBJC_NO_GC_API 1: Libraries need not export GC-related symbols.
- */
-#if defined(__OBJC_GC__)
-#   error Objective-C garbage collection is not supported.
-#elif TARGET_OS_OSX
-    /* GC is unsupported. GC API symbols are exported. */
-#   define OBJC_NO_GC 1
-#   undef  OBJC_NO_GC_API
-#else
-    /* GC is unsupported. GC API symbols are not exported. */
-#   define OBJC_NO_GC 1
-#   define OBJC_NO_GC_API 1
-#endif
-
-
-/* NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER == 1 
- * marks -[NSObject init] as a designated initializer. */
-#if !defined(NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER)
-#   define NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER 1
-#endif
-
-
-/* OBJC_OLD_DISPATCH_PROTOTYPES == 0 enforces the rule that the dispatch 
- * functions must be cast to an appropriate function pointer type. */
-#if !defined(OBJC_OLD_DISPATCH_PROTOTYPES)
-#   if __swift__
-        // Existing Swift code expects IMP to be Comparable.
-        // Variadic IMP is comparable via OpaquePointer; non-variadic IMP isn't.
-#       define OBJC_OLD_DISPATCH_PROTOTYPES 1
-#   else
-#       define OBJC_OLD_DISPATCH_PROTOTYPES 0
-#   endif
-#endif
-
-
-/* OBJC_AVAILABLE: shorthand for all-OS availability */
-
-#   if !defined(OBJC_AVAILABLE)
-#       define OBJC_AVAILABLE(x, i, t, w, b)                            \
-            __OSX_AVAILABLE(x)  __IOS_AVAILABLE(i)  __TVOS_AVAILABLE(t) \
-            __WATCHOS_AVAILABLE(w)
-#   endif
-
-
-
-/* OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE: Deprecated on OS X,
- * unavailable everywhere else. */
-
-#   if !defined(OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE)
-#       define OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(_start, _dep, _msg) \
-            __OSX_DEPRECATED(_start, _dep, _msg)                          \
-            __IOS_UNAVAILABLE __TVOS_UNAVAILABLE                          \
-            __WATCHOS_UNAVAILABLE
-#   endif
-
-
-
-/* OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE: Available on OS X,
- * unavailable everywhere else. */
-
-#   if !defined(OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE)
-#       define OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE(vers) \
-            __OSX_AVAILABLE(vers)                          \
-            __IOS_UNAVAILABLE __TVOS_UNAVAILABLE           \
-            __WATCHOS_UNAVAILABLE
-#    endif
-
-
-
-/* OBJC_ISA_AVAILABILITY: `isa` will be deprecated or unavailable 
- * in the future */
-#if !defined(OBJC_ISA_AVAILABILITY)
-#   if __OBJC2__
-#       define OBJC_ISA_AVAILABILITY  __attribute__((deprecated))
-#   else
-#       define OBJC_ISA_AVAILABILITY  /* still available */
-#   endif
-#endif
-
-
-/* OBJC2_UNAVAILABLE: unavailable in objc 2.0, deprecated in Leopard */
-#if !defined(OBJC2_UNAVAILABLE)
-#   if __OBJC2__
-#       define OBJC2_UNAVAILABLE UNAVAILABLE_ATTRIBUTE
-#   else
-        /* plain C code also falls here, but this is close enough */
-#       define OBJC2_UNAVAILABLE                                       \
-            __OSX_DEPRECATED(10.5, 10.5, "not available in __OBJC2__") \
-            __IOS_DEPRECATED(2.0, 2.0, "not available in __OBJC2__")   \
-            __TVOS_UNAVAILABLE __WATCHOS_UNAVAILABLE 
-#   endif
-#endif
-
-/* OBJC_UNAVAILABLE: unavailable, with a message where supported */
-#if !defined(OBJC_UNAVAILABLE)
-#   if __has_extension(attribute_unavailable_with_message)
-#       define OBJC_UNAVAILABLE(_msg) __attribute__((unavailable(_msg)))
-#   else
-#       define OBJC_UNAVAILABLE(_msg) __attribute__((unavailable))
-#   endif
-#endif
-
-/* OBJC_DEPRECATED: deprecated, with a message where supported */
-#if !defined(OBJC_DEPRECATED)
-#   if __has_extension(attribute_deprecated_with_message)
-#       define OBJC_DEPRECATED(_msg) __attribute__((deprecated(_msg)))
-#   else
-#       define OBJC_DEPRECATED(_msg) __attribute__((deprecated))
-#   endif
-#endif
-
-/* OBJC_ARC_UNAVAILABLE: unavailable with -fobjc-arc */
-#if !defined(OBJC_ARC_UNAVAILABLE)
-#   if __has_feature(objc_arc)
-#       define OBJC_ARC_UNAVAILABLE OBJC_UNAVAILABLE("not available in automatic reference counting mode")
-#   else
-#       define OBJC_ARC_UNAVAILABLE
-#   endif
-#endif
-
-/* OBJC_SWIFT_UNAVAILABLE: unavailable in Swift */
-#if !defined(OBJC_SWIFT_UNAVAILABLE)
-#   if __has_feature(attribute_availability_swift)
-#       define OBJC_SWIFT_UNAVAILABLE(_msg) __attribute__((availability(swift, unavailable, message=_msg)))
-#   else
-#       define OBJC_SWIFT_UNAVAILABLE(_msg)
-#   endif
-#endif
-
-/* OBJC_ARM64_UNAVAILABLE: unavailable on arm64 (i.e. stret dispatch) */
-#if !defined(OBJC_ARM64_UNAVAILABLE)
-#   if defined(__arm64__)
-#       define OBJC_ARM64_UNAVAILABLE OBJC_UNAVAILABLE("not available in arm64")
-#   else
-#       define OBJC_ARM64_UNAVAILABLE 
-#   endif
-#endif
-
-/* OBJC_GC_UNAVAILABLE: unavailable with -fobjc-gc or -fobjc-gc-only */
-#if !defined(OBJC_GC_UNAVAILABLE)
-#   define OBJC_GC_UNAVAILABLE
-#endif
-
-#if !defined(OBJC_EXTERN)
-#   if defined(__cplusplus)
-#       define OBJC_EXTERN extern "C" 
-#   else
-#       define OBJC_EXTERN extern
-#   endif
-#endif
-
-#if !defined(OBJC_VISIBLE)
-
-#       define OBJC_VISIBLE  __attribute__((visibility("default")))
-
-#endif
-
-#if !defined(OBJC_EXPORT)
-#   define OBJC_EXPORT  OBJC_EXTERN OBJC_VISIBLE
-#endif
-
-#if !defined(OBJC_IMPORT)
-#   define OBJC_IMPORT extern
-#endif
-
-#if !defined(OBJC_ROOT_CLASS)
-#   if __has_attribute(objc_root_class)
-#       define OBJC_ROOT_CLASS __attribute__((objc_root_class))
-#   else
-#       define OBJC_ROOT_CLASS
-#   endif
-#endif
-
-#ifndef __DARWIN_NULL
-#define __DARWIN_NULL NULL
-#endif
-
-#if !defined(OBJC_INLINE)
-#   define OBJC_INLINE __inline
-#endif
-
-// Declares an enum type or option bits type as appropriate for each language.
-#if (__cplusplus && __cplusplus >= 201103L && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && __has_feature(objc_fixed_enum))
-#define OBJC_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
-#if (__cplusplus)
-#define OBJC_OPTIONS(_type, _name) _type _name; enum : _type
-#else
-#define OBJC_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
-#endif
-#else
-#define OBJC_ENUM(_type, _name) _type _name; enum
-#define OBJC_OPTIONS(_type, _name) _type _name; enum
-#endif
-
-#if !defined(OBJC_RETURNS_RETAINED)
-#   if __OBJC__ && __has_attribute(ns_returns_retained)
-#       define OBJC_RETURNS_RETAINED __attribute__((ns_returns_retained))
-#   else
-#       define OBJC_RETURNS_RETAINED
-#   endif
-#endif
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/objc/runtime.h b/lib/libc/include/x86_64-macos.10-none/objc/runtime.h
deleted file mode 100644
index 0b49b72559cbe1f6fd7820eec9ce3a468197d09e..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/objc/runtime.h
+++ /dev/null
@@ -1,2169 +0,0 @@
-/*
- * Copyright (c) 1999-2007 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@
- */
-
-#ifndef _OBJC_RUNTIME_H
-#define _OBJC_RUNTIME_H
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#if TARGET_OS_MAC
-#include 
-#endif
-
-
-/* Types */
-
-#if !OBJC_TYPES_DEFINED
-
-/// An opaque type that represents a method in a class definition.
-typedef struct objc_method *Method;
-
-/// An opaque type that represents an instance variable.
-typedef struct objc_ivar *Ivar;
-
-/// An opaque type that represents a category.
-typedef struct objc_category *Category;
-
-/// An opaque type that represents an Objective-C declared property.
-typedef struct objc_property *objc_property_t;
-
-struct objc_class {
-    Class _Nonnull isa  OBJC_ISA_AVAILABILITY;
-
-#if !__OBJC2__
-    Class _Nullable super_class                              OBJC2_UNAVAILABLE;
-    const char * _Nonnull name                               OBJC2_UNAVAILABLE;
-    long version                                             OBJC2_UNAVAILABLE;
-    long info                                                OBJC2_UNAVAILABLE;
-    long instance_size                                       OBJC2_UNAVAILABLE;
-    struct objc_ivar_list * _Nullable ivars                  OBJC2_UNAVAILABLE;
-    struct objc_method_list * _Nullable * _Nullable methodLists                    OBJC2_UNAVAILABLE;
-    struct objc_cache * _Nonnull cache                       OBJC2_UNAVAILABLE;
-    struct objc_protocol_list * _Nullable protocols          OBJC2_UNAVAILABLE;
-#endif
-
-} OBJC2_UNAVAILABLE;
-/* Use `Class` instead of `struct objc_class *` */
-
-#endif
-
-#ifdef __OBJC__
-@class Protocol;
-#else
-typedef struct objc_object Protocol;
-#endif
-
-/// Defines a method
-struct objc_method_description {
-    SEL _Nullable name;               /**< The name of the method */
-    char * _Nullable types;           /**< The types of the method arguments */
-};
-
-/// Defines a property attribute
-typedef struct {
-    const char * _Nonnull name;           /**< The name of the attribute */
-    const char * _Nonnull value;          /**< The value of the attribute (usually empty) */
-} objc_property_attribute_t;
-
-
-/* Functions */
-
-/* Working with Instances */
-
-/** 
- * Returns a copy of a given object.
- * 
- * @param obj An Objective-C object.
- * @param size The size of the object \e obj.
- * 
- * @return A copy of \e obj.
- */
-OBJC_EXPORT id _Nullable object_copy(id _Nullable obj, size_t size)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARC_UNAVAILABLE;
-
-/** 
- * Frees the memory occupied by a given object.
- * 
- * @param obj An Objective-C object.
- * 
- * @return nil
- */
-OBJC_EXPORT id _Nullable
-object_dispose(id _Nullable obj)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARC_UNAVAILABLE;
-
-/** 
- * Returns the class of an object.
- * 
- * @param obj The object you want to inspect.
- * 
- * @return The class object of which \e object is an instance, 
- *  or \c Nil if \e object is \c nil.
- */
-OBJC_EXPORT Class _Nullable
-object_getClass(id _Nullable obj) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Sets the class of an object.
- * 
- * @param obj The object to modify.
- * @param cls A class object.
- * 
- * @return The previous value of \e object's class, or \c Nil if \e object is \c nil.
- */
-OBJC_EXPORT Class _Nullable
-object_setClass(id _Nullable obj, Class _Nonnull cls) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-
-/** 
- * Returns whether an object is a class object.
- * 
- * @param obj An Objective-C object.
- * 
- * @return true if the object is a class or metaclass, false otherwise.
- */
-OBJC_EXPORT BOOL
-object_isClass(id _Nullable obj)
-    OBJC_AVAILABLE(10.10, 8.0, 9.0, 1.0, 2.0);
-
-
-/** 
- * Reads the value of an instance variable in an object.
- * 
- * @param obj The object containing the instance variable whose value you want to read.
- * @param ivar The Ivar describing the instance variable whose value you want to read.
- * 
- * @return The value of the instance variable specified by \e ivar, or \c nil if \e object is \c nil.
- * 
- * @note \c object_getIvar is faster than \c object_getInstanceVariable if the Ivar
- *  for the instance variable is already known.
- */
-OBJC_EXPORT id _Nullable
-object_getIvar(id _Nullable obj, Ivar _Nonnull ivar) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Sets the value of an instance variable in an object.
- * 
- * @param obj The object containing the instance variable whose value you want to set.
- * @param ivar The Ivar describing the instance variable whose value you want to set.
- * @param value The new value for the instance variable.
- * 
- * @note Instance variables with known memory management (such as ARC strong and weak)
- *  use that memory management. Instance variables with unknown memory management 
- *  are assigned as if they were unsafe_unretained.
- * @note \c object_setIvar is faster than \c object_setInstanceVariable if the Ivar
- *  for the instance variable is already known.
- */
-OBJC_EXPORT void
-object_setIvar(id _Nullable obj, Ivar _Nonnull ivar, id _Nullable value) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Sets the value of an instance variable in an object.
- * 
- * @param obj The object containing the instance variable whose value you want to set.
- * @param ivar The Ivar describing the instance variable whose value you want to set.
- * @param value The new value for the instance variable.
- * 
- * @note Instance variables with known memory management (such as ARC strong and weak)
- *  use that memory management. Instance variables with unknown memory management 
- *  are assigned as if they were strong.
- * @note \c object_setIvar is faster than \c object_setInstanceVariable if the Ivar
- *  for the instance variable is already known.
- */
-OBJC_EXPORT void
-object_setIvarWithStrongDefault(id _Nullable obj, Ivar _Nonnull ivar,
-                                id _Nullable value) 
-    OBJC_AVAILABLE(10.12, 10.0, 10.0, 3.0, 2.0);
-
-/** 
- * Changes the value of an instance variable of a class instance.
- * 
- * @param obj A pointer to an instance of a class. Pass the object containing
- *  the instance variable whose value you wish to modify.
- * @param name A C string. Pass the name of the instance variable whose value you wish to modify.
- * @param value The new value for the instance variable.
- * 
- * @return A pointer to the \c Ivar data structure that defines the type and 
- *  name of the instance variable specified by \e name.
- *
- * @note Instance variables with known memory management (such as ARC strong and weak)
- *  use that memory management. Instance variables with unknown memory management 
- *  are assigned as if they were unsafe_unretained.
- */
-OBJC_EXPORT Ivar _Nullable
-object_setInstanceVariable(id _Nullable obj, const char * _Nonnull name,
-                           void * _Nullable value)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARC_UNAVAILABLE;
-
-/** 
- * Changes the value of an instance variable of a class instance.
- * 
- * @param obj A pointer to an instance of a class. Pass the object containing
- *  the instance variable whose value you wish to modify.
- * @param name A C string. Pass the name of the instance variable whose value you wish to modify.
- * @param value The new value for the instance variable.
- * 
- * @return A pointer to the \c Ivar data structure that defines the type and 
- *  name of the instance variable specified by \e name.
- *
- * @note Instance variables with known memory management (such as ARC strong and weak)
- *  use that memory management. Instance variables with unknown memory management 
- *  are assigned as if they were strong.
- */
-OBJC_EXPORT Ivar _Nullable
-object_setInstanceVariableWithStrongDefault(id _Nullable obj,
-                                            const char * _Nonnull name,
-                                            void * _Nullable value)
-    OBJC_AVAILABLE(10.12, 10.0, 10.0, 3.0, 2.0)
-    OBJC_ARC_UNAVAILABLE;
-
-/** 
- * Obtains the value of an instance variable of a class instance.
- * 
- * @param obj A pointer to an instance of a class. Pass the object containing
- *  the instance variable whose value you wish to obtain.
- * @param name A C string. Pass the name of the instance variable whose value you wish to obtain.
- * @param outValue On return, contains a pointer to the value of the instance variable.
- * 
- * @return A pointer to the \c Ivar data structure that defines the type and name of
- *  the instance variable specified by \e name.
- */
-OBJC_EXPORT Ivar _Nullable
-object_getInstanceVariable(id _Nullable obj, const char * _Nonnull name,
-                           void * _Nullable * _Nullable outValue)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARC_UNAVAILABLE;
-
-
-/* Obtaining Class Definitions */
-
-/** 
- * Returns the class definition of a specified class.
- * 
- * @param name The name of the class to look up.
- * 
- * @return The Class object for the named class, or \c nil
- *  if the class is not registered with the Objective-C runtime.
- * 
- * @note \c objc_getClass is different from \c objc_lookUpClass in that if the class
- *  is not registered, \c objc_getClass calls the class handler callback and then checks
- *  a second time to see whether the class is registered. \c objc_lookUpClass does 
- *  not call the class handler callback.
- * 
- * @warning Earlier implementations of this function (prior to OS X v10.0)
- *  terminate the program if the class does not exist.
- */
-OBJC_EXPORT Class _Nullable
-objc_getClass(const char * _Nonnull name)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the metaclass definition of a specified class.
- * 
- * @param name The name of the class to look up.
- * 
- * @return The \c Class object for the metaclass of the named class, or \c nil if the class
- *  is not registered with the Objective-C runtime.
- * 
- * @note If the definition for the named class is not registered, this function calls the class handler
- *  callback and then checks a second time to see if the class is registered. However, every class
- *  definition must have a valid metaclass definition, and so the metaclass definition is always returned,
- *  whether it’s valid or not.
- */
-OBJC_EXPORT Class _Nullable
-objc_getMetaClass(const char * _Nonnull name)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the class definition of a specified class.
- * 
- * @param name The name of the class to look up.
- * 
- * @return The Class object for the named class, or \c nil if the class
- *  is not registered with the Objective-C runtime.
- * 
- * @note \c objc_getClass is different from this function in that if the class is not
- *  registered, \c objc_getClass calls the class handler callback and then checks a second
- *  time to see whether the class is registered. This function does not call the class handler callback.
- */
-OBJC_EXPORT Class _Nullable
-objc_lookUpClass(const char * _Nonnull name)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the class definition of a specified class.
- * 
- * @param name The name of the class to look up.
- * 
- * @return The Class object for the named class.
- * 
- * @note This function is the same as \c objc_getClass, but kills the process if the class is not found.
- * @note This function is used by ZeroLink, where failing to find a class would be a compile-time link error without ZeroLink.
- */
-OBJC_EXPORT Class _Nonnull
-objc_getRequiredClass(const char * _Nonnull name)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Obtains the list of registered class definitions.
- * 
- * @param buffer An array of \c Class values. On output, each \c Class value points to
- *  one class definition, up to either \e bufferCount or the total number of registered classes,
- *  whichever is less. You can pass \c NULL to obtain the total number of registered class
- *  definitions without actually retrieving any class definitions.
- * @param bufferCount An integer value. Pass the number of pointers for which you have allocated space
- *  in \e buffer. On return, this function fills in only this number of elements. If this number is less
- *  than the number of registered classes, this function returns an arbitrary subset of the registered classes.
- * 
- * @return An integer value indicating the total number of registered classes.
- * 
- * @note The Objective-C runtime library automatically registers all the classes defined in your source code.
- *  You can create class definitions at runtime and register them with the \c objc_addClass function.
- * 
- * @warning You cannot assume that class objects you get from this function are classes that inherit from \c NSObject,
- *  so you cannot safely call any methods on such classes without detecting that the method is implemented first.
- */
-OBJC_EXPORT int
-objc_getClassList(Class _Nonnull * _Nullable buffer, int bufferCount)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Creates and returns a list of pointers to all registered class definitions.
- * 
- * @param outCount An integer pointer used to store the number of classes returned by
- *  this function in the list. It can be \c nil.
- * 
- * @return A nil terminated array of classes. It must be freed with \c free().
- * 
- * @see objc_getClassList
- */
-OBJC_EXPORT Class _Nonnull * _Nullable
-objc_copyClassList(unsigned int * _Nullable outCount)
-    OBJC_AVAILABLE(10.7, 3.1, 9.0, 1.0, 2.0);
-
-
-/* Working with Classes */
-
-/** 
- * Returns the name of a class.
- * 
- * @param cls A class object.
- * 
- * @return The name of the class, or the empty string if \e cls is \c Nil.
- */
-OBJC_EXPORT const char * _Nonnull
-class_getName(Class _Nullable cls) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a Boolean value that indicates whether a class object is a metaclass.
- * 
- * @param cls A class object.
- * 
- * @return \c YES if \e cls is a metaclass, \c NO if \e cls is a non-meta class, 
- *  \c NO if \e cls is \c Nil.
- */
-OBJC_EXPORT BOOL
-class_isMetaClass(Class _Nullable cls) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the superclass of a class.
- * 
- * @param cls A class object.
- * 
- * @return The superclass of the class, or \c Nil if
- *  \e cls is a root class, or \c Nil if \e cls is \c Nil.
- *
- * @note You should usually use \c NSObject's \c superclass method instead of this function.
- */
-OBJC_EXPORT Class _Nullable
-class_getSuperclass(Class _Nullable cls) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Sets the superclass of a given class.
- * 
- * @param cls The class whose superclass you want to set.
- * @param newSuper The new superclass for cls.
- * 
- * @return The old superclass for cls.
- * 
- * @warning You should not use this function.
- */
-OBJC_EXPORT Class _Nonnull
-class_setSuperclass(Class _Nonnull cls, Class _Nonnull newSuper) 
-    __OSX_DEPRECATED(10.5, 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")
-
-;
-
-/** 
- * Returns the version number of a class definition.
- * 
- * @param cls A pointer to a \c Class data structure. Pass
- *  the class definition for which you wish to obtain the version.
- * 
- * @return An integer indicating the version number of the class definition.
- *
- * @see class_setVersion
- */
-OBJC_EXPORT int
-class_getVersion(Class _Nullable cls)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Sets the version number of a class definition.
- * 
- * @param cls A pointer to an Class data structure. 
- *  Pass the class definition for which you wish to set the version.
- * @param version An integer. Pass the new version number of the class definition.
- *
- * @note You can use the version number of the class definition to provide versioning of the
- *  interface that your class represents to other classes. This is especially useful for object
- *  serialization (that is, archiving of the object in a flattened form), where it is important to
- *  recognize changes to the layout of the instance variables in different class-definition versions.
- * @note Classes derived from the Foundation framework \c NSObject class can set the class-definition
- *  version number using the \c setVersion: class method, which is implemented using the \c class_setVersion function.
- */
-OBJC_EXPORT void
-class_setVersion(Class _Nullable cls, int version)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the size of instances of a class.
- * 
- * @param cls A class object.
- * 
- * @return The size in bytes of instances of the class \e cls, or \c 0 if \e cls is \c Nil.
- */
-OBJC_EXPORT size_t
-class_getInstanceSize(Class _Nullable cls) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the \c Ivar for a specified instance variable of a given class.
- * 
- * @param cls The class whose instance variable you wish to obtain.
- * @param name The name of the instance variable definition to obtain.
- * 
- * @return A pointer to an \c Ivar data structure containing information about 
- *  the instance variable specified by \e name.
- */
-OBJC_EXPORT Ivar _Nullable
-class_getInstanceVariable(Class _Nullable cls, const char * _Nonnull name)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the Ivar for a specified class variable of a given class.
- * 
- * @param cls The class definition whose class variable you wish to obtain.
- * @param name The name of the class variable definition to obtain.
- * 
- * @return A pointer to an \c Ivar data structure containing information about the class variable specified by \e name.
- */
-OBJC_EXPORT Ivar _Nullable
-class_getClassVariable(Class _Nullable cls, const char * _Nonnull name) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Describes the instance variables declared by a class.
- * 
- * @param cls The class to inspect.
- * @param outCount On return, contains the length of the returned array. 
- *  If outCount is NULL, the length is not returned.
- * 
- * @return An array of pointers of type Ivar describing the instance variables declared by the class. 
- *  Any instance variables declared by superclasses are not included. The array contains *outCount 
- *  pointers followed by a NULL terminator. You must free the array with free().
- * 
- *  If the class declares no instance variables, or cls is Nil, NULL is returned and *outCount is 0.
- */
-OBJC_EXPORT Ivar _Nonnull * _Nullable
-class_copyIvarList(Class _Nullable cls, unsigned int * _Nullable outCount) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a specified instance method for a given class.
- * 
- * @param cls The class you want to inspect.
- * @param name The selector of the method you want to retrieve.
- * 
- * @return The method that corresponds to the implementation of the selector specified by 
- *  \e name for the class specified by \e cls, or \c NULL if the specified class or its 
- *  superclasses do not contain an instance method with the specified selector.
- *
- * @note This function searches superclasses for implementations, whereas \c class_copyMethodList does not.
- */
-OBJC_EXPORT Method _Nullable
-class_getInstanceMethod(Class _Nullable cls, SEL _Nonnull name)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a pointer to the data structure describing a given class method for a given class.
- * 
- * @param cls A pointer to a class definition. Pass the class that contains the method you want to retrieve.
- * @param name A pointer of type \c SEL. Pass the selector of the method you want to retrieve.
- * 
- * @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.
- *
- * @note Note that this function searches superclasses for implementations, 
- *  whereas \c class_copyMethodList does not.
- */
-OBJC_EXPORT Method _Nullable
-class_getClassMethod(Class _Nullable cls, SEL _Nonnull name)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the function pointer that would be called if a 
- * particular message were sent to an instance of a class.
- * 
- * @param cls The class you want to inspect.
- * @param name A selector.
- * 
- * @return The function pointer that would be called if \c [object name] were called
- *  with an instance of the class, or \c NULL if \e cls is \c Nil.
- *
- * @note \c class_getMethodImplementation may be faster than \c method_getImplementation(class_getInstanceMethod(cls, name)).
- * @note The function pointer returned may be a function internal to the runtime instead of
- *  an actual method implementation. For example, if instances of the class do not respond to
- *  the selector, the function pointer returned will be part of the runtime's message forwarding machinery.
- */
-OBJC_EXPORT IMP _Nullable
-class_getMethodImplementation(Class _Nullable cls, SEL _Nonnull name) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the function pointer that would be called if a particular 
- * message were sent to an instance of a class.
- * 
- * @param cls The class you want to inspect.
- * @param name A selector.
- * 
- * @return The function pointer that would be called if \c [object name] were called
- *  with an instance of the class, or \c NULL if \e cls is \c Nil.
- */
-OBJC_EXPORT IMP _Nullable
-class_getMethodImplementation_stret(Class _Nullable cls, SEL _Nonnull name) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0)
-    OBJC_ARM64_UNAVAILABLE;
-
-/** 
- * Returns a Boolean value that indicates whether instances of a class respond to a particular selector.
- * 
- * @param cls The class you want to inspect.
- * @param sel A selector.
- * 
- * @return \c YES if instances of the class respond to the selector, otherwise \c NO.
- * 
- * @note You should usually use \c NSObject's \c respondsToSelector: or \c instancesRespondToSelector: 
- *  methods instead of this function.
- */
-OBJC_EXPORT BOOL
-class_respondsToSelector(Class _Nullable cls, SEL _Nonnull sel) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Describes the instance methods implemented by a class.
- * 
- * @param cls The class you want to inspect.
- * @param outCount On return, contains the length of the returned array. 
- *  If outCount is NULL, the length is not returned.
- * 
- * @return An array of pointers of type Method describing the instance methods 
- *  implemented by the class—any instance methods implemented by superclasses are not included. 
- *  The array contains *outCount pointers followed by a NULL terminator. You must free the array with free().
- * 
- *  If cls implements no instance methods, or cls is Nil, returns NULL and *outCount is 0.
- * 
- * @note To get the class methods of a class, use \c class_copyMethodList(object_getClass(cls), &count).
- * @note To get the implementations of methods that may be implemented by superclasses, 
- *  use \c class_getInstanceMethod or \c class_getClassMethod.
- */
-OBJC_EXPORT Method _Nonnull * _Nullable
-class_copyMethodList(Class _Nullable cls, unsigned int * _Nullable outCount) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a Boolean value that indicates whether a class conforms to a given protocol.
- * 
- * @param cls The class you want to inspect.
- * @param protocol A protocol.
- *
- * @return YES if cls conforms to protocol, otherwise NO.
- *
- * @note You should usually use NSObject's conformsToProtocol: method instead of this function.
- */
-OBJC_EXPORT BOOL
-class_conformsToProtocol(Class _Nullable cls, Protocol * _Nullable protocol) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Describes the protocols adopted by a class.
- * 
- * @param cls The class you want to inspect.
- * @param outCount On return, contains the length of the returned array. 
- *  If outCount is NULL, the length is not returned.
- * 
- * @return An array of pointers of type Protocol* describing the protocols adopted 
- *  by the class. Any protocols adopted by superclasses or other protocols are not included. 
- *  The array contains *outCount pointers followed by a NULL terminator. You must free the array with free().
- * 
- *  If cls adopts no protocols, or cls is Nil, returns NULL and *outCount is 0.
- */
-OBJC_EXPORT Protocol * __unsafe_unretained _Nonnull * _Nullable 
-class_copyProtocolList(Class _Nullable cls, unsigned int * _Nullable outCount)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a property with a given name of a given class.
- * 
- * @param cls The class you want to inspect.
- * @param name The name of the property you want to inspect.
- * 
- * @return A pointer of type \c objc_property_t describing the property, or
- *  \c NULL if the class does not declare a property with that name, 
- *  or \c NULL if \e cls is \c Nil.
- */
-OBJC_EXPORT objc_property_t _Nullable
-class_getProperty(Class _Nullable cls, const char * _Nonnull name)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Describes the properties declared by a class.
- * 
- * @param cls The class you want to inspect.
- * @param outCount On return, contains the length of the returned array. 
- *  If \e outCount is \c NULL, the length is not returned.        
- * 
- * @return An array of pointers of type \c objc_property_t describing the properties 
- *  declared by the class. Any properties declared by superclasses are not included. 
- *  The array contains \c *outCount pointers followed by a \c NULL terminator. You must free the array with \c free().
- * 
- *  If \e cls declares no properties, or \e cls is \c Nil, returns \c NULL and \c *outCount is \c 0.
- */
-OBJC_EXPORT objc_property_t _Nonnull * _Nullable
-class_copyPropertyList(Class _Nullable cls, unsigned int * _Nullable outCount)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a description of the \c Ivar layout for a given class.
- * 
- * @param cls The class to inspect.
- * 
- * @return A description of the \c Ivar layout for \e cls.
- */
-OBJC_EXPORT const uint8_t * _Nullable
-class_getIvarLayout(Class _Nullable cls)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a description of the layout of weak Ivars for a given class.
- * 
- * @param cls The class to inspect.
- * 
- * @return A description of the layout of the weak \c Ivars for \e cls.
- */
-OBJC_EXPORT const uint8_t * _Nullable
-class_getWeakIvarLayout(Class _Nullable cls)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Adds a new method to a class with a given name and implementation.
- * 
- * @param cls The class to which to add a method.
- * @param name A selector that specifies the name of the method being added.
- * @param imp A function which is the implementation of the new method. The function must take at least two arguments—self and _cmd.
- * @param types An array of characters that describe the types of the arguments to the method. 
- * 
- * @return YES if the method was added successfully, otherwise NO 
- *  (for example, the class already contains a method implementation with that name).
- *
- * @note class_addMethod will add an override of a superclass's implementation, 
- *  but will not replace an existing implementation in this class. 
- *  To change an existing implementation, use method_setImplementation.
- */
-OBJC_EXPORT BOOL
-class_addMethod(Class _Nullable cls, SEL _Nonnull name, IMP _Nonnull imp, 
-                const char * _Nullable types) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Replaces the implementation of a method for a given class.
- * 
- * @param cls The class you want to modify.
- * @param name A selector that identifies the method whose implementation you want to replace.
- * @param imp The new implementation for the method identified by name for the class identified by cls.
- * @param types An array of characters that describe the types of the arguments to the method. 
- *  Since the function must take at least two arguments—self and _cmd, the second and third characters
- *  must be “@:” (the first character is the return type).
- * 
- * @return The previous implementation of the method identified by \e name for the class identified by \e cls.
- * 
- * @note This function behaves in two different ways:
- *  - If the method identified by \e name does not yet exist, it is added as if \c class_addMethod were called. 
- *    The type encoding specified by \e types is used as given.
- *  - If the method identified by \e name does exist, its \c IMP is replaced as if \c method_setImplementation were called.
- *    The type encoding specified by \e types is ignored.
- */
-OBJC_EXPORT IMP _Nullable
-class_replaceMethod(Class _Nullable cls, SEL _Nonnull name, IMP _Nonnull imp, 
-                    const char * _Nullable types) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Adds a new instance variable to a class.
- * 
- * @return YES if the instance variable was added successfully, otherwise NO 
- *         (for example, the class already contains an instance variable with that name).
- *
- * @note This function may only be called after objc_allocateClassPair and before objc_registerClassPair. 
- *       Adding an instance variable to an existing class is not supported.
- * @note The class must not be a metaclass. Adding an instance variable to a metaclass is not supported.
- * @note The instance variable's minimum alignment in bytes is 1< Type Encodings.
- */
-OBJC_EXPORT const char * _Nullable
-ivar_getTypeEncoding(Ivar _Nonnull v) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the offset of an instance variable.
- * 
- * @param v The instance variable you want to enquire about.
- * 
- * @return The offset of \e v.
- * 
- * @note For instance variables of type \c id or other object types, call \c object_getIvar
- *  and \c object_setIvar instead of using this offset to access the instance variable data directly.
- */
-OBJC_EXPORT ptrdiff_t
-ivar_getOffset(Ivar _Nonnull v) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-
-/* Working with Properties */
-
-/** 
- * Returns the name of a property.
- * 
- * @param property The property you want to inquire about.
- * 
- * @return A C string containing the property's name.
- */
-OBJC_EXPORT const char * _Nonnull
-property_getName(objc_property_t _Nonnull property) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the attribute string of a property.
- * 
- * @param property A property.
- *
- * @return A C string containing the property's attributes.
- * 
- * @note The format of the attribute string is described in Declared Properties in Objective-C Runtime Programming Guide.
- */
-OBJC_EXPORT const char * _Nullable
-property_getAttributes(objc_property_t _Nonnull property) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns an array of property attributes for a property. 
- * 
- * @param property The property whose attributes you want copied.
- * @param outCount The number of attributes returned in the array.
- * 
- * @return An array of property attributes; must be free'd() by the caller. 
- */
-OBJC_EXPORT objc_property_attribute_t * _Nullable
-property_copyAttributeList(objc_property_t _Nonnull property,
-                           unsigned int * _Nullable outCount)
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the value of a property attribute given the attribute name.
- * 
- * @param property The property whose attribute value you are interested in.
- * @param attributeName C string representing the attribute name.
- *
- * @return The value string of the attribute \e attributeName if it exists in
- *  \e property, \c nil otherwise. 
- */
-OBJC_EXPORT char * _Nullable
-property_copyAttributeValue(objc_property_t _Nonnull property,
-                            const char * _Nonnull attributeName)
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-
-/* Working with Protocols */
-
-/** 
- * Returns a specified protocol.
- * 
- * @param name The name of a protocol.
- * 
- * @return The protocol named \e name, or \c NULL if no protocol named \e name could be found.
- * 
- * @note This function acquires the runtime lock.
- */
-OBJC_EXPORT Protocol * _Nullable
-objc_getProtocol(const char * _Nonnull name)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns an array of all the protocols known to the runtime.
- * 
- * @param outCount Upon return, contains the number of protocols in the returned array.
- * 
- * @return A C array of all the protocols known to the runtime. The array contains \c *outCount
- *  pointers followed by a \c NULL terminator. You must free the list with \c free().
- * 
- * @note This function acquires the runtime lock.
- */
-OBJC_EXPORT Protocol * __unsafe_unretained _Nonnull * _Nullable
-objc_copyProtocolList(unsigned int * _Nullable outCount)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a Boolean value that indicates whether one protocol conforms to another protocol.
- * 
- * @param proto A protocol.
- * @param other A protocol.
- * 
- * @return \c YES if \e proto conforms to \e other, otherwise \c NO.
- * 
- * @note One protocol can incorporate other protocols using the same syntax 
- *  that classes use to adopt a protocol:
- *  \code
- *  @protocol ProtocolName < protocol list >
- *  \endcode
- *  All the protocols listed between angle brackets are considered part of the ProtocolName protocol.
- */
-OBJC_EXPORT BOOL
-protocol_conformsToProtocol(Protocol * _Nullable proto,
-                            Protocol * _Nullable other)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a Boolean value that indicates whether two protocols are equal.
- * 
- * @param proto A protocol.
- * @param other A protocol.
- * 
- * @return \c YES if \e proto is the same as \e other, otherwise \c NO.
- */
-OBJC_EXPORT BOOL
-protocol_isEqual(Protocol * _Nullable proto, Protocol * _Nullable other)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the name of a protocol.
- * 
- * @param proto A protocol.
- * 
- * @return The name of the protocol \e p as a C string.
- */
-OBJC_EXPORT const char * _Nonnull
-protocol_getName(Protocol * _Nonnull proto)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a method description structure for a specified method of a given protocol.
- * 
- * @param proto A protocol.
- * @param aSel A selector.
- * @param isRequiredMethod A Boolean value that indicates whether aSel is a required method.
- * @param isInstanceMethod A Boolean value that indicates whether aSel is an instance method.
- * 
- * @return An \c objc_method_description structure that describes the method specified by \e aSel,
- *  \e isRequiredMethod, and \e isInstanceMethod for the protocol \e p.
- *  If the protocol does not contain the specified method, returns an \c objc_method_description structure
- *  with the value \c {NULL, \c NULL}.
- * 
- * @note This function recursively searches any protocols that this protocol conforms to.
- */
-OBJC_EXPORT struct objc_method_description
-protocol_getMethodDescription(Protocol * _Nonnull proto, SEL _Nonnull aSel,
-                              BOOL isRequiredMethod, BOOL isInstanceMethod)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns an array of method descriptions of methods meeting a given specification for a given protocol.
- * 
- * @param proto A protocol.
- * @param isRequiredMethod A Boolean value that indicates whether returned methods should
- *  be required methods (pass YES to specify required methods).
- * @param isInstanceMethod A Boolean value that indicates whether returned methods should
- *  be instance methods (pass YES to specify instance methods).
- * @param outCount Upon return, contains the number of method description structures in the returned array.
- * 
- * @return A C array of \c objc_method_description structures containing the names and types of \e p's methods 
- *  specified by \e isRequiredMethod and \e isInstanceMethod. The array contains \c *outCount pointers followed
- *  by a \c NULL terminator. You must free the list with \c free().
- *  If the protocol declares no methods that meet the specification, \c NULL is returned and \c *outCount is 0.
- * 
- * @note Methods in other protocols adopted by this protocol are not included.
- */
-OBJC_EXPORT struct objc_method_description * _Nullable
-protocol_copyMethodDescriptionList(Protocol * _Nonnull proto,
-                                   BOOL isRequiredMethod,
-                                   BOOL isInstanceMethod,
-                                   unsigned int * _Nullable outCount)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the specified property of a given protocol.
- * 
- * @param proto A protocol.
- * @param name The name of a property.
- * @param isRequiredProperty \c YES searches for a required property, \c NO searches for an optional property.
- * @param isInstanceProperty \c YES searches for an instance property, \c NO searches for a class property.
- * 
- * @return The property specified by \e name, \e isRequiredProperty, and \e isInstanceProperty for \e proto,
- *  or \c NULL if none of \e proto's properties meets the specification.
- */
-OBJC_EXPORT objc_property_t _Nullable
-protocol_getProperty(Protocol * _Nonnull proto,
-                     const char * _Nonnull name,
-                     BOOL isRequiredProperty, BOOL isInstanceProperty)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns an array of the required instance properties declared by a protocol.
- * 
- * @note Identical to 
- * \code
- * protocol_copyPropertyList2(proto, outCount, YES, YES);
- * \endcode
- */
-OBJC_EXPORT objc_property_t _Nonnull * _Nullable
-protocol_copyPropertyList(Protocol * _Nonnull proto,
-                          unsigned int * _Nullable outCount)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns an array of properties declared by a protocol.
- * 
- * @param proto A protocol.
- * @param outCount Upon return, contains the number of elements in the returned array.
- * @param isRequiredProperty \c YES returns required properties, \c NO returns optional properties.
- * @param isInstanceProperty \c YES returns instance properties, \c NO returns class properties.
- * 
- * @return A C array of pointers of type \c objc_property_t describing the properties declared by \e proto.
- *  Any properties declared by other protocols adopted by this protocol are not included. The array contains
- *  \c *outCount pointers followed by a \c NULL terminator. You must free the array with \c free().
- *  If the protocol declares no matching properties, \c NULL is returned and \c *outCount is \c 0.
- */
-OBJC_EXPORT objc_property_t _Nonnull * _Nullable
-protocol_copyPropertyList2(Protocol * _Nonnull proto,
-                           unsigned int * _Nullable outCount,
-                           BOOL isRequiredProperty, BOOL isInstanceProperty)
-    OBJC_AVAILABLE(10.12, 10.0, 10.0, 3.0, 2.0);
-
-/** 
- * Returns an array of the protocols adopted by a protocol.
- * 
- * @param proto A protocol.
- * @param outCount Upon return, contains the number of elements in the returned array.
- * 
- * @return A C array of protocols adopted by \e proto. The array contains \e *outCount pointers
- *  followed by a \c NULL terminator. You must free the array with \c free().
- *  If the protocol adopts no other protocols, \c NULL is returned and \c *outCount is \c 0.
- */
-OBJC_EXPORT Protocol * __unsafe_unretained _Nonnull * _Nullable
-protocol_copyProtocolList(Protocol * _Nonnull proto,
-                          unsigned int * _Nullable outCount)
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Creates a new protocol instance that cannot be used until registered with
- * \c objc_registerProtocol()
- * 
- * @param name The name of the protocol to create.
- *
- * @return The Protocol instance on success, \c nil if a protocol
- *  with the same name already exists. 
- * @note There is no dispose method for this. 
- */
-OBJC_EXPORT Protocol * _Nullable
-objc_allocateProtocol(const char * _Nonnull name) 
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-/** 
- * Registers a newly constructed protocol with the runtime. The protocol
- * will be ready for use and is immutable after this.
- * 
- * @param proto The protocol you want to register.
- */
-OBJC_EXPORT void
-objc_registerProtocol(Protocol * _Nonnull proto) 
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-/** 
- * Adds a method to a protocol. The protocol must be under construction.
- * 
- * @param proto The protocol to add a method to.
- * @param name The name of the method to add.
- * @param types A C string that represents the method signature.
- * @param isRequiredMethod YES if the method is not an optional method.
- * @param isInstanceMethod YES if the method is an instance method. 
- */
-OBJC_EXPORT void
-protocol_addMethodDescription(Protocol * _Nonnull proto, SEL _Nonnull name,
-                              const char * _Nullable types,
-                              BOOL isRequiredMethod, BOOL isInstanceMethod) 
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-/** 
- * Adds an incorporated protocol to another protocol. The protocol being
- * added to must still be under construction, while the additional protocol
- * must be already constructed.
- * 
- * @param proto The protocol you want to add to, it must be under construction.
- * @param addition The protocol you want to incorporate into \e proto, it must be registered.
- */
-OBJC_EXPORT void
-protocol_addProtocol(Protocol * _Nonnull proto, Protocol * _Nonnull addition) 
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-/** 
- * Adds a property to a protocol. The protocol must be under construction. 
- * 
- * @param proto The protocol to add a property to.
- * @param name The name of the property.
- * @param attributes An array of property attributes.
- * @param attributeCount The number of attributes in \e attributes.
- * @param isRequiredProperty YES if the property (accessor methods) is not optional. 
- * @param isInstanceProperty YES if the property (accessor methods) are instance methods. 
- *  This is the only case allowed fo a property, as a result, setting this to NO will 
- *  not add the property to the protocol at all. 
- */
-OBJC_EXPORT void
-protocol_addProperty(Protocol * _Nonnull proto, const char * _Nonnull name,
-                     const objc_property_attribute_t * _Nullable attributes,
-                     unsigned int attributeCount,
-                     BOOL isRequiredProperty, BOOL isInstanceProperty)
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-
-/* Working with Libraries */
-
-/** 
- * Returns the names of all the loaded Objective-C frameworks and dynamic
- * libraries.
- * 
- * @param outCount The number of names returned.
- * 
- * @return An array of C strings of names. Must be free()'d by caller.
- */
-OBJC_EXPORT const char * _Nonnull * _Nonnull
-objc_copyImageNames(unsigned int * _Nullable outCount) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the dynamic library name a class originated from.
- * 
- * @param cls The class you are inquiring about.
- * 
- * @return The name of the library containing this class.
- */
-OBJC_EXPORT const char * _Nullable
-class_getImageName(Class _Nullable cls) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the names of all the classes within a library.
- * 
- * @param image The library or framework you are inquiring about.
- * @param outCount The number of class names returned.
- * 
- * @return An array of C strings representing the class names.
- */
-OBJC_EXPORT const char * _Nonnull * _Nullable
-objc_copyClassNamesForImage(const char * _Nonnull image,
-                            unsigned int * _Nullable outCount) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-
-/* Working with Selectors */
-
-/** 
- * Returns the name of the method specified by a given selector.
- * 
- * @param sel A pointer of type \c SEL. Pass the selector whose name you wish to determine.
- * 
- * @return A C string indicating the name of the selector.
- */
-OBJC_EXPORT const char * _Nonnull
-sel_getName(SEL _Nonnull sel)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-
-/** 
- * Registers a method with the Objective-C runtime system, maps the method 
- * name to a selector, and returns the selector value.
- * 
- * @param str A pointer to a C string. Pass the name of the method you wish to register.
- * 
- * @return A pointer of type SEL specifying the selector for the named method.
- * 
- * @note You must register a method name with the Objective-C runtime system to obtain the
- *  method’s selector before you can add the method to a class definition. If the method name
- *  has already been registered, this function simply returns the selector.
- */
-OBJC_EXPORT SEL _Nonnull
-sel_registerName(const char * _Nonnull str)
-    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Returns a Boolean value that indicates whether two selectors are equal.
- * 
- * @param lhs The selector to compare with rhs.
- * @param rhs The selector to compare with lhs.
- * 
- * @return \c YES if \e lhs and \e rhs are equal, otherwise \c NO.
- * 
- * @note sel_isEqual is equivalent to ==.
- */
-OBJC_EXPORT BOOL
-sel_isEqual(SEL _Nonnull lhs, SEL _Nonnull rhs) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-
-/* Objective-C Language Features */
-
-/** 
- * This function is inserted by the compiler when a mutation
- * is detected during a foreach iteration. It gets called 
- * when a mutation occurs, and the enumerationMutationHandler
- * is enacted if it is set up. A fatal error occurs if a handler is not set up.
- *
- * @param obj The object being mutated.
- * 
- */
-OBJC_EXPORT void
-objc_enumerationMutation(id _Nonnull obj) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Sets the current mutation handler. 
- * 
- * @param handler Function pointer to the new mutation handler.
- */
-OBJC_EXPORT void
-objc_setEnumerationMutationHandler(void (*_Nullable handler)(id _Nonnull )) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Set the function to be called by objc_msgForward.
- * 
- * @param fwd Function to be jumped to by objc_msgForward.
- * @param fwd_stret Function to be jumped to by objc_msgForward_stret.
- * 
- * @see message.h::_objc_msgForward
- */
-OBJC_EXPORT void
-objc_setForwardHandler(void * _Nonnull fwd, void * _Nonnull fwd_stret) 
-    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
-
-/** 
- * Creates a pointer to a function that will call the block
- * when the method is called.
- * 
- * @param block The block that implements this method. Its signature should
- *  be: method_return_type ^(id self, method_args...). 
- *  The selector is not available as a parameter to this block.
- *  The block is copied with \c Block_copy().
- * 
- * @return The IMP that calls this block. Must be disposed of with
- *  \c imp_removeBlock.
- */
-OBJC_EXPORT IMP _Nonnull
-imp_implementationWithBlock(id _Nonnull block)
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-/** 
- * Return the block associated with an IMP that was created using
- * \c imp_implementationWithBlock.
- * 
- * @param anImp The IMP that calls this block.
- * 
- * @return The block called by \e anImp.
- */
-OBJC_EXPORT id _Nullable
-imp_getBlock(IMP _Nonnull anImp)
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-/** 
- * Disassociates a block from an IMP that was created using
- * \c imp_implementationWithBlock and releases the copy of the 
- * block that was created.
- * 
- * @param anImp An IMP that was created using \c imp_implementationWithBlock.
- * 
- * @return YES if the block was released successfully, NO otherwise. 
- *  (For example, the block might not have been used to create an IMP previously).
- */
-OBJC_EXPORT BOOL
-imp_removeBlock(IMP _Nonnull anImp)
-    OBJC_AVAILABLE(10.7, 4.3, 9.0, 1.0, 2.0);
-
-/** 
- * This loads the object referenced by a weak pointer and returns it, after
- * retaining and autoreleasing the object to ensure that it stays alive
- * long enough for the caller to use it. This function would be used
- * anywhere a __weak variable is used in an expression.
- * 
- * @param location The weak pointer address
- * 
- * @return The object pointed to by \e location, or \c nil if \e *location is \c nil.
- */
-OBJC_EXPORT id _Nullable
-objc_loadWeak(id _Nullable * _Nonnull location)
-    OBJC_AVAILABLE(10.7, 5.0, 9.0, 1.0, 2.0);
-
-/** 
- * This function stores a new value into a __weak variable. It would
- * be used anywhere a __weak variable is the target of an assignment.
- * 
- * @param location The address of the weak pointer itself
- * @param obj The new object this weak ptr should now point to
- * 
- * @return The value stored into \e location, i.e. \e obj
- */
-OBJC_EXPORT id _Nullable
-objc_storeWeak(id _Nullable * _Nonnull location, id _Nullable obj) 
-    OBJC_AVAILABLE(10.7, 5.0, 9.0, 1.0, 2.0);
-
-
-/* Associative References */
-
-/**
- * Policies related to associative references.
- * These are options to objc_setAssociatedObject()
- */
-typedef OBJC_ENUM(uintptr_t, objc_AssociationPolicy) {
-    OBJC_ASSOCIATION_ASSIGN = 0,           /**< Specifies a weak reference to the associated object. */
-    OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, /**< Specifies a strong reference to the associated object. 
-                                            *   The association is not made atomically. */
-    OBJC_ASSOCIATION_COPY_NONATOMIC = 3,   /**< Specifies that the associated object is copied. 
-                                            *   The association is not made atomically. */
-    OBJC_ASSOCIATION_RETAIN = 01401,       /**< Specifies a strong reference to the associated object.
-                                            *   The association is made atomically. */
-    OBJC_ASSOCIATION_COPY = 01403          /**< Specifies that the associated object is copied.
-                                            *   The association is made atomically. */
-};
-
-/** 
- * Sets an associated value for a given object using a given key and association policy.
- * 
- * @param object The source object for the association.
- * @param key The key for the association.
- * @param value The value to associate with the key key for object. Pass nil to clear an existing association.
- * @param policy The policy for the association. For possible values, see “Associative Object Behaviors.”
- * 
- * @see objc_setAssociatedObject
- * @see objc_removeAssociatedObjects
- */
-OBJC_EXPORT void
-objc_setAssociatedObject(id _Nonnull object, const void * _Nonnull key,
-                         id _Nullable value, objc_AssociationPolicy policy)
-    OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0, 2.0);
-
-/** 
- * Returns the value associated with a given object for a given key.
- * 
- * @param object The source object for the association.
- * @param key The key for the association.
- * 
- * @return The value associated with the key \e key for \e object.
- * 
- * @see objc_setAssociatedObject
- */
-OBJC_EXPORT id _Nullable
-objc_getAssociatedObject(id _Nonnull object, const void * _Nonnull key)
-    OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0, 2.0);
-
-/** 
- * Removes all associations for a given object.
- * 
- * @param object An object that maintains associated objects.
- * 
- * @note The main purpose of this function is to make it easy to return an object 
- *  to a "pristine state”. You should not use this function for general removal of
- *  associations from objects, since it also removes associations that other clients
- *  may have added to the object. Typically you should use \c objc_setAssociatedObject 
- *  with a nil value to clear an association.
- * 
- * @see objc_setAssociatedObject
- * @see objc_getAssociatedObject
- */
-OBJC_EXPORT void
-objc_removeAssociatedObjects(id _Nonnull object)
-    OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0, 2.0);
-
-
-/* Hooks for Swift */
-
-/**
- * Function type for a hook that intercepts class_getImageName().
- *
- * @param cls The class whose image name is being looked up.
- * @param outImageName On return, the result of the image name lookup.
- * @return YES if an image name for this class was found, NO otherwise.
- *
- * @see class_getImageName
- * @see objc_setHook_getImageName
- */
-typedef BOOL (*objc_hook_getImageName)(Class _Nonnull cls, const char * _Nullable * _Nonnull outImageName);
-
-/**
- * Install a hook for class_getImageName().
- *
- * @param newValue The hook function to install.
- * @param outOldValue The address of a function pointer variable. On return,
- *  the old hook function is stored in the variable.
- *
- * @note The store to *outOldValue is thread-safe: the variable will be
- *  updated before class_getImageName() calls your new hook to read it,
- *  even if your new hook is called from another thread before this
- *  setter completes.
- * @note The first hook in the chain is the native implementation of
- *  class_getImageName(). Your hook should call the previous hook for
- *  classes that you do not recognize.
- *
- * @see class_getImageName
- * @see objc_hook_getImageName
- */
-OBJC_EXPORT void objc_setHook_getImageName(objc_hook_getImageName _Nonnull newValue,
-                                           objc_hook_getImageName _Nullable * _Nonnull outOldValue)
-    OBJC_AVAILABLE(10.14, 12.0, 12.0, 5.0, 3.0);
-
-/**
- * Function type for a hook that assists objc_getClass() and related functions.
- *
- * @param name The class name to look up.
- * @param outClass On return, the result of the class lookup.
- * @return YES if a class with this name was found, NO otherwise.
- *
- * @see objc_getClass
- * @see objc_setHook_getClass
- */
-typedef BOOL (*objc_hook_getClass)(const char * _Nonnull name, Class _Nullable * _Nonnull outClass);
-
-/**
- * Install a hook for objc_getClass() and related functions.
- *
- * @param newValue The hook function to install.
- * @param outOldValue The address of a function pointer variable. On return,
- *  the old hook function is stored in the variable.
- *
- * @note The store to *outOldValue is thread-safe: the variable will be
- *  updated before objc_getClass() calls your new hook to read it,
- *  even if your new hook is called from another thread before this
- *  setter completes.
- * @note Your hook should call the previous hook for class names
- *  that you do not recognize.
- *
- * @see objc_getClass
- * @see objc_hook_getClass
- */
-#if !(TARGET_OS_OSX && __i386__)
-#define OBJC_GETCLASSHOOK_DEFINED 1
-OBJC_EXPORT void objc_setHook_getClass(objc_hook_getClass _Nonnull newValue,
-                                       objc_hook_getClass _Nullable * _Nonnull outOldValue)
-    OBJC_AVAILABLE(10.14.4, 12.2, 12.2, 5.2, 3.2);
-#endif
-
-/**
- * Function type for a hook that assists objc_setAssociatedObject().
- *
- * @param object The source object for the association.
- * @param key The key for the association.
- * @param value The value to associate with the key key for object. Pass nil to clear an existing association.
- * @param policy The policy for the association. For possible values, see “Associative Object Behaviors.”
- *
- * @see objc_setAssociatedObject
- * @see objc_setHook_setAssociatedObject
- */
-typedef void (*objc_hook_setAssociatedObject)(id _Nonnull object, const void * _Nonnull key,
-                                              id _Nullable value, objc_AssociationPolicy policy);
-
-/**
- * Install a hook for objc_setAssociatedObject().
- *
- * @param newValue The hook function to install.
- * @param outOldValue The address of a function pointer variable. On return,
- *  the old hook function is stored in the variable.
- *
- * @note The store to *outOldValue is thread-safe: the variable will be
- *  updated before objc_setAssociatedObject() calls your new hook to read it,
- *  even if your new hook is called from another thread before this
- *  setter completes.
- * @note Your hook should always call the previous hook.
- *
- * @see objc_setAssociatedObject
- * @see objc_hook_setAssociatedObject
- */
-#if !(TARGET_OS_OSX && __i386__)
-#define OBJC_SETASSOCIATEDOBJECTHOOK_DEFINED 1
-OBJC_EXPORT void objc_setHook_setAssociatedObject(objc_hook_setAssociatedObject _Nonnull newValue,
-                                       objc_hook_setAssociatedObject _Nullable * _Nonnull outOldValue)
-    OBJC_AVAILABLE(10.15, 13.0, 13.0, 6.0, 4.0);
-#endif
-
-/**
- * Function type for a function that is called when an image is loaded.
- *
- * @param header The newly loaded header.
- */
-struct mach_header;
-typedef void (*objc_func_loadImage)(const struct mach_header * _Nonnull header);
-
-/**
- * Add a function to be called when a new image is loaded. The function is
- * called after ObjC has scanned and fixed up the image. It is called
- * BEFORE +load methods are invoked.
- *
- * When adding a new function, that function is immediately called with all
- * images that are currently loaded. It is then called as needed for images
- * that are loaded afterwards.
- *
- * Note: the function is called with ObjC's internal runtime lock held.
- * Be VERY careful with what the function does to avoid deadlocks or
- * poor performance.
- *
- * @param func The function to add.
- */
-#define OBJC_ADDLOADIMAGEFUNC_DEFINED 1
-OBJC_EXPORT void objc_addLoadImageFunc(objc_func_loadImage _Nonnull func)
-    OBJC_AVAILABLE(10.15, 13.0, 13.0, 6.0, 4.0);
-
-/** 
- * Callback from Objective-C to Swift to perform Swift class initialization.
- */
-#if !(TARGET_OS_OSX && __i386__)
-typedef Class _Nullable
-(*_objc_swiftMetadataInitializer)(Class _Nonnull cls, void * _Nullable arg);
-#endif
-
-
-/** 
- * Perform Objective-C initialization of a Swift class.
- * Do not call this function. It is provided for the Swift runtime's use only 
- * and will change without notice or mercy.
- */
-#if !(TARGET_OS_OSX && __i386__)
-#define OBJC_REALIZECLASSFROMSWIFT_DEFINED 1
-OBJC_EXPORT Class _Nullable
-_objc_realizeClassFromSwift(Class _Nullable cls, void * _Nullable previously)
-    OBJC_AVAILABLE(10.14.4, 12.2, 12.2, 5.2, 3.2);
-#endif
-
-
-#define _C_ID       '@'
-#define _C_CLASS    '#'
-#define _C_SEL      ':'
-#define _C_CHR      'c'
-#define _C_UCHR     'C'
-#define _C_SHT      's'
-#define _C_USHT     'S'
-#define _C_INT      'i'
-#define _C_UINT     'I'
-#define _C_LNG      'l'
-#define _C_ULNG     'L'
-#define _C_LNG_LNG  'q'
-#define _C_ULNG_LNG 'Q'
-#define _C_FLT      'f'
-#define _C_DBL      'd'
-#define _C_BFLD     'b'
-#define _C_BOOL     'B'
-#define _C_VOID     'v'
-#define _C_UNDEF    '?'
-#define _C_PTR      '^'
-#define _C_CHARPTR  '*'
-#define _C_ATOM     '%'
-#define _C_ARY_B    '['
-#define _C_ARY_E    ']'
-#define _C_UNION_B  '('
-#define _C_UNION_E  ')'
-#define _C_STRUCT_B '{'
-#define _C_STRUCT_E '}'
-#define _C_VECTOR   '!'
-#define _C_CONST    'r'
-
-
-/* Obsolete types */
-
-#if !__OBJC2__
-
-#define CLS_GETINFO(cls,infomask)        ((cls)->info & (infomask))
-#define CLS_SETINFO(cls,infomask)        ((cls)->info |= (infomask))
-
-// class is not a metaclass
-#define CLS_CLASS               0x1
-// class is a metaclass
-#define CLS_META                0x2
-// class's +initialize method has completed
-#define CLS_INITIALIZED         0x4
-// class is posing
-#define CLS_POSING              0x8
-// unused
-#define CLS_MAPPED              0x10
-// class and subclasses need cache flush during image loading
-#define CLS_FLUSH_CACHE         0x20
-// method cache should grow when full
-#define CLS_GROW_CACHE          0x40
-// unused
-#define CLS_NEED_BIND           0x80
-// methodLists is array of method lists
-#define CLS_METHOD_ARRAY        0x100
-// the JavaBridge constructs classes with these markers
-#define CLS_JAVA_HYBRID         0x200
-#define CLS_JAVA_CLASS          0x400
-// thread-safe +initialize
-#define CLS_INITIALIZING        0x800
-// bundle unloading
-#define CLS_FROM_BUNDLE         0x1000
-// C++ ivar support
-#define CLS_HAS_CXX_STRUCTORS   0x2000
-// Lazy method list arrays
-#define CLS_NO_METHOD_ARRAY     0x4000
-// +load implementation
-#define CLS_HAS_LOAD_METHOD     0x8000
-// objc_allocateClassPair API
-#define CLS_CONSTRUCTING        0x10000
-// class compiled with bigger class structure
-#define CLS_EXT                 0x20000
-
-
-struct objc_method_description_list {
-    int count;
-    struct objc_method_description list[1];
-};
-
-
-struct objc_protocol_list {
-    struct objc_protocol_list * _Nullable next;
-    long count;
-    __unsafe_unretained Protocol * _Nullable list[1];
-};
-
-
-struct objc_category {
-    char * _Nonnull category_name                            OBJC2_UNAVAILABLE;
-    char * _Nonnull class_name                               OBJC2_UNAVAILABLE;
-    struct objc_method_list * _Nullable instance_methods     OBJC2_UNAVAILABLE;
-    struct objc_method_list * _Nullable class_methods        OBJC2_UNAVAILABLE;
-    struct objc_protocol_list * _Nullable protocols          OBJC2_UNAVAILABLE;
-}                                                            OBJC2_UNAVAILABLE;
-
-
-struct objc_ivar {
-    char * _Nullable ivar_name                               OBJC2_UNAVAILABLE;
-    char * _Nullable ivar_type                               OBJC2_UNAVAILABLE;
-    int ivar_offset                                          OBJC2_UNAVAILABLE;
-#ifdef __LP64__
-    int space                                                OBJC2_UNAVAILABLE;
-#endif
-}                                                            OBJC2_UNAVAILABLE;
-
-struct objc_ivar_list {
-    int ivar_count                                           OBJC2_UNAVAILABLE;
-#ifdef __LP64__
-    int space                                                OBJC2_UNAVAILABLE;
-#endif
-    /* variable length structure */
-    struct objc_ivar ivar_list[1]                            OBJC2_UNAVAILABLE;
-}                                                            OBJC2_UNAVAILABLE;
-
-
-struct objc_method {
-    SEL _Nonnull method_name                                 OBJC2_UNAVAILABLE;
-    char * _Nullable method_types                            OBJC2_UNAVAILABLE;
-    IMP _Nonnull method_imp                                  OBJC2_UNAVAILABLE;
-}                                                            OBJC2_UNAVAILABLE;
-
-struct objc_method_list {
-    struct objc_method_list * _Nullable obsolete             OBJC2_UNAVAILABLE;
-
-    int method_count                                         OBJC2_UNAVAILABLE;
-#ifdef __LP64__
-    int space                                                OBJC2_UNAVAILABLE;
-#endif
-    /* variable length structure */
-    struct objc_method method_list[1]                        OBJC2_UNAVAILABLE;
-}                                                            OBJC2_UNAVAILABLE;
-
-
-typedef struct objc_symtab *Symtab                           OBJC2_UNAVAILABLE;
-
-struct objc_symtab {
-    unsigned long sel_ref_cnt                                OBJC2_UNAVAILABLE;
-    SEL _Nonnull * _Nullable refs                            OBJC2_UNAVAILABLE;
-    unsigned short cls_def_cnt                               OBJC2_UNAVAILABLE;
-    unsigned short cat_def_cnt                               OBJC2_UNAVAILABLE;
-    void * _Nullable defs[1] /* variable size */             OBJC2_UNAVAILABLE;
-}                                                            OBJC2_UNAVAILABLE;
-
-
-typedef struct objc_cache *Cache                             OBJC2_UNAVAILABLE;
-
-#define CACHE_BUCKET_NAME(B)  ((B)->method_name)
-#define CACHE_BUCKET_IMP(B)   ((B)->method_imp)
-#define CACHE_BUCKET_VALID(B) (B)
-#ifndef __LP64__
-#define CACHE_HASH(sel, mask) (((uintptr_t)(sel)>>2) & (mask))
-#else
-#define CACHE_HASH(sel, mask) (((unsigned int)((uintptr_t)(sel)>>3)) & (mask))
-#endif
-struct objc_cache {
-    unsigned int mask /* total = mask + 1 */                 OBJC2_UNAVAILABLE;
-    unsigned int occupied                                    OBJC2_UNAVAILABLE;
-    Method _Nullable buckets[1]                              OBJC2_UNAVAILABLE;
-};
-
-
-typedef struct objc_module *Module                           OBJC2_UNAVAILABLE;
-
-struct objc_module {
-    unsigned long version                                    OBJC2_UNAVAILABLE;
-    unsigned long size                                       OBJC2_UNAVAILABLE;
-    const char * _Nullable name                              OBJC2_UNAVAILABLE;
-    Symtab _Nullable symtab                                  OBJC2_UNAVAILABLE;
-}                                                            OBJC2_UNAVAILABLE;
-
-#else
-
-struct objc_method_list;
-
-#endif
-
-
-/* Obsolete functions */
-
-OBJC_EXPORT IMP _Nullable
-class_lookupMethod(Class _Nullable cls, SEL _Nonnull sel) 
-    __OSX_DEPRECATED(10.0, 10.5, "use class_getMethodImplementation instead")
-    __IOS_DEPRECATED(2.0, 2.0, "use class_getMethodImplementation instead")
-    __TVOS_DEPRECATED(9.0, 9.0, "use class_getMethodImplementation instead")
-    __WATCHOS_DEPRECATED(1.0, 1.0, "use class_getMethodImplementation instead")
-
-;
-OBJC_EXPORT BOOL
-class_respondsToMethod(Class _Nullable cls, SEL _Nonnull sel)
-    __OSX_DEPRECATED(10.0, 10.5, "use class_respondsToSelector instead")
-    __IOS_DEPRECATED(2.0, 2.0, "use class_respondsToSelector instead")
-    __TVOS_DEPRECATED(9.0, 9.0, "use class_respondsToSelector instead")
-    __WATCHOS_DEPRECATED(1.0, 1.0, "use class_respondsToSelector instead")
-
-;
-
-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");
-
-OBJC_EXPORT id _Nullable
-object_realloc(id _Nullable anObject, size_t nBytes)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT id _Nullable
-object_reallocFromZone(id _Nullable anObject, size_t nBytes, void * _Nullable z)
-    OBJC2_UNAVAILABLE;
-
-#define OBSOLETE_OBJC_GETCLASSES 1
-OBJC_EXPORT void * _Nonnull
-objc_getClasses(void)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT void
-objc_addClass(Class _Nonnull myClass)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT void
-objc_setClassHandler(int (* _Nullable )(const char * _Nonnull))
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT void
-objc_setMultithreaded(BOOL flag)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT id _Nullable
-class_createInstanceFromZone(Class _Nullable, size_t idxIvars,
-                             void * _Nullable z)
-    OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(10.0, 10.5, "use class_createInstance instead");
-
-OBJC_EXPORT void
-class_addMethods(Class _Nullable, struct objc_method_list * _Nonnull)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT void
-class_removeMethods(Class _Nullable, struct objc_method_list * _Nonnull)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT void
-_objc_resolve_categories_for_class(Class _Nonnull cls)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT Class _Nonnull
-class_poseAs(Class _Nonnull imposter, Class _Nonnull original)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT unsigned int
-method_getSizeOfArguments(Method _Nonnull m)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT unsigned
-method_getArgumentInfo(struct objc_method * _Nonnull m, int arg,
-                       const char * _Nullable * _Nonnull type,
-                       int * _Nonnull offset)
-    UNAVAILABLE_ATTRIBUTE  // This function was accidentally deleted in 10.9.
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT Class _Nullable
-objc_getOrigClass(const char * _Nonnull name)
-    OBJC2_UNAVAILABLE;
-
-#define OBJC_NEXT_METHOD_LIST 1
-OBJC_EXPORT struct objc_method_list * _Nullable
-class_nextMethodList(Class _Nullable, void * _Nullable * _Nullable)
-    OBJC2_UNAVAILABLE;
-// usage for nextMethodList
-//
-// void *iterator = 0;
-// struct objc_method_list *mlist;
-// while ( mlist = class_nextMethodList( cls, &iterator ) )
-//    ;
- 
-OBJC_EXPORT id _Nullable
-(* _Nonnull _alloc)(Class _Nullable, size_t)
-    OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT id _Nullable
-(* _Nonnull _copy)(id _Nullable, size_t)
-     OBJC2_UNAVAILABLE;
-     
-OBJC_EXPORT id _Nullable
-(* _Nonnull _realloc)(id _Nullable, size_t)
-     OBJC2_UNAVAILABLE;
-
-OBJC_EXPORT id _Nullable
-(* _Nonnull _dealloc)(id _Nullable)
-     OBJC2_UNAVAILABLE;
-     
-OBJC_EXPORT id _Nullable
-(* _Nonnull _zoneAlloc)(Class _Nullable, size_t, void * _Nullable)
-     OBJC2_UNAVAILABLE;
-     
-OBJC_EXPORT id _Nullable
-(* _Nonnull _zoneRealloc)(id _Nullable, size_t, void * _Nullable)
-     OBJC2_UNAVAILABLE;
-     
-OBJC_EXPORT id _Nullable
-(* _Nonnull _zoneCopy)(id _Nullable, size_t, void * _Nullable)
-     OBJC2_UNAVAILABLE;
-     
-OBJC_EXPORT void
-(* _Nonnull _error)(id _Nullable, const char * _Nonnull, va_list)
-     OBJC2_UNAVAILABLE;
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/os/base.h b/lib/libc/include/x86_64-macos.10-none/os/base.h
deleted file mode 100644
index a57f8373a4220663a07585d80b3958a25c081033..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/os/base.h
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Copyright (c) 2008-2013 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __OS_BASE__
-#define __OS_BASE__
-
-#include 
-
-#ifndef __has_builtin
-#define __has_builtin(x) 0
-#endif
-#ifndef __has_include
-#define __has_include(x) 0
-#endif
-#ifndef __has_feature
-#define __has_feature(x) 0
-#endif
-#ifndef __has_attribute
-#define __has_attribute(x) 0
-#endif
-#ifndef __has_extension
-#define __has_extension(x) 0
-#endif
-
-#undef OS_INLINE // 
-#if __GNUC__
-#define OS_NORETURN __attribute__((__noreturn__))
-#define OS_NOTHROW __attribute__((__nothrow__))
-#define OS_NONNULL1 __attribute__((__nonnull__(1)))
-#define OS_NONNULL2 __attribute__((__nonnull__(2)))
-#define OS_NONNULL3 __attribute__((__nonnull__(3)))
-#define OS_NONNULL4 __attribute__((__nonnull__(4)))
-#define OS_NONNULL5 __attribute__((__nonnull__(5)))
-#define OS_NONNULL6 __attribute__((__nonnull__(6)))
-#define OS_NONNULL7 __attribute__((__nonnull__(7)))
-#define OS_NONNULL8 __attribute__((__nonnull__(8)))
-#define OS_NONNULL9 __attribute__((__nonnull__(9)))
-#define OS_NONNULL10 __attribute__((__nonnull__(10)))
-#define OS_NONNULL11 __attribute__((__nonnull__(11)))
-#define OS_NONNULL12 __attribute__((__nonnull__(12)))
-#define OS_NONNULL13 __attribute__((__nonnull__(13)))
-#define OS_NONNULL14 __attribute__((__nonnull__(14)))
-#define OS_NONNULL15 __attribute__((__nonnull__(15)))
-#define OS_NONNULL_ALL __attribute__((__nonnull__))
-#define OS_SENTINEL __attribute__((__sentinel__))
-#define OS_PURE __attribute__((__pure__))
-#define OS_CONST __attribute__((__const__))
-#define OS_WARN_RESULT __attribute__((__warn_unused_result__))
-#define OS_MALLOC __attribute__((__malloc__))
-#define OS_USED __attribute__((__used__))
-#define OS_UNUSED __attribute__((__unused__))
-#define OS_COLD __attribute__((__cold__))
-#define OS_WEAK __attribute__((__weak__))
-#define OS_WEAK_IMPORT __attribute__((__weak_import__))
-#define OS_NOINLINE __attribute__((__noinline__))
-#define OS_ALWAYS_INLINE __attribute__((__always_inline__))
-#define OS_TRANSPARENT_UNION __attribute__((__transparent_union__))
-#define OS_ALIGNED(n) __attribute__((__aligned__((n))))
-#define OS_FORMAT_PRINTF(x,y) __attribute__((__format__(printf,x,y)))
-#define OS_EXPORT extern __attribute__((__visibility__("default")))
-#define OS_INLINE static __inline__
-#define OS_EXPECT(x, v) __builtin_expect((x), (v))
-#else
-#define OS_NORETURN
-#define OS_NOTHROW
-#define OS_NONNULL1
-#define OS_NONNULL2
-#define OS_NONNULL3
-#define OS_NONNULL4
-#define OS_NONNULL5
-#define OS_NONNULL6
-#define OS_NONNULL7
-#define OS_NONNULL8
-#define OS_NONNULL9
-#define OS_NONNULL10
-#define OS_NONNULL11
-#define OS_NONNULL12
-#define OS_NONNULL13
-#define OS_NONNULL14
-#define OS_NONNULL15
-#define OS_NONNULL_ALL
-#define OS_SENTINEL
-#define OS_PURE
-#define OS_CONST
-#define OS_WARN_RESULT
-#define OS_MALLOC
-#define OS_USED
-#define OS_UNUSED
-#define OS_COLD
-#define OS_WEAK
-#define OS_WEAK_IMPORT
-#define OS_NOINLINE
-#define OS_ALWAYS_INLINE
-#define OS_TRANSPARENT_UNION
-#define OS_ALIGNED(n)
-#define OS_FORMAT_PRINTF(x,y)
-#define OS_EXPORT extern
-#define OS_INLINE static inline
-#define OS_EXPECT(x, v) (x)
-#endif
-
-#if __has_attribute(noescape)
-#define OS_NOESCAPE __attribute__((__noescape__))
-#else
-#define OS_NOESCAPE
-#endif
-
-#if defined(__cplusplus) && defined(__clang__)
-#define OS_FALLTHROUGH [[clang::fallthrough]]
-#else
-#define OS_FALLTHROUGH
-#endif
-
-#if __has_feature(assume_nonnull)
-#define OS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
-#define OS_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
-#else
-#define OS_ASSUME_NONNULL_BEGIN
-#define OS_ASSUME_NONNULL_END
-#endif
-
-#if __has_builtin(__builtin_assume)
-#define OS_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr)
-#else
-#define OS_COMPILER_CAN_ASSUME(expr) ((void)(expr))
-#endif
-
-#if __has_extension(attribute_overloadable)
-#define OS_OVERLOADABLE __attribute__((__overloadable__))
-#else
-#define OS_OVERLOADABLE
-#endif
-
-#if __has_attribute(enum_extensibility)
-#define __OS_ENUM_ATTR __attribute__((enum_extensibility(open)))
-#define __OS_ENUM_ATTR_CLOSED __attribute__((enum_extensibility(closed)))
-#else
-#define __OS_ENUM_ATTR
-#define __OS_ENUM_ATTR_CLOSED
-#endif // __has_attribute(enum_extensibility)
-
-#if __has_attribute(flag_enum)
-/*!
- * Compile with -Wflag-enum and -Wassign-enum to enforce at definition and
- * assignment, respectively, i.e. -Wflag-enum prevents you from creating new
- * enumeration values from illegal values within the enum definition, and
- * -Wassign-enum prevents you from assigning illegal values to a variable of the
- * enum type.
- */
-#ifndef __OPEN_SOURCE__
-/*!
- * @internal
- * 
- */
-#endif // __OPEN_SOURCE__
-#define __OS_OPTIONS_ATTR __attribute__((flag_enum))
-#else
-#define __OS_OPTIONS_ATTR
-#endif // __has_attribute(flag_enum)
-
-#if __has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum) || \
-		__has_extension(cxx_strong_enums)
-#define OS_ENUM(_name, _type, ...) \
-		typedef enum : _type { __VA_ARGS__ } _name##_t
-#define OS_CLOSED_ENUM(_name, _type, ...) \
-		typedef enum : _type { __VA_ARGS__ } \
-			__OS_ENUM_ATTR_CLOSED _name##_t
-#define OS_OPTIONS(_name, _type, ...) \
-		typedef enum : _type { __VA_ARGS__ } \
-			__OS_ENUM_ATTR __OS_OPTIONS_ATTR _name##_t
-#define OS_CLOSED_OPTIONS(_name, _type, ...) \
-		typedef enum : _type { __VA_ARGS__ } \
-			__OS_ENUM_ATTR_CLOSED __OS_OPTIONS_ATTR _name##_t
-#else
-/*!
- * There is unfortunately no good way in plain C to have both fixed-type enums
- * and enforcement for clang's enum_extensibility extensions. The primary goal
- * of these macros is to allow you to define an enum and specify its width in a
- * single statement, and for plain C that is accomplished by defining an
- * anonymous enum and then separately typedef'ing the requested type name to the
- * requested underlying integer type. So the type emitted actually has no
- * relationship at all to the enum, and therefore while the compiler could
- * enforce enum extensibility if you used the enum type, it cannot do so if you
- * use the "_t" type resulting from this expression.
- *
- * But we still define a named enum type and decorate it appropriately for you,
- * so if you really want the enum extensibility enforcement, you can use the
- * enum type yourself, i.e. when compiling with a C compiler:
- *
- *     OS_CLOSED_ENUM(my_type, uint64_t,
- *         FOO,
- *         BAR,
- *         BAZ,
- *     );
- *
- *     my_type_t mt = 98; // legal
- *     enum my_type emt = 98; // illegal
- *
- * But be aware that the underlying enum type's width is subject only to the C
- * language's guarantees -- namely that it will be compatible with int, char,
- * and unsigned char. It is not safe to rely on the size of this type.
- *
- * When compiling in ObjC or C++, both of the above assignments are illegal.
- */
-#define __OS_ENUM_C_FALLBACK(_name, _type, ...) \
-		typedef _type _name##_t; enum _name { __VA_ARGS__ }
-
-#define OS_ENUM(_name, _type, ...) \
-		typedef _type _name##_t; enum { __VA_ARGS__ }
-#define OS_CLOSED_ENUM(_name, _type, ...) \
-		__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
-		__OS_ENUM_ATTR_CLOSED
-#define OS_OPTIONS(_name, _type, ...) \
-		__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
-		__OS_ENUM_ATTR __OS_OPTIONS_ATTR
-#define OS_CLOSED_OPTIONS(_name, _type, ...) \
-		__OS_ENUM_C_FALLBACK(_name, _type, ## __VA_ARGS__) \
-		__OS_ENUM_ATTR_CLOSED __OS_OPTIONS_ATTR
-#endif // __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums)
-
-#if __has_feature(attribute_availability_swift)
-// equivalent to __SWIFT_UNAVAILABLE from Availability.h
-#define OS_SWIFT_UNAVAILABLE(_msg) \
-		__attribute__((__availability__(swift, unavailable, message=_msg)))
-#else
-#define OS_SWIFT_UNAVAILABLE(_msg)
-#endif
-
-#if __has_attribute(swift_private)
-# define OS_REFINED_FOR_SWIFT __attribute__((__swift_private__))
-#else
-# define OS_REFINED_FOR_SWIFT
-#endif
-
-#if __has_attribute(swift_name)
-# define OS_SWIFT_NAME(_name) __attribute__((__swift_name__(#_name)))
-#else
-# define OS_SWIFT_NAME(_name)
-#endif
-
-#define __OS_STRINGIFY(s) #s
-#define OS_STRINGIFY(s) __OS_STRINGIFY(s)
-#define __OS_CONCAT(x, y) x ## y
-#define OS_CONCAT(x, y) __OS_CONCAT(x, y)
-
-#ifdef __GNUC__
-#define os_prevent_tail_call_optimization()  __asm__("")
-#define os_is_compile_time_constant(expr)  __builtin_constant_p(expr)
-#define os_compiler_barrier()  __asm__ __volatile__("" ::: "memory")
-#else
-#define os_prevent_tail_call_optimization()  do { } while (0)
-#define os_is_compile_time_constant(expr)  0
-#define os_compiler_barrier()  do { } while (0)
-#endif
-
-#if __has_attribute(not_tail_called)
-#define OS_NOT_TAIL_CALLED __attribute__((__not_tail_called__))
-#else
-#define OS_NOT_TAIL_CALLED
-#endif
-
-typedef void (*os_function_t)(void *_Nullable);
-
-#ifdef __BLOCKS__
-/*!
- * @typedef os_block_t
- *
- * @abstract
- * Generic type for a block taking no arguments and returning no value.
- *
- * @discussion
- * When not building with Objective-C ARC, a block object allocated on or
- * copied to the heap must be released with a -[release] message or the
- * Block_release() function.
- *
- * The declaration of a block literal allocates storage on the stack.
- * Therefore, this is an invalid construct:
- * 
- * os_block_t block;
- * if (x) {
- *     block = ^{ printf("true\n"); };
- * } else {
- *     block = ^{ printf("false\n"); };
- * }
- * block(); // unsafe!!!
- * 
- *
- * What is happening behind the scenes:
- * 
- * if (x) {
- *     struct Block __tmp_1 = ...; // setup details
- *     block = &__tmp_1;
- * } else {
- *     struct Block __tmp_2 = ...; // setup details
- *     block = &__tmp_2;
- * }
- * 
- *
- * As the example demonstrates, the address of a stack variable is escaping the
- * scope in which it is allocated. That is a classic C bug.
- *
- * Instead, the block literal must be copied to the heap with the Block_copy()
- * function or by sending it a -[copy] message.
- */
-typedef void (^os_block_t)(void);
-#endif
-
-#endif // __OS_BASE__
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/os/object.h b/lib/libc/include/x86_64-macos.10-none/os/object.h
deleted file mode 100644
index be281bcd9ae507ef562cd467ee7f0f69bb777e93..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/os/object.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Copyright (c) 2011-2014 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
-
-#ifndef __OS_OBJECT__
-#define __OS_OBJECT__
-
-#ifdef __APPLE__
-#include 
-#include 
-#include 
-#include 
-#elif defined(_WIN32)
-#include 
-#elif defined(__unix__)
-#include 
-#endif
-
-/*!
- * @header
- *
- * @preprocinfo
- * By default, libSystem objects such as GCD and XPC objects are declared as
- * Objective-C types when building with an Objective-C compiler. This allows
- * them to participate in ARC, in RR management by the Blocks runtime and in
- * leaks checking by the static analyzer, and enables them to be added to Cocoa
- * collections.
- *
- * NOTE: this requires explicit cancellation of dispatch sources and xpc
- *       connections whose handler blocks capture the source/connection object,
- *       resp. ensuring that such captures do not form retain cycles (e.g. by
- *       declaring the source as __weak).
- *
- * To opt-out of this default behavior, add -DOS_OBJECT_USE_OBJC=0 to your
- * compiler flags.
- *
- * This mode requires a platform with the modern Objective-C runtime, the
- * Objective-C GC compiler option to be disabled, and at least a Mac OS X 10.8
- * or iOS 6.0 deployment target.
- */
-
-#ifndef OS_OBJECT_HAVE_OBJC_SUPPORT
-#if !defined(__OBJC__) || defined(__OBJC_GC__)
-#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
-#elif !defined(TARGET_OS_MAC) || !TARGET_OS_MAC
-#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
-#elif TARGET_OS_IOS && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_6_0
-#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
-#elif TARGET_OS_MAC && !TARGET_OS_IPHONE
-#  if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_8
-#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
-#  elif defined(__i386__) && __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_12
-#  define OS_OBJECT_HAVE_OBJC_SUPPORT 0
-#  else
-#  define OS_OBJECT_HAVE_OBJC_SUPPORT 1
-#  endif
-#else
-#  define OS_OBJECT_HAVE_OBJC_SUPPORT 1
-#endif
-#endif // OS_OBJECT_HAVE_OBJC_SUPPORT
-
-#if OS_OBJECT_HAVE_OBJC_SUPPORT
-#if defined(__swift__) && __swift__ && !OS_OBJECT_USE_OBJC
-#define OS_OBJECT_USE_OBJC 1
-#endif
-#ifndef OS_OBJECT_USE_OBJC
-#define OS_OBJECT_USE_OBJC 1
-#endif
-#elif defined(OS_OBJECT_USE_OBJC) && OS_OBJECT_USE_OBJC
-/* Unsupported platform for OS_OBJECT_USE_OBJC=1 */
-#undef OS_OBJECT_USE_OBJC
-#define OS_OBJECT_USE_OBJC 0
-#else
-#define OS_OBJECT_USE_OBJC 0
-#endif
-
-#ifndef OS_OBJECT_SWIFT3
-#ifdef __swift__
-#define OS_OBJECT_SWIFT3 1
-#else // __swift__
-#define OS_OBJECT_SWIFT3 0
-#endif // __swift__
-#endif // OS_OBJECT_SWIFT3
-
-#if OS_OBJECT_USE_OBJC
-#import 
-#if __has_attribute(objc_independent_class)
-#define OS_OBJC_INDEPENDENT_CLASS __attribute__((objc_independent_class))
-#endif // __has_attribute(objc_independent_class)
-#ifndef OS_OBJC_INDEPENDENT_CLASS
-#define OS_OBJC_INDEPENDENT_CLASS
-#endif
-#define OS_OBJECT_CLASS(name) OS_##name
-#define OS_OBJECT_DECL_PROTOCOL(name, ...) \
-		@protocol OS_OBJECT_CLASS(name) __VA_ARGS__ \
-		@end
-#define OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL_IMPL(name, proto) \
-		@interface name ()  \
-		@end
-#define OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL(name, proto) \
-		OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL_IMPL( \
-				OS_OBJECT_CLASS(name), OS_OBJECT_CLASS(proto))
-#define OS_OBJECT_DECL_IMPL(name, ...) \
-		OS_OBJECT_DECL_PROTOCOL(name, __VA_ARGS__) \
-		typedef NSObject \
-				* OS_OBJC_INDEPENDENT_CLASS name##_t
-#define OS_OBJECT_DECL_BASE(name, ...) \
-		@interface OS_OBJECT_CLASS(name) : __VA_ARGS__ \
-		- (instancetype)init OS_SWIFT_UNAVAILABLE("Unavailable in Swift"); \
-		@end
-#define OS_OBJECT_DECL_IMPL_CLASS(name, ...) \
-		OS_OBJECT_DECL_BASE(name, ## __VA_ARGS__) \
-		typedef OS_OBJECT_CLASS(name) \
-				* OS_OBJC_INDEPENDENT_CLASS name##_t
-#define OS_OBJECT_DECL(name, ...) \
-		OS_OBJECT_DECL_IMPL(name, )
-#define OS_OBJECT_DECL_SUBCLASS(name, super) \
-		OS_OBJECT_DECL_IMPL(name, )
-#if __has_attribute(ns_returns_retained)
-#define OS_OBJECT_RETURNS_RETAINED __attribute__((__ns_returns_retained__))
-#else
-#define OS_OBJECT_RETURNS_RETAINED
-#endif
-#if __has_attribute(ns_consumed)
-#define OS_OBJECT_CONSUMED __attribute__((__ns_consumed__))
-#else
-#define OS_OBJECT_CONSUMED
-#endif
-#if __has_feature(objc_arc)
-#define OS_OBJECT_BRIDGE __bridge
-#define OS_WARN_RESULT_NEEDS_RELEASE
-#else
-#define OS_OBJECT_BRIDGE
-#define OS_WARN_RESULT_NEEDS_RELEASE OS_WARN_RESULT
-#endif
-#if __has_attribute(objc_runtime_visible) && \
-		((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
-		__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_12) || \
-		(defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && \
-		!defined(__TV_OS_VERSION_MIN_REQUIRED) && \
-		!defined(__WATCH_OS_VERSION_MIN_REQUIRED) && \
-		__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0) || \
-		(defined(__TV_OS_VERSION_MIN_REQUIRED) && \
-		__TV_OS_VERSION_MIN_REQUIRED < __TVOS_10_0) || \
-		(defined(__WATCH_OS_VERSION_MIN_REQUIRED) && \
-		__WATCH_OS_VERSION_MIN_REQUIRED < __WATCHOS_3_0))
-/*
- * To provide backward deployment of ObjC objects in Swift on pre-10.12
- * SDKs, OS_object classes can be marked as OS_OBJECT_OBJC_RUNTIME_VISIBLE.
- * When compiling with a deployment target earlier than OS X 10.12 (iOS 10.0, 
- * tvOS 10.0, watchOS 3.0) the Swift compiler will only refer to this type at
- * runtime (using the ObjC runtime).
- */
-#define OS_OBJECT_OBJC_RUNTIME_VISIBLE __attribute__((objc_runtime_visible))
-#else
-#define OS_OBJECT_OBJC_RUNTIME_VISIBLE
-#endif
-#ifndef OS_OBJECT_USE_OBJC_RETAIN_RELEASE
-#if defined(__clang_analyzer__)
-#define OS_OBJECT_USE_OBJC_RETAIN_RELEASE 1
-#elif __has_feature(objc_arc) && !OS_OBJECT_SWIFT3
-#define OS_OBJECT_USE_OBJC_RETAIN_RELEASE 1
-#else
-#define OS_OBJECT_USE_OBJC_RETAIN_RELEASE 0
-#endif
-#endif
-#if OS_OBJECT_SWIFT3
-#define OS_OBJECT_DECL_SWIFT(name) \
-		OS_EXPORT OS_OBJECT_OBJC_RUNTIME_VISIBLE \
-		OS_OBJECT_DECL_IMPL_CLASS(name, NSObject)
-#define OS_OBJECT_DECL_SUBCLASS_SWIFT(name, super) \
-		OS_EXPORT OS_OBJECT_OBJC_RUNTIME_VISIBLE \
-		OS_OBJECT_DECL_IMPL_CLASS(name, OS_OBJECT_CLASS(super))
-OS_EXPORT OS_OBJECT_OBJC_RUNTIME_VISIBLE
-OS_OBJECT_DECL_BASE(object, NSObject);
-#endif // OS_OBJECT_SWIFT3
-#else
-/*! @parseOnly */
-#define OS_OBJECT_RETURNS_RETAINED
-/*! @parseOnly */
-#define OS_OBJECT_CONSUMED
-/*! @parseOnly */
-#define OS_OBJECT_BRIDGE
-/*! @parseOnly */
-#define OS_WARN_RESULT_NEEDS_RELEASE OS_WARN_RESULT
-/*! @parseOnly */
-#define OS_OBJECT_OBJC_RUNTIME_VISIBLE
-#define OS_OBJECT_USE_OBJC_RETAIN_RELEASE 0
-#endif
-
-#if OS_OBJECT_SWIFT3
-#define OS_OBJECT_DECL_CLASS(name) \
-		OS_OBJECT_DECL_SUBCLASS_SWIFT(name, object)
-#elif OS_OBJECT_USE_OBJC
-#define OS_OBJECT_DECL_CLASS(name) \
-		OS_OBJECT_DECL(name)
-#else
-#define OS_OBJECT_DECL_CLASS(name) \
-		typedef struct name##_s *name##_t
-#endif
-
-#define OS_OBJECT_GLOBAL_OBJECT(type, object) ((OS_OBJECT_BRIDGE type)&(object))
-
-__BEGIN_DECLS
-
-/*!
- * @function os_retain
- *
- * @abstract
- * Increment the reference count of an os_object.
- *
- * @discussion
- * On a platform with the modern Objective-C runtime this is exactly equivalent
- * to sending the object the -[retain] message.
- *
- * @param object
- * The object to retain.
- *
- * @result
- * The retained object.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-OS_EXPORT OS_SWIFT_UNAVAILABLE("Can't be used with ARC")
-void*
-os_retain(void *object);
-#if OS_OBJECT_USE_OBJC
-#undef os_retain
-#define os_retain(object) [object retain]
-#endif
-
-/*!
- * @function os_release
- *
- * @abstract
- * Decrement the reference count of a os_object.
- *
- * @discussion
- * On a platform with the modern Objective-C runtime this is exactly equivalent
- * to sending the object the -[release] message.
- *
- * @param object
- * The object to release.
- */
-API_AVAILABLE(macos(10.10), ios(8.0))
-OS_EXPORT
-void OS_SWIFT_UNAVAILABLE("Can't be used with ARC")
-os_release(void *object);
-#if OS_OBJECT_USE_OBJC
-#undef os_release
-#define os_release(object) [object release]
-#endif
-
-__END_DECLS
-
-#endif
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/pthread.h b/lib/libc/include/x86_64-macos.10-none/pthread.h
deleted file mode 100644
index 0826a7dc705cd9dca8548df6e32f4546bb12c264..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/pthread.h
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * Copyright (c) 2000-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 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
- *              All Rights Reserved
- *
- * 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.
- *
- * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
- * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-/*
- * MkLinux
- */
-
-/*
- * POSIX Threads - IEEE 1003.1c
- */
-
-#ifndef _PTHREAD_H
-#define _PTHREAD_H
-
-#include <_types.h>
-#ifndef __POSIX_LIB__
-#include 
-#endif
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-
-#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
-
-#include 
-#include 
-
-#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */
-
-/*
- * These symbols indicate which [optional] features are available
- * They can be tested at compile time via '#ifdef XXX'
- * The way to check for pthreads is like so:
-
- * #include 
- * #ifdef _POSIX_THREADS
- * #include 
- * #endif
-
- */
-
-/* These will be moved to unistd.h */
-
-/*
- * Note: These data structures are meant to be opaque.  Only enough
- * structure is exposed to support initializers.
- * All of the typedefs will be moved to 
- */
-
-#include 
-#include 
-
-#if __has_feature(assume_nonnull)
-_Pragma("clang assume_nonnull begin")
-#endif
-__BEGIN_DECLS
-/*
- * Threads
- */
-
-
-/*
- * Cancel cleanup handler management.  Note, since these are implemented as macros,
- * they *MUST* occur in matched pairs!
- */
-
-#define pthread_cleanup_push(func, val) \
-   { \
-	     struct __darwin_pthread_handler_rec __handler; \
-	     pthread_t __self = pthread_self(); \
-	     __handler.__routine = func; \
-	     __handler.__arg = val; \
-	     __handler.__next = __self->__cleanup_stack; \
-	     __self->__cleanup_stack = &__handler;
-
-#define pthread_cleanup_pop(execute) \
-	     /* Note: 'handler' must be in this same lexical context! */ \
-	     __self->__cleanup_stack = __handler.__next; \
-	     if (execute) (__handler.__routine)(__handler.__arg); \
-   }
-
-/*
- * Thread attributes
- */
-
-#define PTHREAD_CREATE_JOINABLE      1
-#define PTHREAD_CREATE_DETACHED      2
-
-#define PTHREAD_INHERIT_SCHED        1
-#define PTHREAD_EXPLICIT_SCHED       2
-
-#define PTHREAD_CANCEL_ENABLE        0x01  /* Cancel takes place at next cancellation point */
-#define PTHREAD_CANCEL_DISABLE       0x00  /* Cancel postponed */
-#define PTHREAD_CANCEL_DEFERRED      0x02  /* Cancel waits until cancellation point */
-#define PTHREAD_CANCEL_ASYNCHRONOUS  0x00  /* Cancel occurs immediately */
-
-/* Value returned from pthread_join() when a thread is canceled */
-#define PTHREAD_CANCELED	     ((void *) 1)
-
-/* We only support PTHREAD_SCOPE_SYSTEM */
-#define PTHREAD_SCOPE_SYSTEM         1
-#define PTHREAD_SCOPE_PROCESS        2
-
-#define PTHREAD_PROCESS_SHARED         1
-#define PTHREAD_PROCESS_PRIVATE        2
-
-/*
- * Mutex protocol attributes
- */
-#define PTHREAD_PRIO_NONE            0
-#define PTHREAD_PRIO_INHERIT         1
-#define PTHREAD_PRIO_PROTECT         2
-
-/*
- * Mutex type attributes
- */
-#define PTHREAD_MUTEX_NORMAL		0
-#define PTHREAD_MUTEX_ERRORCHECK	1
-#define PTHREAD_MUTEX_RECURSIVE		2
-#define PTHREAD_MUTEX_DEFAULT		PTHREAD_MUTEX_NORMAL
-
-/*
- * Mutex policy attributes
- */
-#define PTHREAD_MUTEX_POLICY_FAIRSHARE_NP   1
-#define PTHREAD_MUTEX_POLICY_FIRSTFIT_NP    3
-
-/*
- * RWLock variables
- */
-#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWLOCK_SIG_init, {0}}
-
-/*
- * Mutex variables
- */
-#define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MUTEX_SIG_init, {0}}
-
-/*  */
-#if ((__MAC_OS_X_VERSION_MIN_REQUIRED && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070) || (__IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED >= 50000)) || defined(__DRIVERKIT_VERSION_MIN_REQUIRED)
-#	if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
-#		define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {_PTHREAD_ERRORCHECK_MUTEX_SIG_init, {0}}
-#		define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {_PTHREAD_RECURSIVE_MUTEX_SIG_init, {0}}
-#	endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
-#endif
-
-/*  */
-#define _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT \
-	defined(SWIFT_CLASS_EXTRA) && (!defined(SWIFT_SDK_OVERLAY_PTHREAD_EPOCH) || (SWIFT_SDK_OVERLAY_PTHREAD_EPOCH < 1))
-
-/*
- * Condition variable attributes
- */
-
-/*
- * Condition variables
- */
-
-#define PTHREAD_COND_INITIALIZER {_PTHREAD_COND_SIG_init, {0}}
-
-/*
- * Initialization control (once) variables
- */
-
-#define PTHREAD_ONCE_INIT {_PTHREAD_ONCE_SIG_init, {0}}
-
-/*
- * Prototypes for all PTHREAD interfaces
- */
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_atfork(void (* _Nullable)(void), void (* _Nullable)(void),
-		void (* _Nullable)(void));
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_destroy(pthread_attr_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getdetachstate(const pthread_attr_t *, int *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getguardsize(const pthread_attr_t * __restrict, size_t * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getinheritsched(const pthread_attr_t * __restrict, int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getschedparam(const pthread_attr_t * __restrict,
-		struct sched_param * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getschedpolicy(const pthread_attr_t * __restrict, int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getscope(const pthread_attr_t * __restrict, int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getstack(const pthread_attr_t * __restrict,
-		void * _Nullable * _Nonnull __restrict, size_t * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getstackaddr(const pthread_attr_t * __restrict,
-		void * _Nullable * _Nonnull __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_getstacksize(const pthread_attr_t * __restrict, size_t * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_init(pthread_attr_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setdetachstate(pthread_attr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setguardsize(pthread_attr_t *, size_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setinheritsched(pthread_attr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setschedparam(pthread_attr_t * __restrict,
-		const struct sched_param * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setschedpolicy(pthread_attr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setscope(pthread_attr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setstack(pthread_attr_t *, void *, size_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setstackaddr(pthread_attr_t *, void *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_attr_setstacksize(pthread_attr_t *, size_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cancel(pthread_t) __DARWIN_ALIAS(pthread_cancel);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cond_broadcast(pthread_cond_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cond_destroy(pthread_cond_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cond_init(
-		pthread_cond_t * __restrict,
-		const pthread_condattr_t * _Nullable __restrict)
-		__DARWIN_ALIAS(pthread_cond_init);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cond_signal(pthread_cond_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cond_timedwait(
-		pthread_cond_t * __restrict, pthread_mutex_t * __restrict,
-		const struct timespec * _Nullable __restrict)
-		__DARWIN_ALIAS_C(pthread_cond_timedwait);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cond_wait(pthread_cond_t * __restrict,
-		pthread_mutex_t * __restrict) __DARWIN_ALIAS_C(pthread_cond_wait);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_condattr_destroy(pthread_condattr_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_condattr_init(pthread_condattr_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_condattr_getpshared(const pthread_condattr_t * __restrict,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_condattr_setpshared(pthread_condattr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
-int pthread_create(pthread_t _Nullable * _Nonnull __restrict,
-		const pthread_attr_t * _Nullable __restrict,
-		void * _Nullable (* _Nonnull)(void * _Nullable),
-		void * _Nullable __restrict);
-#else
-int pthread_create(pthread_t * __restrict,
-		const pthread_attr_t * _Nullable __restrict,
-		void *(* _Nonnull)(void *), void * _Nullable __restrict);
-#endif // _PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_detach(pthread_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_equal(pthread_t _Nullable, pthread_t _Nullable);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-void pthread_exit(void * _Nullable) __dead2;
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_getconcurrency(void);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_getschedparam(pthread_t , int * _Nullable __restrict,
-		struct sched_param * _Nullable __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-void* _Nullable pthread_getspecific(pthread_key_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_join(pthread_t , void * _Nullable * _Nullable)
-		__DARWIN_ALIAS_C(pthread_join);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_key_create(pthread_key_t *, void (* _Nullable)(void *));
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_key_delete(pthread_key_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutex_destroy(pthread_mutex_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutex_getprioceiling(const pthread_mutex_t * __restrict,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutex_init(pthread_mutex_t * __restrict,
-		const pthread_mutexattr_t * _Nullable __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutex_lock(pthread_mutex_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutex_setprioceiling(pthread_mutex_t * __restrict, int,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutex_trylock(pthread_mutex_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutex_unlock(pthread_mutex_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_destroy(pthread_mutexattr_t *) __DARWIN_ALIAS(pthread_mutexattr_destroy);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * __restrict,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_getprotocol(const pthread_mutexattr_t * __restrict,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_getpshared(const pthread_mutexattr_t * __restrict,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_gettype(const pthread_mutexattr_t * __restrict,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.13.4), ios(11.3), watchos(4.3), tvos(11.3))
-int pthread_mutexattr_getpolicy_np(const pthread_mutexattr_t * __restrict,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_init(pthread_mutexattr_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_mutexattr_settype(pthread_mutexattr_t *, int);
-
-__API_AVAILABLE(macos(10.7), ios(5.0))
-int pthread_mutexattr_setpolicy_np(pthread_mutexattr_t *, int);
-
-__SWIFT_UNAVAILABLE_MSG("Use lazily initialized globals instead")
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_once(pthread_once_t *, void (* _Nonnull)(void));
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlock_destroy(pthread_rwlock_t * ) __DARWIN_ALIAS(pthread_rwlock_destroy);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlock_init(pthread_rwlock_t * __restrict,
-		const pthread_rwlockattr_t * _Nullable __restrict)
-		__DARWIN_ALIAS(pthread_rwlock_init);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlock_rdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_rdlock);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlock_tryrdlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_tryrdlock);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlock_trywrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_trywrlock);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlock_wrlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_wrlock);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlock_unlock(pthread_rwlock_t *) __DARWIN_ALIAS(pthread_rwlock_unlock);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlockattr_destroy(pthread_rwlockattr_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t * __restrict,
-		int * __restrict);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlockattr_init(pthread_rwlockattr_t *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-pthread_t pthread_self(void);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_setcancelstate(int , int * _Nullable)
-		__DARWIN_ALIAS(pthread_setcancelstate);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_setcanceltype(int , int * _Nullable)
-		__DARWIN_ALIAS(pthread_setcanceltype);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_setconcurrency(int);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_setschedparam(pthread_t, int, const struct sched_param *);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_setspecific(pthread_key_t , const void * _Nullable);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-void pthread_testcancel(void) __DARWIN_ALIAS(pthread_testcancel);
-
-#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(__cplusplus)
-
-/* returns non-zero if pthread_create or cthread_fork have been called */
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_is_threaded_np(void);
-
-__API_AVAILABLE(macos(10.6), ios(3.2))
-int pthread_threadid_np(pthread_t _Nullable,__uint64_t* _Nullable);
-
-/*SPI to set and get pthread name*/
-__API_AVAILABLE(macos(10.6), ios(3.2))
-int	pthread_getname_np(pthread_t,char*,size_t);
-
-__API_AVAILABLE(macos(10.6), ios(3.2))
-int	pthread_setname_np(const char*);
-
-/* returns non-zero if the current thread is the main thread */
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int	pthread_main_np(void);
-
-/* return the mach thread bound to the pthread */
-__API_AVAILABLE(macos(10.4), ios(2.0))
-mach_port_t pthread_mach_thread_np(pthread_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-size_t pthread_get_stacksize_np(pthread_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-void* pthread_get_stackaddr_np(pthread_t);
-
-/* Like pthread_cond_signal(), but only wake up the specified pthread */
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cond_signal_thread_np(pthread_cond_t *, pthread_t _Nullable);
-
-/* Like pthread_cond_timedwait, but use a relative timeout */
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_cond_timedwait_relative_np(pthread_cond_t *, pthread_mutex_t *,
-		const struct timespec * _Nullable);
-
-/* Like pthread_create(), but leaves the thread suspended */
-__API_AVAILABLE(macos(10.4), ios(2.0))
-#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
-int pthread_create_suspended_np(
-		pthread_t _Nullable * _Nonnull, const pthread_attr_t * _Nullable,
-		void * _Nullable (* _Nonnull)(void * _Nullable), void * _Nullable);
-#else
-int pthread_create_suspended_np(pthread_t *, const pthread_attr_t * _Nullable,
-		void *(* _Nonnull)(void *), void * _Nullable);
-#endif
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_kill(pthread_t, int);
-
-__API_AVAILABLE(macos(10.5), ios(2.0))
-_Nullable pthread_t pthread_from_mach_thread_np(mach_port_t);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-int pthread_sigmask(int, const sigset_t * _Nullable, sigset_t * _Nullable)
-		__DARWIN_ALIAS(pthread_sigmask);
-
-__API_AVAILABLE(macos(10.4), ios(2.0))
-void pthread_yield_np(void);
-
-#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE || __cplusplus */
-__END_DECLS
-#if __has_feature(assume_nonnull)
-_Pragma("clang assume_nonnull end")
-#endif
-
-#endif /* _PTHREAD_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/pthread/sched.h b/lib/libc/include/x86_64-macos.10-none/pthread/sched.h
deleted file mode 100644
index 3c49e7980d73b741fb07197fde0f2334c269f22c..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/pthread/sched.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2000-2003 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 _SCHED_H_
-#define _SCHED_H_
-
-#include 
-#include 
-
-__BEGIN_DECLS
-/*
- * Scheduling paramters
- */
-#ifndef __POSIX_LIB__
-struct sched_param { int sched_priority;  char __opaque[__SCHED_PARAM_SIZE__]; };
-#endif
-
-extern int sched_yield(void);
-extern int sched_get_priority_min(int);
-extern int sched_get_priority_max(int);
-__END_DECLS
-
-#endif /* _SCHED_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/pthread_impl.h b/lib/libc/include/x86_64-macos.10-none/pthread_impl.h
deleted file mode 100644
index aae74c2c035497da06886c2b6b5b675bdb4d6759..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/pthread_impl.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2000-2003 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 _PTHREAD_IMPL_H_
-#define _PTHREAD_IMPL_H_
-/*
- * Internal implementation details
- */
-
-/* This whole header file will disappear, so don't depend on it... */
-
-#if __has_feature(assume_nonnull)
-_Pragma("clang assume_nonnull begin")
-#endif
-
-#ifndef __POSIX_LIB__
-
-/*
- * [Internal] data structure signatures
- */
-#define _PTHREAD_MUTEX_SIG_init		0x32AAABA7
-
-#define _PTHREAD_ERRORCHECK_MUTEX_SIG_init      0x32AAABA1
-#define _PTHREAD_RECURSIVE_MUTEX_SIG_init       0x32AAABA2
-#define _PTHREAD_FIRSTFIT_MUTEX_SIG_init       0x32AAABA3
-
-#define _PTHREAD_COND_SIG_init		0x3CB0B1BB
-#define _PTHREAD_ONCE_SIG_init		0x30B1BCBA
-#define _PTHREAD_RWLOCK_SIG_init    0x2DA8B3B4
-
-/*
- * POSIX scheduling policies
- */
-#define SCHED_OTHER                1
-#define SCHED_FIFO                 4
-#define SCHED_RR                   2
-
-#define __SCHED_PARAM_SIZE__       4
-
-#endif /* __POSIX_LIB__ */
-
-#if __has_feature(assume_nonnull)
-_Pragma("clang assume_nonnull end")
-#endif
-
-#endif /* _PTHREAD_IMPL_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/sched.h b/lib/libc/include/x86_64-macos.10-none/sched.h
deleted file mode 100644
index 3c49e7980d73b741fb07197fde0f2334c269f22c..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/sched.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2000-2003 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 _SCHED_H_
-#define _SCHED_H_
-
-#include 
-#include 
-
-__BEGIN_DECLS
-/*
- * Scheduling paramters
- */
-#ifndef __POSIX_LIB__
-struct sched_param { int sched_priority;  char __opaque[__SCHED_PARAM_SIZE__]; };
-#endif
-
-extern int sched_yield(void);
-extern int sched_get_priority_min(int);
-extern int sched_get_priority_max(int);
-__END_DECLS
-
-#endif /* _SCHED_H_ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/signal.h b/lib/libc/include/x86_64-macos.10-none/signal.h
deleted file mode 100644
index dbc5b35f2b8b577b802b5dec0d588fbc238e0b55..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/signal.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 2000 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@
- */
-/*-
- * Copyright (c) 1991, 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.
- *
- *	@(#)signal.h	8.3 (Berkeley) 3/30/94
- */
-
-#ifndef _USER_SIGNAL_H
-#define _USER_SIGNAL_H
-
-#include 
-#include <_types.h>
-#include 
-
-#include 
-#include 
-
-#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-extern __const char *__const sys_signame[NSIG];
-extern __const char *__const sys_siglist[NSIG];
-#endif
-
-__BEGIN_DECLS
-int	raise(int);
-__END_DECLS
-
-#ifndef	_ANSI_SOURCE
-__BEGIN_DECLS
-void	(* _Nullable bsd_signal(int, void (* _Nullable)(int)))(int);
-int	kill(pid_t, int) __DARWIN_ALIAS(kill);
-int	killpg(pid_t, int) __DARWIN_ALIAS(killpg);
-int	pthread_kill(pthread_t, int);
-int	pthread_sigmask(int, const sigset_t *, sigset_t *) __DARWIN_ALIAS(pthread_sigmask);
-int	sigaction(int, const struct sigaction * __restrict,
-	    struct sigaction * __restrict);
-int	sigaddset(sigset_t *, int);
-int	sigaltstack(const stack_t * __restrict, stack_t * __restrict)  __DARWIN_ALIAS(sigaltstack) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
-int	sigdelset(sigset_t *, int);
-int	sigemptyset(sigset_t *);
-int	sigfillset(sigset_t *);
-int	sighold(int);
-int	sigignore(int);
-int	siginterrupt(int, int);
-int	sigismember(const sigset_t *, int);
-int	sigpause(int) __DARWIN_ALIAS_C(sigpause);
-int	sigpending(sigset_t *);
-int	sigprocmask(int, const sigset_t * __restrict, sigset_t * __restrict);
-int	sigrelse(int);
-void    (* _Nullable sigset(int, void (* _Nullable)(int)))(int);
-int	sigsuspend(const sigset_t *) __DARWIN_ALIAS_C(sigsuspend);
-int	sigwait(const sigset_t * __restrict, int * __restrict) __DARWIN_ALIAS_C(sigwait);
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-void	psignal(unsigned int, const char *);
-int	sigblock(int);
-int	sigsetmask(int);
-int	sigvec(int, struct sigvec *, struct sigvec *);
-#endif	/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
-__END_DECLS
-
-/* List definitions after function declarations, or Reiser cpp gets upset. */
-#if defined(__i386__) || defined(__x86_64__)
-/* The left shift operator on intel is modulo 32 */
-__header_always_inline int
-__sigbits(int __signo)
-{
-    return __signo > __DARWIN_NSIG ? 0 : (1 << (__signo - 1));
-}
-#else /* !__i386__ && !__x86_64__ */
-#define __sigbits(signo)	(1 << ((signo) - 1))
-#endif /* __i386__ || __x86_64__ */
-
-#define	sigaddset(set, signo)	(*(set) |= __sigbits(signo), 0)
-#define	sigdelset(set, signo)	(*(set) &= ~__sigbits(signo), 0)
-#define	sigismember(set, signo)	((*(set) & __sigbits(signo)) != 0)
-#define	sigemptyset(set)	(*(set) = 0, 0)
-#define	sigfillset(set)		(*(set) = ~(sigset_t)0, 0)
-#endif	/* !_ANSI_SOURCE */
-
-#endif	/* !_USER_SIGNAL_H */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/simd/base.h b/lib/libc/include/x86_64-macos.10-none/simd/base.h
deleted file mode 100644
index fdc2e3c879ce09b0e1133006cf9c3b7b6ee3d711..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/simd/base.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*! @header
- *  This header defines macros used in the implementation of 
- *  types and functions. Even though they are exposed in a public header,
- *  the macros defined in this header are implementation details, and you
- *  should not use or rely on them. They may be changed or removed entirely
- *  in a future release.
- *
- *  @copyright 2016-2017 Apple, Inc. All rights reserved.
- *  @unsorted                                                                 */
-
-#ifndef SIMD_BASE
-#define SIMD_BASE
-
-/*  Define __has_attribute and __has_include if they aren't available         */
-# ifndef __has_attribute
-#  define __has_attribute(__x) 0
-# endif
-# ifndef __has_include
-#  define __has_include(__x) 0
-# endif
-# ifndef __has_feature
-#  define __has_feature(__x) 0
-# endif
-
-# if __has_attribute(__ext_vector_type__) && __has_attribute(__overloadable__)
-#  define SIMD_COMPILER_HAS_REQUIRED_FEATURES 1
-# else
-/*  Your compiler is missing one or more features that are hard requirements
- *  for any  support. None of the types or functions defined by
- *  the simd headers will be available.                                       */
-#  define SIMD_COMPILER_HAS_REQUIRED_FEATURES 0
-# endif
-
-# if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#  if __has_include()
-#   include 
-/*  A number of new features are added in newer releases; most of these are
- *  inline in the header, which makes them available even when targeting older
- *  OS versions. Those that make external calls, however, are only available
- *  when targeting the release in which they became available. Because of the
- *  way in which simd functions are overloaded, the usual weak-linking tricks
- *  do not work; these functions are simply unavailable when targeting older
- *  versions of the library.                                                  */
-#   if   __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_13   || \
-        __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_11_0 || \
-         __WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_4_0 || \
-            __TV_OS_VERSION_MIN_REQUIRED >= __TVOS_11_0   || \
-        __DRIVERKIT_VERSION_MIN_REQUIRED >= __DRIVERKIT_19_0
-#    define SIMD_LIBRARY_VERSION 3
-#   elif __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_12   || \
-        __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_10_0 || \
-         __WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_3_0 || \
-            __TV_OS_VERSION_MIN_REQUIRED >= __TVOS_10_0
-#    define SIMD_LIBRARY_VERSION 2
-#   elif __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10   || \
-        __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
-#    define SIMD_LIBRARY_VERSION 1
-#   else
-#    define SIMD_LIBRARY_VERSION 0
-#   endif
-#  else /* !__has_include() */
-#   define SIMD_LIBRARY_VERSION 3
-#   define __API_AVAILABLE(...) /* Nothing */
-#  endif
-
-/*  The simd types interoperate with the native simd intrinsic types for each
- *  architecture; the headers that define those types and operations are
- *  automatically included with simd.h                                        */
-#  if defined __ARM_NEON__
-#   include 
-#  elif defined __i386__ || defined __x86_64__
-#   include 
-#  endif
-
-/*  Define a number of function attributes used by the simd functions.        */
-#  if __has_attribute(__always_inline__)
-#   define SIMD_INLINE  __attribute__((__always_inline__))
-#  else
-#   define SIMD_INLINE  inline
-#  endif
-
-#  if __has_attribute(__const__)
-#   define SIMD_CONST   __attribute__((__const__))
-#  else
-#   define SIMD_CONST   /* nothing */
-#  endif
-
-#  if __has_attribute(__nodebug__)
-#   define SIMD_NODEBUG __attribute__((__nodebug__))
-#  else
-#   define SIMD_NODEBUG /* nothing */
-#  endif
-
-#  if __has_attribute(__deprecated__)
-#   define SIMD_DEPRECATED(message) __attribute__((__deprecated__(message)))
-#  else
-#   define SIMD_DEPRECATED(message) /* nothing */
-#  endif
-
-#define SIMD_OVERLOAD __attribute__((__overloadable__))
-#define SIMD_CPPFUNC  SIMD_INLINE SIMD_CONST SIMD_NODEBUG
-#define SIMD_CFUNC    SIMD_CPPFUNC SIMD_OVERLOAD
-#define SIMD_NOINLINE SIMD_CONST SIMD_NODEBUG SIMD_OVERLOAD
-#define SIMD_NONCONST SIMD_INLINE SIMD_NODEBUG SIMD_OVERLOAD
-#define __SIMD_INLINE__     SIMD_CPPFUNC
-#define __SIMD_ATTRIBUTES__ SIMD_CFUNC
-#define __SIMD_OVERLOAD__   SIMD_OVERLOAD
-
-#if defined __cplusplus
-/*! @abstract A boolean scalar.                                               */
-typedef  bool simd_bool;
-#else
-/*! @abstract A boolean scalar.                                               */
-typedef _Bool simd_bool;
-#endif
-/*! @abstract A boolean scalar.
- *  @discussion This type is deprecated; In C or Objective-C sources, use
- *  `_Bool` instead. In C++ sources, use `bool`.                              */
-typedef simd_bool __SIMD_BOOLEAN_TYPE__;
-
-# endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
-#endif /* defined SIMD_BASE */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/simd/common.h b/lib/libc/include/x86_64-macos.10-none/simd/common.h
deleted file mode 100644
index 4c2f4d07601ddab52187b2fe8a87d109d42011ce..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/simd/common.h
+++ /dev/null
@@ -1,4458 +0,0 @@
-/*! @header
- *  The interfaces declared in this header provide "common" elementwise
- *  operations that are neither math nor logic functions.  These are available
- *  only for floating-point vectors and scalars, except for min, max, abs,
- *  clamp, and the reduce operations, which also support integer vectors.
- *
- *      simd_abs(x)             Absolute value of x.  Also available as fabs
- *                              for floating-point vectors.  If x is the
- *                              smallest signed integer, x is returned.
- *
- *      simd_max(x,y)           Returns the maximum of x and y.  Also available
- *                              as fmax for floating-point vectors.
- *
- *      simd_min(x,y)           Returns the minimum of x and y.  Also available
- *                              as fmin for floating-point vectors.
- *
- *      simd_clamp(x,min,max)   x clamped to the range [min, max].
- *
- *      simd_sign(x)            -1 if x is less than zero, 0 if x is zero or
- *                              NaN, and +1 if x is greater than zero.
- *
- *      simd_mix(x,y,t)         If t is not in the range [0,1], the result is
- *                              undefined.  Otherwise the result is x+(y-x)*t,
- *                              which linearly interpolates between x and y.
- *
- *      simd_recip(x)           An approximation to 1/x.  If x is very near the
- *                              limits of representable values, or is infinity
- *                              or NaN, the result is undefined.  There are
- *                              two variants of this function:
- *
- *                                  simd_precise_recip(x)
- *
- *                              and
- *
- *                                  simd_fast_recip(x).
- *
- *                              The "precise" variant is accurate to a few ULPs,
- *                              whereas the "fast" variant may have as little
- *                              as 11 bits of accuracy in float and about 22
- *                              bits in double.
- *
- *                              The function simd_recip(x) resolves to
- *                              simd_precise_recip(x) ordinarily, but to
- *                              simd_fast_recip(x) when used in a translation
- *                              unit compiled with -ffast-math (when
- *                              -ffast-math is in effect, you may still use the
- *                              precise version of this function by calling it
- *                              explicitly by name).
- *
- *      simd_rsqrt(x)           An approximation to 1/sqrt(x).  If x is
- *                              infinity or NaN, the result is undefined.
- *                              There are two variants of this function:
- *
- *                                  simd_precise_rsqrt(x)
- *
- *                              and
- *
- *                                  simd_fast_rsqrt(x).
- *
- *                              The "precise" variant is accurate to a few ULPs,
- *                              whereas the "fast" variant may have as little
- *                              as 11 bits of accuracy in float and about 22
- *                              bits in double.
- *
- *                              The function simd_rsqrt(x) resolves to
- *                              simd_precise_rsqrt(x) ordinarily, but to
- *                              simd_fast_rsqrt(x) when used in a translation
- *                              unit compiled with -ffast-math (when
- *                              -ffast-math is in effect, you may still use the
- *                              precise version of this function by calling it
- *                              explicitly by name).
- *
- *      simd_fract(x)           The "fractional part" of x, which lies strictly
- *                              in the range [0, 0x1.fffffep-1].
- *
- *      simd_step(edge,x)       0 if x < edge, and 1 otherwise.
- *
- *      simd_smoothstep(edge0,edge1,x) 0 if x <= edge0, 1 if x >= edge1, and
- *                              a Hermite interpolation between 0 and 1 if
- *                              edge0 < x < edge1.
- *
- *      simd_reduce_add(x)      Sum of the elements of x.
- *
- *      simd_reduce_min(x)      Minimum of the elements of x.
- *
- *      simd_reduce_max(x)      Maximum of the elements of x.
- *
- *      simd_equal(x,y)         True if and only if every lane of x is equal
- *                              to the corresponding lane of y.
- *
- *  The following common functions are available in the simd:: namespace:
- *
- *      C++ Function                    Equivalent C Function
- *      --------------------------------------------------------------------
- *      simd::abs(x)                    simd_abs(x)
- *      simd::max(x,y)                  simd_max(x,y)
- *      simd::min(x,y)                  simd_min(x,y)
- *      simd::clamp(x,min,max)          simd_clamp(x,min,max)
- *      simd::sign(x)                   simd_sign(x)
- *      simd::mix(x,y,t)                simd_mix(x,y,t)
- *      simd::recip(x)                  simd_recip(x)
- *      simd::rsqrt(x)                  simd_rsqrt(x)
- *      simd::fract(x)                  simd_fract(x)
- *      simd::step(edge,x)              simd_step(edge,x)
- *      simd::smoothstep(e0,e1,x)       simd_smoothstep(e0,e1,x)
- *      simd::reduce_add(x)             simd_reduce_add(x)
- *      simd::reduce_max(x)             simd_reduce_max(x)
- *      simd::reduce_min(x)             simd_reduce_min(x)
- *      simd::equal(x,y)                simd_equal(x,y)
- *
- *      simd::precise::recip(x)         simd_precise_recip(x)
- *      simd::precise::rsqrt(x)         simd_precise_rsqrt(x)
- *
- *      simd::fast::recip(x)            simd_fast_recip(x)
- *      simd::fast::rsqrt(x)            simd_fast_rsqrt(x)
- *
- *  @copyright 2014-2017 Apple, Inc. All rights reserved.
- *  @unsorted                                                                 */
-
-#ifndef SIMD_COMMON_HEADER
-#define SIMD_COMMON_HEADER
-
-#include 
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include 
-#include 
-#include 
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_char2 simd_abs(simd_char2 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_char3 simd_abs(simd_char3 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_char4 simd_abs(simd_char4 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_char8 simd_abs(simd_char8 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_char16 simd_abs(simd_char16 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_char32 simd_abs(simd_char32 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_char64 simd_abs(simd_char64 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_short2 simd_abs(simd_short2 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_short3 simd_abs(simd_short3 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_short4 simd_abs(simd_short4 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_short8 simd_abs(simd_short8 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_short16 simd_abs(simd_short16 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_short32 simd_abs(simd_short32 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_int2 simd_abs(simd_int2 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_int3 simd_abs(simd_int3 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_int4 simd_abs(simd_int4 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_int8 simd_abs(simd_int8 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_int16 simd_abs(simd_int16 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_float2 simd_abs(simd_float2 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_float3 simd_abs(simd_float3 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_float4 simd_abs(simd_float4 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_float8 simd_abs(simd_float8 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_float16 simd_abs(simd_float16 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_long2 simd_abs(simd_long2 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_long3 simd_abs(simd_long3 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_long4 simd_abs(simd_long4 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_long8 simd_abs(simd_long8 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_double2 simd_abs(simd_double2 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_double3 simd_abs(simd_double3 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_double4 simd_abs(simd_double4 x);
-/*! @abstract The elementwise absolute value of x.                            */
-static inline SIMD_CFUNC simd_double8 simd_abs(simd_double8 x);
-/*! @abstract The elementwise absolute value of x.
- *  @discussion Deprecated. Use simd_abs(x) instead.                          */
-#define vector_abs simd_abs
-  
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_char2 simd_max(simd_char2 x, simd_char2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_char3 simd_max(simd_char3 x, simd_char3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_char4 simd_max(simd_char4 x, simd_char4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_char8 simd_max(simd_char8 x, simd_char8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_char16 simd_max(simd_char16 x, simd_char16 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_char32 simd_max(simd_char32 x, simd_char32 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_char64 simd_max(simd_char64 x, simd_char64 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar2 simd_max(simd_uchar2 x, simd_uchar2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar3 simd_max(simd_uchar3 x, simd_uchar3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar4 simd_max(simd_uchar4 x, simd_uchar4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar8 simd_max(simd_uchar8 x, simd_uchar8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar16 simd_max(simd_uchar16 x, simd_uchar16 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar32 simd_max(simd_uchar32 x, simd_uchar32 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar64 simd_max(simd_uchar64 x, simd_uchar64 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_short2 simd_max(simd_short2 x, simd_short2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_short3 simd_max(simd_short3 x, simd_short3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_short4 simd_max(simd_short4 x, simd_short4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_short8 simd_max(simd_short8 x, simd_short8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_short16 simd_max(simd_short16 x, simd_short16 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_short32 simd_max(simd_short32 x, simd_short32 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort2 simd_max(simd_ushort2 x, simd_ushort2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort3 simd_max(simd_ushort3 x, simd_ushort3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort4 simd_max(simd_ushort4 x, simd_ushort4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort8 simd_max(simd_ushort8 x, simd_ushort8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort16 simd_max(simd_ushort16 x, simd_ushort16 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort32 simd_max(simd_ushort32 x, simd_ushort32 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_int2 simd_max(simd_int2 x, simd_int2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_int3 simd_max(simd_int3 x, simd_int3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_int4 simd_max(simd_int4 x, simd_int4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_int8 simd_max(simd_int8 x, simd_int8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_int16 simd_max(simd_int16 x, simd_int16 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uint2 simd_max(simd_uint2 x, simd_uint2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uint3 simd_max(simd_uint3 x, simd_uint3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uint4 simd_max(simd_uint4 x, simd_uint4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uint8 simd_max(simd_uint8 x, simd_uint8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_uint16 simd_max(simd_uint16 x, simd_uint16 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC float simd_max(float x, float y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_float2 simd_max(simd_float2 x, simd_float2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_float3 simd_max(simd_float3 x, simd_float3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_float4 simd_max(simd_float4 x, simd_float4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_float8 simd_max(simd_float8 x, simd_float8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_float16 simd_max(simd_float16 x, simd_float16 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_long2 simd_max(simd_long2 x, simd_long2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_long3 simd_max(simd_long3 x, simd_long3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_long4 simd_max(simd_long4 x, simd_long4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_long8 simd_max(simd_long8 x, simd_long8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ulong2 simd_max(simd_ulong2 x, simd_ulong2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ulong3 simd_max(simd_ulong3 x, simd_ulong3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ulong4 simd_max(simd_ulong4 x, simd_ulong4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_ulong8 simd_max(simd_ulong8 x, simd_ulong8 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC double simd_max(double x, double y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_double2 simd_max(simd_double2 x, simd_double2 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_double3 simd_max(simd_double3 x, simd_double3 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_double4 simd_max(simd_double4 x, simd_double4 y);
-/*! @abstract The elementwise maximum of x and y.                             */
-static inline SIMD_CFUNC simd_double8 simd_max(simd_double8 x, simd_double8 y);
-/*! @abstract The elementwise maximum of x and y.
- *  @discussion Deprecated. Use simd_max(x,y) instead.                        */
-#define vector_max simd_max
-
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_char2 simd_min(simd_char2 x, simd_char2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_char3 simd_min(simd_char3 x, simd_char3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_char4 simd_min(simd_char4 x, simd_char4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_char8 simd_min(simd_char8 x, simd_char8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_char16 simd_min(simd_char16 x, simd_char16 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_char32 simd_min(simd_char32 x, simd_char32 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_char64 simd_min(simd_char64 x, simd_char64 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar2 simd_min(simd_uchar2 x, simd_uchar2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar3 simd_min(simd_uchar3 x, simd_uchar3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar4 simd_min(simd_uchar4 x, simd_uchar4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar8 simd_min(simd_uchar8 x, simd_uchar8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar16 simd_min(simd_uchar16 x, simd_uchar16 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar32 simd_min(simd_uchar32 x, simd_uchar32 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uchar64 simd_min(simd_uchar64 x, simd_uchar64 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_short2 simd_min(simd_short2 x, simd_short2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_short3 simd_min(simd_short3 x, simd_short3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_short4 simd_min(simd_short4 x, simd_short4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_short8 simd_min(simd_short8 x, simd_short8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_short16 simd_min(simd_short16 x, simd_short16 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_short32 simd_min(simd_short32 x, simd_short32 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort2 simd_min(simd_ushort2 x, simd_ushort2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort3 simd_min(simd_ushort3 x, simd_ushort3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort4 simd_min(simd_ushort4 x, simd_ushort4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort8 simd_min(simd_ushort8 x, simd_ushort8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort16 simd_min(simd_ushort16 x, simd_ushort16 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ushort32 simd_min(simd_ushort32 x, simd_ushort32 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_int2 simd_min(simd_int2 x, simd_int2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_int3 simd_min(simd_int3 x, simd_int3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_int4 simd_min(simd_int4 x, simd_int4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_int8 simd_min(simd_int8 x, simd_int8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_int16 simd_min(simd_int16 x, simd_int16 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uint2 simd_min(simd_uint2 x, simd_uint2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uint3 simd_min(simd_uint3 x, simd_uint3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uint4 simd_min(simd_uint4 x, simd_uint4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uint8 simd_min(simd_uint8 x, simd_uint8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_uint16 simd_min(simd_uint16 x, simd_uint16 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC float simd_min(float x, float y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_float2 simd_min(simd_float2 x, simd_float2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_float3 simd_min(simd_float3 x, simd_float3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_float4 simd_min(simd_float4 x, simd_float4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_float8 simd_min(simd_float8 x, simd_float8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_float16 simd_min(simd_float16 x, simd_float16 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_long2 simd_min(simd_long2 x, simd_long2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_long3 simd_min(simd_long3 x, simd_long3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_long4 simd_min(simd_long4 x, simd_long4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_long8 simd_min(simd_long8 x, simd_long8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ulong2 simd_min(simd_ulong2 x, simd_ulong2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ulong3 simd_min(simd_ulong3 x, simd_ulong3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ulong4 simd_min(simd_ulong4 x, simd_ulong4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_ulong8 simd_min(simd_ulong8 x, simd_ulong8 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC double simd_min(double x, double y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_double2 simd_min(simd_double2 x, simd_double2 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_double3 simd_min(simd_double3 x, simd_double3 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_double4 simd_min(simd_double4 x, simd_double4 y);
-/*! @abstract The elementwise minimum of x and y.                             */
-static inline SIMD_CFUNC simd_double8 simd_min(simd_double8 x, simd_double8 y);
-/*! @abstract The elementwise minimum of x and y.
- *  @discussion Deprecated. Use simd_min(x,y) instead.                        */
-#define vector_min simd_min
-
-  
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_char2 simd_clamp(simd_char2 x, simd_char2 min, simd_char2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_char3 simd_clamp(simd_char3 x, simd_char3 min, simd_char3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_char4 simd_clamp(simd_char4 x, simd_char4 min, simd_char4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_char8 simd_clamp(simd_char8 x, simd_char8 min, simd_char8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_char16 simd_clamp(simd_char16 x, simd_char16 min, simd_char16 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_char32 simd_clamp(simd_char32 x, simd_char32 min, simd_char32 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_char64 simd_clamp(simd_char64 x, simd_char64 min, simd_char64 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uchar2 simd_clamp(simd_uchar2 x, simd_uchar2 min, simd_uchar2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uchar3 simd_clamp(simd_uchar3 x, simd_uchar3 min, simd_uchar3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uchar4 simd_clamp(simd_uchar4 x, simd_uchar4 min, simd_uchar4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uchar8 simd_clamp(simd_uchar8 x, simd_uchar8 min, simd_uchar8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uchar16 simd_clamp(simd_uchar16 x, simd_uchar16 min, simd_uchar16 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uchar32 simd_clamp(simd_uchar32 x, simd_uchar32 min, simd_uchar32 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uchar64 simd_clamp(simd_uchar64 x, simd_uchar64 min, simd_uchar64 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_short2 simd_clamp(simd_short2 x, simd_short2 min, simd_short2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_short3 simd_clamp(simd_short3 x, simd_short3 min, simd_short3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_short4 simd_clamp(simd_short4 x, simd_short4 min, simd_short4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_short8 simd_clamp(simd_short8 x, simd_short8 min, simd_short8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_short16 simd_clamp(simd_short16 x, simd_short16 min, simd_short16 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_short32 simd_clamp(simd_short32 x, simd_short32 min, simd_short32 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ushort2 simd_clamp(simd_ushort2 x, simd_ushort2 min, simd_ushort2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ushort3 simd_clamp(simd_ushort3 x, simd_ushort3 min, simd_ushort3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ushort4 simd_clamp(simd_ushort4 x, simd_ushort4 min, simd_ushort4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ushort8 simd_clamp(simd_ushort8 x, simd_ushort8 min, simd_ushort8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ushort16 simd_clamp(simd_ushort16 x, simd_ushort16 min, simd_ushort16 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ushort32 simd_clamp(simd_ushort32 x, simd_ushort32 min, simd_ushort32 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_int2 simd_clamp(simd_int2 x, simd_int2 min, simd_int2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_int3 simd_clamp(simd_int3 x, simd_int3 min, simd_int3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_int4 simd_clamp(simd_int4 x, simd_int4 min, simd_int4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_int8 simd_clamp(simd_int8 x, simd_int8 min, simd_int8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_int16 simd_clamp(simd_int16 x, simd_int16 min, simd_int16 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uint2 simd_clamp(simd_uint2 x, simd_uint2 min, simd_uint2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uint3 simd_clamp(simd_uint3 x, simd_uint3 min, simd_uint3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uint4 simd_clamp(simd_uint4 x, simd_uint4 min, simd_uint4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uint8 simd_clamp(simd_uint8 x, simd_uint8 min, simd_uint8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_uint16 simd_clamp(simd_uint16 x, simd_uint16 min, simd_uint16 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC float simd_clamp(float x, float min, float max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_float2 simd_clamp(simd_float2 x, simd_float2 min, simd_float2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_float3 simd_clamp(simd_float3 x, simd_float3 min, simd_float3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_float4 simd_clamp(simd_float4 x, simd_float4 min, simd_float4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_float8 simd_clamp(simd_float8 x, simd_float8 min, simd_float8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_float16 simd_clamp(simd_float16 x, simd_float16 min, simd_float16 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_long2 simd_clamp(simd_long2 x, simd_long2 min, simd_long2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_long3 simd_clamp(simd_long3 x, simd_long3 min, simd_long3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_long4 simd_clamp(simd_long4 x, simd_long4 min, simd_long4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_long8 simd_clamp(simd_long8 x, simd_long8 min, simd_long8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ulong2 simd_clamp(simd_ulong2 x, simd_ulong2 min, simd_ulong2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ulong3 simd_clamp(simd_ulong3 x, simd_ulong3 min, simd_ulong3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ulong4 simd_clamp(simd_ulong4 x, simd_ulong4 min, simd_ulong4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_ulong8 simd_clamp(simd_ulong8 x, simd_ulong8 min, simd_ulong8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC double simd_clamp(double x, double min, double max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_double2 simd_clamp(simd_double2 x, simd_double2 min, simd_double2 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_double3 simd_clamp(simd_double3 x, simd_double3 min, simd_double3 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_double4 simd_clamp(simd_double4 x, simd_double4 min, simd_double4 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Note that if you want to clamp all lanes to the same range,
- *  you can use a scalar value for min and max.                               */
-static inline SIMD_CFUNC simd_double8 simd_clamp(simd_double8 x, simd_double8 min, simd_double8 max);
-/*! @abstract x clamped to the range [min, max].
- *  @discussion Deprecated. Use simd_clamp(x,min,max) instead.                */
-#define vector_clamp simd_clamp
-  
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC float simd_sign(float x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_float2 simd_sign(simd_float2 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_float3 simd_sign(simd_float3 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_float4 simd_sign(simd_float4 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_float8 simd_sign(simd_float8 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_float16 simd_sign(simd_float16 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC double simd_sign(double x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_double2 simd_sign(simd_double2 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_double3 simd_sign(simd_double3 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_double4 simd_sign(simd_double4 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.      */
-static inline SIMD_CFUNC simd_double8 simd_sign(simd_double8 x);
-/*! @abstract -1 if x is negative, +1 if x is positive, and 0 otherwise.
- *  @discussion Deprecated. Use simd_sign(x) instead.                         */
-#define vector_sign simd_sign
-
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC float simd_mix(float x, float y, float t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_float2 simd_mix(simd_float2 x, simd_float2 y, simd_float2 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_float3 simd_mix(simd_float3 x, simd_float3 y, simd_float3 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_float4 simd_mix(simd_float4 x, simd_float4 y, simd_float4 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_float8 simd_mix(simd_float8 x, simd_float8 y, simd_float8 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_float16 simd_mix(simd_float16 x, simd_float16 y, simd_float16 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC double simd_mix(double x, double y, double t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_double2 simd_mix(simd_double2 x, simd_double2 y, simd_double2 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_double3 simd_mix(simd_double3 x, simd_double3 y, simd_double3 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_double4 simd_mix(simd_double4 x, simd_double4 y, simd_double4 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1                                                        */
-static inline SIMD_CFUNC simd_double8 simd_mix(simd_double8 x, simd_double8 y, simd_double8 t);
-/*! @abstract Linearly interpolates between x and y, taking the value x when
- *  t=0 and y when t=1
- *  @discussion Deprecated. Use simd_mix(x, y, t) instead.                    */
-#define vector_mix simd_mix
-
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC float simd_precise_recip(float x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_float2 simd_precise_recip(simd_float2 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_float3 simd_precise_recip(simd_float3 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_float4 simd_precise_recip(simd_float4 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_float8 simd_precise_recip(simd_float8 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_float16 simd_precise_recip(simd_float16 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC double simd_precise_recip(double x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_double2 simd_precise_recip(simd_double2 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_double3 simd_precise_recip(simd_double3 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_double4 simd_precise_recip(simd_double4 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  a few units in the last place (ULPs).                                     */
-static inline SIMD_CFUNC simd_double8 simd_precise_recip(simd_double8 x);
-/*! @abstract A good approximation to 1/x.
- *  @discussion Deprecated. Use simd_precise_recip(x) instead.                */
-#define vector_precise_recip simd_precise_recip
-
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC float simd_fast_recip(float x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_float2 simd_fast_recip(simd_float2 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_float3 simd_fast_recip(simd_float3 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_float4 simd_fast_recip(simd_float4 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_float8 simd_fast_recip(simd_float8 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_float16 simd_fast_recip(simd_float16 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC double simd_fast_recip(double x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_double2 simd_fast_recip(simd_double2 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_double3 simd_fast_recip(simd_double3 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_double4 simd_fast_recip(simd_double4 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow; otherwise this function is accurate to
- *  at least 11 bits for float and 22 bits for double.                        */
-static inline SIMD_CFUNC simd_double8 simd_fast_recip(simd_double8 x);
-/*! @abstract A fast approximation to 1/x.
- *  @discussion Deprecated. Use simd_fast_recip(x) instead.                   */
-#define vector_fast_recip simd_fast_recip
-
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC float simd_recip(float x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_float2 simd_recip(simd_float2 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_float3 simd_recip(simd_float3 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_float4 simd_recip(simd_float4 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_float8 simd_recip(simd_float8 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_float16 simd_recip(simd_float16 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC double simd_recip(double x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_double2 simd_recip(simd_double2 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_double3 simd_recip(simd_double3 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_double4 simd_recip(simd_double4 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion If x is very close to the limits of representation, the
- *  result may overflow or underflow. This function maps to
- *  simd_fast_recip(x) if -ffast-math is specified, and to
- *  simd_precise_recip(x) otherwise.                                          */
-static inline SIMD_CFUNC simd_double8 simd_recip(simd_double8 x);
-/*! @abstract An approximation to 1/x.
- *  @discussion Deprecated. Use simd_recip(x) instead.                        */
-#define vector_recip simd_recip
-
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC float simd_precise_rsqrt(float x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_float2 simd_precise_rsqrt(simd_float2 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_float3 simd_precise_rsqrt(simd_float3 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_float4 simd_precise_rsqrt(simd_float4 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_float8 simd_precise_rsqrt(simd_float8 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_float16 simd_precise_rsqrt(simd_float16 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC double simd_precise_rsqrt(double x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_double2 simd_precise_rsqrt(simd_double2 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_double3 simd_precise_rsqrt(simd_double3 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_double4 simd_precise_rsqrt(simd_double4 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion This function is accurate to a few units in the last place
- *  (ULPs).                                                                   */
-static inline SIMD_CFUNC simd_double8 simd_precise_rsqrt(simd_double8 x);
-/*! @abstract A good approximation to 1/sqrt(x).
- *  @discussion Deprecated. Use simd_precise_rsqrt(x) instead.                */
-#define vector_precise_rsqrt simd_precise_rsqrt
-
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC float simd_fast_rsqrt(float x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_float2 simd_fast_rsqrt(simd_float2 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_float3 simd_fast_rsqrt(simd_float3 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_float4 simd_fast_rsqrt(simd_float4 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_float8 simd_fast_rsqrt(simd_float8 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_float16 simd_fast_rsqrt(simd_float16 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC double simd_fast_rsqrt(double x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_double2 simd_fast_rsqrt(simd_double2 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_double3 simd_fast_rsqrt(simd_double3 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_double4 simd_fast_rsqrt(simd_double4 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion This function is accurate to at least 11 bits for float and
- *  22 bits for double.                                                       */
-static inline SIMD_CFUNC simd_double8 simd_fast_rsqrt(simd_double8 x);
-/*! @abstract A fast approximation to 1/sqrt(x).
- *  @discussion Deprecated. Use simd_fast_rsqrt(x) instead.                   */
-#define vector_fast_rsqrt simd_fast_rsqrt
-
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC float simd_rsqrt(float x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_float2 simd_rsqrt(simd_float2 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_float3 simd_rsqrt(simd_float3 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_float4 simd_rsqrt(simd_float4 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_float8 simd_rsqrt(simd_float8 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_float16 simd_rsqrt(simd_float16 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC double simd_rsqrt(double x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_double2 simd_rsqrt(simd_double2 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_double3 simd_rsqrt(simd_double3 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_double4 simd_rsqrt(simd_double4 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion This function maps to simd_fast_recip(x) if -ffast-math is
- *  specified, and to simd_precise_recip(x) otherwise.                        */
-static inline SIMD_CFUNC simd_double8 simd_rsqrt(simd_double8 x);
-/*! @abstract An approximation to 1/sqrt(x).
- *  @discussion Deprecated. Use simd_rsqrt(x) instead.                        */
-#define vector_rsqrt simd_rsqrt
-
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC float simd_fract(float x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_float2 simd_fract(simd_float2 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_float3 simd_fract(simd_float3 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_float4 simd_fract(simd_float4 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_float8 simd_fract(simd_float8 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_float16 simd_fract(simd_float16 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC double simd_fract(double x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_double2 simd_fract(simd_double2 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_double3 simd_fract(simd_double3 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_double4 simd_fract(simd_double4 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion floor(x) + fract(x) is *approximately* equal to x. If x is
- *  positive and finite, then the two values are exactly equal.               */
-static inline SIMD_CFUNC simd_double8 simd_fract(simd_double8 x);
-/*! @abstract The "fractional part" of x, lying in the range [0, 1).
- *  @discussion Deprecated. Use simd_fract(x) instead.                        */
-#define vector_fract simd_fract
-
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC float simd_step(float edge, float x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_float2 simd_step(simd_float2 edge, simd_float2 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_float3 simd_step(simd_float3 edge, simd_float3 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_float4 simd_step(simd_float4 edge, simd_float4 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_float8 simd_step(simd_float8 edge, simd_float8 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_float16 simd_step(simd_float16 edge, simd_float16 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC double simd_step(double edge, double x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_double2 simd_step(simd_double2 edge, simd_double2 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_double3 simd_step(simd_double3 edge, simd_double3 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_double4 simd_step(simd_double4 edge, simd_double4 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Use a scalar value for edge if you want to apply the same
- *  threshold to all lanes.                                                   */
-static inline SIMD_CFUNC simd_double8 simd_step(simd_double8 edge, simd_double8 x);
-/*! @abstract 0 if x < edge, and 1 otherwise.
- *  @discussion Deprecated. Use simd_step(edge, x) instead.                   */
-#define vector_step simd_step
-
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC float simd_smoothstep(float edge0, float edge1, float x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_float2 simd_smoothstep(simd_float2 edge0, simd_float2 edge1, simd_float2 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_float3 simd_smoothstep(simd_float3 edge0, simd_float3 edge1, simd_float3 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_float4 simd_smoothstep(simd_float4 edge0, simd_float4 edge1, simd_float4 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_float8 simd_smoothstep(simd_float8 edge0, simd_float8 edge1, simd_float8 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_float16 simd_smoothstep(simd_float16 edge0, simd_float16 edge1, simd_float16 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC double simd_smoothstep(double edge0, double edge1, double x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_double2 simd_smoothstep(simd_double2 edge0, simd_double2 edge1, simd_double2 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_double3 simd_smoothstep(simd_double3 edge0, simd_double3 edge1, simd_double3 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_double4 simd_smoothstep(simd_double4 edge0, simd_double4 edge1, simd_double4 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion You can use a scalar value for edge0 and edge1 if you want
- *  to clamp all lanes at the same points.                                    */
-static inline SIMD_CFUNC simd_double8 simd_smoothstep(simd_double8 edge0, simd_double8 edge1, simd_double8 x);
-/*! @abstract Interpolates smoothly between 0 at edge0 and 1 at edge1
- *  @discussion Deprecated. Use simd_smoothstep(edge0, edge1, x) instead.     */
-#define vector_smoothstep simd_smoothstep
-
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC char simd_reduce_add(simd_char2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC char simd_reduce_add(simd_char3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC char simd_reduce_add(simd_char4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC char simd_reduce_add(simd_char8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC char simd_reduce_add(simd_char16 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC char simd_reduce_add(simd_char32 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC char simd_reduce_add(simd_char64 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar16 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar32 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar64 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC short simd_reduce_add(simd_short2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC short simd_reduce_add(simd_short3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC short simd_reduce_add(simd_short4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC short simd_reduce_add(simd_short8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC short simd_reduce_add(simd_short16 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC short simd_reduce_add(simd_short32 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort16 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort32 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC int simd_reduce_add(simd_int2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC int simd_reduce_add(simd_int3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC int simd_reduce_add(simd_int4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC int simd_reduce_add(simd_int8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC int simd_reduce_add(simd_int16 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint16 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC float simd_reduce_add(simd_float2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC float simd_reduce_add(simd_float3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC float simd_reduce_add(simd_float4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC float simd_reduce_add(simd_float8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC float simd_reduce_add(simd_float16 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC double simd_reduce_add(simd_double2 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC double simd_reduce_add(simd_double3 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC double simd_reduce_add(simd_double4 x);
-/*! @abstract Sum of elements in x.
- *  @discussion This computation may overflow; especial for 8-bit types you
- *  may need to convert to a wider type before reducing.                      */
-static inline SIMD_CFUNC double simd_reduce_add(simd_double8 x);
-/*! @abstract Sum of elements in x.
- *  @discussion Deprecated. Use simd_add(x) instead.                          */
-#define vector_reduce_add simd_reduce_add
-  
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_min(simd_char2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_min(simd_char3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_min(simd_char4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_min(simd_char8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_min(simd_char16 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_min(simd_char32 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_min(simd_char64 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar16 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar32 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar64 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_min(simd_short2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_min(simd_short3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_min(simd_short4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_min(simd_short8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_min(simd_short16 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_min(simd_short32 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort16 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort32 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_min(simd_int2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_min(simd_int3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_min(simd_int4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_min(simd_int8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_min(simd_int16 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint16 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_min(simd_float2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_min(simd_float3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_min(simd_float4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_min(simd_float8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_min(simd_float16 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC simd_long1 simd_reduce_min(simd_long2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC simd_long1 simd_reduce_min(simd_long3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC simd_long1 simd_reduce_min(simd_long4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC simd_long1 simd_reduce_min(simd_long8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_min(simd_ulong2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_min(simd_ulong3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_min(simd_ulong4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_min(simd_ulong8 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC double simd_reduce_min(simd_double2 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC double simd_reduce_min(simd_double3 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC double simd_reduce_min(simd_double4 x);
-/*! @abstract Minimum of elements in x.                                       */
-static inline SIMD_CFUNC double simd_reduce_min(simd_double8 x);
-/*! @abstract Minimum of elements in x.
- *  @discussion Deprecated. Use simd_min(x) instead.                          */
-#define vector_reduce_min simd_reduce_min
-  
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_max(simd_char2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_max(simd_char3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_max(simd_char4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_max(simd_char8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_max(simd_char16 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_max(simd_char32 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC char simd_reduce_max(simd_char64 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar16 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar32 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar64 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_max(simd_short2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_max(simd_short3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_max(simd_short4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_max(simd_short8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_max(simd_short16 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC short simd_reduce_max(simd_short32 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort16 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort32 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_max(simd_int2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_max(simd_int3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_max(simd_int4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_max(simd_int8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC int simd_reduce_max(simd_int16 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint16 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_max(simd_float2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_max(simd_float3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_max(simd_float4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_max(simd_float8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC float simd_reduce_max(simd_float16 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC simd_long1 simd_reduce_max(simd_long2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC simd_long1 simd_reduce_max(simd_long3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC simd_long1 simd_reduce_max(simd_long4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC simd_long1 simd_reduce_max(simd_long8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_max(simd_ulong2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_max(simd_ulong3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_max(simd_ulong4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_max(simd_ulong8 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC double simd_reduce_max(simd_double2 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC double simd_reduce_max(simd_double3 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC double simd_reduce_max(simd_double4 x);
-/*! @abstract Maximum of elements in x.                                       */
-static inline SIMD_CFUNC double simd_reduce_max(simd_double8 x);
-/*! @abstract Maximum of elements in x.
- *  @discussion Deprecated. Use simd_max(x) instead.                          */
-#define vector_reduce_max simd_reduce_max
-  
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_char2 x, simd_char2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_char3 x, simd_char3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_char4 x, simd_char4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_char8 x, simd_char8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_char16 x, simd_char16 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_char32 x, simd_char32 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_char64 x, simd_char64 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uchar2 x, simd_uchar2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uchar3 x, simd_uchar3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uchar4 x, simd_uchar4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uchar8 x, simd_uchar8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uchar16 x, simd_uchar16 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uchar32 x, simd_uchar32 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uchar64 x, simd_uchar64 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_short2 x, simd_short2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_short3 x, simd_short3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_short4 x, simd_short4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_short8 x, simd_short8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_short16 x, simd_short16 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_short32 x, simd_short32 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ushort2 x, simd_ushort2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ushort3 x, simd_ushort3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ushort4 x, simd_ushort4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ushort8 x, simd_ushort8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ushort16 x, simd_ushort16 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ushort32 x, simd_ushort32 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_int2 x, simd_int2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_int3 x, simd_int3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_int4 x, simd_int4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_int8 x, simd_int8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_int16 x, simd_int16 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uint2 x, simd_uint2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uint3 x, simd_uint3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uint4 x, simd_uint4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uint8 x, simd_uint8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_uint16 x, simd_uint16 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_float2 x, simd_float2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_float3 x, simd_float3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_float4 x, simd_float4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_float8 x, simd_float8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_float16 x, simd_float16 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_long2 x, simd_long2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_long3 x, simd_long3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_long4 x, simd_long4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_long8 x, simd_long8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ulong2 x, simd_ulong2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ulong3 x, simd_ulong3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ulong4 x, simd_ulong4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_ulong8 x, simd_ulong8 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_double2 x, simd_double2 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_double3 x, simd_double3 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_double4 x, simd_double4 y) {
-  return simd_all(x == y);
-}
-/*! @abstract True if and only if each lane of x is equal to the
- *  corresponding lane of y.                                                  */
-static inline SIMD_CFUNC simd_bool simd_equal(simd_double8 x, simd_double8 y) {
-  return simd_all(x == y);
-}
-  
-#ifdef __cplusplus
-} /* extern "C" */
-
-namespace simd {
-  /*! @abstract The lanewise absolute value of x.                             */
-  template  static SIMD_CPPFUNC typeN abs(const typeN x) { return ::simd_abs(x); }
-  /*! @abstract The lanewise maximum of x and y.                              */
-  template  static SIMD_CPPFUNC typeN max(const typeN x, const typeN y) { return ::simd_max(x,y); }
-  /*! @abstract The lanewise minimum of x and y.                              */
-  template  static SIMD_CPPFUNC typeN min(const typeN x, const typeN y) { return ::simd_min(x,y); }
-  /*! @abstract x clamped to the interval [min, max].                         */
-  template  static SIMD_CPPFUNC typeN clamp(const typeN x, const typeN min, const typeN max) { return ::simd_clamp(x,min,max); }
-  /*! @abstract -1 if x < 0, +1 if x > 0, and 0 otherwise.                    */
-  template  static SIMD_CPPFUNC fptypeN sign(const fptypeN x) { return ::simd_sign(x); }
-  /*! @abstract Linearly interpolates between x and y, taking the value x when t=0 and y when t=1 */
-  template  static SIMD_CPPFUNC fptypeN mix(const fptypeN x, const fptypeN y, const fptypeN t) { return ::simd_mix(x,y,t); }
-  /*! @abstract An approximation to 1/x.                                      */
-  template  static SIMD_CPPFUNC fptypeN recip(const fptypeN x) { return simd_recip(x); }
-  /*! @abstract An approximation to 1/sqrt(x).                                */
-  template  static SIMD_CPPFUNC fptypeN rsqrt(const fptypeN x) { return simd_rsqrt(x); }
-  /*! @abstract The "fracional part" of x, in the range [0,1).                */
-  template  static SIMD_CPPFUNC fptypeN fract(const fptypeN x) { return ::simd_fract(x); }
-  /*! @abstract 0 if x < edge, 1 otherwise.                                   */
-  template  static SIMD_CPPFUNC fptypeN step(const fptypeN edge, const fptypeN x) { return ::simd_step(edge,x); }
-  /*! @abstract smoothly interpolates from 0 at edge0 to 1 at edge1.          */
-  template  static SIMD_CPPFUNC fptypeN smoothstep(const fptypeN edge0, const fptypeN edge1, const fptypeN x) { return ::simd_smoothstep(edge0,edge1,x); }
-  /*! @abstract True if and only if each lane of x is equal to the
-   *  corresponding lane of y.
-   *
-   *  @discussion This isn't operator== because that's already defined by
-   *  the compiler to return a lane mask.                                     */
-  template  static SIMD_CPPFUNC simd_bool equal(const fptypeN x, const fptypeN y) { return ::simd_equal(x, y); }
-#if __cpp_decltype_auto
-  /*  If you are targeting an earlier version of the C++ standard that lacks
-   decltype_auto support, you may use the C-style simd_reduce_* functions
-   instead.                                                                   */
-  /*! @abstract The sum of the elements in x. May overflow.                   */
-  template  static SIMD_CPPFUNC auto reduce_add(typeN x) { return ::simd_reduce_add(x); }
-  /*! @abstract The least element in x.                                       */
-  template  static SIMD_CPPFUNC auto reduce_min(typeN x) { return ::simd_reduce_min(x); }
-  /*! @abstract The greatest element in x.                                    */
-  template  static SIMD_CPPFUNC auto reduce_max(typeN x) { return ::simd_reduce_max(x); }
-#endif
-  namespace precise {
-    /*! @abstract An approximation to 1/x.                                      */
-    template  static SIMD_CPPFUNC fptypeN recip(const fptypeN x) { return ::simd_precise_recip(x); }
-    /*! @abstract An approximation to 1/sqrt(x).                                */
-    template  static SIMD_CPPFUNC fptypeN rsqrt(const fptypeN x) { return ::simd_precise_rsqrt(x); }
-  }
-  namespace fast {
-    /*! @abstract An approximation to 1/x.                                      */
-    template  static SIMD_CPPFUNC fptypeN recip(const fptypeN x) { return ::simd_fast_recip(x); }
-    /*! @abstract An approximation to 1/sqrt(x).                                */
-    template  static SIMD_CPPFUNC fptypeN rsqrt(const fptypeN x) { return ::simd_fast_rsqrt(x); }
-  }
-}
-
-extern "C" {
-#endif /* __cplusplus */
-
-#pragma mark - Implementation
-
-static inline SIMD_CFUNC simd_char2 simd_abs(simd_char2 x) {
-  return simd_make_char2(simd_abs(simd_make_char8_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_char3 simd_abs(simd_char3 x) {
-  return simd_make_char3(simd_abs(simd_make_char8_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_char4 simd_abs(simd_char4 x) {
-  return simd_make_char4(simd_abs(simd_make_char8_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_char8 simd_abs(simd_char8 x) {
-#if defined __arm__ || defined __arm64__
-  return vabs_s8(x);
-#else
-  return simd_make_char8(simd_abs(simd_make_char16_undef(x)));
-#endif
-}
-
-static inline SIMD_CFUNC simd_char16 simd_abs(simd_char16 x) {
-#if defined __arm__ || defined __arm64__
-  return vabsq_s8(x);
-#elif defined __SSE4_1__
-  return _mm_abs_epi8(x);
-#else
-  simd_char16 mask = x >> 7; return (x ^ mask) - mask;
-#endif
-}
-
-static inline SIMD_CFUNC simd_char32 simd_abs(simd_char32 x) {
-#if defined __AVX2__
-  return _mm256_abs_epi8(x);
-#else
-  return simd_make_char32(simd_abs(x.lo), simd_abs(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_char64 simd_abs(simd_char64 x) {
-#if defined __AVX512BW__
-  return _mm512_abs_epi8(x);
-#else
-  return simd_make_char64(simd_abs(x.lo), simd_abs(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_short2 simd_abs(simd_short2 x) {
-  return simd_make_short2(simd_abs(simd_make_short4_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_short3 simd_abs(simd_short3 x) {
-  return simd_make_short3(simd_abs(simd_make_short4_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_short4 simd_abs(simd_short4 x) {
-#if defined __arm__ || defined __arm64__
-  return vabs_s16(x);
-#else
-  return simd_make_short4(simd_abs(simd_make_short8_undef(x)));
-#endif
-}
-
-static inline SIMD_CFUNC simd_short8 simd_abs(simd_short8 x) {
-#if defined __arm__ || defined __arm64__
-  return vabsq_s16(x);
-#elif defined __SSE4_1__
-  return _mm_abs_epi16(x);
-#else
-  simd_short8 mask = x >> 15; return (x ^ mask) - mask;
-#endif
-}
-
-static inline SIMD_CFUNC simd_short16 simd_abs(simd_short16 x) {
-#if defined __AVX2__
-  return _mm256_abs_epi16(x);
-#else
-  return simd_make_short16(simd_abs(x.lo), simd_abs(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_short32 simd_abs(simd_short32 x) {
-#if defined __AVX512BW__
-  return _mm512_abs_epi16(x);
-#else
-  return simd_make_short32(simd_abs(x.lo), simd_abs(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_int2 simd_abs(simd_int2 x) {
-#if defined __arm__ || defined __arm64__
-  return vabs_s32(x);
-#else
-  return simd_make_int2(simd_abs(simd_make_int4_undef(x)));
-#endif
-}
-
-static inline SIMD_CFUNC simd_int3 simd_abs(simd_int3 x) {
-  return simd_make_int3(simd_abs(simd_make_int4_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_int4 simd_abs(simd_int4 x) {
-#if defined __arm__ || defined __arm64__
-  return vabsq_s32(x);
-#elif defined __SSE4_1__
-  return _mm_abs_epi32(x);
-#else
-  simd_int4 mask = x >> 31; return (x ^ mask) - mask;
-#endif
-}
-
-static inline SIMD_CFUNC simd_int8 simd_abs(simd_int8 x) {
-#if defined __AVX2__
-  return _mm256_abs_epi32(x);
-#else
-  return simd_make_int8(simd_abs(x.lo), simd_abs(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_int16 simd_abs(simd_int16 x) {
-#if defined __AVX512F__
-  return _mm512_abs_epi32(x);
-#else
-  return simd_make_int16(simd_abs(x.lo), simd_abs(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_float2 simd_abs(simd_float2 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_float3 simd_abs(simd_float3 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_float4 simd_abs(simd_float4 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_float8 simd_abs(simd_float8 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_float16 simd_abs(simd_float16 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_long2 simd_abs(simd_long2 x) {
-#if defined __arm64__
-  return vabsq_s64(x);
-#elif defined __SSE4_1__
-  return _mm_abs_epi64(x);
-#else
-  simd_long2 mask = x >> 63; return (x ^ mask) - mask;
-#endif
-}
-
-static inline SIMD_CFUNC simd_long3 simd_abs(simd_long3 x) {
-  return simd_make_long3(simd_abs(simd_make_long4_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_long4 simd_abs(simd_long4 x) {
-#if defined __AVX2__
-  return _mm256_abs_epi64(x);
-#else
-  return simd_make_long4(simd_abs(x.lo), simd_abs(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_long8 simd_abs(simd_long8 x) {
-#if defined __AVX512F__
-  return _mm512_abs_epi64(x);
-#else
-  return simd_make_long8(simd_abs(x.lo), simd_abs(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_double2 simd_abs(simd_double2 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_abs(simd_double3 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_abs(simd_double4 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_abs(simd_double8 x) {
-  return __tg_fabs(x);
-}
-
-static inline SIMD_CFUNC simd_char2 simd_min(simd_char2 x, simd_char2 y) {
-  return simd_make_char2(simd_min(simd_make_char8_undef(x), simd_make_char8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_char3 simd_min(simd_char3 x, simd_char3 y) {
-  return simd_make_char3(simd_min(simd_make_char8_undef(x), simd_make_char8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_char4 simd_min(simd_char4 x, simd_char4 y) {
-  return simd_make_char4(simd_min(simd_make_char8_undef(x), simd_make_char8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_char8 simd_min(simd_char8 x, simd_char8 y) {
-#if defined __arm__ || defined __arm64__
-  return vmin_s8(x, y);
-#else
-  return simd_make_char8(simd_min(simd_make_char16_undef(x), simd_make_char16_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_char16 simd_min(simd_char16 x, simd_char16 y) {
-#if defined __arm__ || defined __arm64__
-  return vminq_s8(x, y);
-#elif defined __SSE4_1__
-  return _mm_min_epi8(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_char32 simd_min(simd_char32 x, simd_char32 y) {
-#if defined __AVX2__
-  return _mm256_min_epi8(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_char64 simd_min(simd_char64 x, simd_char64 y) {
-#if defined __AVX512BW__
-  return _mm512_min_epi8(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uchar2 simd_min(simd_uchar2 x, simd_uchar2 y) {
-  return simd_make_uchar2(simd_min(simd_make_uchar8_undef(x), simd_make_uchar8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_uchar3 simd_min(simd_uchar3 x, simd_uchar3 y) {
-  return simd_make_uchar3(simd_min(simd_make_uchar8_undef(x), simd_make_uchar8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_uchar4 simd_min(simd_uchar4 x, simd_uchar4 y) {
-  return simd_make_uchar4(simd_min(simd_make_uchar8_undef(x), simd_make_uchar8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_uchar8 simd_min(simd_uchar8 x, simd_uchar8 y) {
-#if defined __arm__ || defined __arm64__
-  return vmin_u8(x, y);
-#else
-  return simd_make_uchar8(simd_min(simd_make_uchar16_undef(x), simd_make_uchar16_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_uchar16 simd_min(simd_uchar16 x, simd_uchar16 y) {
-#if defined __arm__ || defined __arm64__
-  return vminq_u8(x, y);
-#elif defined __SSE4_1__
-  return _mm_min_epu8(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uchar32 simd_min(simd_uchar32 x, simd_uchar32 y) {
-#if defined __AVX2__
-  return _mm256_min_epu8(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uchar64 simd_min(simd_uchar64 x, simd_uchar64 y) {
-#if defined __AVX512BW__
-  return _mm512_min_epu8(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_short2 simd_min(simd_short2 x, simd_short2 y) {
-  return simd_make_short2(simd_min(simd_make_short4_undef(x), simd_make_short4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_short3 simd_min(simd_short3 x, simd_short3 y) {
-  return simd_make_short3(simd_min(simd_make_short4_undef(x), simd_make_short4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_short4 simd_min(simd_short4 x, simd_short4 y) {
-#if defined __arm__ || defined __arm64__
-  return vmin_s16(x, y);
-#else
-  return simd_make_short4(simd_min(simd_make_short8_undef(x), simd_make_short8_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_short8 simd_min(simd_short8 x, simd_short8 y) {
-#if defined __arm__ || defined __arm64__
-  return vminq_s16(x, y);
-#elif defined __SSE4_1__
-  return _mm_min_epi16(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_short16 simd_min(simd_short16 x, simd_short16 y) {
-#if defined __AVX2__
-  return _mm256_min_epi16(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_short32 simd_min(simd_short32 x, simd_short32 y) {
-#if defined __AVX512BW__
-  return _mm512_min_epi16(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ushort2 simd_min(simd_ushort2 x, simd_ushort2 y) {
-  return simd_make_ushort2(simd_min(simd_make_ushort4_undef(x), simd_make_ushort4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_ushort3 simd_min(simd_ushort3 x, simd_ushort3 y) {
-  return simd_make_ushort3(simd_min(simd_make_ushort4_undef(x), simd_make_ushort4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_ushort4 simd_min(simd_ushort4 x, simd_ushort4 y) {
-#if defined __arm__ || defined __arm64__
-  return vmin_u16(x, y);
-#else
-  return simd_make_ushort4(simd_min(simd_make_ushort8_undef(x), simd_make_ushort8_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_ushort8 simd_min(simd_ushort8 x, simd_ushort8 y) {
-#if defined __arm__ || defined __arm64__
-  return vminq_u16(x, y);
-#elif defined __SSE4_1__
-  return _mm_min_epu16(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ushort16 simd_min(simd_ushort16 x, simd_ushort16 y) {
-#if defined __AVX2__
-  return _mm256_min_epu16(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ushort32 simd_min(simd_ushort32 x, simd_ushort32 y) {
-#if defined __AVX512BW__
-  return _mm512_min_epu16(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_int2 simd_min(simd_int2 x, simd_int2 y) {
-#if defined __arm__ || defined __arm64__
-  return vmin_s32(x, y);
-#else
-  return simd_make_int2(simd_min(simd_make_int4_undef(x), simd_make_int4_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_int3 simd_min(simd_int3 x, simd_int3 y) {
-  return simd_make_int3(simd_min(simd_make_int4_undef(x), simd_make_int4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_int4 simd_min(simd_int4 x, simd_int4 y) {
-#if defined __arm__ || defined __arm64__
-  return vminq_s32(x, y);
-#elif defined __SSE4_1__
-  return _mm_min_epi32(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_int8 simd_min(simd_int8 x, simd_int8 y) {
-#if defined __AVX2__
-  return _mm256_min_epi32(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_int16 simd_min(simd_int16 x, simd_int16 y) {
-#if defined __AVX512F__
-  return _mm512_min_epi32(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uint2 simd_min(simd_uint2 x, simd_uint2 y) {
-#if defined __arm__ || defined __arm64__
-  return vmin_u32(x, y);
-#else
-  return simd_make_uint2(simd_min(simd_make_uint4_undef(x), simd_make_uint4_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_uint3 simd_min(simd_uint3 x, simd_uint3 y) {
-  return simd_make_uint3(simd_min(simd_make_uint4_undef(x), simd_make_uint4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_uint4 simd_min(simd_uint4 x, simd_uint4 y) {
-#if defined __arm__ || defined __arm64__
-  return vminq_u32(x, y);
-#elif defined __SSE4_1__
-  return _mm_min_epu32(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uint8 simd_min(simd_uint8 x, simd_uint8 y) {
-#if defined __AVX2__
-  return _mm256_min_epu32(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uint16 simd_min(simd_uint16 x, simd_uint16 y) {
-#if defined __AVX512F__
-  return _mm512_min_epu32(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC float simd_min(float x, float y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_float2 simd_min(simd_float2 x, simd_float2 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_float3 simd_min(simd_float3 x, simd_float3 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_float4 simd_min(simd_float4 x, simd_float4 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_float8 simd_min(simd_float8 x, simd_float8 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_float16 simd_min(simd_float16 x, simd_float16 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_long2 simd_min(simd_long2 x, simd_long2 y) {
-#if defined __AVX512VL__
-  return _mm_min_epi64(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_long3 simd_min(simd_long3 x, simd_long3 y) {
-  return simd_make_long3(simd_min(simd_make_long4_undef(x), simd_make_long4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_long4 simd_min(simd_long4 x, simd_long4 y) {
-#if defined __AVX512VL__
-  return _mm256_min_epi64(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_long8 simd_min(simd_long8 x, simd_long8 y) {
-#if defined __AVX512F__
-  return _mm512_min_epi64(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ulong2 simd_min(simd_ulong2 x, simd_ulong2 y) {
-#if defined __AVX512VL__
-  return _mm_min_epu64(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ulong3 simd_min(simd_ulong3 x, simd_ulong3 y) {
-  return simd_make_ulong3(simd_min(simd_make_ulong4_undef(x), simd_make_ulong4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_ulong4 simd_min(simd_ulong4 x, simd_ulong4 y) {
-#if defined __AVX512VL__
-  return _mm256_min_epu64(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ulong8 simd_min(simd_ulong8 x, simd_ulong8 y) {
-#if defined __AVX512F__
-  return _mm512_min_epu64(x, y);
-#else
-  return simd_bitselect(x, y, y < x);
-#endif
-}
-
-static inline SIMD_CFUNC double simd_min(double x, double y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_min(simd_double2 x, simd_double2 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_min(simd_double3 x, simd_double3 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_min(simd_double4 x, simd_double4 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_min(simd_double8 x, simd_double8 y) {
-  return __tg_fmin(x,y);
-}
-
-static inline SIMD_CFUNC simd_char2 simd_max(simd_char2 x, simd_char2 y) {
-  return simd_make_char2(simd_max(simd_make_char8_undef(x), simd_make_char8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_char3 simd_max(simd_char3 x, simd_char3 y) {
-  return simd_make_char3(simd_max(simd_make_char8_undef(x), simd_make_char8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_char4 simd_max(simd_char4 x, simd_char4 y) {
-  return simd_make_char4(simd_max(simd_make_char8_undef(x), simd_make_char8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_char8 simd_max(simd_char8 x, simd_char8 y) {
-#if defined __arm__ || defined __arm64__
-  return vmax_s8(x, y);
-#else
-  return simd_make_char8(simd_max(simd_make_char16_undef(x), simd_make_char16_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_char16 simd_max(simd_char16 x, simd_char16 y) {
-#if defined __arm__ || defined __arm64__
-  return vmaxq_s8(x, y);
-#elif defined __SSE4_1__
-  return _mm_max_epi8(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_char32 simd_max(simd_char32 x, simd_char32 y) {
-#if defined __AVX2__
-  return _mm256_max_epi8(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_char64 simd_max(simd_char64 x, simd_char64 y) {
-#if defined __AVX512BW__
-  return _mm512_max_epi8(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uchar2 simd_max(simd_uchar2 x, simd_uchar2 y) {
-  return simd_make_uchar2(simd_max(simd_make_uchar8_undef(x), simd_make_uchar8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_uchar3 simd_max(simd_uchar3 x, simd_uchar3 y) {
-  return simd_make_uchar3(simd_max(simd_make_uchar8_undef(x), simd_make_uchar8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_uchar4 simd_max(simd_uchar4 x, simd_uchar4 y) {
-  return simd_make_uchar4(simd_max(simd_make_uchar8_undef(x), simd_make_uchar8_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_uchar8 simd_max(simd_uchar8 x, simd_uchar8 y) {
-#if defined __arm__ || defined __arm64__
-  return vmax_u8(x, y);
-#else
-  return simd_make_uchar8(simd_max(simd_make_uchar16_undef(x), simd_make_uchar16_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_uchar16 simd_max(simd_uchar16 x, simd_uchar16 y) {
-#if defined __arm__ || defined __arm64__
-  return vmaxq_u8(x, y);
-#elif defined __SSE4_1__
-  return _mm_max_epu8(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uchar32 simd_max(simd_uchar32 x, simd_uchar32 y) {
-#if defined __AVX2__
-  return _mm256_max_epu8(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uchar64 simd_max(simd_uchar64 x, simd_uchar64 y) {
-#if defined __AVX512BW__
-  return _mm512_max_epu8(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_short2 simd_max(simd_short2 x, simd_short2 y) {
-  return simd_make_short2(simd_max(simd_make_short4_undef(x), simd_make_short4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_short3 simd_max(simd_short3 x, simd_short3 y) {
-  return simd_make_short3(simd_max(simd_make_short4_undef(x), simd_make_short4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_short4 simd_max(simd_short4 x, simd_short4 y) {
-#if defined __arm__ || defined __arm64__
-  return vmax_s16(x, y);
-#else
-  return simd_make_short4(simd_max(simd_make_short8_undef(x), simd_make_short8_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_short8 simd_max(simd_short8 x, simd_short8 y) {
-#if defined __arm__ || defined __arm64__
-  return vmaxq_s16(x, y);
-#elif defined __SSE4_1__
-  return _mm_max_epi16(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_short16 simd_max(simd_short16 x, simd_short16 y) {
-#if defined __AVX2__
-  return _mm256_max_epi16(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_short32 simd_max(simd_short32 x, simd_short32 y) {
-#if defined __AVX512BW__
-  return _mm512_max_epi16(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ushort2 simd_max(simd_ushort2 x, simd_ushort2 y) {
-  return simd_make_ushort2(simd_max(simd_make_ushort4_undef(x), simd_make_ushort4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_ushort3 simd_max(simd_ushort3 x, simd_ushort3 y) {
-  return simd_make_ushort3(simd_max(simd_make_ushort4_undef(x), simd_make_ushort4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_ushort4 simd_max(simd_ushort4 x, simd_ushort4 y) {
-#if defined __arm__ || defined __arm64__
-  return vmax_u16(x, y);
-#else
-  return simd_make_ushort4(simd_max(simd_make_ushort8_undef(x), simd_make_ushort8_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_ushort8 simd_max(simd_ushort8 x, simd_ushort8 y) {
-#if defined __arm__ || defined __arm64__
-  return vmaxq_u16(x, y);
-#elif defined __SSE4_1__
-  return _mm_max_epu16(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ushort16 simd_max(simd_ushort16 x, simd_ushort16 y) {
-#if defined __AVX2__
-  return _mm256_max_epu16(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ushort32 simd_max(simd_ushort32 x, simd_ushort32 y) {
-#if defined __AVX512BW__
-  return _mm512_max_epu16(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_int2 simd_max(simd_int2 x, simd_int2 y) {
-#if defined __arm__ || defined __arm64__
-  return vmax_s32(x, y);
-#else
-  return simd_make_int2(simd_max(simd_make_int4_undef(x), simd_make_int4_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_int3 simd_max(simd_int3 x, simd_int3 y) {
-  return simd_make_int3(simd_max(simd_make_int4_undef(x), simd_make_int4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_int4 simd_max(simd_int4 x, simd_int4 y) {
-#if defined __arm__ || defined __arm64__
-  return vmaxq_s32(x, y);
-#elif defined __SSE4_1__
-  return _mm_max_epi32(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_int8 simd_max(simd_int8 x, simd_int8 y) {
-#if defined __AVX2__
-  return _mm256_max_epi32(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_int16 simd_max(simd_int16 x, simd_int16 y) {
-#if defined __AVX512F__
-  return _mm512_max_epi32(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uint2 simd_max(simd_uint2 x, simd_uint2 y) {
-#if defined __arm__ || defined __arm64__
-  return vmax_u32(x, y);
-#else
-  return simd_make_uint2(simd_max(simd_make_uint4_undef(x), simd_make_uint4_undef(y)));
-#endif
-
-}
-
-static inline SIMD_CFUNC simd_uint3 simd_max(simd_uint3 x, simd_uint3 y) {
-  return simd_make_uint3(simd_max(simd_make_uint4_undef(x), simd_make_uint4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_uint4 simd_max(simd_uint4 x, simd_uint4 y) {
-#if defined __arm__ || defined __arm64__
-  return vmaxq_u32(x, y);
-#elif defined __SSE4_1__
-  return _mm_max_epu32(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uint8 simd_max(simd_uint8 x, simd_uint8 y) {
-#if defined __AVX2__
-  return _mm256_max_epu32(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_uint16 simd_max(simd_uint16 x, simd_uint16 y) {
-#if defined __AVX512F__
-  return _mm512_max_epu32(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC float simd_max(float x, float y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_float2 simd_max(simd_float2 x, simd_float2 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_float3 simd_max(simd_float3 x, simd_float3 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_float4 simd_max(simd_float4 x, simd_float4 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_float8 simd_max(simd_float8 x, simd_float8 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_float16 simd_max(simd_float16 x, simd_float16 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_long2 simd_max(simd_long2 x, simd_long2 y) {
-#if defined __AVX512VL__
-  return _mm_max_epi64(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_long3 simd_max(simd_long3 x, simd_long3 y) {
-  return simd_make_long3(simd_max(simd_make_long4_undef(x), simd_make_long4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_long4 simd_max(simd_long4 x, simd_long4 y) {
-#if defined __AVX512VL__
-  return _mm256_max_epi64(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_long8 simd_max(simd_long8 x, simd_long8 y) {
-#if defined __AVX512F__
-  return _mm512_max_epi64(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ulong2 simd_max(simd_ulong2 x, simd_ulong2 y) {
-#if defined __AVX512VL__
-  return _mm_max_epu64(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ulong3 simd_max(simd_ulong3 x, simd_ulong3 y) {
-  return simd_make_ulong3(simd_max(simd_make_ulong4_undef(x), simd_make_ulong4_undef(y)));
-}
-
-static inline SIMD_CFUNC simd_ulong4 simd_max(simd_ulong4 x, simd_ulong4 y) {
-#if defined __AVX512VL__
-  return _mm256_max_epu64(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC simd_ulong8 simd_max(simd_ulong8 x, simd_ulong8 y) {
-#if defined __AVX512F__
-  return _mm512_max_epu64(x, y);
-#else
-  return simd_bitselect(x, y, x < y);
-#endif
-}
-
-static inline SIMD_CFUNC double simd_max(double x, double y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_max(simd_double2 x, simd_double2 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_max(simd_double3 x, simd_double3 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_max(simd_double4 x, simd_double4 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_max(simd_double8 x, simd_double8 y) {
-  return __tg_fmax(x,y);
-}
-
-static inline SIMD_CFUNC simd_char2 simd_clamp(simd_char2 x, simd_char2 min, simd_char2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_char3 simd_clamp(simd_char3 x, simd_char3 min, simd_char3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_char4 simd_clamp(simd_char4 x, simd_char4 min, simd_char4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_char8 simd_clamp(simd_char8 x, simd_char8 min, simd_char8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_char16 simd_clamp(simd_char16 x, simd_char16 min, simd_char16 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_char32 simd_clamp(simd_char32 x, simd_char32 min, simd_char32 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_char64 simd_clamp(simd_char64 x, simd_char64 min, simd_char64 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uchar2 simd_clamp(simd_uchar2 x, simd_uchar2 min, simd_uchar2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uchar3 simd_clamp(simd_uchar3 x, simd_uchar3 min, simd_uchar3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uchar4 simd_clamp(simd_uchar4 x, simd_uchar4 min, simd_uchar4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uchar8 simd_clamp(simd_uchar8 x, simd_uchar8 min, simd_uchar8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uchar16 simd_clamp(simd_uchar16 x, simd_uchar16 min, simd_uchar16 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uchar32 simd_clamp(simd_uchar32 x, simd_uchar32 min, simd_uchar32 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uchar64 simd_clamp(simd_uchar64 x, simd_uchar64 min, simd_uchar64 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_short2 simd_clamp(simd_short2 x, simd_short2 min, simd_short2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_short3 simd_clamp(simd_short3 x, simd_short3 min, simd_short3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_short4 simd_clamp(simd_short4 x, simd_short4 min, simd_short4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_short8 simd_clamp(simd_short8 x, simd_short8 min, simd_short8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_short16 simd_clamp(simd_short16 x, simd_short16 min, simd_short16 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_short32 simd_clamp(simd_short32 x, simd_short32 min, simd_short32 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ushort2 simd_clamp(simd_ushort2 x, simd_ushort2 min, simd_ushort2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ushort3 simd_clamp(simd_ushort3 x, simd_ushort3 min, simd_ushort3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ushort4 simd_clamp(simd_ushort4 x, simd_ushort4 min, simd_ushort4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ushort8 simd_clamp(simd_ushort8 x, simd_ushort8 min, simd_ushort8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ushort16 simd_clamp(simd_ushort16 x, simd_ushort16 min, simd_ushort16 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ushort32 simd_clamp(simd_ushort32 x, simd_ushort32 min, simd_ushort32 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_int2 simd_clamp(simd_int2 x, simd_int2 min, simd_int2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_int3 simd_clamp(simd_int3 x, simd_int3 min, simd_int3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_int4 simd_clamp(simd_int4 x, simd_int4 min, simd_int4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_int8 simd_clamp(simd_int8 x, simd_int8 min, simd_int8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_int16 simd_clamp(simd_int16 x, simd_int16 min, simd_int16 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uint2 simd_clamp(simd_uint2 x, simd_uint2 min, simd_uint2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uint3 simd_clamp(simd_uint3 x, simd_uint3 min, simd_uint3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uint4 simd_clamp(simd_uint4 x, simd_uint4 min, simd_uint4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uint8 simd_clamp(simd_uint8 x, simd_uint8 min, simd_uint8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_uint16 simd_clamp(simd_uint16 x, simd_uint16 min, simd_uint16 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC float simd_clamp(float x, float min, float max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_float2 simd_clamp(simd_float2 x, simd_float2 min, simd_float2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_float3 simd_clamp(simd_float3 x, simd_float3 min, simd_float3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_float4 simd_clamp(simd_float4 x, simd_float4 min, simd_float4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_float8 simd_clamp(simd_float8 x, simd_float8 min, simd_float8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_float16 simd_clamp(simd_float16 x, simd_float16 min, simd_float16 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_long2 simd_clamp(simd_long2 x, simd_long2 min, simd_long2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_long3 simd_clamp(simd_long3 x, simd_long3 min, simd_long3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_long4 simd_clamp(simd_long4 x, simd_long4 min, simd_long4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_long8 simd_clamp(simd_long8 x, simd_long8 min, simd_long8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ulong2 simd_clamp(simd_ulong2 x, simd_ulong2 min, simd_ulong2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ulong3 simd_clamp(simd_ulong3 x, simd_ulong3 min, simd_ulong3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ulong4 simd_clamp(simd_ulong4 x, simd_ulong4 min, simd_ulong4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_ulong8 simd_clamp(simd_ulong8 x, simd_ulong8 min, simd_ulong8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC double simd_clamp(double x, double min, double max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_clamp(simd_double2 x, simd_double2 min, simd_double2 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_clamp(simd_double3 x, simd_double3 min, simd_double3 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_clamp(simd_double4 x, simd_double4 min, simd_double4 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_clamp(simd_double8 x, simd_double8 min, simd_double8 max) {
-  return simd_min(simd_max(x, min), max);
-}
-
-  
-static inline SIMD_CFUNC float simd_sign(float x) {
-  return x == 0 | x != x ? 0 : copysign(1,x);
-}
-
-static inline SIMD_CFUNC simd_float2 simd_sign(simd_float2 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC simd_float3 simd_sign(simd_float3 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC simd_float4 simd_sign(simd_float4 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC simd_float8 simd_sign(simd_float8 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC simd_float16 simd_sign(simd_float16 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC double simd_sign(double x) {
-  return x == 0 | x != x ? 0 : copysign(1,x);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_sign(simd_double2 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_sign(simd_double3 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_sign(simd_double4 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_sign(simd_double8 x) {
-  return simd_bitselect(__tg_copysign(1,x), 0, x == 0 | x != x);
-}
-
-static inline SIMD_CFUNC float simd_mix(float x, float y, float t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_float2 simd_mix(simd_float2 x, simd_float2 y, simd_float2 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_float3 simd_mix(simd_float3 x, simd_float3 y, simd_float3 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_float4 simd_mix(simd_float4 x, simd_float4 y, simd_float4 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_float8 simd_mix(simd_float8 x, simd_float8 y, simd_float8 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_float16 simd_mix(simd_float16 x, simd_float16 y, simd_float16 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC double simd_mix(double x, double y, double t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_double2 simd_mix(simd_double2 x, simd_double2 y, simd_double2 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_double3 simd_mix(simd_double3 x, simd_double3 y, simd_double3 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_double4 simd_mix(simd_double4 x, simd_double4 y, simd_double4 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC simd_double8 simd_mix(simd_double8 x, simd_double8 y, simd_double8 t) {
-  return x + t*(y - x);
-}
-  
-static inline SIMD_CFUNC float simd_recip(float x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float2 simd_recip(simd_float2 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float3 simd_recip(simd_float3 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float4 simd_recip(simd_float4 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float8 simd_recip(simd_float8 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float16 simd_recip(simd_float16 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC double simd_recip(double x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_double2 simd_recip(simd_double2 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_double3 simd_recip(simd_double3 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_double4 simd_recip(simd_double4 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_double8 simd_recip(simd_double8 x) {
-#if __FAST_MATH__
-  return simd_fast_recip(x);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC float simd_fast_recip(float x) {
-#if defined __AVX512VL__
-  simd_float4 x4 = simd_make_float4(x);
-  return ((simd_float4)_mm_rcp14_ss(x4, x4)).x;
-#elif defined __SSE__
-  return ((simd_float4)_mm_rcp_ss(simd_make_float4(x))).x;
-#elif defined __ARM_NEON__
-  return simd_fast_recip(simd_make_float2_undef(x)).x;
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float2 simd_fast_recip(simd_float2 x) {
-#if defined __SSE__
-  return simd_make_float2(simd_fast_recip(simd_make_float4_undef(x)));
-#elif defined __ARM_NEON__
-  simd_float2 r = vrecpe_f32(x);
-  return r * vrecps_f32(x, r);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float3 simd_fast_recip(simd_float3 x) {
-  return simd_make_float3(simd_fast_recip(simd_make_float4_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_float4 simd_fast_recip(simd_float4 x) {
-#if defined __AVX512VL__
-  return _mm_rcp14_ps(x);
-#elif defined __SSE__
-  return _mm_rcp_ps(x);
-#elif defined __ARM_NEON__
-  simd_float4 r = vrecpeq_f32(x);
-  return r * vrecpsq_f32(x, r);
-#else
-  return simd_precise_recip(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float8 simd_fast_recip(simd_float8 x) {
-#if defined __AVX512VL__
-  return _mm256_rcp14_ps(x);
-#elif defined __AVX__
-  return _mm256_rcp_ps(x);
-#else
-  return simd_make_float8(simd_fast_recip(x.lo), simd_fast_recip(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_float16 simd_fast_recip(simd_float16 x) {
-#if defined __AVX512F__
-  return _mm512_rcp14_ps(x);
-#else
-  return simd_make_float16(simd_fast_recip(x.lo), simd_fast_recip(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC double simd_fast_recip(double x) {
-  return simd_precise_recip(x);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_fast_recip(simd_double2 x) {
-  return simd_precise_recip(x);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_fast_recip(simd_double3 x) {
-  return simd_precise_recip(x);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_fast_recip(simd_double4 x) {
-  return simd_precise_recip(x);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_fast_recip(simd_double8 x) {
-  return simd_precise_recip(x);
-}
-
-static inline SIMD_CFUNC float simd_precise_recip(float x) {
-#if defined __SSE__
-  float r = simd_fast_recip(x);
-  return r*(2 - (x == 0 ? -INFINITY : x)*r);
-#elif defined __ARM_NEON__
-  return simd_precise_recip(simd_make_float2_undef(x)).x;
-#else
-  return 1/x;
-#endif
-}
-
-static inline SIMD_CFUNC simd_float2 simd_precise_recip(simd_float2 x) {
-#if defined __SSE__
-  return simd_make_float2(simd_precise_recip(simd_make_float4_undef(x)));
-#elif defined __ARM_NEON__
-  simd_float2 r = simd_fast_recip(x);
-  return r*vrecps_f32(x, r);
-#else
-  return 1/x;
-#endif
-}
-
-static inline SIMD_CFUNC simd_float3 simd_precise_recip(simd_float3 x) {
-  return simd_make_float3(simd_precise_recip(simd_make_float4_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_float4 simd_precise_recip(simd_float4 x) {
-#if defined __SSE__
-  simd_float4 r = simd_fast_recip(x);
-  return r*(2 - simd_bitselect(x, -INFINITY, x == 0)*r);
-#elif defined __ARM_NEON__
-  simd_float4 r = simd_fast_recip(x);
-  return r*vrecpsq_f32(x, r);
-#else
-  return 1/x;
-#endif
-}
-
-static inline SIMD_CFUNC simd_float8 simd_precise_recip(simd_float8 x) {
-#if defined __AVX__
-  simd_float8 r = simd_fast_recip(x);
-  return r*(2 - simd_bitselect(x, -INFINITY, x == 0)*r);
-#else
-  return simd_make_float8(simd_precise_recip(x.lo), simd_precise_recip(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_float16 simd_precise_recip(simd_float16 x) {
-#if defined __AVX512F__
-  simd_float16 r = simd_fast_recip(x);
-  return r*(2 - simd_bitselect(x, -INFINITY, x == 0)*r);
-#else
-  return simd_make_float16(simd_precise_recip(x.lo), simd_precise_recip(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC double simd_precise_recip(double x) {
-  return 1/x;
-}
-
-static inline SIMD_CFUNC simd_double2 simd_precise_recip(simd_double2 x) {
-  return 1/x;
-}
-
-static inline SIMD_CFUNC simd_double3 simd_precise_recip(simd_double3 x) {
-  return 1/x;
-}
-
-static inline SIMD_CFUNC simd_double4 simd_precise_recip(simd_double4 x) {
-  return 1/x;
-}
-
-static inline SIMD_CFUNC simd_double8 simd_precise_recip(simd_double8 x) {
-  return 1/x;
-}
-
-static inline SIMD_CFUNC float simd_rsqrt(float x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float2 simd_rsqrt(simd_float2 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float3 simd_rsqrt(simd_float3 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float4 simd_rsqrt(simd_float4 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float8 simd_rsqrt(simd_float8 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float16 simd_rsqrt(simd_float16 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC double simd_rsqrt(double x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_double2 simd_rsqrt(simd_double2 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_double3 simd_rsqrt(simd_double3 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_double4 simd_rsqrt(simd_double4 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_double8 simd_rsqrt(simd_double8 x) {
-#if __FAST_MATH__
-  return simd_fast_rsqrt(x);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC float simd_fast_rsqrt(float x) {
-#if defined __AVX512VL__
-  simd_float4 x4 = simd_make_float4(x);
-  return ((simd_float4)_mm_rsqrt14_ss(x4, x4)).x;
-#elif defined __SSE__
-  return ((simd_float4)_mm_rsqrt_ss(simd_make_float4(x))).x;
-#elif defined __ARM_NEON__
-  return simd_fast_rsqrt(simd_make_float2_undef(x)).x;
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float2 simd_fast_rsqrt(simd_float2 x) {
-#if defined __SSE__
-  return simd_make_float2(simd_fast_rsqrt(simd_make_float4_undef(x)));
-#elif defined __ARM_NEON__
-  simd_float2 r = vrsqrte_f32(x);
-  return r * vrsqrts_f32(x, r*r);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float3 simd_fast_rsqrt(simd_float3 x) {
-  return simd_make_float3(simd_fast_rsqrt(simd_make_float4_undef(x)));
-}
-
-static inline SIMD_CFUNC simd_float4 simd_fast_rsqrt(simd_float4 x) {
-#if defined __AVX512VL__
-  return _mm_rsqrt14_ps(x);
-#elif defined __SSE__
-  return _mm_rsqrt_ps(x);
-#elif defined __ARM_NEON__
-  simd_float4 r = vrsqrteq_f32(x);
-  return r * vrsqrtsq_f32(x, r*r);
-#else
-  return simd_precise_rsqrt(x);
-#endif
-}
-
-static inline SIMD_CFUNC simd_float8 simd_fast_rsqrt(simd_float8 x) {
-#if defined __AVX512VL__
-  return _mm256_rsqrt14_ps(x);
-#elif defined __AVX__
-  return _mm256_rsqrt_ps(x);
-#else
-  return simd_make_float8(simd_fast_rsqrt(x.lo), simd_fast_rsqrt(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_float16 simd_fast_rsqrt(simd_float16 x) {
-#if defined __AVX512F__
-  return _mm512_rsqrt14_ps(x);
-#else
-  return simd_make_float16(simd_fast_rsqrt(x.lo), simd_fast_rsqrt(x.hi));
-#endif
-}
-
-static inline SIMD_CFUNC double simd_fast_rsqrt(double x) {
-  return simd_precise_rsqrt(x);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_fast_rsqrt(simd_double2 x) {
-  return simd_precise_rsqrt(x);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_fast_rsqrt(simd_double3 x) {
-  return simd_precise_rsqrt(x);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_fast_rsqrt(simd_double4 x) {
-  return simd_precise_rsqrt(x);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_fast_rsqrt(simd_double8 x) {
-  return simd_precise_rsqrt(x);
-}
-
-static inline SIMD_CFUNC float simd_precise_rsqrt(float x) {
-#if defined __SSE__
-  float r = simd_fast_rsqrt(x);
-  return r*(1.5f - 0.5f*(r == INFINITY ? -INFINITY : x)*r*r);
-#elif defined __ARM_NEON__
-  return simd_precise_rsqrt(simd_make_float2_undef(x)).x;
-#else
-  return 1/sqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float2 simd_precise_rsqrt(simd_float2 x) {
-#if defined __SSE__
-  return simd_make_float2(simd_precise_rsqrt(simd_make_float4_undef(x)));
-#elif defined __ARM_NEON__
-  simd_float2 r = simd_fast_rsqrt(x);
-  return r*vrsqrts_f32(x, r*r);
-#else
-  return 1/__tg_sqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float3 simd_precise_rsqrt(simd_float3 x) {
-  return simd_make_float3(simd_precise_rsqrt(simd_make_float4_undef(x)));
-}
-  
-static inline SIMD_CFUNC simd_float4 simd_precise_rsqrt(simd_float4 x) {
-#if defined __SSE__
-  simd_float4 r = simd_fast_rsqrt(x);
-  return r*(1.5 - 0.5*simd_bitselect(x, -INFINITY, r == INFINITY)*r*r);
-#elif defined __ARM_NEON__
-  simd_float4 r = simd_fast_rsqrt(x);
-  return r*vrsqrtsq_f32(x, r*r);
-#else
-  return 1/__tg_sqrt(x);
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float8 simd_precise_rsqrt(simd_float8 x) {
-#if defined __AVX__
-  simd_float8 r = simd_fast_rsqrt(x);
-  return r*(1.5 - 0.5*simd_bitselect(x, -INFINITY, r == INFINITY)*r*r);
-#else
-  return simd_make_float8(simd_precise_rsqrt(x.lo), simd_precise_rsqrt(x.hi));
-#endif
-}
-  
-static inline SIMD_CFUNC simd_float16 simd_precise_rsqrt(simd_float16 x) {
-#if defined __AVX512F__
-  simd_float16 r = simd_fast_rsqrt(x);
-  return r*(1.5 - 0.5*simd_bitselect(x, -INFINITY, r == INFINITY)*r*r);
-#else
-  return simd_make_float16(simd_precise_rsqrt(x.lo), simd_precise_rsqrt(x.hi));
-#endif
-}
-  
-static inline SIMD_CFUNC double simd_precise_rsqrt(double x) {
-  return 1/sqrt(x);
-}
-  
-static inline SIMD_CFUNC simd_double2 simd_precise_rsqrt(simd_double2 x) {
-  return 1/__tg_sqrt(x);
-}
-  
-static inline SIMD_CFUNC simd_double3 simd_precise_rsqrt(simd_double3 x) {
-  return 1/__tg_sqrt(x);
-}
-  
-static inline SIMD_CFUNC simd_double4 simd_precise_rsqrt(simd_double4 x) {
-  return 1/__tg_sqrt(x);
-}
-  
-static inline SIMD_CFUNC simd_double8 simd_precise_rsqrt(simd_double8 x) {
-  return 1/__tg_sqrt(x);
-}
-  
-static inline SIMD_CFUNC float simd_fract(float x) {
-  return fmin(x - floor(x), 0x1.fffffep-1f);
-}
-
-static inline SIMD_CFUNC simd_float2 simd_fract(simd_float2 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffep-1f);
-}
-
-static inline SIMD_CFUNC simd_float3 simd_fract(simd_float3 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffep-1f);
-}
-
-static inline SIMD_CFUNC simd_float4 simd_fract(simd_float4 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffep-1f);
-}
-
-static inline SIMD_CFUNC simd_float8 simd_fract(simd_float8 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffep-1f);
-}
-
-static inline SIMD_CFUNC simd_float16 simd_fract(simd_float16 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffep-1f);
-}
-
-static inline SIMD_CFUNC double simd_fract(double x) {
-  return fmin(x - floor(x), 0x1.fffffffffffffp-1);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_fract(simd_double2 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffffffffffp-1);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_fract(simd_double3 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffffffffffp-1);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_fract(simd_double4 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffffffffffp-1);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_fract(simd_double8 x) {
-  return __tg_fmin(x - __tg_floor(x), 0x1.fffffffffffffp-1);
-}
-
-static inline SIMD_CFUNC float simd_step(float edge, float x) {
-  return !(x < edge);
-}
-
-static inline SIMD_CFUNC simd_float2 simd_step(simd_float2 edge, simd_float2 x) {
-  return simd_bitselect((simd_float2)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC simd_float3 simd_step(simd_float3 edge, simd_float3 x) {
-  return simd_bitselect((simd_float3)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC simd_float4 simd_step(simd_float4 edge, simd_float4 x) {
-  return simd_bitselect((simd_float4)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC simd_float8 simd_step(simd_float8 edge, simd_float8 x) {
-  return simd_bitselect((simd_float8)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC simd_float16 simd_step(simd_float16 edge, simd_float16 x) {
-  return simd_bitselect((simd_float16)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC double simd_step(double edge, double x) {
-  return !(x < edge);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_step(simd_double2 edge, simd_double2 x) {
-  return simd_bitselect((simd_double2)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_step(simd_double3 edge, simd_double3 x) {
-  return simd_bitselect((simd_double3)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_step(simd_double4 edge, simd_double4 x) {
-  return simd_bitselect((simd_double4)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_step(simd_double8 edge, simd_double8 x) {
-  return simd_bitselect((simd_double8)1, 0, x < edge);
-}
-
-static inline SIMD_CFUNC float simd_smoothstep(float edge0, float edge1, float x) {
-  float t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_float2 simd_smoothstep(simd_float2 edge0, simd_float2 edge1, simd_float2 x) {
-  simd_float2 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_float3 simd_smoothstep(simd_float3 edge0, simd_float3 edge1, simd_float3 x) {
-  simd_float3 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_float4 simd_smoothstep(simd_float4 edge0, simd_float4 edge1, simd_float4 x) {
-  simd_float4 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_float8 simd_smoothstep(simd_float8 edge0, simd_float8 edge1, simd_float8 x) {
-  simd_float8 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_float16 simd_smoothstep(simd_float16 edge0, simd_float16 edge1, simd_float16 x) {
-  simd_float16 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC double simd_smoothstep(double edge0, double edge1, double x) {
-  double t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_double2 simd_smoothstep(simd_double2 edge0, simd_double2 edge1, simd_double2 x) {
-  simd_double2 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_double3 simd_smoothstep(simd_double3 edge0, simd_double3 edge1, simd_double3 x) {
-  simd_double3 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_double4 simd_smoothstep(simd_double4 edge0, simd_double4 edge1, simd_double4 x) {
-  simd_double4 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC simd_double8 simd_smoothstep(simd_double8 edge0, simd_double8 edge1, simd_double8 x) {
-  simd_double8 t = simd_clamp((x - edge0)/(edge1 - edge0), 0, 1);
-  return t*t*(3 - 2*t);
-}
-
-static inline SIMD_CFUNC char simd_reduce_add(simd_char2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC char simd_reduce_add(simd_char3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC char simd_reduce_add(simd_char4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC char simd_reduce_add(simd_char8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC char simd_reduce_add(simd_char16 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC char simd_reduce_add(simd_char32 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC char simd_reduce_add(simd_char64 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar16 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar32 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar64 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC short simd_reduce_add(simd_short2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC short simd_reduce_add(simd_short3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC short simd_reduce_add(simd_short4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC short simd_reduce_add(simd_short8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC short simd_reduce_add(simd_short16 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC short simd_reduce_add(simd_short32 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort16 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort32 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC int simd_reduce_add(simd_int2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC int simd_reduce_add(simd_int3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC int simd_reduce_add(simd_int4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC int simd_reduce_add(simd_int8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC int simd_reduce_add(simd_int16 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint16 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC float simd_reduce_add(simd_float2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC float simd_reduce_add(simd_float3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC float simd_reduce_add(simd_float4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC float simd_reduce_add(simd_float8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC float simd_reduce_add(simd_float16 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC double simd_reduce_add(simd_double2 x) {
-  return x.x + x.y;
-}
-
-static inline SIMD_CFUNC double simd_reduce_add(simd_double3 x) {
-  return x.x + x.y + x.z;
-}
-
-static inline SIMD_CFUNC double simd_reduce_add(simd_double4 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC double simd_reduce_add(simd_double8 x) {
-  return simd_reduce_add(x.lo + x.hi);
-}
-
-static inline SIMD_CFUNC char simd_reduce_min(simd_char2 x) {
-  return x.y < x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC char simd_reduce_min(simd_char3 x) {
-  char t = x.z < x.x ? x.z : x.x;
-  return x.y < t ? x.y : t;
-}
-
-static inline SIMD_CFUNC char simd_reduce_min(simd_char4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_min(simd_char8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_min(simd_char16 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_min(simd_char32 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_min(simd_char64 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar2 x) {
-  return x.y < x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar3 x) {
-  unsigned char t = x.z < x.x ? x.z : x.x;
-  return x.y < t ? x.y : t;
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar16 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar32 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_min(simd_uchar64 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC short simd_reduce_min(simd_short2 x) {
-  return x.y < x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC short simd_reduce_min(simd_short3 x) {
-  short t = x.z < x.x ? x.z : x.x;
-  return x.y < t ? x.y : t;
-}
-
-static inline SIMD_CFUNC short simd_reduce_min(simd_short4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC short simd_reduce_min(simd_short8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC short simd_reduce_min(simd_short16 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC short simd_reduce_min(simd_short32 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort2 x) {
-  return x.y < x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort3 x) {
-  unsigned short t = x.z < x.x ? x.z : x.x;
-  return x.y < t ? x.y : t;
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort16 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_min(simd_ushort32 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC int simd_reduce_min(simd_int2 x) {
-  return x.y < x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC int simd_reduce_min(simd_int3 x) {
-  int t = x.z < x.x ? x.z : x.x;
-  return x.y < t ? x.y : t;
-}
-
-static inline SIMD_CFUNC int simd_reduce_min(simd_int4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC int simd_reduce_min(simd_int8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC int simd_reduce_min(simd_int16 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint2 x) {
-  return x.y < x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint3 x) {
-  unsigned int t = x.z < x.x ? x.z : x.x;
-  return x.y < t ? x.y : t;
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_min(simd_uint16 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC float simd_reduce_min(simd_float2 x) {
-  return fmin(x.x, x.y);
-}
-
-static inline SIMD_CFUNC float simd_reduce_min(simd_float3 x) {
-  return fmin(fmin(x.x, x.z), x.y);
-}
-
-static inline SIMD_CFUNC float simd_reduce_min(simd_float4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC float simd_reduce_min(simd_float8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC float simd_reduce_min(simd_float16 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_min(simd_long2 x) {
-  return x.y < x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_min(simd_long3 x) {
-  simd_long1 t = x.z < x.x ? x.z : x.x;
-  return x.y < t ? x.y : t;
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_min(simd_long4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_min(simd_long8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_min(simd_ulong2 x) {
-  return x.y < x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_min(simd_ulong3 x) {
-  simd_ulong1 t = x.z < x.x ? x.z : x.x;
-  return x.y < t ? x.y : t;
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_min(simd_ulong4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_min(simd_ulong8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC double simd_reduce_min(simd_double2 x) {
-  return fmin(x.x, x.y);
-}
-
-static inline SIMD_CFUNC double simd_reduce_min(simd_double3 x) {
-  return fmin(fmin(x.x, x.z), x.y);
-}
-
-static inline SIMD_CFUNC double simd_reduce_min(simd_double4 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC double simd_reduce_min(simd_double8 x) {
-  return simd_reduce_min(simd_min(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_max(simd_char2 x) {
-  return x.y > x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC char simd_reduce_max(simd_char3 x) {
-  char t = x.z > x.x ? x.z : x.x;
-  return x.y > t ? x.y : t;
-}
-
-static inline SIMD_CFUNC char simd_reduce_max(simd_char4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_max(simd_char8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_max(simd_char16 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_max(simd_char32 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC char simd_reduce_max(simd_char64 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar2 x) {
-  return x.y > x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar3 x) {
-  unsigned char t = x.z > x.x ? x.z : x.x;
-  return x.y > t ? x.y : t;
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar16 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar32 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned char simd_reduce_max(simd_uchar64 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC short simd_reduce_max(simd_short2 x) {
-  return x.y > x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC short simd_reduce_max(simd_short3 x) {
-  short t = x.z > x.x ? x.z : x.x;
-  return x.y > t ? x.y : t;
-}
-
-static inline SIMD_CFUNC short simd_reduce_max(simd_short4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC short simd_reduce_max(simd_short8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC short simd_reduce_max(simd_short16 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC short simd_reduce_max(simd_short32 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort2 x) {
-  return x.y > x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort3 x) {
-  unsigned short t = x.z > x.x ? x.z : x.x;
-  return x.y > t ? x.y : t;
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort16 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned short simd_reduce_max(simd_ushort32 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC int simd_reduce_max(simd_int2 x) {
-  return x.y > x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC int simd_reduce_max(simd_int3 x) {
-  int t = x.z > x.x ? x.z : x.x;
-  return x.y > t ? x.y : t;
-}
-
-static inline SIMD_CFUNC int simd_reduce_max(simd_int4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC int simd_reduce_max(simd_int8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC int simd_reduce_max(simd_int16 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint2 x) {
-  return x.y > x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint3 x) {
-  unsigned int t = x.z > x.x ? x.z : x.x;
-  return x.y > t ? x.y : t;
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC unsigned int simd_reduce_max(simd_uint16 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC float simd_reduce_max(simd_float2 x) {
-  return fmax(x.x, x.y);
-}
-
-static inline SIMD_CFUNC float simd_reduce_max(simd_float3 x) {
-  return fmax(fmax(x.x, x.z), x.y);
-}
-
-static inline SIMD_CFUNC float simd_reduce_max(simd_float4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC float simd_reduce_max(simd_float8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC float simd_reduce_max(simd_float16 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_max(simd_long2 x) {
-  return x.y > x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_max(simd_long3 x) {
-  simd_long1 t = x.z > x.x ? x.z : x.x;
-  return x.y > t ? x.y : t;
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_max(simd_long4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC simd_long1 simd_reduce_max(simd_long8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_max(simd_ulong2 x) {
-  return x.y > x.x ? x.y : x.x;
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_max(simd_ulong3 x) {
-  simd_ulong1 t = x.z > x.x ? x.z : x.x;
-  return x.y > t ? x.y : t;
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_max(simd_ulong4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC simd_ulong1 simd_reduce_max(simd_ulong8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC double simd_reduce_max(simd_double2 x) {
-  return fmax(x.x, x.y);
-}
-
-static inline SIMD_CFUNC double simd_reduce_max(simd_double3 x) {
-  return fmax(fmax(x.x, x.z), x.y);
-}
-
-static inline SIMD_CFUNC double simd_reduce_max(simd_double4 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-static inline SIMD_CFUNC double simd_reduce_max(simd_double8 x) {
-  return simd_reduce_max(simd_max(x.lo, x.hi));
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
-#endif /* SIMD_COMMON_HEADER */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/simd/conversion.h b/lib/libc/include/x86_64-macos.10-none/simd/conversion.h
deleted file mode 100644
index cc6c533e8fb4b95d67ed5ab78bd3050e0c3e35a5..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/simd/conversion.h
+++ /dev/null
@@ -1,1876 +0,0 @@
-/*  Copyright (c) 2014-2017 Apple, Inc. All rights reserved.
- *
- *  The interfaces declared in this header provide conversions between vector
- *  types. The following functions are available:
- *
- *      simd_char(x)      simd_uchar(x)
- *      simd_short(x)     simd_ushort(x)
- *      simd_int(x)       simd_uint(x)
- *      simd_long(x)      simd_ulong(x)
- *      simd_float(x)
- *      simd_double(x)
- *
- *  Each of these functions converts x to a vector whose elements have the
- *  type named by the function, with the same number of elements as x. Unlike
- *  a vector cast, these functions convert the elements to the new element
- *  type. These conversions behave exactly as C scalar conversions, except
- *  that conversions from integer vector types to signed integer vector types
- *  are guaranteed to wrap modulo 2^N (where N is the number of bits in an
- *  element of the result type).
- *
- *  For integer vector types, saturating conversions are also available:
- *
- *      simd_char_sat(x)      simd_uchar_sat(x)
- *      simd_short_sat(x)     simd_ushort_sat(x)
- *      simd_int_sat(x)       simd_uint_sat(x)
- *      simd_long_sat(x)      simd_ulong_sat(x)
- *
- *  These conversions clamp x to the representable range of the result type
- *  before converting.
- *
- *  Unlike most vector operations in , there are no abbreviated C++
- *  names for these functions in the simd:: namespace.
- */
-
-#ifndef __SIMD_CONVERSION_HEADER__
-#define __SIMD_CONVERSION_HEADER__
-
-#include 
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include 
-#include 
-#include 
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-static simd_char2  SIMD_CFUNC simd_char(simd_char2    __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_char3    __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_char4    __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_char8    __x);
-static simd_char16 SIMD_CFUNC simd_char(simd_char16   __x);
-static simd_char32 SIMD_CFUNC simd_char(simd_char32   __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_uchar2   __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_uchar3   __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_uchar4   __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_uchar8   __x);
-static simd_char16 SIMD_CFUNC simd_char(simd_uchar16  __x);
-static simd_char32 SIMD_CFUNC simd_char(simd_uchar32  __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_short2   __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_short3   __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_short4   __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_short8   __x);
-static simd_char16 SIMD_CFUNC simd_char(simd_short16  __x);
-static simd_char32 SIMD_CFUNC simd_char(simd_short32  __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_ushort2  __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_ushort3  __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_ushort4  __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_ushort8  __x);
-static simd_char16 SIMD_CFUNC simd_char(simd_ushort16 __x);
-static simd_char32 SIMD_CFUNC simd_char(simd_ushort32 __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_int2     __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_int3     __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_int4     __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_int8     __x);
-static simd_char16 SIMD_CFUNC simd_char(simd_int16    __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_uint2    __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_uint3    __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_uint4    __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_uint8    __x);
-static simd_char16 SIMD_CFUNC simd_char(simd_uint16   __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_float2   __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_float3   __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_float4   __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_float8   __x);
-static simd_char16 SIMD_CFUNC simd_char(simd_float16  __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_long2    __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_long3    __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_long4    __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_long8    __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_ulong2   __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_ulong3   __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_ulong4   __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_ulong8   __x);
-static simd_char2  SIMD_CFUNC simd_char(simd_double2  __x);
-static simd_char3  SIMD_CFUNC simd_char(simd_double3  __x);
-static simd_char4  SIMD_CFUNC simd_char(simd_double4  __x);
-static simd_char8  SIMD_CFUNC simd_char(simd_double8  __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_char2    __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_char3    __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_char4    __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_char8    __x);
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_char16   __x);
-static simd_char32 SIMD_CFUNC simd_char_sat(simd_char32   __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_short2   __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_short3   __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_short4   __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_short8   __x);
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_short16  __x);
-static simd_char32 SIMD_CFUNC simd_char_sat(simd_short32  __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_int2     __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_int3     __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_int4     __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_int8     __x);
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_int16    __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_float2   __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_float3   __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_float4   __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_float8   __x);
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_float16  __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_long2    __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_long3    __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_long4    __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_long8    __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_double2  __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_double3  __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_double4  __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_double8  __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_uchar2   __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_uchar3   __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_uchar4   __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_uchar8   __x);
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_uchar16  __x);
-static simd_char32 SIMD_CFUNC simd_char_sat(simd_uchar32  __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_ushort2  __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_ushort3  __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_ushort4  __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_ushort8  __x);
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_ushort16 __x);
-static simd_char32 SIMD_CFUNC simd_char_sat(simd_ushort32 __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_uint2    __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_uint3    __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_uint4    __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_uint8    __x);
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_uint16   __x);
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_ulong2   __x);
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_ulong3   __x);
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_ulong4   __x);
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_ulong8   __x);
-#define vector_char simd_char
-#define vector_char_sat simd_char_sat
-
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_char2    __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_char3    __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_char4    __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_char8    __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_char16   __x);
-static simd_uchar32 SIMD_CFUNC simd_uchar(simd_char32   __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_uchar2   __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_uchar3   __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_uchar4   __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_uchar8   __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_uchar16  __x);
-static simd_uchar32 SIMD_CFUNC simd_uchar(simd_uchar32  __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_short2   __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_short3   __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_short4   __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_short8   __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_short16  __x);
-static simd_uchar32 SIMD_CFUNC simd_uchar(simd_short32  __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_ushort2  __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_ushort3  __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_ushort4  __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_ushort8  __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_ushort16 __x);
-static simd_uchar32 SIMD_CFUNC simd_uchar(simd_ushort32 __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_int2     __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_int3     __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_int4     __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_int8     __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_int16    __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_uint2    __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_uint3    __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_uint4    __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_uint8    __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_uint16   __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_float2   __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_float3   __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_float4   __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_float8   __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_float16  __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_long2    __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_long3    __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_long4    __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_long8    __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_ulong2   __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_ulong3   __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_ulong4   __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_ulong8   __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_double2  __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_double3  __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_double4  __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_double8  __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_char2    __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_char3    __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_char4    __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_char8    __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_char16   __x);
-static simd_uchar32 SIMD_CFUNC simd_uchar_sat(simd_char32   __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_short2   __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_short3   __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_short4   __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_short8   __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_short16  __x);
-static simd_uchar32 SIMD_CFUNC simd_uchar_sat(simd_short32  __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_int2     __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_int3     __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_int4     __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_int8     __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_int16    __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_float2   __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_float3   __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_float4   __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_float8   __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_float16  __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_long2    __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_long3    __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_long4    __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_long8    __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_double2  __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_double3  __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_double4  __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_double8  __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_uchar2   __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_uchar3   __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_uchar4   __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_uchar8   __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_uchar16  __x);
-static simd_uchar32 SIMD_CFUNC simd_uchar_sat(simd_uchar32  __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_ushort2  __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_ushort3  __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_ushort4  __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_ushort8  __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_ushort16 __x);
-static simd_uchar32 SIMD_CFUNC simd_uchar_sat(simd_ushort32 __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_uint2    __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_uint3    __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_uint4    __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_uint8    __x);
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_uint16   __x);
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_ulong2   __x);
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_ulong3   __x);
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_ulong4   __x);
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_ulong8   __x);
-#define vector_uchar simd_uchar
-#define vector_uchar_sat simd_uchar_sat
-
-static simd_short2  SIMD_CFUNC simd_short(simd_char2    __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_char3    __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_char4    __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_char8    __x);
-static simd_short16 SIMD_CFUNC simd_short(simd_char16   __x);
-static simd_short32 SIMD_CFUNC simd_short(simd_char32   __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_uchar2   __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_uchar3   __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_uchar4   __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_uchar8   __x);
-static simd_short16 SIMD_CFUNC simd_short(simd_uchar16  __x);
-static simd_short32 SIMD_CFUNC simd_short(simd_uchar32  __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_short2   __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_short3   __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_short4   __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_short8   __x);
-static simd_short16 SIMD_CFUNC simd_short(simd_short16  __x);
-static simd_short32 SIMD_CFUNC simd_short(simd_short32  __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_ushort2  __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_ushort3  __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_ushort4  __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_ushort8  __x);
-static simd_short16 SIMD_CFUNC simd_short(simd_ushort16 __x);
-static simd_short32 SIMD_CFUNC simd_short(simd_ushort32 __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_int2     __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_int3     __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_int4     __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_int8     __x);
-static simd_short16 SIMD_CFUNC simd_short(simd_int16    __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_uint2    __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_uint3    __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_uint4    __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_uint8    __x);
-static simd_short16 SIMD_CFUNC simd_short(simd_uint16   __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_float2   __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_float3   __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_float4   __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_float8   __x);
-static simd_short16 SIMD_CFUNC simd_short(simd_float16  __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_long2    __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_long3    __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_long4    __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_long8    __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_ulong2   __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_ulong3   __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_ulong4   __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_ulong8   __x);
-static simd_short2  SIMD_CFUNC simd_short(simd_double2  __x);
-static simd_short3  SIMD_CFUNC simd_short(simd_double3  __x);
-static simd_short4  SIMD_CFUNC simd_short(simd_double4  __x);
-static simd_short8  SIMD_CFUNC simd_short(simd_double8  __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_char2    __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_char3    __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_char4    __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_char8    __x);
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_char16   __x);
-static simd_short32 SIMD_CFUNC simd_short_sat(simd_char32   __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_short2   __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_short3   __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_short4   __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_short8   __x);
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_short16  __x);
-static simd_short32 SIMD_CFUNC simd_short_sat(simd_short32  __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_int2     __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_int3     __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_int4     __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_int8     __x);
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_int16    __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_float2   __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_float3   __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_float4   __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_float8   __x);
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_float16  __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_long2    __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_long3    __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_long4    __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_long8    __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_double2  __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_double3  __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_double4  __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_double8  __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_uchar2   __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_uchar3   __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_uchar4   __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_uchar8   __x);
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_uchar16  __x);
-static simd_short32 SIMD_CFUNC simd_short_sat(simd_uchar32  __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_ushort2  __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_ushort3  __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_ushort4  __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_ushort8  __x);
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_ushort16 __x);
-static simd_short32 SIMD_CFUNC simd_short_sat(simd_ushort32 __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_uint2    __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_uint3    __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_uint4    __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_uint8    __x);
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_uint16   __x);
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_ulong2   __x);
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_ulong3   __x);
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_ulong4   __x);
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_ulong8   __x);
-#define vector_short simd_short
-#define vector_short_sat simd_short_sat
-
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_char2    __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_char3    __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_char4    __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_char8    __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_char16   __x);
-static simd_ushort32 SIMD_CFUNC simd_ushort(simd_char32   __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_uchar2   __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_uchar3   __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_uchar4   __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_uchar8   __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_uchar16  __x);
-static simd_ushort32 SIMD_CFUNC simd_ushort(simd_uchar32  __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_short2   __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_short3   __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_short4   __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_short8   __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_short16  __x);
-static simd_ushort32 SIMD_CFUNC simd_ushort(simd_short32  __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_ushort2  __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_ushort3  __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_ushort4  __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_ushort8  __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_ushort16 __x);
-static simd_ushort32 SIMD_CFUNC simd_ushort(simd_ushort32 __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_int2     __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_int3     __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_int4     __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_int8     __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_int16    __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_uint2    __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_uint3    __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_uint4    __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_uint8    __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_uint16   __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_float2   __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_float3   __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_float4   __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_float8   __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_float16  __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_long2    __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_long3    __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_long4    __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_long8    __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_ulong2   __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_ulong3   __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_ulong4   __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_ulong8   __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_double2  __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_double3  __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_double4  __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_double8  __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_char2    __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_char3    __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_char4    __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_char8    __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_char16   __x);
-static simd_ushort32 SIMD_CFUNC simd_ushort_sat(simd_char32   __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_short2   __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_short3   __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_short4   __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_short8   __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_short16  __x);
-static simd_ushort32 SIMD_CFUNC simd_ushort_sat(simd_short32  __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_int2     __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_int3     __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_int4     __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_int8     __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_int16    __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_float2   __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_float3   __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_float4   __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_float8   __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_float16  __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_long2    __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_long3    __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_long4    __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_long8    __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_double2  __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_double3  __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_double4  __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_double8  __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_uchar2   __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_uchar3   __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_uchar4   __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_uchar8   __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_uchar16  __x);
-static simd_ushort32 SIMD_CFUNC simd_ushort_sat(simd_uchar32  __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_ushort2  __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_ushort3  __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_ushort4  __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_ushort8  __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_ushort16 __x);
-static simd_ushort32 SIMD_CFUNC simd_ushort_sat(simd_ushort32 __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_uint2    __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_uint3    __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_uint4    __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_uint8    __x);
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_uint16   __x);
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_ulong2   __x);
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_ulong3   __x);
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_ulong4   __x);
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_ulong8   __x);
-#define vector_ushort simd_ushort
-#define vector_ushort_sat simd_ushort_sat
-
-static simd_int2  SIMD_CFUNC simd_int(simd_char2    __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_char3    __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_char4    __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_char8    __x);
-static simd_int16 SIMD_CFUNC simd_int(simd_char16   __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_uchar2   __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_uchar3   __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_uchar4   __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_uchar8   __x);
-static simd_int16 SIMD_CFUNC simd_int(simd_uchar16  __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_short2   __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_short3   __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_short4   __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_short8   __x);
-static simd_int16 SIMD_CFUNC simd_int(simd_short16  __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_ushort2  __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_ushort3  __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_ushort4  __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_ushort8  __x);
-static simd_int16 SIMD_CFUNC simd_int(simd_ushort16 __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_int2     __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_int3     __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_int4     __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_int8     __x);
-static simd_int16 SIMD_CFUNC simd_int(simd_int16    __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_uint2    __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_uint3    __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_uint4    __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_uint8    __x);
-static simd_int16 SIMD_CFUNC simd_int(simd_uint16   __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_float2   __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_float3   __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_float4   __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_float8   __x);
-static simd_int16 SIMD_CFUNC simd_int(simd_float16  __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_long2    __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_long3    __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_long4    __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_long8    __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_ulong2   __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_ulong3   __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_ulong4   __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_ulong8   __x);
-static simd_int2  SIMD_CFUNC simd_int(simd_double2  __x);
-static simd_int3  SIMD_CFUNC simd_int(simd_double3  __x);
-static simd_int4  SIMD_CFUNC simd_int(simd_double4  __x);
-static simd_int8  SIMD_CFUNC simd_int(simd_double8  __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_char2    __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_char3    __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_char4    __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_char8    __x);
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_char16   __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_short2   __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_short3   __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_short4   __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_short8   __x);
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_short16  __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_int2     __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_int3     __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_int4     __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_int8     __x);
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_int16    __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_float2   __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_float3   __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_float4   __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_float8   __x);
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_float16  __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_long2    __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_long3    __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_long4    __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_long8    __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_double2  __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_double3  __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_double4  __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_double8  __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_uchar2   __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_uchar3   __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_uchar4   __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_uchar8   __x);
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_uchar16  __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_ushort2  __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_ushort3  __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_ushort4  __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_ushort8  __x);
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_ushort16 __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_uint2    __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_uint3    __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_uint4    __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_uint8    __x);
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_uint16   __x);
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_ulong2   __x);
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_ulong3   __x);
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_ulong4   __x);
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_ulong8   __x);
-#define vector_int simd_int
-#define vector_int_sat simd_int_sat
-
-static simd_uint2  SIMD_CFUNC simd_uint(simd_char2    __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_char3    __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_char4    __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_char8    __x);
-static simd_uint16 SIMD_CFUNC simd_uint(simd_char16   __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_uchar2   __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_uchar3   __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_uchar4   __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_uchar8   __x);
-static simd_uint16 SIMD_CFUNC simd_uint(simd_uchar16  __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_short2   __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_short3   __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_short4   __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_short8   __x);
-static simd_uint16 SIMD_CFUNC simd_uint(simd_short16  __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_ushort2  __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_ushort3  __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_ushort4  __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_ushort8  __x);
-static simd_uint16 SIMD_CFUNC simd_uint(simd_ushort16 __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_int2     __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_int3     __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_int4     __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_int8     __x);
-static simd_uint16 SIMD_CFUNC simd_uint(simd_int16    __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_uint2    __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_uint3    __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_uint4    __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_uint8    __x);
-static simd_uint16 SIMD_CFUNC simd_uint(simd_uint16   __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_float2   __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_float3   __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_float4   __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_float8   __x);
-static simd_uint16 SIMD_CFUNC simd_uint(simd_float16  __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_long2    __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_long3    __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_long4    __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_long8    __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_ulong2   __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_ulong3   __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_ulong4   __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_ulong8   __x);
-static simd_uint2  SIMD_CFUNC simd_uint(simd_double2  __x);
-static simd_uint3  SIMD_CFUNC simd_uint(simd_double3  __x);
-static simd_uint4  SIMD_CFUNC simd_uint(simd_double4  __x);
-static simd_uint8  SIMD_CFUNC simd_uint(simd_double8  __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_char2    __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_char3    __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_char4    __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_char8    __x);
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_char16   __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_short2   __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_short3   __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_short4   __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_short8   __x);
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_short16  __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_int2     __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_int3     __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_int4     __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_int8     __x);
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_int16    __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_float2   __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_float3   __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_float4   __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_float8   __x);
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_float16  __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_long2    __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_long3    __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_long4    __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_long8    __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_double2  __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_double3  __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_double4  __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_double8  __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_uchar2   __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_uchar3   __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_uchar4   __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_uchar8   __x);
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_uchar16  __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_ushort2  __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_ushort3  __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_ushort4  __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_ushort8  __x);
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_ushort16 __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_uint2    __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_uint3    __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_uint4    __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_uint8    __x);
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_uint16   __x);
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_ulong2   __x);
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_ulong3   __x);
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_ulong4   __x);
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_ulong8   __x);
-#define vector_uint simd_uint
-#define vector_uint_sat simd_uint_sat
-
-static simd_float2  SIMD_CFUNC simd_float(simd_char2    __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_char3    __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_char4    __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_char8    __x);
-static simd_float16 SIMD_CFUNC simd_float(simd_char16   __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_uchar2   __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_uchar3   __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_uchar4   __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_uchar8   __x);
-static simd_float16 SIMD_CFUNC simd_float(simd_uchar16  __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_short2   __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_short3   __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_short4   __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_short8   __x);
-static simd_float16 SIMD_CFUNC simd_float(simd_short16  __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_ushort2  __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_ushort3  __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_ushort4  __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_ushort8  __x);
-static simd_float16 SIMD_CFUNC simd_float(simd_ushort16 __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_int2     __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_int3     __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_int4     __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_int8     __x);
-static simd_float16 SIMD_CFUNC simd_float(simd_int16    __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_uint2    __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_uint3    __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_uint4    __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_uint8    __x);
-static simd_float16 SIMD_CFUNC simd_float(simd_uint16   __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_float2   __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_float3   __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_float4   __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_float8   __x);
-static simd_float16 SIMD_CFUNC simd_float(simd_float16  __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_long2    __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_long3    __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_long4    __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_long8    __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_ulong2   __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_ulong3   __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_ulong4   __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_ulong8   __x);
-static simd_float2  SIMD_CFUNC simd_float(simd_double2  __x);
-static simd_float3  SIMD_CFUNC simd_float(simd_double3  __x);
-static simd_float4  SIMD_CFUNC simd_float(simd_double4  __x);
-static simd_float8  SIMD_CFUNC simd_float(simd_double8  __x);
-#define vector_float simd_float
-
-static simd_long2  SIMD_CFUNC simd_long(simd_char2    __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_char3    __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_char4    __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_char8    __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_uchar2   __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_uchar3   __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_uchar4   __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_uchar8   __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_short2   __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_short3   __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_short4   __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_short8   __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_ushort2  __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_ushort3  __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_ushort4  __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_ushort8  __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_int2     __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_int3     __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_int4     __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_int8     __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_uint2    __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_uint3    __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_uint4    __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_uint8    __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_float2   __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_float3   __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_float4   __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_float8   __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_long2    __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_long3    __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_long4    __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_long8    __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_ulong2   __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_ulong3   __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_ulong4   __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_ulong8   __x);
-static simd_long2  SIMD_CFUNC simd_long(simd_double2  __x);
-static simd_long3  SIMD_CFUNC simd_long(simd_double3  __x);
-static simd_long4  SIMD_CFUNC simd_long(simd_double4  __x);
-static simd_long8  SIMD_CFUNC simd_long(simd_double8  __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_char2    __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_char3    __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_char4    __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_char8    __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_short2   __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_short3   __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_short4   __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_short8   __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_int2     __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_int3     __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_int4     __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_int8     __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_float2   __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_float3   __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_float4   __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_float8   __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_long2    __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_long3    __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_long4    __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_long8    __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_double2  __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_double3  __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_double4  __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_double8  __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_uchar2   __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_uchar3   __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_uchar4   __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_uchar8   __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_ushort2  __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_ushort3  __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_ushort4  __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_ushort8  __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_uint2    __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_uint3    __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_uint4    __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_uint8    __x);
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_ulong2   __x);
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_ulong3   __x);
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_ulong4   __x);
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_ulong8   __x);
-#define vector_long simd_long
-#define vector_long_sat simd_long_sat
-
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_char2    __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_char3    __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_char4    __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_char8    __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_uchar2   __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_uchar3   __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_uchar4   __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_uchar8   __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_short2   __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_short3   __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_short4   __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_short8   __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_ushort2  __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_ushort3  __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_ushort4  __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_ushort8  __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_int2     __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_int3     __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_int4     __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_int8     __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_uint2    __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_uint3    __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_uint4    __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_uint8    __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_float2   __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_float3   __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_float4   __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_float8   __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_long2    __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_long3    __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_long4    __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_long8    __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_ulong2   __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_ulong3   __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_ulong4   __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_ulong8   __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_double2  __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_double3  __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_double4  __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_double8  __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_char2    __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_char3    __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_char4    __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_char8    __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_short2   __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_short3   __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_short4   __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_short8   __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_int2     __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_int3     __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_int4     __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_int8     __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_float2   __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_float3   __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_float4   __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_float8   __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_long2    __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_long3    __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_long4    __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_long8    __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_double2  __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_double3  __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_double4  __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_double8  __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_uchar2   __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_uchar3   __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_uchar4   __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_uchar8   __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_ushort2  __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_ushort3  __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_ushort4  __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_ushort8  __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_uint2    __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_uint3    __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_uint4    __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_uint8    __x);
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_ulong2   __x);
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_ulong3   __x);
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_ulong4   __x);
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_ulong8   __x);
-#define vector_ulong simd_ulong
-#define vector_ulong_sat simd_ulong_sat
-
-static simd_double2  SIMD_CFUNC simd_double(simd_char2    __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_char3    __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_char4    __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_char8    __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_uchar2   __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_uchar3   __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_uchar4   __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_uchar8   __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_short2   __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_short3   __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_short4   __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_short8   __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_ushort2  __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_ushort3  __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_ushort4  __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_ushort8  __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_int2     __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_int3     __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_int4     __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_int8     __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_uint2    __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_uint3    __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_uint4    __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_uint8    __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_float2   __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_float3   __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_float4   __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_float8   __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_long2    __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_long3    __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_long4    __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_long8    __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_ulong2   __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_ulong3   __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_ulong4   __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_ulong8   __x);
-static simd_double2  SIMD_CFUNC simd_double(simd_double2  __x);
-static simd_double3  SIMD_CFUNC simd_double(simd_double3  __x);
-static simd_double4  SIMD_CFUNC simd_double(simd_double4  __x);
-static simd_double8  SIMD_CFUNC simd_double(simd_double8  __x);
-#define vector_double simd_double
-
-static simd_char2   SIMD_CFUNC vector2(char           __x, char           __y) { return (  simd_char2){__x, __y}; }
-static simd_uchar2  SIMD_CFUNC vector2(unsigned char  __x, unsigned char  __y) { return ( simd_uchar2){__x, __y}; }
-static simd_short2  SIMD_CFUNC vector2(short          __x, short          __y) { return ( simd_short2){__x, __y}; }
-static simd_ushort2 SIMD_CFUNC vector2(unsigned short __x, unsigned short __y) { return (simd_ushort2){__x, __y}; }
-static simd_int2    SIMD_CFUNC vector2(int            __x, int            __y) { return (   simd_int2){__x, __y}; }
-static simd_uint2   SIMD_CFUNC vector2(unsigned int   __x, unsigned int   __y) { return (  simd_uint2){__x, __y}; }
-static simd_float2  SIMD_CFUNC vector2(float          __x, float          __y) { return ( simd_float2){__x, __y}; }
-static simd_long2   SIMD_CFUNC vector2(simd_long1   __x, simd_long1   __y) { return (  simd_long2){__x, __y}; }
-static simd_ulong2  SIMD_CFUNC vector2(simd_ulong1  __x, simd_ulong1  __y) { return ( simd_ulong2){__x, __y}; }
-static simd_double2 SIMD_CFUNC vector2(double         __x, double         __y) { return (simd_double2){__x, __y}; }
-
-static simd_char3   SIMD_CFUNC vector3(char           __x, char           __y, char           __z) { return (  simd_char3){__x, __y, __z}; }
-static simd_uchar3  SIMD_CFUNC vector3(unsigned char  __x, unsigned char  __y, unsigned char  __z) { return ( simd_uchar3){__x, __y, __z}; }
-static simd_short3  SIMD_CFUNC vector3(short          __x, short          __y, short          __z) { return ( simd_short3){__x, __y, __z}; }
-static simd_ushort3 SIMD_CFUNC vector3(unsigned short __x, unsigned short __y, unsigned short __z) { return (simd_ushort3){__x, __y, __z}; }
-static simd_int3    SIMD_CFUNC vector3(int            __x, int            __y, int            __z) { return (   simd_int3){__x, __y, __z}; }
-static simd_uint3   SIMD_CFUNC vector3(unsigned int   __x, unsigned int   __y, unsigned int   __z) { return (  simd_uint3){__x, __y, __z}; }
-static simd_float3  SIMD_CFUNC vector3(float          __x, float          __y, float          __z) { return ( simd_float3){__x, __y, __z}; }
-static simd_long3   SIMD_CFUNC vector3(simd_long1   __x, simd_long1   __y, simd_long1   __z) { return (  simd_long3){__x, __y, __z}; }
-static simd_ulong3  SIMD_CFUNC vector3(simd_ulong1  __x, simd_ulong1  __y, simd_ulong1  __z) { return ( simd_ulong3){__x, __y, __z}; }
-static simd_double3 SIMD_CFUNC vector3(double         __x, double         __y, double         __z) { return (simd_double3){__x, __y, __z}; }
-
-static simd_char3   SIMD_CFUNC vector3(simd_char2   __xy, char           __z) { simd_char3   __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_uchar3  SIMD_CFUNC vector3(simd_uchar2  __xy, unsigned char  __z) { simd_uchar3  __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_short3  SIMD_CFUNC vector3(simd_short2  __xy, short          __z) { simd_short3  __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_ushort3 SIMD_CFUNC vector3(simd_ushort2 __xy, unsigned short __z) { simd_ushort3 __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_int3    SIMD_CFUNC vector3(simd_int2    __xy, int            __z) { simd_int3    __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_uint3   SIMD_CFUNC vector3(simd_uint2   __xy, unsigned int   __z) { simd_uint3   __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_float3  SIMD_CFUNC vector3(simd_float2  __xy, float          __z) { simd_float3  __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_long3   SIMD_CFUNC vector3(simd_long2   __xy, simd_long1   __z) { simd_long3   __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_ulong3  SIMD_CFUNC vector3(simd_ulong2  __xy, simd_ulong1  __z) { simd_ulong3  __r; __r.xy = __xy; __r.z = __z; return __r; }
-static simd_double3 SIMD_CFUNC vector3(simd_double2 __xy, double         __z) { simd_double3 __r; __r.xy = __xy; __r.z = __z; return __r; }
-
-static simd_char4   SIMD_CFUNC vector4(char           __x, char           __y, char           __z, char           __w) { return (  simd_char4){__x, __y, __z, __w}; }
-static simd_uchar4  SIMD_CFUNC vector4(unsigned char  __x, unsigned char  __y, unsigned char  __z, unsigned char  __w) { return ( simd_uchar4){__x, __y, __z, __w}; }
-static simd_short4  SIMD_CFUNC vector4(short          __x, short          __y, short          __z, short          __w) { return ( simd_short4){__x, __y, __z, __w}; }
-static simd_ushort4 SIMD_CFUNC vector4(unsigned short __x, unsigned short __y, unsigned short __z, unsigned short __w) { return (simd_ushort4){__x, __y, __z, __w}; }
-static simd_int4    SIMD_CFUNC vector4(int            __x, int            __y, int            __z, int            __w) { return (   simd_int4){__x, __y, __z, __w}; }
-static simd_uint4   SIMD_CFUNC vector4(unsigned int   __x, unsigned int   __y, unsigned int   __z, unsigned int   __w) { return (  simd_uint4){__x, __y, __z, __w}; }
-static simd_float4  SIMD_CFUNC vector4(float          __x, float          __y, float          __z, float          __w) { return ( simd_float4){__x, __y, __z, __w}; }
-static simd_long4   SIMD_CFUNC vector4(simd_long1   __x, simd_long1   __y, simd_long1   __z, simd_long1   __w) { return (  simd_long4){__x, __y, __z, __w}; }
-static simd_ulong4  SIMD_CFUNC vector4(simd_ulong1  __x, simd_ulong1  __y, simd_ulong1  __z, simd_ulong1  __w) { return ( simd_ulong4){__x, __y, __z, __w}; }
-static simd_double4 SIMD_CFUNC vector4(double         __x, double         __y, double         __z, double         __w) { return (simd_double4){__x, __y, __z, __w}; }
-
-static simd_char4   SIMD_CFUNC vector4(simd_char2   __xy, simd_char2   __zw) { simd_char4   __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_uchar4  SIMD_CFUNC vector4(simd_uchar2  __xy, simd_uchar2  __zw) { simd_uchar4  __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_short4  SIMD_CFUNC vector4(simd_short2  __xy, simd_short2  __zw) { simd_short4  __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_ushort4 SIMD_CFUNC vector4(simd_ushort2 __xy, simd_ushort2 __zw) { simd_ushort4 __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_int4    SIMD_CFUNC vector4(simd_int2    __xy, simd_int2    __zw) { simd_int4    __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_uint4   SIMD_CFUNC vector4(simd_uint2   __xy, simd_uint2   __zw) { simd_uint4   __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_float4  SIMD_CFUNC vector4(simd_float2  __xy, simd_float2  __zw) { simd_float4  __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_long4   SIMD_CFUNC vector4(simd_long2   __xy, simd_long2   __zw) { simd_long4   __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_ulong4  SIMD_CFUNC vector4(simd_ulong2  __xy, simd_ulong2  __zw) { simd_ulong4  __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-static simd_double4 SIMD_CFUNC vector4(simd_double2 __xy, simd_double2 __zw) { simd_double4 __r; __r.xy = __xy; __r.zw = __zw; return __r; }
-
-static simd_char4   SIMD_CFUNC vector4(simd_char3   __xyz, char           __w) { simd_char4   __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_uchar4  SIMD_CFUNC vector4(simd_uchar3  __xyz, unsigned char  __w) { simd_uchar4  __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_short4  SIMD_CFUNC vector4(simd_short3  __xyz, short          __w) { simd_short4  __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_ushort4 SIMD_CFUNC vector4(simd_ushort3 __xyz, unsigned short __w) { simd_ushort4 __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_int4    SIMD_CFUNC vector4(simd_int3    __xyz, int            __w) { simd_int4    __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_uint4   SIMD_CFUNC vector4(simd_uint3   __xyz, unsigned int   __w) { simd_uint4   __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_float4  SIMD_CFUNC vector4(simd_float3  __xyz, float          __w) { simd_float4  __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_long4   SIMD_CFUNC vector4(simd_long3   __xyz, simd_long1   __w) { simd_long4   __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_ulong4  SIMD_CFUNC vector4(simd_ulong3  __xyz, simd_ulong1  __w) { simd_ulong4  __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-static simd_double4 SIMD_CFUNC vector4(simd_double3 __xyz, double         __w) { simd_double4 __r; __r.xyz = __xyz; __r.w = __w; return __r; }
-
-static simd_char8   SIMD_CFUNC vector8(simd_char4   __lo, simd_char4   __hi) { simd_char8   __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_uchar8  SIMD_CFUNC vector8(simd_uchar4  __lo, simd_uchar4  __hi) { simd_uchar8  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_short8  SIMD_CFUNC vector8(simd_short4  __lo, simd_short4  __hi) { simd_short8  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_ushort8 SIMD_CFUNC vector8(simd_ushort4 __lo, simd_ushort4 __hi) { simd_ushort8 __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_int8    SIMD_CFUNC vector8(simd_int4    __lo, simd_int4    __hi) { simd_int8    __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_uint8   SIMD_CFUNC vector8(simd_uint4   __lo, simd_uint4   __hi) { simd_uint8   __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_float8  SIMD_CFUNC vector8(simd_float4  __lo, simd_float4  __hi) { simd_float8  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_long8   SIMD_CFUNC vector8(simd_long4   __lo, simd_long4   __hi) { simd_long8   __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_ulong8  SIMD_CFUNC vector8(simd_ulong4  __lo, simd_ulong4  __hi) { simd_ulong8  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_double8 SIMD_CFUNC vector8(simd_double4 __lo, simd_double4 __hi) { simd_double8 __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-
-static simd_char16   SIMD_CFUNC vector16(simd_char8   __lo, simd_char8   __hi) { simd_char16   __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_uchar16  SIMD_CFUNC vector16(simd_uchar8  __lo, simd_uchar8  __hi) { simd_uchar16  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_short16  SIMD_CFUNC vector16(simd_short8  __lo, simd_short8  __hi) { simd_short16  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_ushort16 SIMD_CFUNC vector16(simd_ushort8 __lo, simd_ushort8 __hi) { simd_ushort16 __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_int16    SIMD_CFUNC vector16(simd_int8    __lo, simd_int8    __hi) { simd_int16    __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_uint16   SIMD_CFUNC vector16(simd_uint8   __lo, simd_uint8   __hi) { simd_uint16   __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_float16  SIMD_CFUNC vector16(simd_float8  __lo, simd_float8  __hi) { simd_float16  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-
-static simd_char32   SIMD_CFUNC vector32(simd_char16   __lo, simd_char16   __hi) { simd_char32   __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_uchar32  SIMD_CFUNC vector32(simd_uchar16  __lo, simd_uchar16  __hi) { simd_uchar32  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_short32  SIMD_CFUNC vector32(simd_short16  __lo, simd_short16  __hi) { simd_short32  __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-static simd_ushort32 SIMD_CFUNC vector32(simd_ushort16 __lo, simd_ushort16 __hi) { simd_ushort32 __r; __r.lo = __lo; __r.hi = __hi; return __r; }
-
-#pragma mark - Implementation
-
-static simd_char2  SIMD_CFUNC simd_char(simd_char2    __x) { return __x; }
-static simd_char3  SIMD_CFUNC simd_char(simd_char3    __x) { return __x; }
-static simd_char4  SIMD_CFUNC simd_char(simd_char4    __x) { return __x; }
-static simd_char8  SIMD_CFUNC simd_char(simd_char8    __x) { return __x; }
-static simd_char16 SIMD_CFUNC simd_char(simd_char16   __x) { return __x; }
-static simd_char32 SIMD_CFUNC simd_char(simd_char32   __x) { return __x; }
-static simd_char2  SIMD_CFUNC simd_char(simd_uchar2   __x) { return (simd_char2)__x; }
-static simd_char3  SIMD_CFUNC simd_char(simd_uchar3   __x) { return (simd_char3)__x; }
-static simd_char4  SIMD_CFUNC simd_char(simd_uchar4   __x) { return (simd_char4)__x; }
-static simd_char8  SIMD_CFUNC simd_char(simd_uchar8   __x) { return (simd_char8)__x; }
-static simd_char16 SIMD_CFUNC simd_char(simd_uchar16  __x) { return (simd_char16)__x; }
-static simd_char32 SIMD_CFUNC simd_char(simd_uchar32  __x) { return (simd_char32)__x; }
-static simd_char2  SIMD_CFUNC simd_char(simd_short2   __x) { return __builtin_convertvector(__x & 0xff, simd_char2); }
-static simd_char3  SIMD_CFUNC simd_char(simd_short3   __x) { return __builtin_convertvector(__x & 0xff, simd_char3); }
-static simd_char4  SIMD_CFUNC simd_char(simd_short4   __x) { return __builtin_convertvector(__x & 0xff, simd_char4); }
-static simd_char8  SIMD_CFUNC simd_char(simd_short8   __x) { return __builtin_convertvector(__x & 0xff, simd_char8); }
-static simd_char16 SIMD_CFUNC simd_char(simd_short16  __x) { return __builtin_convertvector(__x & 0xff, simd_char16); }
-static simd_char32 SIMD_CFUNC simd_char(simd_short32  __x) { return __builtin_convertvector(__x & 0xff, simd_char32); }
-static simd_char2  SIMD_CFUNC simd_char(simd_ushort2  __x) { return simd_char(simd_short(__x)); }
-static simd_char3  SIMD_CFUNC simd_char(simd_ushort3  __x) { return simd_char(simd_short(__x)); }
-static simd_char4  SIMD_CFUNC simd_char(simd_ushort4  __x) { return simd_char(simd_short(__x)); }
-static simd_char8  SIMD_CFUNC simd_char(simd_ushort8  __x) { return simd_char(simd_short(__x)); }
-static simd_char16 SIMD_CFUNC simd_char(simd_ushort16 __x) { return simd_char(simd_short(__x)); }
-static simd_char32 SIMD_CFUNC simd_char(simd_ushort32 __x) { return simd_char(simd_short(__x)); }
-static simd_char2  SIMD_CFUNC simd_char(simd_int2     __x) { return simd_char(simd_short(__x)); }
-static simd_char3  SIMD_CFUNC simd_char(simd_int3     __x) { return simd_char(simd_short(__x)); }
-static simd_char4  SIMD_CFUNC simd_char(simd_int4     __x) { return simd_char(simd_short(__x)); }
-static simd_char8  SIMD_CFUNC simd_char(simd_int8     __x) { return simd_char(simd_short(__x)); }
-static simd_char16 SIMD_CFUNC simd_char(simd_int16    __x) { return simd_char(simd_short(__x)); }
-static simd_char2  SIMD_CFUNC simd_char(simd_uint2    __x) { return simd_char(simd_short(__x)); }
-static simd_char3  SIMD_CFUNC simd_char(simd_uint3    __x) { return simd_char(simd_short(__x)); }
-static simd_char4  SIMD_CFUNC simd_char(simd_uint4    __x) { return simd_char(simd_short(__x)); }
-static simd_char8  SIMD_CFUNC simd_char(simd_uint8    __x) { return simd_char(simd_short(__x)); }
-static simd_char16 SIMD_CFUNC simd_char(simd_uint16   __x) { return simd_char(simd_short(__x)); }
-static simd_char2  SIMD_CFUNC simd_char(simd_float2   __x) { return simd_char(simd_short(__x)); }
-static simd_char3  SIMD_CFUNC simd_char(simd_float3   __x) { return simd_char(simd_short(__x)); }
-static simd_char4  SIMD_CFUNC simd_char(simd_float4   __x) { return simd_char(simd_short(__x)); }
-static simd_char8  SIMD_CFUNC simd_char(simd_float8   __x) { return simd_char(simd_short(__x)); }
-static simd_char16 SIMD_CFUNC simd_char(simd_float16  __x) { return simd_char(simd_short(__x)); }
-static simd_char2  SIMD_CFUNC simd_char(simd_long2    __x) { return simd_char(simd_short(__x)); }
-static simd_char3  SIMD_CFUNC simd_char(simd_long3    __x) { return simd_char(simd_short(__x)); }
-static simd_char4  SIMD_CFUNC simd_char(simd_long4    __x) { return simd_char(simd_short(__x)); }
-static simd_char8  SIMD_CFUNC simd_char(simd_long8    __x) { return simd_char(simd_short(__x)); }
-static simd_char2  SIMD_CFUNC simd_char(simd_ulong2   __x) { return simd_char(simd_short(__x)); }
-static simd_char3  SIMD_CFUNC simd_char(simd_ulong3   __x) { return simd_char(simd_short(__x)); }
-static simd_char4  SIMD_CFUNC simd_char(simd_ulong4   __x) { return simd_char(simd_short(__x)); }
-static simd_char8  SIMD_CFUNC simd_char(simd_ulong8   __x) { return simd_char(simd_short(__x)); }
-static simd_char2  SIMD_CFUNC simd_char(simd_double2  __x) { return simd_char(simd_short(__x)); }
-static simd_char3  SIMD_CFUNC simd_char(simd_double3  __x) { return simd_char(simd_short(__x)); }
-static simd_char4  SIMD_CFUNC simd_char(simd_double4  __x) { return simd_char(simd_short(__x)); }
-static simd_char8  SIMD_CFUNC simd_char(simd_double8  __x) { return simd_char(simd_short(__x)); }
-    
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_char2    __x) { return __x; }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_char3    __x) { return __x; }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_char4    __x) { return __x; }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_char8    __x) { return __x; }
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_char16   __x) { return __x; }
-static simd_char32 SIMD_CFUNC simd_char_sat(simd_char32   __x) { return __x; }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_short2   __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_short3   __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_short4   __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_short8   __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_short16  __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char32 SIMD_CFUNC simd_char_sat(simd_short32  __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_int2     __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_int3     __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_int4     __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_int8     __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_int16    __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_float2   __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_float3   __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_float4   __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_float8   __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_float16  __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_long2    __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_long3    __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_long4    __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_long8    __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_double2  __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_double3  __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_double4  __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_double8  __x) { return simd_char(simd_clamp(__x,-0x80,0x7f)); }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_uchar2   __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_uchar3   __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_uchar4   __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_uchar8   __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_uchar16  __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char32 SIMD_CFUNC simd_char_sat(simd_uchar32  __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_ushort2  __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_ushort3  __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_ushort4  __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_ushort8  __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_ushort16 __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char32 SIMD_CFUNC simd_char_sat(simd_ushort32 __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_uint2    __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_uint3    __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_uint4    __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_uint8    __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char16 SIMD_CFUNC simd_char_sat(simd_uint16   __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char2  SIMD_CFUNC simd_char_sat(simd_ulong2   __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char3  SIMD_CFUNC simd_char_sat(simd_ulong3   __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char4  SIMD_CFUNC simd_char_sat(simd_ulong4   __x) { return simd_char(simd_min(__x,0x7f)); }
-static simd_char8  SIMD_CFUNC simd_char_sat(simd_ulong8   __x) { return simd_char(simd_min(__x,0x7f)); }
-
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_char2    __x) { return (simd_uchar2)__x; }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_char3    __x) { return (simd_uchar3)__x; }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_char4    __x) { return (simd_uchar4)__x; }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_char8    __x) { return (simd_uchar8)__x; }
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_char16   __x) { return (simd_uchar16)__x; }
-static simd_uchar32 SIMD_CFUNC simd_uchar(simd_char32   __x) { return (simd_uchar32)__x; }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_uchar2   __x) { return __x; }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_uchar3   __x) { return __x; }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_uchar4   __x) { return __x; }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_uchar8   __x) { return __x; }
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_uchar16  __x) { return __x; }
-static simd_uchar32 SIMD_CFUNC simd_uchar(simd_uchar32  __x) { return __x; }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_short2   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_short3   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_short4   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_short8   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_short16  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar32 SIMD_CFUNC simd_uchar(simd_short32  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_ushort2  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_ushort3  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_ushort4  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_ushort8  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_ushort16 __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar32 SIMD_CFUNC simd_uchar(simd_ushort32 __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_int2     __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_int3     __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_int4     __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_int8     __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_int16    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_uint2    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_uint3    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_uint4    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_uint8    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_uint16   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_float2   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_float3   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_float4   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_float8   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar(simd_float16  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_long2    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_long3    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_long4    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_long8    __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_ulong2   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_ulong3   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_ulong4   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_ulong8   __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar(simd_double2  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar(simd_double3  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar(simd_double4  __x) { return simd_uchar(simd_char(__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar(simd_double8  __x) { return simd_uchar(simd_char(__x)); }
-    
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_char2    __x) { return simd_uchar(simd_max(0,__x)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_char3    __x) { return simd_uchar(simd_max(0,__x)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_char4    __x) { return simd_uchar(simd_max(0,__x)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_char8    __x) { return simd_uchar(simd_max(0,__x)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_char16   __x) { return simd_uchar(simd_max(0,__x)); }
-static simd_uchar32 SIMD_CFUNC simd_uchar_sat(simd_char32   __x) { return simd_uchar(simd_max(0,__x)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_short2   __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_short3   __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_short4   __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_short8   __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_short16  __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar32 SIMD_CFUNC simd_uchar_sat(simd_short32  __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_int2     __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_int3     __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_int4     __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_int8     __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_int16    __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_float2   __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_float3   __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_float4   __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_float8   __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_float16  __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_long2    __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_long3    __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_long4    __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_long8    __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_double2  __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_double3  __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_double4  __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_double8  __x) { return simd_uchar(simd_clamp(__x,0,0xff)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_uchar2   __x) { return __x; }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_uchar3   __x) { return __x; }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_uchar4   __x) { return __x; }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_uchar8   __x) { return __x; }
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_uchar16  __x) { return __x; }
-static simd_uchar32 SIMD_CFUNC simd_uchar_sat(simd_uchar32  __x) { return __x; }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_ushort2  __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_ushort3  __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_ushort4  __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_ushort8  __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_ushort16 __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar32 SIMD_CFUNC simd_uchar_sat(simd_ushort32 __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_uint2    __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_uint3    __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_uint4    __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_uint8    __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar16 SIMD_CFUNC simd_uchar_sat(simd_uint16   __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar2  SIMD_CFUNC simd_uchar_sat(simd_ulong2   __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar3  SIMD_CFUNC simd_uchar_sat(simd_ulong3   __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar4  SIMD_CFUNC simd_uchar_sat(simd_ulong4   __x) { return simd_uchar(simd_min(__x,0xff)); }
-static simd_uchar8  SIMD_CFUNC simd_uchar_sat(simd_ulong8   __x) { return simd_uchar(simd_min(__x,0xff)); }
-
-static simd_short2  SIMD_CFUNC simd_short(simd_char2    __x) { return __builtin_convertvector(__x, simd_short2); }
-static simd_short3  SIMD_CFUNC simd_short(simd_char3    __x) { return __builtin_convertvector(__x, simd_short3); }
-static simd_short4  SIMD_CFUNC simd_short(simd_char4    __x) { return __builtin_convertvector(__x, simd_short4); }
-static simd_short8  SIMD_CFUNC simd_short(simd_char8    __x) { return __builtin_convertvector(__x, simd_short8); }
-static simd_short16 SIMD_CFUNC simd_short(simd_char16   __x) { return __builtin_convertvector(__x, simd_short16); }
-static simd_short32 SIMD_CFUNC simd_short(simd_char32   __x) { return __builtin_convertvector(__x, simd_short32); }
-static simd_short2  SIMD_CFUNC simd_short(simd_uchar2   __x) { return __builtin_convertvector(__x, simd_short2); }
-static simd_short3  SIMD_CFUNC simd_short(simd_uchar3   __x) { return __builtin_convertvector(__x, simd_short3); }
-static simd_short4  SIMD_CFUNC simd_short(simd_uchar4   __x) { return __builtin_convertvector(__x, simd_short4); }
-static simd_short8  SIMD_CFUNC simd_short(simd_uchar8   __x) { return __builtin_convertvector(__x, simd_short8); }
-static simd_short16 SIMD_CFUNC simd_short(simd_uchar16  __x) { return __builtin_convertvector(__x, simd_short16); }
-static simd_short32 SIMD_CFUNC simd_short(simd_uchar32  __x) { return __builtin_convertvector(__x, simd_short32); }
-static simd_short2  SIMD_CFUNC simd_short(simd_short2   __x) { return __x; }
-static simd_short3  SIMD_CFUNC simd_short(simd_short3   __x) { return __x; }
-static simd_short4  SIMD_CFUNC simd_short(simd_short4   __x) { return __x; }
-static simd_short8  SIMD_CFUNC simd_short(simd_short8   __x) { return __x; }
-static simd_short16 SIMD_CFUNC simd_short(simd_short16  __x) { return __x; }
-static simd_short32 SIMD_CFUNC simd_short(simd_short32  __x) { return __x; }
-static simd_short2  SIMD_CFUNC simd_short(simd_ushort2  __x) { return (simd_short2)__x; }
-static simd_short3  SIMD_CFUNC simd_short(simd_ushort3  __x) { return (simd_short3)__x; }
-static simd_short4  SIMD_CFUNC simd_short(simd_ushort4  __x) { return (simd_short4)__x; }
-static simd_short8  SIMD_CFUNC simd_short(simd_ushort8  __x) { return (simd_short8)__x; }
-static simd_short16 SIMD_CFUNC simd_short(simd_ushort16 __x) { return (simd_short16)__x; }
-static simd_short32 SIMD_CFUNC simd_short(simd_ushort32 __x) { return (simd_short32)__x; }
-static simd_short2  SIMD_CFUNC simd_short(simd_int2     __x) { return __builtin_convertvector(__x & 0xffff, simd_short2); }
-static simd_short3  SIMD_CFUNC simd_short(simd_int3     __x) { return __builtin_convertvector(__x & 0xffff, simd_short3); }
-static simd_short4  SIMD_CFUNC simd_short(simd_int4     __x) { return __builtin_convertvector(__x & 0xffff, simd_short4); }
-static simd_short8  SIMD_CFUNC simd_short(simd_int8     __x) { return __builtin_convertvector(__x & 0xffff, simd_short8); }
-static simd_short16 SIMD_CFUNC simd_short(simd_int16    __x) { return __builtin_convertvector(__x & 0xffff, simd_short16); }
-static simd_short2  SIMD_CFUNC simd_short(simd_uint2    __x) { return simd_short(simd_int(__x)); }
-static simd_short3  SIMD_CFUNC simd_short(simd_uint3    __x) { return simd_short(simd_int(__x)); }
-static simd_short4  SIMD_CFUNC simd_short(simd_uint4    __x) { return simd_short(simd_int(__x)); }
-static simd_short8  SIMD_CFUNC simd_short(simd_uint8    __x) { return simd_short(simd_int(__x)); }
-static simd_short16 SIMD_CFUNC simd_short(simd_uint16   __x) { return simd_short(simd_int(__x)); }
-static simd_short2  SIMD_CFUNC simd_short(simd_float2   __x) { return simd_short(simd_int(__x)); }
-static simd_short3  SIMD_CFUNC simd_short(simd_float3   __x) { return simd_short(simd_int(__x)); }
-static simd_short4  SIMD_CFUNC simd_short(simd_float4   __x) { return simd_short(simd_int(__x)); }
-static simd_short8  SIMD_CFUNC simd_short(simd_float8   __x) { return simd_short(simd_int(__x)); }
-static simd_short16 SIMD_CFUNC simd_short(simd_float16  __x) { return simd_short(simd_int(__x)); }
-static simd_short2  SIMD_CFUNC simd_short(simd_long2    __x) { return simd_short(simd_int(__x)); }
-static simd_short3  SIMD_CFUNC simd_short(simd_long3    __x) { return simd_short(simd_int(__x)); }
-static simd_short4  SIMD_CFUNC simd_short(simd_long4    __x) { return simd_short(simd_int(__x)); }
-static simd_short8  SIMD_CFUNC simd_short(simd_long8    __x) { return simd_short(simd_int(__x)); }
-static simd_short2  SIMD_CFUNC simd_short(simd_ulong2   __x) { return simd_short(simd_int(__x)); }
-static simd_short3  SIMD_CFUNC simd_short(simd_ulong3   __x) { return simd_short(simd_int(__x)); }
-static simd_short4  SIMD_CFUNC simd_short(simd_ulong4   __x) { return simd_short(simd_int(__x)); }
-static simd_short8  SIMD_CFUNC simd_short(simd_ulong8   __x) { return simd_short(simd_int(__x)); }
-static simd_short2  SIMD_CFUNC simd_short(simd_double2  __x) { return simd_short(simd_int(__x)); }
-static simd_short3  SIMD_CFUNC simd_short(simd_double3  __x) { return simd_short(simd_int(__x)); }
-static simd_short4  SIMD_CFUNC simd_short(simd_double4  __x) { return simd_short(simd_int(__x)); }
-static simd_short8  SIMD_CFUNC simd_short(simd_double8  __x) { return simd_short(simd_int(__x)); }
-    
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_char2    __x) { return simd_short(__x); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_char3    __x) { return simd_short(__x); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_char4    __x) { return simd_short(__x); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_char8    __x) { return simd_short(__x); }
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_char16   __x) { return simd_short(__x); }
-static simd_short32 SIMD_CFUNC simd_short_sat(simd_char32   __x) { return simd_short(__x); }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_short2   __x) { return __x; }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_short3   __x) { return __x; }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_short4   __x) { return __x; }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_short8   __x) { return __x; }
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_short16  __x) { return __x; }
-static simd_short32 SIMD_CFUNC simd_short_sat(simd_short32  __x) { return __x; }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_int2     __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_int3     __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_int4     __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_int8     __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_int16    __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_float2   __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_float3   __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_float4   __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_float8   __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_float16  __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_long2    __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_long3    __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_long4    __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_long8    __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_double2  __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_double3  __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_double4  __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_double8  __x) { return simd_short(simd_clamp(__x,-0x8000,0x7fff)); }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_uchar2   __x) { return simd_short(__x); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_uchar3   __x) { return simd_short(__x); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_uchar4   __x) { return simd_short(__x); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_uchar8   __x) { return simd_short(__x); }
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_uchar16  __x) { return simd_short(__x); }
-static simd_short32 SIMD_CFUNC simd_short_sat(simd_uchar32  __x) { return simd_short(__x); }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_ushort2  __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_ushort3  __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_ushort4  __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_ushort8  __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_ushort16 __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short32 SIMD_CFUNC simd_short_sat(simd_ushort32 __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_uint2    __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_uint3    __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_uint4    __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_uint8    __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short16 SIMD_CFUNC simd_short_sat(simd_uint16   __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short2  SIMD_CFUNC simd_short_sat(simd_ulong2   __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short3  SIMD_CFUNC simd_short_sat(simd_ulong3   __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short4  SIMD_CFUNC simd_short_sat(simd_ulong4   __x) { return simd_short(simd_min(__x,0x7fff)); }
-static simd_short8  SIMD_CFUNC simd_short_sat(simd_ulong8   __x) { return simd_short(simd_min(__x,0x7fff)); }
-
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_char2    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_char3    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_char4    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_char8    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_char16   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort32 SIMD_CFUNC simd_ushort(simd_char32   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_uchar2   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_uchar3   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_uchar4   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_uchar8   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_uchar16  __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort32 SIMD_CFUNC simd_ushort(simd_uchar32  __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_short2   __x) { return (simd_ushort2)__x; }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_short3   __x) { return (simd_ushort3)__x; }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_short4   __x) { return (simd_ushort4)__x; }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_short8   __x) { return (simd_ushort8)__x; }
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_short16  __x) { return (simd_ushort16)__x; }
-static simd_ushort32 SIMD_CFUNC simd_ushort(simd_short32  __x) { return (simd_ushort32)__x; }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_ushort2  __x) { return __x; }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_ushort3  __x) { return __x; }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_ushort4  __x) { return __x; }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_ushort8  __x) { return __x; }
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_ushort16 __x) { return __x; }
-static simd_ushort32 SIMD_CFUNC simd_ushort(simd_ushort32 __x) { return __x; }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_int2     __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_int3     __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_int4     __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_int8     __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_int16    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_uint2    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_uint3    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_uint4    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_uint8    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_uint16   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_float2   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_float3   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_float4   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_float8   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort(simd_float16  __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_long2    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_long3    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_long4    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_long8    __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_ulong2   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_ulong3   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_ulong4   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_ulong8   __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort(simd_double2  __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort(simd_double3  __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort(simd_double4  __x) { return simd_ushort(simd_short(__x)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort(simd_double8  __x) { return simd_ushort(simd_short(__x)); }
-    
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_char2    __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_char3    __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_char4    __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_char8    __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_char16   __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort32 SIMD_CFUNC simd_ushort_sat(simd_char32   __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_short2   __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_short3   __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_short4   __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_short8   __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_short16  __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort32 SIMD_CFUNC simd_ushort_sat(simd_short32  __x) { return simd_ushort(simd_max(__x, 0)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_int2     __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_int3     __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_int4     __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_int8     __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_int16    __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_float2   __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_float3   __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_float4   __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_float8   __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_float16  __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_long2    __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_long3    __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_long4    __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_long8    __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_double2  __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_double3  __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_double4  __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_double8  __x) { return simd_ushort(simd_clamp(__x, 0, 0xffff)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_uchar2   __x) { return simd_ushort(__x); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_uchar3   __x) { return simd_ushort(__x); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_uchar4   __x) { return simd_ushort(__x); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_uchar8   __x) { return simd_ushort(__x); }
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_uchar16  __x) { return simd_ushort(__x); }
-static simd_ushort32 SIMD_CFUNC simd_ushort_sat(simd_uchar32  __x) { return simd_ushort(__x); }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_ushort2  __x) { return __x; }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_ushort3  __x) { return __x; }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_ushort4  __x) { return __x; }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_ushort8  __x) { return __x; }
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_ushort16 __x) { return __x; }
-static simd_ushort32 SIMD_CFUNC simd_ushort_sat(simd_ushort32 __x) { return __x; }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_uint2    __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_uint3    __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_uint4    __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_uint8    __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-static simd_ushort16 SIMD_CFUNC simd_ushort_sat(simd_uint16   __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-static simd_ushort2  SIMD_CFUNC simd_ushort_sat(simd_ulong2   __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-static simd_ushort3  SIMD_CFUNC simd_ushort_sat(simd_ulong3   __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-static simd_ushort4  SIMD_CFUNC simd_ushort_sat(simd_ulong4   __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-static simd_ushort8  SIMD_CFUNC simd_ushort_sat(simd_ulong8   __x) { return simd_ushort(simd_min(__x, 0xffff)); }
-
-static simd_int2  SIMD_CFUNC simd_int(simd_char2    __x) { return __builtin_convertvector(__x, simd_int2); }
-static simd_int3  SIMD_CFUNC simd_int(simd_char3    __x) { return __builtin_convertvector(__x, simd_int3); }
-static simd_int4  SIMD_CFUNC simd_int(simd_char4    __x) { return __builtin_convertvector(__x, simd_int4); }
-static simd_int8  SIMD_CFUNC simd_int(simd_char8    __x) { return __builtin_convertvector(__x, simd_int8); }
-static simd_int16 SIMD_CFUNC simd_int(simd_char16   __x) { return __builtin_convertvector(__x, simd_int16); }
-static simd_int2  SIMD_CFUNC simd_int(simd_uchar2   __x) { return __builtin_convertvector(__x, simd_int2); }
-static simd_int3  SIMD_CFUNC simd_int(simd_uchar3   __x) { return __builtin_convertvector(__x, simd_int3); }
-static simd_int4  SIMD_CFUNC simd_int(simd_uchar4   __x) { return __builtin_convertvector(__x, simd_int4); }
-static simd_int8  SIMD_CFUNC simd_int(simd_uchar8   __x) { return __builtin_convertvector(__x, simd_int8); }
-static simd_int16 SIMD_CFUNC simd_int(simd_uchar16  __x) { return __builtin_convertvector(__x, simd_int16); }
-static simd_int2  SIMD_CFUNC simd_int(simd_short2   __x) { return __builtin_convertvector(__x, simd_int2); }
-static simd_int3  SIMD_CFUNC simd_int(simd_short3   __x) { return __builtin_convertvector(__x, simd_int3); }
-static simd_int4  SIMD_CFUNC simd_int(simd_short4   __x) { return __builtin_convertvector(__x, simd_int4); }
-static simd_int8  SIMD_CFUNC simd_int(simd_short8   __x) { return __builtin_convertvector(__x, simd_int8); }
-static simd_int16 SIMD_CFUNC simd_int(simd_short16  __x) { return __builtin_convertvector(__x, simd_int16); }
-static simd_int2  SIMD_CFUNC simd_int(simd_ushort2  __x) { return __builtin_convertvector(__x, simd_int2); }
-static simd_int3  SIMD_CFUNC simd_int(simd_ushort3  __x) { return __builtin_convertvector(__x, simd_int3); }
-static simd_int4  SIMD_CFUNC simd_int(simd_ushort4  __x) { return __builtin_convertvector(__x, simd_int4); }
-static simd_int8  SIMD_CFUNC simd_int(simd_ushort8  __x) { return __builtin_convertvector(__x, simd_int8); }
-static simd_int16 SIMD_CFUNC simd_int(simd_ushort16 __x) { return __builtin_convertvector(__x, simd_int16); }
-static simd_int2  SIMD_CFUNC simd_int(simd_int2     __x) { return __x; }
-static simd_int3  SIMD_CFUNC simd_int(simd_int3     __x) { return __x; }
-static simd_int4  SIMD_CFUNC simd_int(simd_int4     __x) { return __x; }
-static simd_int8  SIMD_CFUNC simd_int(simd_int8     __x) { return __x; }
-static simd_int16 SIMD_CFUNC simd_int(simd_int16    __x) { return __x; }
-static simd_int2  SIMD_CFUNC simd_int(simd_uint2    __x) { return (simd_int2)__x; }
-static simd_int3  SIMD_CFUNC simd_int(simd_uint3    __x) { return (simd_int3)__x; }
-static simd_int4  SIMD_CFUNC simd_int(simd_uint4    __x) { return (simd_int4)__x; }
-static simd_int8  SIMD_CFUNC simd_int(simd_uint8    __x) { return (simd_int8)__x; }
-static simd_int16 SIMD_CFUNC simd_int(simd_uint16   __x) { return (simd_int16)__x; }
-static simd_int2  SIMD_CFUNC simd_int(simd_float2   __x) { return __builtin_convertvector(__x, simd_int2); }
-static simd_int3  SIMD_CFUNC simd_int(simd_float3   __x) { return __builtin_convertvector(__x, simd_int3); }
-static simd_int4  SIMD_CFUNC simd_int(simd_float4   __x) { return __builtin_convertvector(__x, simd_int4); }
-static simd_int8  SIMD_CFUNC simd_int(simd_float8   __x) { return __builtin_convertvector(__x, simd_int8); }
-static simd_int16 SIMD_CFUNC simd_int(simd_float16  __x) { return __builtin_convertvector(__x, simd_int16); }
-static simd_int2  SIMD_CFUNC simd_int(simd_long2    __x) { return __builtin_convertvector(__x & 0xffffffff, simd_int2); }
-static simd_int3  SIMD_CFUNC simd_int(simd_long3    __x) { return __builtin_convertvector(__x & 0xffffffff, simd_int3); }
-static simd_int4  SIMD_CFUNC simd_int(simd_long4    __x) { return __builtin_convertvector(__x & 0xffffffff, simd_int4); }
-static simd_int8  SIMD_CFUNC simd_int(simd_long8    __x) { return __builtin_convertvector(__x & 0xffffffff, simd_int8); }
-static simd_int2  SIMD_CFUNC simd_int(simd_ulong2   __x) { return simd_int(simd_long(__x)); }
-static simd_int3  SIMD_CFUNC simd_int(simd_ulong3   __x) { return simd_int(simd_long(__x)); }
-static simd_int4  SIMD_CFUNC simd_int(simd_ulong4   __x) { return simd_int(simd_long(__x)); }
-static simd_int8  SIMD_CFUNC simd_int(simd_ulong8   __x) { return simd_int(simd_long(__x)); }
-static simd_int2  SIMD_CFUNC simd_int(simd_double2  __x) { return __builtin_convertvector(__x, simd_int2); }
-static simd_int3  SIMD_CFUNC simd_int(simd_double3  __x) { return __builtin_convertvector(__x, simd_int3); }
-static simd_int4  SIMD_CFUNC simd_int(simd_double4  __x) { return __builtin_convertvector(__x, simd_int4); }
-static simd_int8  SIMD_CFUNC simd_int(simd_double8  __x) { return __builtin_convertvector(__x, simd_int8); }
-    
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_char2    __x) { return simd_int(__x); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_char3    __x) { return simd_int(__x); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_char4    __x) { return simd_int(__x); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_char8    __x) { return simd_int(__x); }
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_char16   __x) { return simd_int(__x); }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_short2   __x) { return simd_int(__x); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_short3   __x) { return simd_int(__x); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_short4   __x) { return simd_int(__x); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_short8   __x) { return simd_int(__x); }
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_short16  __x) { return simd_int(__x); }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_int2     __x) { return __x; }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_int3     __x) { return __x; }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_int4     __x) { return __x; }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_int8     __x) { return __x; }
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_int16    __x) { return __x; }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_float2   __x) { return simd_bitselect(simd_int(simd_max(__x,-0x1.0p31f)), 0x7fffffff, __x >= 0x1.0p31f); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_float3   __x) { return simd_bitselect(simd_int(simd_max(__x,-0x1.0p31f)), 0x7fffffff, __x >= 0x1.0p31f); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_float4   __x) { return simd_bitselect(simd_int(simd_max(__x,-0x1.0p31f)), 0x7fffffff, __x >= 0x1.0p31f); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_float8   __x) { return simd_bitselect(simd_int(simd_max(__x,-0x1.0p31f)), 0x7fffffff, __x >= 0x1.0p31f); }
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_float16  __x) { return simd_bitselect(simd_int(simd_max(__x,-0x1.0p31f)), 0x7fffffff, __x >= 0x1.0p31f); }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_long2    __x) { return simd_int(simd_clamp(__x,-0x80000000LL,0x7fffffffLL)); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_long3    __x) { return simd_int(simd_clamp(__x,-0x80000000LL,0x7fffffffLL)); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_long4    __x) { return simd_int(simd_clamp(__x,-0x80000000LL,0x7fffffffLL)); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_long8    __x) { return simd_int(simd_clamp(__x,-0x80000000LL,0x7fffffffLL)); }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_double2  __x) { return simd_int(simd_clamp(__x,-0x1.0p31,0x1.fffffffcp30)); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_double3  __x) { return simd_int(simd_clamp(__x,-0x1.0p31,0x1.fffffffcp30)); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_double4  __x) { return simd_int(simd_clamp(__x,-0x1.0p31,0x1.fffffffcp30)); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_double8  __x) { return simd_int(simd_clamp(__x,-0x1.0p31,0x1.fffffffcp30)); }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_uchar2   __x) { return simd_int(__x); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_uchar3   __x) { return simd_int(__x); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_uchar4   __x) { return simd_int(__x); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_uchar8   __x) { return simd_int(__x); }
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_uchar16  __x) { return simd_int(__x); }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_ushort2  __x) { return simd_int(__x); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_ushort3  __x) { return simd_int(__x); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_ushort4  __x) { return simd_int(__x); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_ushort8  __x) { return simd_int(__x); }
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_ushort16 __x) { return simd_int(__x); }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_uint2    __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_uint3    __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_uint4    __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_uint8    __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-static simd_int16 SIMD_CFUNC simd_int_sat(simd_uint16   __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-static simd_int2  SIMD_CFUNC simd_int_sat(simd_ulong2   __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-static simd_int3  SIMD_CFUNC simd_int_sat(simd_ulong3   __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-static simd_int4  SIMD_CFUNC simd_int_sat(simd_ulong4   __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-static simd_int8  SIMD_CFUNC simd_int_sat(simd_ulong8   __x) { return simd_int(simd_min(__x,0x7fffffff)); }
-
-static simd_uint2  SIMD_CFUNC simd_uint(simd_char2    __x) { return simd_uint(simd_int(__x)); }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_char3    __x) { return simd_uint(simd_int(__x)); }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_char4    __x) { return simd_uint(simd_int(__x)); }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_char8    __x) { return simd_uint(simd_int(__x)); }
-static simd_uint16 SIMD_CFUNC simd_uint(simd_char16   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_uchar2   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_uchar3   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_uchar4   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_uchar8   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint16 SIMD_CFUNC simd_uint(simd_uchar16  __x) { return simd_uint(simd_int(__x)); }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_short2   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_short3   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_short4   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_short8   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint16 SIMD_CFUNC simd_uint(simd_short16  __x) { return simd_uint(simd_int(__x)); }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_ushort2  __x) { return simd_uint(simd_int(__x)); }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_ushort3  __x) { return simd_uint(simd_int(__x)); }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_ushort4  __x) { return simd_uint(simd_int(__x)); }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_ushort8  __x) { return simd_uint(simd_int(__x)); }
-static simd_uint16 SIMD_CFUNC simd_uint(simd_ushort16 __x) { return simd_uint(simd_int(__x)); }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_int2     __x) { return (simd_uint2)__x; }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_int3     __x) { return (simd_uint3)__x; }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_int4     __x) { return (simd_uint4)__x; }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_int8     __x) { return (simd_uint8)__x; }
-static simd_uint16 SIMD_CFUNC simd_uint(simd_int16    __x) { return (simd_uint16)__x; }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_uint2    __x) { return __x; }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_uint3    __x) { return __x; }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_uint4    __x) { return __x; }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_uint8    __x) { return __x; }
-static simd_uint16 SIMD_CFUNC simd_uint(simd_uint16   __x) { return __x; }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_float2   __x) { simd_int2  __big = __x > 0x1.0p31f; return simd_uint(simd_int(__x - simd_bitselect((simd_float2)0,0x1.0p31f,__big))) + simd_bitselect((simd_uint2)0,0x80000000,__big); }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_float3   __x) { simd_int3  __big = __x > 0x1.0p31f; return simd_uint(simd_int(__x - simd_bitselect((simd_float3)0,0x1.0p31f,__big))) + simd_bitselect((simd_uint3)0,0x80000000,__big); }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_float4   __x) { simd_int4  __big = __x > 0x1.0p31f; return simd_uint(simd_int(__x - simd_bitselect((simd_float4)0,0x1.0p31f,__big))) + simd_bitselect((simd_uint4)0,0x80000000,__big); }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_float8   __x) { simd_int8  __big = __x > 0x1.0p31f; return simd_uint(simd_int(__x - simd_bitselect((simd_float8)0,0x1.0p31f,__big))) + simd_bitselect((simd_uint8)0,0x80000000,__big); }
-static simd_uint16 SIMD_CFUNC simd_uint(simd_float16  __x) { simd_int16 __big = __x > 0x1.0p31f; return simd_uint(simd_int(__x - simd_bitselect((simd_float16)0,0x1.0p31f,__big))) + simd_bitselect((simd_uint16)0,0x80000000,__big); }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_long2    __x) { return simd_uint(simd_int(__x)); }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_long3    __x) { return simd_uint(simd_int(__x)); }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_long4    __x) { return simd_uint(simd_int(__x)); }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_long8    __x) { return simd_uint(simd_int(__x)); }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_ulong2   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_ulong3   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_ulong4   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_ulong8   __x) { return simd_uint(simd_int(__x)); }
-static simd_uint2  SIMD_CFUNC simd_uint(simd_double2  __x) { simd_long2 __big = __x > 0x1.fffffffcp30; return simd_uint(simd_int(__x - simd_bitselect((simd_double2)0,0x1.0p31,__big))) + simd_bitselect((simd_uint2)0,0x80000000,simd_int(__big)); }
-static simd_uint3  SIMD_CFUNC simd_uint(simd_double3  __x) { simd_long3 __big = __x > 0x1.fffffffcp30; return simd_uint(simd_int(__x - simd_bitselect((simd_double3)0,0x1.0p31,__big))) + simd_bitselect((simd_uint3)0,0x80000000,simd_int(__big)); }
-static simd_uint4  SIMD_CFUNC simd_uint(simd_double4  __x) { simd_long4 __big = __x > 0x1.fffffffcp30; return simd_uint(simd_int(__x - simd_bitselect((simd_double4)0,0x1.0p31,__big))) + simd_bitselect((simd_uint4)0,0x80000000,simd_int(__big)); }
-static simd_uint8  SIMD_CFUNC simd_uint(simd_double8  __x) { simd_long8 __big = __x > 0x1.fffffffcp30; return simd_uint(simd_int(__x - simd_bitselect((simd_double8)0,0x1.0p31,__big))) + simd_bitselect((simd_uint8)0,0x80000000,simd_int(__big)); }
-    
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_char2    __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_char3    __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_char4    __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_char8    __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_char16   __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_short2   __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_short3   __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_short4   __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_short8   __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_short16  __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_int2     __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_int3     __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_int4     __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_int8     __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_int16    __x) { return simd_uint(simd_max(__x,0)); }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_float2   __x) { return simd_bitselect(simd_uint(simd_max(__x,0)), 0xffffffff, __x >= 0x1.0p32f); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_float3   __x) { return simd_bitselect(simd_uint(simd_max(__x,0)), 0xffffffff, __x >= 0x1.0p32f); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_float4   __x) { return simd_bitselect(simd_uint(simd_max(__x,0)), 0xffffffff, __x >= 0x1.0p32f); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_float8   __x) { return simd_bitselect(simd_uint(simd_max(__x,0)), 0xffffffff, __x >= 0x1.0p32f); }
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_float16  __x) { return simd_bitselect(simd_uint(simd_max(__x,0)), 0xffffffff, __x >= 0x1.0p32f); }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_long2    __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_long3    __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_long4    __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_long8    __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_double2  __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_double3  __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_double4  __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_double8  __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_uchar2   __x) { return simd_uint(__x); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_uchar3   __x) { return simd_uint(__x); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_uchar4   __x) { return simd_uint(__x); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_uchar8   __x) { return simd_uint(__x); }
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_uchar16  __x) { return simd_uint(__x); }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_ushort2  __x) { return simd_uint(__x); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_ushort3  __x) { return simd_uint(__x); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_ushort4  __x) { return simd_uint(__x); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_ushort8  __x) { return simd_uint(__x); }
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_ushort16 __x) { return simd_uint(__x); }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_uint2    __x) { return __x; }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_uint3    __x) { return __x; }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_uint4    __x) { return __x; }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_uint8    __x) { return __x; }
-static simd_uint16 SIMD_CFUNC simd_uint_sat(simd_uint16   __x) { return __x; }
-static simd_uint2  SIMD_CFUNC simd_uint_sat(simd_ulong2   __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint3  SIMD_CFUNC simd_uint_sat(simd_ulong3   __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint4  SIMD_CFUNC simd_uint_sat(simd_ulong4   __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-static simd_uint8  SIMD_CFUNC simd_uint_sat(simd_ulong8   __x) { return simd_uint(simd_clamp(__x,0,0xffffffff)); }
-
-static simd_float2  SIMD_CFUNC simd_float(simd_char2    __x) { return (simd_float2)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float3  SIMD_CFUNC simd_float(simd_char3    __x) { return (simd_float3)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float4  SIMD_CFUNC simd_float(simd_char4    __x) { return (simd_float4)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float8  SIMD_CFUNC simd_float(simd_char8    __x) { return (simd_float8)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float16 SIMD_CFUNC simd_float(simd_char16   __x) { return (simd_float16)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float2  SIMD_CFUNC simd_float(simd_uchar2   __x) { return (simd_float2)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float3  SIMD_CFUNC simd_float(simd_uchar3   __x) { return (simd_float3)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float4  SIMD_CFUNC simd_float(simd_uchar4   __x) { return (simd_float4)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float8  SIMD_CFUNC simd_float(simd_uchar8   __x) { return (simd_float8)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float16 SIMD_CFUNC simd_float(simd_uchar16  __x) { return (simd_float16)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float2  SIMD_CFUNC simd_float(simd_short2   __x) { return (simd_float2)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float3  SIMD_CFUNC simd_float(simd_short3   __x) { return (simd_float3)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float4  SIMD_CFUNC simd_float(simd_short4   __x) { return (simd_float4)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float8  SIMD_CFUNC simd_float(simd_short8   __x) { return (simd_float8)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float16 SIMD_CFUNC simd_float(simd_short16  __x) { return (simd_float16)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float2  SIMD_CFUNC simd_float(simd_ushort2  __x) { return (simd_float2)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float3  SIMD_CFUNC simd_float(simd_ushort3  __x) { return (simd_float3)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float4  SIMD_CFUNC simd_float(simd_ushort4  __x) { return (simd_float4)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float8  SIMD_CFUNC simd_float(simd_ushort8  __x) { return (simd_float8)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float16 SIMD_CFUNC simd_float(simd_ushort16 __x) { return (simd_float16)(simd_int(__x) + 0x4b400000) - 0x1.8p23f; }
-static simd_float2  SIMD_CFUNC simd_float(simd_int2     __x) { return __builtin_convertvector(__x,simd_float2); }
-static simd_float3  SIMD_CFUNC simd_float(simd_int3     __x) { return __builtin_convertvector(__x,simd_float3); }
-static simd_float4  SIMD_CFUNC simd_float(simd_int4     __x) { return __builtin_convertvector(__x,simd_float4); }
-static simd_float8  SIMD_CFUNC simd_float(simd_int8     __x) { return __builtin_convertvector(__x,simd_float8); }
-static simd_float16 SIMD_CFUNC simd_float(simd_int16    __x) { return __builtin_convertvector(__x,simd_float16); }
-static simd_float2  SIMD_CFUNC simd_float(simd_uint2    __x) { return __builtin_convertvector(__x,simd_float2); }
-static simd_float3  SIMD_CFUNC simd_float(simd_uint3    __x) { return __builtin_convertvector(__x,simd_float3); }
-static simd_float4  SIMD_CFUNC simd_float(simd_uint4    __x) { return __builtin_convertvector(__x,simd_float4); }
-static simd_float8  SIMD_CFUNC simd_float(simd_uint8    __x) { return __builtin_convertvector(__x,simd_float8); }
-static simd_float16 SIMD_CFUNC simd_float(simd_uint16   __x) { return __builtin_convertvector(__x,simd_float16); }
-static simd_float2  SIMD_CFUNC simd_float(simd_float2   __x) { return __x; }
-static simd_float3  SIMD_CFUNC simd_float(simd_float3   __x) { return __x; }
-static simd_float4  SIMD_CFUNC simd_float(simd_float4   __x) { return __x; }
-static simd_float8  SIMD_CFUNC simd_float(simd_float8   __x) { return __x; }
-static simd_float16 SIMD_CFUNC simd_float(simd_float16  __x) { return __x; }
-static simd_float2  SIMD_CFUNC simd_float(simd_long2    __x) { return __builtin_convertvector(__x,simd_float2); }
-static simd_float3  SIMD_CFUNC simd_float(simd_long3    __x) { return __builtin_convertvector(__x,simd_float3); }
-static simd_float4  SIMD_CFUNC simd_float(simd_long4    __x) { return __builtin_convertvector(__x,simd_float4); }
-static simd_float8  SIMD_CFUNC simd_float(simd_long8    __x) { return __builtin_convertvector(__x,simd_float8); }
-static simd_float2  SIMD_CFUNC simd_float(simd_ulong2   __x) { return __builtin_convertvector(__x,simd_float2); }
-static simd_float3  SIMD_CFUNC simd_float(simd_ulong3   __x) { return __builtin_convertvector(__x,simd_float3); }
-static simd_float4  SIMD_CFUNC simd_float(simd_ulong4   __x) { return __builtin_convertvector(__x,simd_float4); }
-static simd_float8  SIMD_CFUNC simd_float(simd_ulong8   __x) { return __builtin_convertvector(__x,simd_float8); }
-static simd_float2  SIMD_CFUNC simd_float(simd_double2  __x) { return __builtin_convertvector(__x,simd_float2); }
-static simd_float3  SIMD_CFUNC simd_float(simd_double3  __x) { return __builtin_convertvector(__x,simd_float3); }
-static simd_float4  SIMD_CFUNC simd_float(simd_double4  __x) { return __builtin_convertvector(__x,simd_float4); }
-static simd_float8  SIMD_CFUNC simd_float(simd_double8  __x) { return __builtin_convertvector(__x,simd_float8); }
-
-static simd_long2  SIMD_CFUNC simd_long(simd_char2    __x) { return __builtin_convertvector(__x,simd_long2); }
-static simd_long3  SIMD_CFUNC simd_long(simd_char3    __x) { return __builtin_convertvector(__x,simd_long3); }
-static simd_long4  SIMD_CFUNC simd_long(simd_char4    __x) { return __builtin_convertvector(__x,simd_long4); }
-static simd_long8  SIMD_CFUNC simd_long(simd_char8    __x) { return __builtin_convertvector(__x,simd_long8); }
-static simd_long2  SIMD_CFUNC simd_long(simd_uchar2   __x) { return __builtin_convertvector(__x,simd_long2); }
-static simd_long3  SIMD_CFUNC simd_long(simd_uchar3   __x) { return __builtin_convertvector(__x,simd_long3); }
-static simd_long4  SIMD_CFUNC simd_long(simd_uchar4   __x) { return __builtin_convertvector(__x,simd_long4); }
-static simd_long8  SIMD_CFUNC simd_long(simd_uchar8   __x) { return __builtin_convertvector(__x,simd_long8); }
-static simd_long2  SIMD_CFUNC simd_long(simd_short2   __x) { return __builtin_convertvector(__x,simd_long2); }
-static simd_long3  SIMD_CFUNC simd_long(simd_short3   __x) { return __builtin_convertvector(__x,simd_long3); }
-static simd_long4  SIMD_CFUNC simd_long(simd_short4   __x) { return __builtin_convertvector(__x,simd_long4); }
-static simd_long8  SIMD_CFUNC simd_long(simd_short8   __x) { return __builtin_convertvector(__x,simd_long8); }
-static simd_long2  SIMD_CFUNC simd_long(simd_ushort2  __x) { return __builtin_convertvector(__x,simd_long2); }
-static simd_long3  SIMD_CFUNC simd_long(simd_ushort3  __x) { return __builtin_convertvector(__x,simd_long3); }
-static simd_long4  SIMD_CFUNC simd_long(simd_ushort4  __x) { return __builtin_convertvector(__x,simd_long4); }
-static simd_long8  SIMD_CFUNC simd_long(simd_ushort8  __x) { return __builtin_convertvector(__x,simd_long8); }
-static simd_long2  SIMD_CFUNC simd_long(simd_int2     __x) { return __builtin_convertvector(__x,simd_long2); }
-static simd_long3  SIMD_CFUNC simd_long(simd_int3     __x) { return __builtin_convertvector(__x,simd_long3); }
-static simd_long4  SIMD_CFUNC simd_long(simd_int4     __x) { return __builtin_convertvector(__x,simd_long4); }
-static simd_long8  SIMD_CFUNC simd_long(simd_int8     __x) { return __builtin_convertvector(__x,simd_long8); }
-static simd_long2  SIMD_CFUNC simd_long(simd_uint2    __x) { return __builtin_convertvector(__x,simd_long2); }
-static simd_long3  SIMD_CFUNC simd_long(simd_uint3    __x) { return __builtin_convertvector(__x,simd_long3); }
-static simd_long4  SIMD_CFUNC simd_long(simd_uint4    __x) { return __builtin_convertvector(__x,simd_long4); }
-static simd_long8  SIMD_CFUNC simd_long(simd_uint8    __x) { return __builtin_convertvector(__x,simd_long8); }
-static simd_long2  SIMD_CFUNC simd_long(simd_float2   __x) { return __builtin_convertvector(__x,simd_long2); }
-static simd_long3  SIMD_CFUNC simd_long(simd_float3   __x) { return __builtin_convertvector(__x,simd_long3); }
-static simd_long4  SIMD_CFUNC simd_long(simd_float4   __x) { return __builtin_convertvector(__x,simd_long4); }
-static simd_long8  SIMD_CFUNC simd_long(simd_float8   __x) { return __builtin_convertvector(__x,simd_long8); }
-static simd_long2  SIMD_CFUNC simd_long(simd_long2    __x) { return __x; }
-static simd_long3  SIMD_CFUNC simd_long(simd_long3    __x) { return __x; }
-static simd_long4  SIMD_CFUNC simd_long(simd_long4    __x) { return __x; }
-static simd_long8  SIMD_CFUNC simd_long(simd_long8    __x) { return __x; }
-static simd_long2  SIMD_CFUNC simd_long(simd_ulong2   __x) { return (simd_long2)__x; }
-static simd_long3  SIMD_CFUNC simd_long(simd_ulong3   __x) { return (simd_long3)__x; }
-static simd_long4  SIMD_CFUNC simd_long(simd_ulong4   __x) { return (simd_long4)__x; }
-static simd_long8  SIMD_CFUNC simd_long(simd_ulong8   __x) { return (simd_long8)__x; }
-static simd_long2  SIMD_CFUNC simd_long(simd_double2  __x) { return __builtin_convertvector(__x,simd_long2); }
-static simd_long3  SIMD_CFUNC simd_long(simd_double3  __x) { return __builtin_convertvector(__x,simd_long3); }
-static simd_long4  SIMD_CFUNC simd_long(simd_double4  __x) { return __builtin_convertvector(__x,simd_long4); }
-static simd_long8  SIMD_CFUNC simd_long(simd_double8  __x) { return __builtin_convertvector(__x,simd_long8); }
-    
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_char2    __x) { return simd_long(__x); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_char3    __x) { return simd_long(__x); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_char4    __x) { return simd_long(__x); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_char8    __x) { return simd_long(__x); }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_short2   __x) { return simd_long(__x); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_short3   __x) { return simd_long(__x); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_short4   __x) { return simd_long(__x); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_short8   __x) { return simd_long(__x); }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_int2     __x) { return simd_long(__x); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_int3     __x) { return simd_long(__x); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_int4     __x) { return simd_long(__x); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_int8     __x) { return simd_long(__x); }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_float2   __x) { return simd_bitselect(simd_long(simd_max(__x,-0x1.0p63f)), 0x7fffffffffffffff, simd_long(__x >= 0x1.0p63f)); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_float3   __x) { return simd_bitselect(simd_long(simd_max(__x,-0x1.0p63f)), 0x7fffffffffffffff, simd_long(__x >= 0x1.0p63f)); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_float4   __x) { return simd_bitselect(simd_long(simd_max(__x,-0x1.0p63f)), 0x7fffffffffffffff, simd_long(__x >= 0x1.0p63f)); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_float8   __x) { return simd_bitselect(simd_long(simd_max(__x,-0x1.0p63f)), 0x7fffffffffffffff, simd_long(__x >= 0x1.0p63f)); }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_long2    __x) { return __x; }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_long3    __x) { return __x; }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_long4    __x) { return __x; }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_long8    __x) { return __x; }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_double2  __x) { return simd_bitselect(simd_long(simd_max(__x,-0x1.0p63)), 0x7fffffffffffffff, __x >= 0x1.0p63); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_double3  __x) { return simd_bitselect(simd_long(simd_max(__x,-0x1.0p63)), 0x7fffffffffffffff, __x >= 0x1.0p63); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_double4  __x) { return simd_bitselect(simd_long(simd_max(__x,-0x1.0p63)), 0x7fffffffffffffff, __x >= 0x1.0p63); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_double8  __x) { return simd_bitselect(simd_long(simd_max(__x,-0x1.0p63)), 0x7fffffffffffffff, __x >= 0x1.0p63); }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_uchar2   __x) { return simd_long(__x); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_uchar3   __x) { return simd_long(__x); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_uchar4   __x) { return simd_long(__x); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_uchar8   __x) { return simd_long(__x); }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_ushort2  __x) { return simd_long(__x); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_ushort3  __x) { return simd_long(__x); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_ushort4  __x) { return simd_long(__x); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_ushort8  __x) { return simd_long(__x); }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_uint2    __x) { return simd_long(__x); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_uint3    __x) { return simd_long(__x); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_uint4    __x) { return simd_long(__x); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_uint8    __x) { return simd_long(__x); }
-static simd_long2  SIMD_CFUNC simd_long_sat(simd_ulong2   __x) { return simd_long(simd_min(__x,0x7fffffffffffffff)); }
-static simd_long3  SIMD_CFUNC simd_long_sat(simd_ulong3   __x) { return simd_long(simd_min(__x,0x7fffffffffffffff)); }
-static simd_long4  SIMD_CFUNC simd_long_sat(simd_ulong4   __x) { return simd_long(simd_min(__x,0x7fffffffffffffff)); }
-static simd_long8  SIMD_CFUNC simd_long_sat(simd_ulong8   __x) { return simd_long(simd_min(__x,0x7fffffffffffffff)); }
-
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_char2    __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_char3    __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_char4    __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_char8    __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_uchar2   __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_uchar3   __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_uchar4   __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_uchar8   __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_short2   __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_short3   __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_short4   __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_short8   __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_ushort2  __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_ushort3  __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_ushort4  __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_ushort8  __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_int2     __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_int3     __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_int4     __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_int8     __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_uint2    __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_uint3    __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_uint4    __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_uint8    __x) { return simd_ulong(simd_long(__x)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_float2   __x) { simd_int2 __big = __x >= 0x1.0p63f; return simd_ulong(simd_long(__x - simd_bitselect((simd_float2)0,0x1.0p63f,__big))) + simd_bitselect((simd_ulong2)0,0x8000000000000000,simd_long(__big)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_float3   __x) { simd_int3 __big = __x >= 0x1.0p63f; return simd_ulong(simd_long(__x - simd_bitselect((simd_float3)0,0x1.0p63f,__big))) + simd_bitselect((simd_ulong3)0,0x8000000000000000,simd_long(__big)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_float4   __x) { simd_int4 __big = __x >= 0x1.0p63f; return simd_ulong(simd_long(__x - simd_bitselect((simd_float4)0,0x1.0p63f,__big))) + simd_bitselect((simd_ulong4)0,0x8000000000000000,simd_long(__big)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_float8   __x) { simd_int8 __big = __x >= 0x1.0p63f; return simd_ulong(simd_long(__x - simd_bitselect((simd_float8)0,0x1.0p63f,__big))) + simd_bitselect((simd_ulong8)0,0x8000000000000000,simd_long(__big)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_long2    __x) { return (simd_ulong2)__x; }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_long3    __x) { return (simd_ulong3)__x; }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_long4    __x) { return (simd_ulong4)__x; }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_long8    __x) { return (simd_ulong8)__x; }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_ulong2   __x) { return __x; }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_ulong3   __x) { return __x; }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_ulong4   __x) { return __x; }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_ulong8   __x) { return __x; }
-static simd_ulong2  SIMD_CFUNC simd_ulong(simd_double2  __x) { simd_long2 __big = __x >= 0x1.0p63; return simd_ulong(simd_long(__x - simd_bitselect((simd_double2)0,0x1.0p63,__big))) + simd_bitselect((simd_ulong2)0,0x8000000000000000,__big); }
-static simd_ulong3  SIMD_CFUNC simd_ulong(simd_double3  __x) { simd_long3 __big = __x >= 0x1.0p63; return simd_ulong(simd_long(__x - simd_bitselect((simd_double3)0,0x1.0p63,__big))) + simd_bitselect((simd_ulong3)0,0x8000000000000000,__big); }
-static simd_ulong4  SIMD_CFUNC simd_ulong(simd_double4  __x) { simd_long4 __big = __x >= 0x1.0p63; return simd_ulong(simd_long(__x - simd_bitselect((simd_double4)0,0x1.0p63,__big))) + simd_bitselect((simd_ulong4)0,0x8000000000000000,__big); }
-static simd_ulong8  SIMD_CFUNC simd_ulong(simd_double8  __x) { simd_long8 __big = __x >= 0x1.0p63; return simd_ulong(simd_long(__x - simd_bitselect((simd_double8)0,0x1.0p63,__big))) + simd_bitselect((simd_ulong8)0,0x8000000000000000,__big); }
-    
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_char2    __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_char3    __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_char4    __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_char8    __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_short2   __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_short3   __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_short4   __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_short8   __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_int2     __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_int3     __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_int4     __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_int8     __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_float2   __x) { return simd_bitselect(simd_ulong(simd_max(__x,0.f)), 0xffffffffffffffff, simd_long(__x >= 0x1.0p64f)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_float3   __x) { return simd_bitselect(simd_ulong(simd_max(__x,0.f)), 0xffffffffffffffff, simd_long(__x >= 0x1.0p64f)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_float4   __x) { return simd_bitselect(simd_ulong(simd_max(__x,0.f)), 0xffffffffffffffff, simd_long(__x >= 0x1.0p64f)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_float8   __x) { return simd_bitselect(simd_ulong(simd_max(__x,0.f)), 0xffffffffffffffff, simd_long(__x >= 0x1.0p64f)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_long2    __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_long3    __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_long4    __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_long8    __x) { return simd_ulong(simd_max(__x,0)); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_double2  __x) { return simd_bitselect(simd_ulong(simd_max(__x,0.0)), 0xffffffffffffffff, __x >= 0x1.0p64); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_double3  __x) { return simd_bitselect(simd_ulong(simd_max(__x,0.0)), 0xffffffffffffffff, __x >= 0x1.0p64); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_double4  __x) { return simd_bitselect(simd_ulong(simd_max(__x,0.0)), 0xffffffffffffffff, __x >= 0x1.0p64); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_double8  __x) { return simd_bitselect(simd_ulong(simd_max(__x,0.0)), 0xffffffffffffffff, __x >= 0x1.0p64); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_uchar2   __x) { return simd_ulong(__x); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_uchar3   __x) { return simd_ulong(__x); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_uchar4   __x) { return simd_ulong(__x); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_uchar8   __x) { return simd_ulong(__x); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_ushort2  __x) { return simd_ulong(__x); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_ushort3  __x) { return simd_ulong(__x); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_ushort4  __x) { return simd_ulong(__x); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_ushort8  __x) { return simd_ulong(__x); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_uint2    __x) { return simd_ulong(__x); }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_uint3    __x) { return simd_ulong(__x); }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_uint4    __x) { return simd_ulong(__x); }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_uint8    __x) { return simd_ulong(__x); }
-static simd_ulong2  SIMD_CFUNC simd_ulong_sat(simd_ulong2   __x) { return __x; }
-static simd_ulong3  SIMD_CFUNC simd_ulong_sat(simd_ulong3   __x) { return __x; }
-static simd_ulong4  SIMD_CFUNC simd_ulong_sat(simd_ulong4   __x) { return __x; }
-static simd_ulong8  SIMD_CFUNC simd_ulong_sat(simd_ulong8   __x) { return __x; }
-
-static simd_double2  SIMD_CFUNC simd_double(simd_char2    __x) { return simd_double(simd_int(__x)); }
-static simd_double3  SIMD_CFUNC simd_double(simd_char3    __x) { return simd_double(simd_int(__x)); }
-static simd_double4  SIMD_CFUNC simd_double(simd_char4    __x) { return simd_double(simd_int(__x)); }
-static simd_double8  SIMD_CFUNC simd_double(simd_char8    __x) { return simd_double(simd_int(__x)); }
-static simd_double2  SIMD_CFUNC simd_double(simd_uchar2   __x) { return simd_double(simd_int(__x)); }
-static simd_double3  SIMD_CFUNC simd_double(simd_uchar3   __x) { return simd_double(simd_int(__x)); }
-static simd_double4  SIMD_CFUNC simd_double(simd_uchar4   __x) { return simd_double(simd_int(__x)); }
-static simd_double8  SIMD_CFUNC simd_double(simd_uchar8   __x) { return simd_double(simd_int(__x)); }
-static simd_double2  SIMD_CFUNC simd_double(simd_short2   __x) { return simd_double(simd_int(__x)); }
-static simd_double3  SIMD_CFUNC simd_double(simd_short3   __x) { return simd_double(simd_int(__x)); }
-static simd_double4  SIMD_CFUNC simd_double(simd_short4   __x) { return simd_double(simd_int(__x)); }
-static simd_double8  SIMD_CFUNC simd_double(simd_short8   __x) { return simd_double(simd_int(__x)); }
-static simd_double2  SIMD_CFUNC simd_double(simd_ushort2  __x) { return simd_double(simd_int(__x)); }
-static simd_double3  SIMD_CFUNC simd_double(simd_ushort3  __x) { return simd_double(simd_int(__x)); }
-static simd_double4  SIMD_CFUNC simd_double(simd_ushort4  __x) { return simd_double(simd_int(__x)); }
-static simd_double8  SIMD_CFUNC simd_double(simd_ushort8  __x) { return simd_double(simd_int(__x)); }
-static simd_double2  SIMD_CFUNC simd_double(simd_int2     __x) { return __builtin_convertvector(__x, simd_double2); }
-static simd_double3  SIMD_CFUNC simd_double(simd_int3     __x) { return __builtin_convertvector(__x, simd_double3); }
-static simd_double4  SIMD_CFUNC simd_double(simd_int4     __x) { return __builtin_convertvector(__x, simd_double4); }
-static simd_double8  SIMD_CFUNC simd_double(simd_int8     __x) { return __builtin_convertvector(__x, simd_double8); }
-static simd_double2  SIMD_CFUNC simd_double(simd_uint2    __x) { return __builtin_convertvector(__x, simd_double2); }
-static simd_double3  SIMD_CFUNC simd_double(simd_uint3    __x) { return __builtin_convertvector(__x, simd_double3); }
-static simd_double4  SIMD_CFUNC simd_double(simd_uint4    __x) { return __builtin_convertvector(__x, simd_double4); }
-static simd_double8  SIMD_CFUNC simd_double(simd_uint8    __x) { return __builtin_convertvector(__x, simd_double8); }
-static simd_double2  SIMD_CFUNC simd_double(simd_float2   __x) { return __builtin_convertvector(__x, simd_double2); }
-static simd_double3  SIMD_CFUNC simd_double(simd_float3   __x) { return __builtin_convertvector(__x, simd_double3); }
-static simd_double4  SIMD_CFUNC simd_double(simd_float4   __x) { return __builtin_convertvector(__x, simd_double4); }
-static simd_double8  SIMD_CFUNC simd_double(simd_float8   __x) { return __builtin_convertvector(__x, simd_double8); }
-static simd_double2  SIMD_CFUNC simd_double(simd_long2    __x) { return __builtin_convertvector(__x, simd_double2); }
-static simd_double3  SIMD_CFUNC simd_double(simd_long3    __x) { return __builtin_convertvector(__x, simd_double3); }
-static simd_double4  SIMD_CFUNC simd_double(simd_long4    __x) { return __builtin_convertvector(__x, simd_double4); }
-static simd_double8  SIMD_CFUNC simd_double(simd_long8    __x) { return __builtin_convertvector(__x, simd_double8); }
-static simd_double2  SIMD_CFUNC simd_double(simd_ulong2   __x) { return __builtin_convertvector(__x, simd_double2); }
-static simd_double3  SIMD_CFUNC simd_double(simd_ulong3   __x) { return __builtin_convertvector(__x, simd_double3); }
-static simd_double4  SIMD_CFUNC simd_double(simd_ulong4   __x) { return __builtin_convertvector(__x, simd_double4); }
-static simd_double8  SIMD_CFUNC simd_double(simd_ulong8   __x) { return __builtin_convertvector(__x, simd_double8); }
-static simd_double2  SIMD_CFUNC simd_double(simd_double2  __x) { return __builtin_convertvector(__x, simd_double2); }
-static simd_double3  SIMD_CFUNC simd_double(simd_double3  __x) { return __builtin_convertvector(__x, simd_double3); }
-static simd_double4  SIMD_CFUNC simd_double(simd_double4  __x) { return __builtin_convertvector(__x, simd_double4); }
-static simd_double8  SIMD_CFUNC simd_double(simd_double8  __x) { return __builtin_convertvector(__x, simd_double8); }
-
-#ifdef __cplusplus
-}
-#endif
-#endif // SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#endif // __SIMD_CONVERSION_HEADER__
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/simd/logic.h b/lib/libc/include/x86_64-macos.10-none/simd/logic.h
deleted file mode 100644
index 38bd9bf58c1d29e2b8accceccbbaf11db37ee724..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/simd/logic.h
+++ /dev/null
@@ -1,1315 +0,0 @@
-/*! @header
- *  The interfaces declared in this header provide logical and bitwise
- *  operations on vectors.  Some of these function operate elementwise,
- *  and some produce a scalar result that depends on all lanes of the input.
- *
- *  For functions returning a boolean value, the return type in C and
- *  Objective-C is _Bool; for C++ it is bool.
- *
- *      Function                    Result
- *      ------------------------------------------------------------------
- *      simd_all(comparison)        True if and only if the comparison is true
- *                                  in every vector lane.  e.g.:
- *
- *                                      if (simd_all(x == 0.0f)) {
- *                                          // executed if every lane of x
- *                                          // contains zero.
- *                                      }
- *
- *                                  The precise function of simd_all is to
- *                                  return the high-order bit of the result
- *                                  of a horizontal bitwise AND of all vector
- *                                  lanes.
- *
- *      simd_any(comparison)        True if and only if the comparison is true
- *                                  in at least one vector lane.  e.g.:
- *
- *                                      if (simd_any(x < 0.0f)) {
- *                                          // executed if any lane of x
- *                                          // contains a negative value.
- *                                      }
- *
- *                                  The precise function of simd_all is to
- *                                  return the high-order bit of the result
- *                                  of a horizontal bitwise OR of all vector
- *                                  lanes.
- *
- *      simd_select(x,y,mask)       For each lane in the result, selects the
- *                                  corresponding element of x if the high-
- *                                  order bit of the corresponding element of
- *                                  mask is 0, and the corresponding element
- *                                  of y otherwise.
- *
- *      simd_bitselect(x,y,mask)    For each bit in the result, selects the
- *                                  corresponding bit of x if the corresponding
- *                                  bit of mask is clear, and the corresponding
- *                                  of y otherwise.
- *
- *  In C++, these functions are available under the simd:: namespace:
- *
- *      C++ Function                    Equivalent C Function
- *      --------------------------------------------------------------------
- *      simd::all(comparison)           simd_all(comparison)
- *      simd::any(comparison)           simd_any(comparison)
- *      simd::select(x,y,mask)          simd_select(x,y,mask)
- *      simd::bitselect(x,y,mask)       simd_bitselect(x,y,mask)
- *
- *  @copyright 2014-2017 Apple, Inc. All rights reserved.
- *  @unsorted                                                                 */
-
-#ifndef SIMD_LOGIC_HEADER
-#define SIMD_LOGIC_HEADER
-
-#include 
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include 
-#include 
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_char2 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_char3 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_char4 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_char8 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_char16 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_char32 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_char64 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar2 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar3 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar4 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar8 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar16 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar32 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar64 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_short2 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_short3 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_short4 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_short8 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_short16 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_short32 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort2 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort3 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort4 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort8 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort16 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort32 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_int2 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_int3 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_int4 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_int8 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_int16 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint2 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint3 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint4 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint8 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint16 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_long2 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_long3 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_long4 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_long8 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ulong2 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ulong3 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ulong4 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_any(simd_ulong8 x);
-/*! @abstract True if and only if the high-order bit of any lane of the
- *  vector is set.
- *  @discussion Deprecated. Use simd_any instead.                             */
-#define vector_any simd_any
-
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_char2 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_char3 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_char4 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_char8 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_char16 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_char32 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_char64 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar2 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar3 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar4 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar8 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar16 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar32 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar64 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_short2 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_short3 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_short4 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_short8 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_short16 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_short32 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort2 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort3 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort4 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort8 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort16 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort32 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_int2 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_int3 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_int4 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_int8 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_int16 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint2 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint3 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint4 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint8 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint16 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_long2 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_long3 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_long4 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_long8 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ulong2 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ulong3 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ulong4 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.                                                            */
-static inline SIMD_CFUNC simd_bool simd_all(simd_ulong8 x);
-/*! @abstract True if and only if the high-order bit of every lane of the
- *  vector is set.
- *  @discussion Deprecated. Use simd_all instead.                             */
-#define vector_all simd_all
-
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_float2 simd_select(simd_float2 x, simd_float2 y, simd_int2 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_float3 simd_select(simd_float3 x, simd_float3 y, simd_int3 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_float4 simd_select(simd_float4 x, simd_float4 y, simd_int4 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_float8 simd_select(simd_float8 x, simd_float8 y, simd_int8 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_float16 simd_select(simd_float16 x, simd_float16 y, simd_int16 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_double2 simd_select(simd_double2 x, simd_double2 y, simd_long2 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_double3 simd_select(simd_double3 x, simd_double3 y, simd_long3 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_double4 simd_select(simd_double4 x, simd_double4 y, simd_long4 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.                                     */
-static inline SIMD_CFUNC simd_double8 simd_select(simd_double8 x, simd_double8 y, simd_long8 mask);
-/*! @abstract For each lane in the result, selects the corresponding element
- *  of x or y according to whether the high-order bit of the corresponding
- *  lane of mask is 0 or 1, respectively.
- *  @discussion Deprecated. Use simd_select instead.                          */
-#define vector_select simd_select
-  
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_char2 simd_bitselect(simd_char2 x, simd_char2 y, simd_char2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_char3 simd_bitselect(simd_char3 x, simd_char3 y, simd_char3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_char4 simd_bitselect(simd_char4 x, simd_char4 y, simd_char4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_char8 simd_bitselect(simd_char8 x, simd_char8 y, simd_char8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_char16 simd_bitselect(simd_char16 x, simd_char16 y, simd_char16 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_char32 simd_bitselect(simd_char32 x, simd_char32 y, simd_char32 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_char64 simd_bitselect(simd_char64 x, simd_char64 y, simd_char64 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uchar2 simd_bitselect(simd_uchar2 x, simd_uchar2 y, simd_char2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uchar3 simd_bitselect(simd_uchar3 x, simd_uchar3 y, simd_char3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uchar4 simd_bitselect(simd_uchar4 x, simd_uchar4 y, simd_char4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uchar8 simd_bitselect(simd_uchar8 x, simd_uchar8 y, simd_char8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uchar16 simd_bitselect(simd_uchar16 x, simd_uchar16 y, simd_char16 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uchar32 simd_bitselect(simd_uchar32 x, simd_uchar32 y, simd_char32 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uchar64 simd_bitselect(simd_uchar64 x, simd_uchar64 y, simd_char64 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_short2 simd_bitselect(simd_short2 x, simd_short2 y, simd_short2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_short3 simd_bitselect(simd_short3 x, simd_short3 y, simd_short3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_short4 simd_bitselect(simd_short4 x, simd_short4 y, simd_short4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_short8 simd_bitselect(simd_short8 x, simd_short8 y, simd_short8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_short16 simd_bitselect(simd_short16 x, simd_short16 y, simd_short16 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_short32 simd_bitselect(simd_short32 x, simd_short32 y, simd_short32 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ushort2 simd_bitselect(simd_ushort2 x, simd_ushort2 y, simd_short2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ushort3 simd_bitselect(simd_ushort3 x, simd_ushort3 y, simd_short3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ushort4 simd_bitselect(simd_ushort4 x, simd_ushort4 y, simd_short4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ushort8 simd_bitselect(simd_ushort8 x, simd_ushort8 y, simd_short8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ushort16 simd_bitselect(simd_ushort16 x, simd_ushort16 y, simd_short16 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ushort32 simd_bitselect(simd_ushort32 x, simd_ushort32 y, simd_short32 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_int2 simd_bitselect(simd_int2 x, simd_int2 y, simd_int2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_int3 simd_bitselect(simd_int3 x, simd_int3 y, simd_int3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_int4 simd_bitselect(simd_int4 x, simd_int4 y, simd_int4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_int8 simd_bitselect(simd_int8 x, simd_int8 y, simd_int8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_int16 simd_bitselect(simd_int16 x, simd_int16 y, simd_int16 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uint2 simd_bitselect(simd_uint2 x, simd_uint2 y, simd_int2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uint3 simd_bitselect(simd_uint3 x, simd_uint3 y, simd_int3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uint4 simd_bitselect(simd_uint4 x, simd_uint4 y, simd_int4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uint8 simd_bitselect(simd_uint8 x, simd_uint8 y, simd_int8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_uint16 simd_bitselect(simd_uint16 x, simd_uint16 y, simd_int16 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_float2 simd_bitselect(simd_float2 x, simd_float2 y, simd_int2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_float3 simd_bitselect(simd_float3 x, simd_float3 y, simd_int3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_float4 simd_bitselect(simd_float4 x, simd_float4 y, simd_int4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_float8 simd_bitselect(simd_float8 x, simd_float8 y, simd_int8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_float16 simd_bitselect(simd_float16 x, simd_float16 y, simd_int16 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_long2 simd_bitselect(simd_long2 x, simd_long2 y, simd_long2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_long3 simd_bitselect(simd_long3 x, simd_long3 y, simd_long3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_long4 simd_bitselect(simd_long4 x, simd_long4 y, simd_long4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_long8 simd_bitselect(simd_long8 x, simd_long8 y, simd_long8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ulong2 simd_bitselect(simd_ulong2 x, simd_ulong2 y, simd_long2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ulong3 simd_bitselect(simd_ulong3 x, simd_ulong3 y, simd_long3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ulong4 simd_bitselect(simd_ulong4 x, simd_ulong4 y, simd_long4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_ulong8 simd_bitselect(simd_ulong8 x, simd_ulong8 y, simd_long8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_double2 simd_bitselect(simd_double2 x, simd_double2 y, simd_long2 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_double3 simd_bitselect(simd_double3 x, simd_double3 y, simd_long3 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_double4 simd_bitselect(simd_double4 x, simd_double4 y, simd_long4 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.                                                             */
-static inline SIMD_CFUNC simd_double8 simd_bitselect(simd_double8 x, simd_double8 y, simd_long8 mask);
-/*! @abstract For each bit in the result, selects the corresponding bit of x
- *  or y according to whether the corresponding bit of mask is 0 or 1,
- *  respectively.
- *  @discussion Deprecated. Use simd_bitselect instead.                       */
-#define vector_bitselect simd_bitselect
-
-#ifdef __cplusplus
-} /* extern "C" */
-
-namespace simd {
-  /*! @abstract True if and only if the high-order bit of every lane is set.  */
-  template  static SIMD_CPPFUNC simd_bool all(const inttypeN predicate) { return ::simd_all(predicate); }
-  /*! @abstract True if and only if the high-order bit of any lane is set.    */
-  template  static SIMD_CPPFUNC simd_bool any(const inttypeN predicate) { return ::simd_any(predicate); }
-  /*! @abstract Each lane of the result is selected from the corresponding lane
-   *  of x or y according to whether the high-order bit of the corresponding
-   *  lane of mask is 0 or 1, respectively.                                   */
-  template  static SIMD_CPPFUNC fptypeN select(const fptypeN x, const fptypeN y, const inttypeN predicate) { return ::simd_select(x,y,predicate); }
-  /*! @abstract For each bit in the result, selects the corresponding bit of x
-   *  or y according to whether the corresponding bit of mask is 0 or 1,
-   *  respectively.                                                           */
-  template  static SIMD_CPPFUNC typeN bitselect(const typeN x, const typeN y, const inttypeN mask) { return ::simd_bitselect(x,y,mask); }
-}
-
-extern "C" {
-#endif /* __cplusplus */
-
-#pragma mark - Implementations
-
-static inline SIMD_CFUNC simd_bool simd_any(simd_char2 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_char16_undef(x)) & 0x3);
-#elif defined __arm64__
-  return simd_any(x.xyxy);
-#else
-  union { uint16_t i; simd_char2 v; } u = { .v = x };
-  return (u.i & 0x8080);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_char3 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_char16_undef(x)) & 0x7);
-#elif defined __arm64__
-  return simd_any(x.xyzz);
-#else
-  union { uint32_t i; simd_char3 v; } u = { .v = x };
-  return (u.i & 0x808080);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_char4 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_char16_undef(x)) & 0xf);
-#elif defined __arm64__
-  return simd_any(x.xyzwxyzw);
-#else
-  union { uint32_t i; simd_char4 v; } u = { .v = x };
-  return (u.i & 0x80808080);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_char8 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_char16_undef(x)) & 0xff);
-#elif defined __arm64__
-  return vmaxv_u8(x) & 0x80;
-#else
-  union { uint64_t i; simd_char8 v; } u = { .v = x };
-  return (u.i & 0x8080808080808080);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_char16 x) {
-#if defined __SSE2__
-  return _mm_movemask_epi8(x);
-#elif defined __arm64__
-  return vmaxvq_u8(x) & 0x80;
-#else
-  return simd_any(x.lo | x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_char32 x) {
-#if defined __AVX2__
-  return _mm256_movemask_epi8(x);
-#else
-  return simd_any(x.lo | x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_char64 x) {
-  return simd_any(x.lo | x.hi);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar2 x) {
-  return simd_any((simd_char2)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar3 x) {
-  return simd_any((simd_char3)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar4 x) {
-  return simd_any((simd_char4)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar8 x) {
-  return simd_any((simd_char8)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar16 x) {
-  return simd_any((simd_char16)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar32 x) {
-  return simd_any((simd_char32)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uchar64 x) {
-  return simd_any((simd_char64)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_short2 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_short8_undef(x)) & 0xa);
-#elif defined __arm64__
-  return simd_any(x.xyxy);
-#else
-  union { uint32_t i; simd_short2 v; } u = { .v = x };
-  return (u.i & 0x80008000);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_short3 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_short8_undef(x)) & 0x2a);
-#elif defined __arm64__
-  return simd_any(x.xyzz);
-#else
-  union { uint64_t i; simd_short3 v; } u = { .v = x };
-  return (u.i & 0x800080008000);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_short4 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_short8_undef(x)) & 0xaa);
-#elif defined __arm64__
-  return vmaxv_u16(x) & 0x8000;
-#else
-  union { uint64_t i; simd_short4 v; } u = { .v = x };
-  return (u.i & 0x8000800080008000);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_short8 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(x) & 0xaaaa);
-#elif defined __arm64__
-  return vmaxvq_u16(x) & 0x8000;
-#else
-  return simd_any(x.lo | x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_short16 x) {
-#if defined __AVX2__
-  return (_mm256_movemask_epi8(x) & 0xaaaaaaaa);
-#else
-  return simd_any(x.lo | x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_short32 x) {
-  return simd_any(x.lo | x.hi);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort2 x) {
-  return simd_any((simd_short2)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort3 x) {
-  return simd_any((simd_short3)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort4 x) {
-  return simd_any((simd_short4)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort8 x) {
-  return simd_any((simd_short8)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort16 x) {
-  return simd_any((simd_short16)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ushort32 x) {
-  return simd_any((simd_short32)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_int2 x) {
-#if defined __SSE2__
-  return (_mm_movemask_ps(simd_make_int4_undef(x)) & 0x3);
-#elif defined __arm64__
-  return vmaxv_u32(x) & 0x80000000;
-#else
-  union { uint64_t i; simd_int2 v; } u = { .v = x };
-  return (u.i & 0x8000000080000000);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_int3 x) {
-#if defined __SSE2__
-  return (_mm_movemask_ps(simd_make_int4_undef(x)) & 0x7);
-#elif defined __arm64__
-  return simd_any(x.xyzz);
-#else
-  return (x.x | x.y | x.z) & 0x80000000;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_int4 x) {
-#if defined __SSE2__
-  return _mm_movemask_ps(x);
-#elif defined __arm64__
-  return vmaxvq_u32(x) & 0x80000000;
-#else
-  return simd_any(x.lo | x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_int8 x) {
-#if defined __AVX__
-  return _mm256_movemask_ps(x);
-#else
-  return simd_any(x.lo | x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_int16 x) {
-  return simd_any(x.lo | x.hi);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint2 x) {
-  return simd_any((simd_int2)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint3 x) {
-  return simd_any((simd_int3)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint4 x) {
-  return simd_any((simd_int4)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint8 x) {
-  return simd_any((simd_int8)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_uint16 x) {
-  return simd_any((simd_int16)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_long2 x) {
-#if defined __SSE2__
-  return _mm_movemask_pd(x);
-#elif defined __arm64__
-  return (x.x | x.y) & 0x8000000000000000U;
-#else
-  return (x.x | x.y) & 0x8000000000000000U;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_long3 x) {
-#if defined __AVX__
-  return (_mm256_movemask_pd(simd_make_long4_undef(x)) & 0x7);
-#else
-  return (x.x | x.y | x.z) & 0x8000000000000000U;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_long4 x) {
-#if defined __AVX__
-  return _mm256_movemask_pd(x);
-#else
-  return simd_any(x.lo | x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_long8 x) {
-  return simd_any(x.lo | x.hi);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ulong2 x) {
-  return simd_any((simd_long2)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ulong3 x) {
-  return simd_any((simd_long3)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ulong4 x) {
-  return simd_any((simd_long4)x);
-}
-static inline SIMD_CFUNC simd_bool simd_any(simd_ulong8 x) {
-  return simd_any((simd_long8)x);
-}
-  
-static inline SIMD_CFUNC simd_bool simd_all(simd_char2 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_char16_undef(x)) & 0x3) == 0x3;
-#elif defined __arm64__
-  return simd_all(x.xyxy);
-#else
-  union { uint16_t i; simd_char2 v; } u = { .v = x };
-  return (u.i & 0x8080) == 0x8080;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_char3 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_char16_undef(x)) & 0x7) == 0x7;
-#elif defined __arm64__
-  return simd_all(x.xyzz);
-#else
-  union { uint32_t i; simd_char3 v; } u = { .v = x };
-  return (u.i & 0x808080) == 0x808080;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_char4 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_char16_undef(x)) & 0xf) == 0xf;
-#elif defined __arm64__
-  return simd_all(x.xyzwxyzw);
-#else
-  union { uint32_t i; simd_char4 v; } u = { .v = x };
-  return (u.i & 0x80808080) == 0x80808080;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_char8 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_char16_undef(x)) & 0xff) == 0xff;
-#elif defined __arm64__
-  return vminv_u8(x) & 0x80;
-#else
-  union { uint64_t i; simd_char8 v; } u = { .v = x };
-  return (u.i & 0x8080808080808080) == 0x8080808080808080;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_char16 x) {
-#if defined __SSE2__
-  return _mm_movemask_epi8(x) == 0xffff;
-#elif defined __arm64__
-  return vminvq_u8(x) & 0x80;
-#else
-  return simd_all(x.lo & x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_char32 x) {
-#if defined __AVX2__
-  return _mm256_movemask_epi8(x) == 0xffffffff;
-#else
-  return simd_all(x.lo & x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_char64 x) {
-  return simd_all(x.lo & x.hi);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar2 x) {
-  return simd_all((simd_char2)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar3 x) {
-  return simd_all((simd_char3)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar4 x) {
-  return simd_all((simd_char4)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar8 x) {
-  return simd_all((simd_char8)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar16 x) {
-  return simd_all((simd_char16)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar32 x) {
-  return simd_all((simd_char32)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uchar64 x) {
-  return simd_all((simd_char64)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_short2 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_short8_undef(x)) & 0xa) == 0xa;
-#elif defined __arm64__
-  return simd_all(x.xyxy);
-#else
-  union { uint32_t i; simd_short2 v; } u = { .v = x };
-  return (u.i & 0x80008000) == 0x80008000;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_short3 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_short8_undef(x)) & 0x2a) == 0x2a;
-#elif defined __arm64__
-  return simd_all(x.xyzz);
-#else
-  union { uint64_t i; simd_short3 v; } u = { .v = x };
-  return (u.i & 0x800080008000) == 0x800080008000;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_short4 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(simd_make_short8_undef(x)) & 0xaa) == 0xaa;
-#elif defined __arm64__
-  return vminv_u16(x) & 0x8000;
-#else
-  union { uint64_t i; simd_short4 v; } u = { .v = x };
-  return (u.i & 0x8000800080008000) == 0x8000800080008000;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_short8 x) {
-#if defined __SSE2__
-  return (_mm_movemask_epi8(x) & 0xaaaa) == 0xaaaa;
-#elif defined __arm64__
-  return vminvq_u16(x) & 0x8000;
-#else
-  return simd_all(x.lo & x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_short16 x) {
-#if defined __AVX2__
-  return (_mm256_movemask_epi8(x) & 0xaaaaaaaa) == 0xaaaaaaaa;
-#else
-  return simd_all(x.lo & x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_short32 x) {
-  return simd_all(x.lo & x.hi);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort2 x) {
-  return simd_all((simd_short2)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort3 x) {
-  return simd_all((simd_short3)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort4 x) {
-  return simd_all((simd_short4)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort8 x) {
-  return simd_all((simd_short8)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort16 x) {
-  return simd_all((simd_short16)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ushort32 x) {
-  return simd_all((simd_short32)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_int2 x) {
-#if defined __SSE2__
-  return (_mm_movemask_ps(simd_make_int4_undef(x)) & 0x3) == 0x3;
-#elif defined __arm64__
-  return vminv_u32(x) & 0x80000000;
-#else
-  union { uint64_t i; simd_int2 v; } u = { .v = x };
-  return (u.i & 0x8000000080000000) == 0x8000000080000000;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_int3 x) {
-#if defined __SSE2__
-  return (_mm_movemask_ps(simd_make_int4_undef(x)) & 0x7) == 0x7;
-#elif defined __arm64__
-  return simd_all(x.xyzz);
-#else
-  return (x.x & x.y & x.z) & 0x80000000;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_int4 x) {
-#if defined __SSE2__
-  return _mm_movemask_ps(x) == 0xf;
-#elif defined __arm64__
-  return vminvq_u32(x) & 0x80000000;
-#else
-  return simd_all(x.lo & x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_int8 x) {
-#if defined __AVX__
-  return _mm256_movemask_ps(x) == 0xff;
-#else
-  return simd_all(x.lo & x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_int16 x) {
-  return simd_all(x.lo & x.hi);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint2 x) {
-  return simd_all((simd_int2)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint3 x) {
-  return simd_all((simd_int3)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint4 x) {
-  return simd_all((simd_int4)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint8 x) {
-  return simd_all((simd_int8)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_uint16 x) {
-  return simd_all((simd_int16)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_long2 x) {
-#if defined __SSE2__
-  return _mm_movemask_pd(x) == 0x3;
-#elif defined __arm64__
-  return (x.x & x.y) & 0x8000000000000000U;
-#else
-  return (x.x & x.y) & 0x8000000000000000U;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_long3 x) {
-#if defined __AVX__
-  return (_mm256_movemask_pd(simd_make_long4_undef(x)) & 0x7) == 0x7;
-#else
-  return (x.x & x.y & x.z) & 0x8000000000000000U;
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_long4 x) {
-#if defined __AVX__
-  return _mm256_movemask_pd(x) == 0xf;
-#else
-  return simd_all(x.lo & x.hi);
-#endif
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_long8 x) {
-  return simd_all(x.lo & x.hi);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ulong2 x) {
-  return simd_all((simd_long2)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ulong3 x) {
-  return simd_all((simd_long3)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ulong4 x) {
-  return simd_all((simd_long4)x);
-}
-static inline SIMD_CFUNC simd_bool simd_all(simd_ulong8 x) {
-  return simd_all((simd_long8)x);
-}
-  
-static inline SIMD_CFUNC simd_float2 simd_select(simd_float2 x, simd_float2 y, simd_int2 mask) {
-  return simd_make_float2(simd_select(simd_make_float4_undef(x), simd_make_float4_undef(y), simd_make_int4_undef(mask)));
-}
-static inline SIMD_CFUNC simd_float3 simd_select(simd_float3 x, simd_float3 y, simd_int3 mask) {
-  return simd_make_float3(simd_select(simd_make_float4_undef(x), simd_make_float4_undef(y), simd_make_int4_undef(mask)));
-}
-static inline SIMD_CFUNC simd_float4 simd_select(simd_float4 x, simd_float4 y, simd_int4 mask) {
-#if defined __SSE4_1__
-  return _mm_blendv_ps(x, y, mask);
-#else
-  return simd_bitselect(x, y, mask >> 31);
-#endif
-}
-static inline SIMD_CFUNC simd_float8 simd_select(simd_float8 x, simd_float8 y, simd_int8 mask) {
-#if defined __AVX__
-  return _mm256_blendv_ps(x, y, mask);
-#else
-  return simd_bitselect(x, y, mask >> 31);
-#endif
-}
-static inline SIMD_CFUNC simd_float16 simd_select(simd_float16 x, simd_float16 y, simd_int16 mask) {
-  return simd_bitselect(x, y, mask >> 31);
-}
-static inline SIMD_CFUNC simd_double2 simd_select(simd_double2 x, simd_double2 y, simd_long2 mask) {
-#if defined __SSE4_1__
-  return _mm_blendv_pd(x, y, mask);
-#else
-  return simd_bitselect(x, y, mask >> 63);
-#endif
-}
-static inline SIMD_CFUNC simd_double3 simd_select(simd_double3 x, simd_double3 y, simd_long3 mask) {
-  return simd_make_double3(simd_select(simd_make_double4_undef(x), simd_make_double4_undef(y), simd_make_long4_undef(mask)));
-}
-static inline SIMD_CFUNC simd_double4 simd_select(simd_double4 x, simd_double4 y, simd_long4 mask) {
-#if defined __AVX__
-  return _mm256_blendv_pd(x, y, mask);
-#else
-  return simd_bitselect(x, y, mask >> 63);
-#endif
-}
-static inline SIMD_CFUNC simd_double8 simd_select(simd_double8 x, simd_double8 y, simd_long8 mask) {
-  return simd_bitselect(x, y, mask >> 63);
-}
-  
-static inline SIMD_CFUNC simd_char2 simd_bitselect(simd_char2 x, simd_char2 y, simd_char2 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_char3 simd_bitselect(simd_char3 x, simd_char3 y, simd_char3 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_char4 simd_bitselect(simd_char4 x, simd_char4 y, simd_char4 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_char8 simd_bitselect(simd_char8 x, simd_char8 y, simd_char8 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_char16 simd_bitselect(simd_char16 x, simd_char16 y, simd_char16 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_char32 simd_bitselect(simd_char32 x, simd_char32 y, simd_char32 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_char64 simd_bitselect(simd_char64 x, simd_char64 y, simd_char64 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_uchar2 simd_bitselect(simd_uchar2 x, simd_uchar2 y, simd_char2 mask) {
-  return (simd_uchar2)simd_bitselect((simd_char2)x, (simd_char2)y, mask);
-}
-static inline SIMD_CFUNC simd_uchar3 simd_bitselect(simd_uchar3 x, simd_uchar3 y, simd_char3 mask) {
-  return (simd_uchar3)simd_bitselect((simd_char3)x, (simd_char3)y, mask);
-}
-static inline SIMD_CFUNC simd_uchar4 simd_bitselect(simd_uchar4 x, simd_uchar4 y, simd_char4 mask) {
-  return (simd_uchar4)simd_bitselect((simd_char4)x, (simd_char4)y, mask);
-}
-static inline SIMD_CFUNC simd_uchar8 simd_bitselect(simd_uchar8 x, simd_uchar8 y, simd_char8 mask) {
-  return (simd_uchar8)simd_bitselect((simd_char8)x, (simd_char8)y, mask);
-}
-static inline SIMD_CFUNC simd_uchar16 simd_bitselect(simd_uchar16 x, simd_uchar16 y, simd_char16 mask) {
-  return (simd_uchar16)simd_bitselect((simd_char16)x, (simd_char16)y, mask);
-}
-static inline SIMD_CFUNC simd_uchar32 simd_bitselect(simd_uchar32 x, simd_uchar32 y, simd_char32 mask) {
-  return (simd_uchar32)simd_bitselect((simd_char32)x, (simd_char32)y, mask);
-}
-static inline SIMD_CFUNC simd_uchar64 simd_bitselect(simd_uchar64 x, simd_uchar64 y, simd_char64 mask) {
-  return (simd_uchar64)simd_bitselect((simd_char64)x, (simd_char64)y, mask);
-}
-static inline SIMD_CFUNC simd_short2 simd_bitselect(simd_short2 x, simd_short2 y, simd_short2 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_short3 simd_bitselect(simd_short3 x, simd_short3 y, simd_short3 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_short4 simd_bitselect(simd_short4 x, simd_short4 y, simd_short4 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_short8 simd_bitselect(simd_short8 x, simd_short8 y, simd_short8 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_short16 simd_bitselect(simd_short16 x, simd_short16 y, simd_short16 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_short32 simd_bitselect(simd_short32 x, simd_short32 y, simd_short32 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_ushort2 simd_bitselect(simd_ushort2 x, simd_ushort2 y, simd_short2 mask) {
-  return (simd_ushort2)simd_bitselect((simd_short2)x, (simd_short2)y, mask);
-}
-static inline SIMD_CFUNC simd_ushort3 simd_bitselect(simd_ushort3 x, simd_ushort3 y, simd_short3 mask) {
-  return (simd_ushort3)simd_bitselect((simd_short3)x, (simd_short3)y, mask);
-}
-static inline SIMD_CFUNC simd_ushort4 simd_bitselect(simd_ushort4 x, simd_ushort4 y, simd_short4 mask) {
-  return (simd_ushort4)simd_bitselect((simd_short4)x, (simd_short4)y, mask);
-}
-static inline SIMD_CFUNC simd_ushort8 simd_bitselect(simd_ushort8 x, simd_ushort8 y, simd_short8 mask) {
-  return (simd_ushort8)simd_bitselect((simd_short8)x, (simd_short8)y, mask);
-}
-static inline SIMD_CFUNC simd_ushort16 simd_bitselect(simd_ushort16 x, simd_ushort16 y, simd_short16 mask) {
-  return (simd_ushort16)simd_bitselect((simd_short16)x, (simd_short16)y, mask);
-}
-static inline SIMD_CFUNC simd_ushort32 simd_bitselect(simd_ushort32 x, simd_ushort32 y, simd_short32 mask) {
-  return (simd_ushort32)simd_bitselect((simd_short32)x, (simd_short32)y, mask);
-}
-static inline SIMD_CFUNC simd_int2 simd_bitselect(simd_int2 x, simd_int2 y, simd_int2 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_int3 simd_bitselect(simd_int3 x, simd_int3 y, simd_int3 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_int4 simd_bitselect(simd_int4 x, simd_int4 y, simd_int4 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_int8 simd_bitselect(simd_int8 x, simd_int8 y, simd_int8 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_int16 simd_bitselect(simd_int16 x, simd_int16 y, simd_int16 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_uint2 simd_bitselect(simd_uint2 x, simd_uint2 y, simd_int2 mask) {
-  return (simd_uint2)simd_bitselect((simd_int2)x, (simd_int2)y, mask);
-}
-static inline SIMD_CFUNC simd_uint3 simd_bitselect(simd_uint3 x, simd_uint3 y, simd_int3 mask) {
-  return (simd_uint3)simd_bitselect((simd_int3)x, (simd_int3)y, mask);
-}
-static inline SIMD_CFUNC simd_uint4 simd_bitselect(simd_uint4 x, simd_uint4 y, simd_int4 mask) {
-  return (simd_uint4)simd_bitselect((simd_int4)x, (simd_int4)y, mask);
-}
-static inline SIMD_CFUNC simd_uint8 simd_bitselect(simd_uint8 x, simd_uint8 y, simd_int8 mask) {
-  return (simd_uint8)simd_bitselect((simd_int8)x, (simd_int8)y, mask);
-}
-static inline SIMD_CFUNC simd_uint16 simd_bitselect(simd_uint16 x, simd_uint16 y, simd_int16 mask) {
-  return (simd_uint16)simd_bitselect((simd_int16)x, (simd_int16)y, mask);
-}
-static inline SIMD_CFUNC simd_float2 simd_bitselect(simd_float2 x, simd_float2 y, simd_int2 mask) {
-  return (simd_float2)simd_bitselect((simd_int2)x, (simd_int2)y, mask);
-}
-static inline SIMD_CFUNC simd_float3 simd_bitselect(simd_float3 x, simd_float3 y, simd_int3 mask) {
-  return (simd_float3)simd_bitselect((simd_int3)x, (simd_int3)y, mask);
-}
-static inline SIMD_CFUNC simd_float4 simd_bitselect(simd_float4 x, simd_float4 y, simd_int4 mask) {
-  return (simd_float4)simd_bitselect((simd_int4)x, (simd_int4)y, mask);
-}
-static inline SIMD_CFUNC simd_float8 simd_bitselect(simd_float8 x, simd_float8 y, simd_int8 mask) {
-  return (simd_float8)simd_bitselect((simd_int8)x, (simd_int8)y, mask);
-}
-static inline SIMD_CFUNC simd_float16 simd_bitselect(simd_float16 x, simd_float16 y, simd_int16 mask) {
-  return (simd_float16)simd_bitselect((simd_int16)x, (simd_int16)y, mask);
-}
-static inline SIMD_CFUNC simd_long2 simd_bitselect(simd_long2 x, simd_long2 y, simd_long2 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_long3 simd_bitselect(simd_long3 x, simd_long3 y, simd_long3 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_long4 simd_bitselect(simd_long4 x, simd_long4 y, simd_long4 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_long8 simd_bitselect(simd_long8 x, simd_long8 y, simd_long8 mask) {
-  return (x & ~mask) | (y & mask);
-}
-static inline SIMD_CFUNC simd_ulong2 simd_bitselect(simd_ulong2 x, simd_ulong2 y, simd_long2 mask) {
-  return (simd_ulong2)simd_bitselect((simd_long2)x, (simd_long2)y, mask);
-}
-static inline SIMD_CFUNC simd_ulong3 simd_bitselect(simd_ulong3 x, simd_ulong3 y, simd_long3 mask) {
-  return (simd_ulong3)simd_bitselect((simd_long3)x, (simd_long3)y, mask);
-}
-static inline SIMD_CFUNC simd_ulong4 simd_bitselect(simd_ulong4 x, simd_ulong4 y, simd_long4 mask) {
-  return (simd_ulong4)simd_bitselect((simd_long4)x, (simd_long4)y, mask);
-}
-static inline SIMD_CFUNC simd_ulong8 simd_bitselect(simd_ulong8 x, simd_ulong8 y, simd_long8 mask) {
-  return (simd_ulong8)simd_bitselect((simd_long8)x, (simd_long8)y, mask);
-}
-static inline SIMD_CFUNC simd_double2 simd_bitselect(simd_double2 x, simd_double2 y, simd_long2 mask) {
-  return (simd_double2)simd_bitselect((simd_long2)x, (simd_long2)y, mask);
-}
-static inline SIMD_CFUNC simd_double3 simd_bitselect(simd_double3 x, simd_double3 y, simd_long3 mask) {
-  return (simd_double3)simd_bitselect((simd_long3)x, (simd_long3)y, mask);
-}
-static inline SIMD_CFUNC simd_double4 simd_bitselect(simd_double4 x, simd_double4 y, simd_long4 mask) {
-  return (simd_double4)simd_bitselect((simd_long4)x, (simd_long4)y, mask);
-}
-static inline SIMD_CFUNC simd_double8 simd_bitselect(simd_double8 x, simd_double8 y, simd_long8 mask) {
-  return (simd_double8)simd_bitselect((simd_long8)x, (simd_long8)y, mask);
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
-#endif /* __SIMD_LOGIC_HEADER__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/simd/math.h b/lib/libc/include/x86_64-macos.10-none/simd/math.h
deleted file mode 100644
index 5e2b31cae2c9e9cf593e41e336679867e9336ab1..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/simd/math.h
+++ /dev/null
@@ -1,5379 +0,0 @@
-/*! @header
- *  The interfaces declared in this header provide elementwise math operations
- *  on vectors; each lane of the result vector depends only on the data in the
- *  corresponding lane of the argument(s) to the function.
- *
- *  You should not use the C functions declared in this header directly (these
- *  are functions with names like `__tg_cos(x)`). These are merely
- *  implementation details of  overloading; instead of calling
- *  `__tg_cos(x)`, call `cos(x)`. If you are writing C++, use `simd::cos(x)`.
- *
- *  Note that while these vector functions are relatively recent additions,
- *  scalar fallback is provided for all of them, so they are available even
- *  when targeting older OS versions.
- *
- *  The following functions are available:
- *
- *    C name        C++ name          Notes
- *    ----------------------------------------------------------------------
- *    acos(x)       simd::acos(x)     
- *    asin(x)       simd::asin(x)
- *    atan(x)       simd::atan(x)
- *    atan2(y,x)    simd::atan2(y,x)  The argument order matches the scalar
- *                                    atan2 function, which gives the angle
- *                                    of a line with slope y/x.
- *    cos(x)        simd::cos(x)
- *    sin(x)        simd::sin(x)
- *    tan(x)        simd::tan(x)
- *    
- *    cospi(x)      simd::cospi(x)    Returns cos(pi*x), sin(pi*x), tan(pi*x)
- *    sinpi(x)      simd::sinpi(x)    more efficiently and accurately than
- *    tanpi(x)      simd::tanpi(x)    would otherwise be possible
- *
- *    acosh(x)      simd::acosh(x)
- *    asinh(x)      simd::asinh(x)
- *    atanh(x)      simd::atanh(x)
- *
- *    cosh(x)       simd::cosh(x)
- *    sinh(x)       simd::sinh(x)
- *    tanh(x)       simd::tanh(x)
- *
- *    exp(x)        simd::exp(x)
- *    exp2(x)       simd::exp2(x)
- *    exp10(x)      simd::exp10(x)    More efficient that pow(10,x).
- *    expm1(x)      simd::expm1(x)    exp(x)-1, accurate even for tiny x.
- *
- *    log(x)        simd::log(x)
- *    log2(x)       simd::log2(x)
- *    log10(x)      simd::log10(x)
- *    log1p(x)      simd::log1p(x)    log(1+x), accurate even for tiny x.
- *
- *    fabs(x)       simd::fabs(x)
- *    cbrt(x)       simd::cbrt(x)
- *    sqrt(x)       simd::sqrt(x)
- *    pow(x,y)      simd::pow(x,y)
- *    copysign(x,y) simd::copysign(x,y)
- *    hypot(x,y)    simd::hypot(x,y)  sqrt(x*x + y*y), computed without
- *                                    overflow.1
- *    erf(x)        simd::erf(x)
- *    erfc(x)       simd::erfc(x)
- *    tgamma(x)     simd::tgamma(x)
- *
- *    fmod(x,y)      simd::fmod(x,y)
- *    remainder(x,y) simd::remainder(x,y)
- *
- *    ceil(x)       simd::ceil(x)
- *    floor(x)      simd::floor(x)
- *    rint(x)       simd::rint(x)
- *    round(x)      simd::round(x)
- *    trunc(x)      simd::trunc(x)
- *
- *    fdim(x,y)     simd::fdim(x,y)
- *    fmax(x,y)     simd::fmax(x,y)   When one argument to fmin or fmax is
- *    fmin(x,y)     simd::fmin(x,y)   constant, use it as the *second* (y)
- *                                    argument to get better codegen on some
- *                                    architectures. E.g., write fmin(x,2)
- *                                    instead of fmin(2,x).
- *    fma(x,y,z)    simd::fma(x,y,z)  Fast on arm64 and when targeting AVX2
- *                                    and later; may be quite expensive on
- *                                    older hardware.
- *    simd_muladd(x,y,z) simd::muladd(x,y,z)
- *
- *  @copyright 2014-2017 Apple, Inc. All rights reserved.
- *  @unsorted                                                                 */
-
-#ifndef SIMD_MATH_HEADER
-#define SIMD_MATH_HEADER
-
-#include 
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include 
-#include 
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_acos(simd_float2 x);
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_acos(simd_float3 x);
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_acos(simd_float4 x);
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_acos(simd_float8 x);
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_acos(simd_float16 x);
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_acos(simd_double2 x);
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_acos(simd_double3 x);
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_acos(simd_double4 x);
-/*! @abstract Do not call this function; instead use `acos` in C and
- *  Objective-C, and `simd::acos` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_acos(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_asin(simd_float2 x);
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_asin(simd_float3 x);
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_asin(simd_float4 x);
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_asin(simd_float8 x);
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_asin(simd_float16 x);
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_asin(simd_double2 x);
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_asin(simd_double3 x);
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_asin(simd_double4 x);
-/*! @abstract Do not call this function; instead use `asin` in C and
- *  Objective-C, and `simd::asin` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_asin(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_atan(simd_float2 x);
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_atan(simd_float3 x);
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_atan(simd_float4 x);
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_atan(simd_float8 x);
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_atan(simd_float16 x);
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_atan(simd_double2 x);
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_atan(simd_double3 x);
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_atan(simd_double4 x);
-/*! @abstract Do not call this function; instead use `atan` in C and
- *  Objective-C, and `simd::atan` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_atan(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_float2 __tg_cos(simd_float2 x);
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_float3 __tg_cos(simd_float3 x);
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_float4 __tg_cos(simd_float4 x);
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_float8 __tg_cos(simd_float8 x);
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_float16 __tg_cos(simd_float16 x);
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_double2 __tg_cos(simd_double2 x);
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_double3 __tg_cos(simd_double3 x);
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_double4 __tg_cos(simd_double4 x);
-/*! @abstract Do not call this function; instead use `cos` in C and
- *  Objective-C, and `simd::cos` in C++.                                      */
-static inline SIMD_CFUNC simd_double8 __tg_cos(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_float2 __tg_sin(simd_float2 x);
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_float3 __tg_sin(simd_float3 x);
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_float4 __tg_sin(simd_float4 x);
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_float8 __tg_sin(simd_float8 x);
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_float16 __tg_sin(simd_float16 x);
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_double2 __tg_sin(simd_double2 x);
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_double3 __tg_sin(simd_double3 x);
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_double4 __tg_sin(simd_double4 x);
-/*! @abstract Do not call this function; instead use `sin` in C and
- *  Objective-C, and `simd::sin` in C++.                                      */
-static inline SIMD_CFUNC simd_double8 __tg_sin(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_float2 __tg_tan(simd_float2 x);
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_float3 __tg_tan(simd_float3 x);
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_float4 __tg_tan(simd_float4 x);
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_float8 __tg_tan(simd_float8 x);
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_float16 __tg_tan(simd_float16 x);
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_double2 __tg_tan(simd_double2 x);
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_double3 __tg_tan(simd_double3 x);
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_double4 __tg_tan(simd_double4 x);
-/*! @abstract Do not call this function; instead use `tan` in C and
- *  Objective-C, and `simd::tan` in C++.                                      */
-static inline SIMD_CFUNC simd_double8 __tg_tan(simd_double8 x);
-
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_cospi(simd_float2 x);
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_cospi(simd_float3 x);
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_cospi(simd_float4 x);
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_cospi(simd_float8 x);
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_cospi(simd_float16 x);
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_cospi(simd_double2 x);
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_cospi(simd_double3 x);
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_cospi(simd_double4 x);
-/*! @abstract Do not call this function; instead use `cospi` in C and
- *  Objective-C, and `simd::cospi` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_cospi(simd_double8 x);
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_sinpi(simd_float2 x);
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_sinpi(simd_float3 x);
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_sinpi(simd_float4 x);
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_sinpi(simd_float8 x);
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_sinpi(simd_float16 x);
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_sinpi(simd_double2 x);
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_sinpi(simd_double3 x);
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_sinpi(simd_double4 x);
-/*! @abstract Do not call this function; instead use `sinpi` in C and
- *  Objective-C, and `simd::sinpi` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_sinpi(simd_double8 x);
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_tanpi(simd_float2 x);
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_tanpi(simd_float3 x);
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_tanpi(simd_float4 x);
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_tanpi(simd_float8 x);
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_tanpi(simd_float16 x);
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_tanpi(simd_double2 x);
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_tanpi(simd_double3 x);
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_tanpi(simd_double4 x);
-/*! @abstract Do not call this function; instead use `tanpi` in C and
- *  Objective-C, and `simd::tanpi` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_tanpi(simd_double8 x);
-#endif
-
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_acosh(simd_float2 x);
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_acosh(simd_float3 x);
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_acosh(simd_float4 x);
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_acosh(simd_float8 x);
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_acosh(simd_float16 x);
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_acosh(simd_double2 x);
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_acosh(simd_double3 x);
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_acosh(simd_double4 x);
-/*! @abstract Do not call this function; instead use `acosh` in C and
- *  Objective-C, and `simd::acosh` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_acosh(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_asinh(simd_float2 x);
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_asinh(simd_float3 x);
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_asinh(simd_float4 x);
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_asinh(simd_float8 x);
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_asinh(simd_float16 x);
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_asinh(simd_double2 x);
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_asinh(simd_double3 x);
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_asinh(simd_double4 x);
-/*! @abstract Do not call this function; instead use `asinh` in C and
- *  Objective-C, and `simd::asinh` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_asinh(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_atanh(simd_float2 x);
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_atanh(simd_float3 x);
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_atanh(simd_float4 x);
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_atanh(simd_float8 x);
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_atanh(simd_float16 x);
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_atanh(simd_double2 x);
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_atanh(simd_double3 x);
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_atanh(simd_double4 x);
-/*! @abstract Do not call this function; instead use `atanh` in C and
- *  Objective-C, and `simd::atanh` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_atanh(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_cosh(simd_float2 x);
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_cosh(simd_float3 x);
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_cosh(simd_float4 x);
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_cosh(simd_float8 x);
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_cosh(simd_float16 x);
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_cosh(simd_double2 x);
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_cosh(simd_double3 x);
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_cosh(simd_double4 x);
-/*! @abstract Do not call this function; instead use `cosh` in C and
- *  Objective-C, and `simd::cosh` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_cosh(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_sinh(simd_float2 x);
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_sinh(simd_float3 x);
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_sinh(simd_float4 x);
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_sinh(simd_float8 x);
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_sinh(simd_float16 x);
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_sinh(simd_double2 x);
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_sinh(simd_double3 x);
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_sinh(simd_double4 x);
-/*! @abstract Do not call this function; instead use `sinh` in C and
- *  Objective-C, and `simd::sinh` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_sinh(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_tanh(simd_float2 x);
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_tanh(simd_float3 x);
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_tanh(simd_float4 x);
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_tanh(simd_float8 x);
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_tanh(simd_float16 x);
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_tanh(simd_double2 x);
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_tanh(simd_double3 x);
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_tanh(simd_double4 x);
-/*! @abstract Do not call this function; instead use `tanh` in C and
- *  Objective-C, and `simd::tanh` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_tanh(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_float2 __tg_exp(simd_float2 x);
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_float3 __tg_exp(simd_float3 x);
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_float4 __tg_exp(simd_float4 x);
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_float8 __tg_exp(simd_float8 x);
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_float16 __tg_exp(simd_float16 x);
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_double2 __tg_exp(simd_double2 x);
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_double3 __tg_exp(simd_double3 x);
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_double4 __tg_exp(simd_double4 x);
-/*! @abstract Do not call this function; instead use `exp` in C and
- *  Objective-C, and `simd::exp` in C++.                                      */
-static inline SIMD_CFUNC simd_double8 __tg_exp(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_exp2(simd_float2 x);
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_exp2(simd_float3 x);
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_exp2(simd_float4 x);
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_exp2(simd_float8 x);
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_exp2(simd_float16 x);
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_exp2(simd_double2 x);
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_exp2(simd_double3 x);
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_exp2(simd_double4 x);
-/*! @abstract Do not call this function; instead use `exp2` in C and
- *  Objective-C, and `simd::exp2` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_exp2(simd_double8 x);
-
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_exp10(simd_float2 x);
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_exp10(simd_float3 x);
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_exp10(simd_float4 x);
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_exp10(simd_float8 x);
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_exp10(simd_float16 x);
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_exp10(simd_double2 x);
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_exp10(simd_double3 x);
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_exp10(simd_double4 x);
-/*! @abstract Do not call this function; instead use `exp10` in C and
- *  Objective-C, and `simd::exp10` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_exp10(simd_double8 x);
-#endif
-
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_expm1(simd_float2 x);
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_expm1(simd_float3 x);
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_expm1(simd_float4 x);
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_expm1(simd_float8 x);
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_expm1(simd_float16 x);
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_expm1(simd_double2 x);
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_expm1(simd_double3 x);
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_expm1(simd_double4 x);
-/*! @abstract Do not call this function; instead use `expm1` in C and
- *  Objective-C, and `simd::expm1` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_expm1(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_float2 __tg_log(simd_float2 x);
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_float3 __tg_log(simd_float3 x);
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_float4 __tg_log(simd_float4 x);
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_float8 __tg_log(simd_float8 x);
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_float16 __tg_log(simd_float16 x);
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_double2 __tg_log(simd_double2 x);
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_double3 __tg_log(simd_double3 x);
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_double4 __tg_log(simd_double4 x);
-/*! @abstract Do not call this function; instead use `log` in C and
- *  Objective-C, and `simd::log` in C++.                                      */
-static inline SIMD_CFUNC simd_double8 __tg_log(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_log2(simd_float2 x);
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_log2(simd_float3 x);
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_log2(simd_float4 x);
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_log2(simd_float8 x);
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_log2(simd_float16 x);
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_log2(simd_double2 x);
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_log2(simd_double3 x);
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_log2(simd_double4 x);
-/*! @abstract Do not call this function; instead use `log2` in C and
- *  Objective-C, and `simd::log2` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_log2(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_log10(simd_float2 x);
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_log10(simd_float3 x);
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_log10(simd_float4 x);
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_log10(simd_float8 x);
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_log10(simd_float16 x);
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_log10(simd_double2 x);
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_log10(simd_double3 x);
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_log10(simd_double4 x);
-/*! @abstract Do not call this function; instead use `log10` in C and
- *  Objective-C, and `simd::log10` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_log10(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_log1p(simd_float2 x);
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_log1p(simd_float3 x);
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_log1p(simd_float4 x);
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_log1p(simd_float8 x);
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_log1p(simd_float16 x);
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_log1p(simd_double2 x);
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_log1p(simd_double3 x);
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_log1p(simd_double4 x);
-/*! @abstract Do not call this function; instead use `log1p` in C and
- *  Objective-C, and `simd::log1p` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_log1p(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_fabs(simd_float2 x);
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_fabs(simd_float3 x);
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_fabs(simd_float4 x);
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_fabs(simd_float8 x);
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_fabs(simd_float16 x);
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_fabs(simd_double2 x);
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_fabs(simd_double3 x);
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_fabs(simd_double4 x);
-/*! @abstract Do not call this function; instead use `fabs` in C and
- *  Objective-C, and `simd::fabs` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_fabs(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_cbrt(simd_float2 x);
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_cbrt(simd_float3 x);
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_cbrt(simd_float4 x);
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_cbrt(simd_float8 x);
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_cbrt(simd_float16 x);
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_cbrt(simd_double2 x);
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_cbrt(simd_double3 x);
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_cbrt(simd_double4 x);
-/*! @abstract Do not call this function; instead use `cbrt` in C and
- *  Objective-C, and `simd::cbrt` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_cbrt(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_sqrt(simd_float2 x);
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_sqrt(simd_float3 x);
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_sqrt(simd_float4 x);
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_sqrt(simd_float8 x);
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_sqrt(simd_float16 x);
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_sqrt(simd_double2 x);
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_sqrt(simd_double3 x);
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_sqrt(simd_double4 x);
-/*! @abstract Do not call this function; instead use `sqrt` in C and
- *  Objective-C, and `simd::sqrt` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_sqrt(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_float2 __tg_erf(simd_float2 x);
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_float3 __tg_erf(simd_float3 x);
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_float4 __tg_erf(simd_float4 x);
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_float8 __tg_erf(simd_float8 x);
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_float16 __tg_erf(simd_float16 x);
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_double2 __tg_erf(simd_double2 x);
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_double3 __tg_erf(simd_double3 x);
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_double4 __tg_erf(simd_double4 x);
-/*! @abstract Do not call this function; instead use `erf` in C and
- *  Objective-C, and `simd::erf` in C++.                                      */
-static inline SIMD_CFUNC simd_double8 __tg_erf(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_erfc(simd_float2 x);
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_erfc(simd_float3 x);
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_erfc(simd_float4 x);
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_erfc(simd_float8 x);
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_erfc(simd_float16 x);
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_erfc(simd_double2 x);
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_erfc(simd_double3 x);
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_erfc(simd_double4 x);
-/*! @abstract Do not call this function; instead use `erfc` in C and
- *  Objective-C, and `simd::erfc` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_erfc(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_float2 __tg_tgamma(simd_float2 x);
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_float3 __tg_tgamma(simd_float3 x);
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_float4 __tg_tgamma(simd_float4 x);
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_float8 __tg_tgamma(simd_float8 x);
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_float16 __tg_tgamma(simd_float16 x);
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_double2 __tg_tgamma(simd_double2 x);
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_double3 __tg_tgamma(simd_double3 x);
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_double4 __tg_tgamma(simd_double4 x);
-/*! @abstract Do not call this function; instead use `tgamma` in C and
- *  Objective-C, and `simd::tgamma` in C++.                                   */
-static inline SIMD_CFUNC simd_double8 __tg_tgamma(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_ceil(simd_float2 x);
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_ceil(simd_float3 x);
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_ceil(simd_float4 x);
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_ceil(simd_float8 x);
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_ceil(simd_float16 x);
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_ceil(simd_double2 x);
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_ceil(simd_double3 x);
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_ceil(simd_double4 x);
-/*! @abstract Do not call this function; instead use `ceil` in C and
- *  Objective-C, and `simd::ceil` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_ceil(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_floor(simd_float2 x);
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_floor(simd_float3 x);
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_floor(simd_float4 x);
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_floor(simd_float8 x);
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_floor(simd_float16 x);
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_floor(simd_double2 x);
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_floor(simd_double3 x);
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_floor(simd_double4 x);
-/*! @abstract Do not call this function; instead use `floor` in C and
- *  Objective-C, and `simd::floor` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_floor(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_rint(simd_float2 x);
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_rint(simd_float3 x);
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_rint(simd_float4 x);
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_rint(simd_float8 x);
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_rint(simd_float16 x);
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_rint(simd_double2 x);
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_rint(simd_double3 x);
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_rint(simd_double4 x);
-/*! @abstract Do not call this function; instead use `rint` in C and
- *  Objective-C, and `simd::rint` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_rint(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_round(simd_float2 x);
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_round(simd_float3 x);
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_round(simd_float4 x);
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_round(simd_float8 x);
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_round(simd_float16 x);
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_round(simd_double2 x);
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_round(simd_double3 x);
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_round(simd_double4 x);
-/*! @abstract Do not call this function; instead use `round` in C and
- *  Objective-C, and `simd::round` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_round(simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_trunc(simd_float2 x);
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_trunc(simd_float3 x);
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_trunc(simd_float4 x);
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_trunc(simd_float8 x);
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_trunc(simd_float16 x);
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_trunc(simd_double2 x);
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_trunc(simd_double3 x);
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_trunc(simd_double4 x);
-/*! @abstract Do not call this function; instead use `trunc` in C and
- *  Objective-C, and `simd::trunc` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_trunc(simd_double8 x);
-
-    
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_atan2(simd_float2 y, simd_float2 x);
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_atan2(simd_float3 y, simd_float3 x);
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_atan2(simd_float4 y, simd_float4 x);
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_atan2(simd_float8 y, simd_float8 x);
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_atan2(simd_float16 y, simd_float16 x);
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_atan2(simd_double2 y, simd_double2 x);
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_atan2(simd_double3 y, simd_double3 x);
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_atan2(simd_double4 y, simd_double4 x);
-/*! @abstract Do not call this function; instead use `atan2` in C and
- *  Objective-C, and `simd::atan2` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_atan2(simd_double8 y, simd_double8 x);
-
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_float2 __tg_hypot(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_float3 __tg_hypot(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_float4 __tg_hypot(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_float8 __tg_hypot(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_float16 __tg_hypot(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_double2 __tg_hypot(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_double3 __tg_hypot(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_double4 __tg_hypot(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `hypot` in C and
- *  Objective-C, and `simd::hypot` in C++.                                    */
-static inline SIMD_CFUNC simd_double8 __tg_hypot(simd_double8 x, simd_double8 y);
-
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_float2 __tg_pow(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_float3 __tg_pow(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_float4 __tg_pow(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_float8 __tg_pow(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_float16 __tg_pow(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_double2 __tg_pow(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_double3 __tg_pow(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_double4 __tg_pow(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `pow` in C and
- *  Objective-C, and `simd::pow` in C++.                                      */
-static inline SIMD_CFUNC simd_double8 __tg_pow(simd_double8 x, simd_double8 y);
-
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_fmod(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_fmod(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_fmod(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_fmod(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_fmod(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_fmod(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_fmod(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_fmod(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `fmod` in C and
- *  Objective-C, and `simd::fmod` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_fmod(simd_double8 x, simd_double8 y);
-
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_float2 __tg_remainder(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_float3 __tg_remainder(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_float4 __tg_remainder(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_float8 __tg_remainder(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_float16 __tg_remainder(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_double2 __tg_remainder(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_double3 __tg_remainder(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_double4 __tg_remainder(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `remainder` in C and
- *  Objective-C, and `simd::remainder` in C++.                                */
-static inline SIMD_CFUNC simd_double8 __tg_remainder(simd_double8 x, simd_double8 y);
-
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_float2 __tg_copysign(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_float3 __tg_copysign(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_float4 __tg_copysign(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_float8 __tg_copysign(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_float16 __tg_copysign(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_double2 __tg_copysign(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_double3 __tg_copysign(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_double4 __tg_copysign(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `copysign` in C and
- *  Objective-C, and `simd::copysign` in C++.                                 */
-static inline SIMD_CFUNC simd_double8 __tg_copysign(simd_double8 x, simd_double8 y);
-
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_float2 __tg_nextafter(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_float3 __tg_nextafter(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_float4 __tg_nextafter(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_float8 __tg_nextafter(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_float16 __tg_nextafter(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_double2 __tg_nextafter(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_double3 __tg_nextafter(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_double4 __tg_nextafter(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `nextafter` in C and
- *  Objective-C, and `simd::nextafter` in C++.                                */
-static inline SIMD_CFUNC simd_double8 __tg_nextafter(simd_double8 x, simd_double8 y);
-
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_fdim(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_fdim(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_fdim(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_fdim(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_fdim(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_fdim(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_fdim(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_fdim(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `fdim` in C and
- *  Objective-C, and `simd::fdim` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_fdim(simd_double8 x, simd_double8 y);
-
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_fmax(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_fmax(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_fmax(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_fmax(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_fmax(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_fmax(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_fmax(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_fmax(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `fmax` in C and
- *  Objective-C, and `simd::fmax` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_fmax(simd_double8 x, simd_double8 y);
-
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_float2 __tg_fmin(simd_float2 x, simd_float2 y);
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_float3 __tg_fmin(simd_float3 x, simd_float3 y);
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_float4 __tg_fmin(simd_float4 x, simd_float4 y);
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_float8 __tg_fmin(simd_float8 x, simd_float8 y);
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_float16 __tg_fmin(simd_float16 x, simd_float16 y);
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_double2 __tg_fmin(simd_double2 x, simd_double2 y);
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_double3 __tg_fmin(simd_double3 x, simd_double3 y);
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_double4 __tg_fmin(simd_double4 x, simd_double4 y);
-/*! @abstract Do not call this function; instead use `fmin` in C and
- *  Objective-C, and `simd::fmin` in C++.                                     */
-static inline SIMD_CFUNC simd_double8 __tg_fmin(simd_double8 x, simd_double8 y);
-
-
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_float2 __tg_fma(simd_float2 x, simd_float2 y, simd_float2 z);
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_float3 __tg_fma(simd_float3 x, simd_float3 y, simd_float3 z);
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_float4 __tg_fma(simd_float4 x, simd_float4 y, simd_float4 z);
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_float8 __tg_fma(simd_float8 x, simd_float8 y, simd_float8 z);
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_float16 __tg_fma(simd_float16 x, simd_float16 y, simd_float16 z);
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_double2 __tg_fma(simd_double2 x, simd_double2 y, simd_double2 z);
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_double3 __tg_fma(simd_double3 x, simd_double3 y, simd_double3 z);
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_double4 __tg_fma(simd_double4 x, simd_double4 y, simd_double4 z);
-/*! @abstract Do not call this function; instead use `fma` in C and Objective-C,
- *  and `simd::fma` in C++.                                                   */
-static inline SIMD_CFUNC simd_double8 __tg_fma(simd_double8 x, simd_double8 y, simd_double8 z);
-    
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC float simd_muladd(float x, float y, float z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_float2 simd_muladd(simd_float2 x, simd_float2 y, simd_float2 z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_float3 simd_muladd(simd_float3 x, simd_float3 y, simd_float3 z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_float4 simd_muladd(simd_float4 x, simd_float4 y, simd_float4 z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_float8 simd_muladd(simd_float8 x, simd_float8 y, simd_float8 z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_float16 simd_muladd(simd_float16 x, simd_float16 y, simd_float16 z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC double simd_muladd(double x, double y, double z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_double2 simd_muladd(simd_double2 x, simd_double2 y, simd_double2 z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_double3 simd_muladd(simd_double3 x, simd_double3 y, simd_double3 z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_double4 simd_muladd(simd_double4 x, simd_double4 y, simd_double4 z);
-/*! @abstract Computes accum + x*y by the most efficient means available;
- *  either a fused multiply add or separate multiply and add instructions.    */
-static inline SIMD_CFUNC simd_double8 simd_muladd(simd_double8 x, simd_double8 y, simd_double8 z);
-    
-#ifdef __cplusplus
-} /* extern "C" */
-
-#include 
-/*! @abstract Do not call this function directly; use simd::acos instead.     */
-static SIMD_CPPFUNC float __tg_acos(float x) { return ::acos(x); }
-/*! @abstract Do not call this function directly; use simd::acos instead.     */
-static SIMD_CPPFUNC double __tg_acos(double x) { return ::acos(x); }
-/*! @abstract Do not call this function directly; use simd::asin instead.     */
-static SIMD_CPPFUNC float __tg_asin(float x) { return ::asin(x); }
-/*! @abstract Do not call this function directly; use simd::asin instead.     */
-static SIMD_CPPFUNC double __tg_asin(double x) { return ::asin(x); }
-/*! @abstract Do not call this function directly; use simd::atan instead.     */
-static SIMD_CPPFUNC float __tg_atan(float x) { return ::atan(x); }
-/*! @abstract Do not call this function directly; use simd::atan instead.     */
-static SIMD_CPPFUNC double __tg_atan(double x) { return ::atan(x); }
-/*! @abstract Do not call this function directly; use simd::cos instead.      */
-static SIMD_CPPFUNC float __tg_cos(float x) { return ::cos(x); }
-/*! @abstract Do not call this function directly; use simd::cos instead.      */
-static SIMD_CPPFUNC double __tg_cos(double x) { return ::cos(x); }
-/*! @abstract Do not call this function directly; use simd::sin instead.      */
-static SIMD_CPPFUNC float __tg_sin(float x) { return ::sin(x); }
-/*! @abstract Do not call this function directly; use simd::sin instead.      */
-static SIMD_CPPFUNC double __tg_sin(double x) { return ::sin(x); }
-/*! @abstract Do not call this function directly; use simd::tan instead.      */
-static SIMD_CPPFUNC float __tg_tan(float x) { return ::tan(x); }
-/*! @abstract Do not call this function directly; use simd::tan instead.      */
-static SIMD_CPPFUNC double __tg_tan(double x) { return ::tan(x); }
-/*! @abstract Do not call this function directly; use simd::cospi instead.    */
-static SIMD_CPPFUNC float __tg_cospi(float x) { return ::__cospi(x); }
-/*! @abstract Do not call this function directly; use simd::cospi instead.    */
-static SIMD_CPPFUNC double __tg_cospi(double x) { return ::__cospi(x); }
-/*! @abstract Do not call this function directly; use simd::sinpi instead.    */
-static SIMD_CPPFUNC float __tg_sinpi(float x) { return ::__sinpi(x); }
-/*! @abstract Do not call this function directly; use simd::sinpi instead.    */
-static SIMD_CPPFUNC double __tg_sinpi(double x) { return ::__sinpi(x); }
-/*! @abstract Do not call this function directly; use simd::tanpi instead.    */
-static SIMD_CPPFUNC float __tg_tanpi(float x) { return ::__tanpi(x); }
-/*! @abstract Do not call this function directly; use simd::tanpi instead.    */
-static SIMD_CPPFUNC double __tg_tanpi(double x) { return ::__tanpi(x); }
-/*! @abstract Do not call this function directly; use simd::acosh instead.    */
-static SIMD_CPPFUNC float __tg_acosh(float x) { return ::acosh(x); }
-/*! @abstract Do not call this function directly; use simd::acosh instead.    */
-static SIMD_CPPFUNC double __tg_acosh(double x) { return ::acosh(x); }
-/*! @abstract Do not call this function directly; use simd::asinh instead.    */
-static SIMD_CPPFUNC float __tg_asinh(float x) { return ::asinh(x); }
-/*! @abstract Do not call this function directly; use simd::asinh instead.    */
-static SIMD_CPPFUNC double __tg_asinh(double x) { return ::asinh(x); }
-/*! @abstract Do not call this function directly; use simd::atanh instead.    */
-static SIMD_CPPFUNC float __tg_atanh(float x) { return ::atanh(x); }
-/*! @abstract Do not call this function directly; use simd::atanh instead.    */
-static SIMD_CPPFUNC double __tg_atanh(double x) { return ::atanh(x); }
-/*! @abstract Do not call this function directly; use simd::cosh instead.     */
-static SIMD_CPPFUNC float __tg_cosh(float x) { return ::cosh(x); }
-/*! @abstract Do not call this function directly; use simd::cosh instead.     */
-static SIMD_CPPFUNC double __tg_cosh(double x) { return ::cosh(x); }
-/*! @abstract Do not call this function directly; use simd::sinh instead.     */
-static SIMD_CPPFUNC float __tg_sinh(float x) { return ::sinh(x); }
-/*! @abstract Do not call this function directly; use simd::sinh instead.     */
-static SIMD_CPPFUNC double __tg_sinh(double x) { return ::sinh(x); }
-/*! @abstract Do not call this function directly; use simd::tanh instead.     */
-static SIMD_CPPFUNC float __tg_tanh(float x) { return ::tanh(x); }
-/*! @abstract Do not call this function directly; use simd::tanh instead.     */
-static SIMD_CPPFUNC double __tg_tanh(double x) { return ::tanh(x); }
-/*! @abstract Do not call this function directly; use simd::exp instead.      */
-static SIMD_CPPFUNC float __tg_exp(float x) { return ::exp(x); }
-/*! @abstract Do not call this function directly; use simd::exp instead.      */
-static SIMD_CPPFUNC double __tg_exp(double x) { return ::exp(x); }
-/*! @abstract Do not call this function directly; use simd::exp2 instead.     */
-static SIMD_CPPFUNC float __tg_exp2(float x) { return ::exp2(x); }
-/*! @abstract Do not call this function directly; use simd::exp2 instead.     */
-static SIMD_CPPFUNC double __tg_exp2(double x) { return ::exp2(x); }
-/*! @abstract Do not call this function directly; use simd::exp10 instead.    */
-static SIMD_CPPFUNC float __tg_exp10(float x) { return ::__exp10(x); }
-/*! @abstract Do not call this function directly; use simd::exp10 instead.    */
-static SIMD_CPPFUNC double __tg_exp10(double x) { return ::__exp10(x); }
-/*! @abstract Do not call this function directly; use simd::expm1 instead.    */
-static SIMD_CPPFUNC float __tg_expm1(float x) { return ::expm1(x); }
-/*! @abstract Do not call this function directly; use simd::expm1 instead.    */
-static SIMD_CPPFUNC double __tg_expm1(double x) { return ::expm1(x); }
-/*! @abstract Do not call this function directly; use simd::log instead.      */
-static SIMD_CPPFUNC float __tg_log(float x) { return ::log(x); }
-/*! @abstract Do not call this function directly; use simd::log instead.      */
-static SIMD_CPPFUNC double __tg_log(double x) { return ::log(x); }
-/*! @abstract Do not call this function directly; use simd::log2 instead.     */
-static SIMD_CPPFUNC float __tg_log2(float x) { return ::log2(x); }
-/*! @abstract Do not call this function directly; use simd::log2 instead.     */
-static SIMD_CPPFUNC double __tg_log2(double x) { return ::log2(x); }
-/*! @abstract Do not call this function directly; use simd::log10 instead.    */
-static SIMD_CPPFUNC float __tg_log10(float x) { return ::log10(x); }
-/*! @abstract Do not call this function directly; use simd::log10 instead.    */
-static SIMD_CPPFUNC double __tg_log10(double x) { return ::log10(x); }
-/*! @abstract Do not call this function directly; use simd::log1p instead.    */
-static SIMD_CPPFUNC float __tg_log1p(float x) { return ::log1p(x); }
-/*! @abstract Do not call this function directly; use simd::log1p instead.    */
-static SIMD_CPPFUNC double __tg_log1p(double x) { return ::log1p(x); }
-/*! @abstract Do not call this function directly; use simd::fabs instead.     */
-static SIMD_CPPFUNC float __tg_fabs(float x) { return ::fabs(x); }
-/*! @abstract Do not call this function directly; use simd::fabs instead.     */
-static SIMD_CPPFUNC double __tg_fabs(double x) { return ::fabs(x); }
-/*! @abstract Do not call this function directly; use simd::cbrt instead.     */
-static SIMD_CPPFUNC float __tg_cbrt(float x) { return ::cbrt(x); }
-/*! @abstract Do not call this function directly; use simd::cbrt instead.     */
-static SIMD_CPPFUNC double __tg_cbrt(double x) { return ::cbrt(x); }
-/*! @abstract Do not call this function directly; use simd::sqrt instead.     */
-static SIMD_CPPFUNC float __tg_sqrt(float x) { return ::sqrt(x); }
-/*! @abstract Do not call this function directly; use simd::sqrt instead.     */
-static SIMD_CPPFUNC double __tg_sqrt(double x) { return ::sqrt(x); }
-/*! @abstract Do not call this function directly; use simd::erf instead.      */
-static SIMD_CPPFUNC float __tg_erf(float x) { return ::erf(x); }
-/*! @abstract Do not call this function directly; use simd::erf instead.      */
-static SIMD_CPPFUNC double __tg_erf(double x) { return ::erf(x); }
-/*! @abstract Do not call this function directly; use simd::erfc instead.     */
-static SIMD_CPPFUNC float __tg_erfc(float x) { return ::erfc(x); }
-/*! @abstract Do not call this function directly; use simd::erfc instead.     */
-static SIMD_CPPFUNC double __tg_erfc(double x) { return ::erfc(x); }
-/*! @abstract Do not call this function directly; use simd::tgamma instead.   */
-static SIMD_CPPFUNC float __tg_tgamma(float x) { return ::tgamma(x); }
-/*! @abstract Do not call this function directly; use simd::tgamma instead.   */
-static SIMD_CPPFUNC double __tg_tgamma(double x) { return ::tgamma(x); }
-/*! @abstract Do not call this function directly; use simd::ceil instead.     */
-static SIMD_CPPFUNC float __tg_ceil(float x) { return ::ceil(x); }
-/*! @abstract Do not call this function directly; use simd::ceil instead.     */
-static SIMD_CPPFUNC double __tg_ceil(double x) { return ::ceil(x); }
-/*! @abstract Do not call this function directly; use simd::floor instead.    */
-static SIMD_CPPFUNC float __tg_floor(float x) { return ::floor(x); }
-/*! @abstract Do not call this function directly; use simd::floor instead.    */
-static SIMD_CPPFUNC double __tg_floor(double x) { return ::floor(x); }
-/*! @abstract Do not call this function directly; use simd::rint instead.     */
-static SIMD_CPPFUNC float __tg_rint(float x) { return ::rint(x); }
-/*! @abstract Do not call this function directly; use simd::rint instead.     */
-static SIMD_CPPFUNC double __tg_rint(double x) { return ::rint(x); }
-/*! @abstract Do not call this function directly; use simd::round instead.    */
-static SIMD_CPPFUNC float __tg_round(float x) { return ::round(x); }
-/*! @abstract Do not call this function directly; use simd::round instead.    */
-static SIMD_CPPFUNC double __tg_round(double x) { return ::round(x); }
-/*! @abstract Do not call this function directly; use simd::trunc instead.    */
-static SIMD_CPPFUNC float __tg_trunc(float x) { return ::trunc(x); }
-/*! @abstract Do not call this function directly; use simd::trunc instead.    */
-static SIMD_CPPFUNC double __tg_trunc(double x) { return ::trunc(x); }
-/*! @abstract Do not call this function directly; use simd::atan2 instead.    */
-static SIMD_CPPFUNC float __tg_atan2(float x, float y) { return ::atan2(x, y); }
-/*! @abstract Do not call this function directly; use simd::atan2 instead.    */
-static SIMD_CPPFUNC double __tg_atan2(double x, float y) { return ::atan2(x, y); }
-/*! @abstract Do not call this function directly; use simd::hypot instead.    */
-static SIMD_CPPFUNC float __tg_hypot(float x, float y) { return ::hypot(x, y); }
-/*! @abstract Do not call this function directly; use simd::hypot instead.    */
-static SIMD_CPPFUNC double __tg_hypot(double x, float y) { return ::hypot(x, y); }
-/*! @abstract Do not call this function directly; use simd::pow instead.      */
-static SIMD_CPPFUNC float __tg_pow(float x, float y) { return ::pow(x, y); }
-/*! @abstract Do not call this function directly; use simd::pow instead.      */
-static SIMD_CPPFUNC double __tg_pow(double x, float y) { return ::pow(x, y); }
-/*! @abstract Do not call this function directly; use simd::fmod instead.     */
-static SIMD_CPPFUNC float __tg_fmod(float x, float y) { return ::fmod(x, y); }
-/*! @abstract Do not call this function directly; use simd::fmod instead.     */
-static SIMD_CPPFUNC double __tg_fmod(double x, float y) { return ::fmod(x, y); }
-/*! @abstract Do not call this function directly; use simd::remainder
- *  instead.                                                                  */
-static SIMD_CPPFUNC float __tg_remainder(float x, float y) { return ::remainder(x, y); }
-/*! @abstract Do not call this function directly; use simd::remainder
- *  instead.                                                                  */
-static SIMD_CPPFUNC double __tg_remainder(double x, float y) { return ::remainder(x, y); }
-/*! @abstract Do not call this function directly; use simd::copysign
- *  instead.                                                                  */
-static SIMD_CPPFUNC float __tg_copysign(float x, float y) { return ::copysign(x, y); }
-/*! @abstract Do not call this function directly; use simd::copysign
- *  instead.                                                                  */
-static SIMD_CPPFUNC double __tg_copysign(double x, float y) { return ::copysign(x, y); }
-/*! @abstract Do not call this function directly; use simd::nextafter
- *  instead.                                                                  */
-static SIMD_CPPFUNC float __tg_nextafter(float x, float y) { return ::nextafter(x, y); }
-/*! @abstract Do not call this function directly; use simd::nextafter
- *  instead.                                                                  */
-static SIMD_CPPFUNC double __tg_nextafter(double x, float y) { return ::nextafter(x, y); }
-/*! @abstract Do not call this function directly; use simd::fdim instead.     */
-static SIMD_CPPFUNC float __tg_fdim(float x, float y) { return ::fdim(x, y); }
-/*! @abstract Do not call this function directly; use simd::fdim instead.     */
-static SIMD_CPPFUNC double __tg_fdim(double x, float y) { return ::fdim(x, y); }
-/*! @abstract Do not call this function directly; use simd::fmax instead.     */
-static SIMD_CPPFUNC float __tg_fmax(float x, float y) { return ::fmax(x, y); }
-/*! @abstract Do not call this function directly; use simd::fmax instead.     */
-static SIMD_CPPFUNC double __tg_fmax(double x, float y) { return ::fmax(x, y); }
-/*! @abstract Do not call this function directly; use simd::fmin instead.     */
-static SIMD_CPPFUNC float __tg_fmin(float x, float y) { return ::fmin(x, y); }
-/*! @abstract Do not call this function directly; use simd::fmin instead.     */
-static SIMD_CPPFUNC double __tg_fmin(double x, float y) { return ::fmin(x, y); }
-/*! @abstract Do not call this function directly; use simd::fma instead.      */
-static SIMD_CPPFUNC float __tg_fma(float x, float y, float z) { return ::fma(x, y, z); }
-/*! @abstract Do not call this function directly; use simd::fma instead.      */
-static SIMD_CPPFUNC double __tg_fma(double x, double y, double z) { return ::fma(x, y, z); }
-  
-namespace simd {
-/*! @abstract Generalizes the  function acos to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN acos(fptypeN x) { return ::__tg_acos(x); }
-  
-/*! @abstract Generalizes the  function asin to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN asin(fptypeN x) { return ::__tg_asin(x); }
-  
-/*! @abstract Generalizes the  function atan to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN atan(fptypeN x) { return ::__tg_atan(x); }
-  
-/*! @abstract Generalizes the  function cos to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN cos(fptypeN x) { return ::__tg_cos(x); }
-  
-/*! @abstract Generalizes the  function sin to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN sin(fptypeN x) { return ::__tg_sin(x); }
-  
-/*! @abstract Generalizes the  function tan to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN tan(fptypeN x) { return ::__tg_tan(x); }
-  
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Generalizes the  function cospi to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN cospi(fptypeN x) { return ::__tg_cospi(x); }
-#endif
-  
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Generalizes the  function sinpi to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN sinpi(fptypeN x) { return ::__tg_sinpi(x); }
-#endif
-  
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Generalizes the  function tanpi to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN tanpi(fptypeN x) { return ::__tg_tanpi(x); }
-#endif
-  
-/*! @abstract Generalizes the  function acosh to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN acosh(fptypeN x) { return ::__tg_acosh(x); }
-  
-/*! @abstract Generalizes the  function asinh to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN asinh(fptypeN x) { return ::__tg_asinh(x); }
-  
-/*! @abstract Generalizes the  function atanh to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN atanh(fptypeN x) { return ::__tg_atanh(x); }
-  
-/*! @abstract Generalizes the  function cosh to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN cosh(fptypeN x) { return ::__tg_cosh(x); }
-  
-/*! @abstract Generalizes the  function sinh to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN sinh(fptypeN x) { return ::__tg_sinh(x); }
-  
-/*! @abstract Generalizes the  function tanh to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN tanh(fptypeN x) { return ::__tg_tanh(x); }
-  
-/*! @abstract Generalizes the  function exp to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN exp(fptypeN x) { return ::__tg_exp(x); }
-  
-/*! @abstract Generalizes the  function exp2 to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN exp2(fptypeN x) { return ::__tg_exp2(x); }
-  
-#if SIMD_LIBRARY_VERSION >= 1
-/*! @abstract Generalizes the  function exp10 to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN exp10(fptypeN x) { return ::__tg_exp10(x); }
-#endif
-  
-/*! @abstract Generalizes the  function expm1 to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN expm1(fptypeN x) { return ::__tg_expm1(x); }
-  
-/*! @abstract Generalizes the  function log to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN log(fptypeN x) { return ::__tg_log(x); }
-  
-/*! @abstract Generalizes the  function log2 to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN log2(fptypeN x) { return ::__tg_log2(x); }
-  
-/*! @abstract Generalizes the  function log10 to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN log10(fptypeN x) { return ::__tg_log10(x); }
-  
-/*! @abstract Generalizes the  function log1p to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN log1p(fptypeN x) { return ::__tg_log1p(x); }
-  
-/*! @abstract Generalizes the  function fabs to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN fabs(fptypeN x) { return ::__tg_fabs(x); }
-  
-/*! @abstract Generalizes the  function cbrt to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN cbrt(fptypeN x) { return ::__tg_cbrt(x); }
-  
-/*! @abstract Generalizes the  function sqrt to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN sqrt(fptypeN x) { return ::__tg_sqrt(x); }
-  
-/*! @abstract Generalizes the  function erf to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN erf(fptypeN x) { return ::__tg_erf(x); }
-  
-/*! @abstract Generalizes the  function erfc to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN erfc(fptypeN x) { return ::__tg_erfc(x); }
-  
-/*! @abstract Generalizes the  function tgamma to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN tgamma(fptypeN x) { return ::__tg_tgamma(x); }
-  
-/*! @abstract Generalizes the  function ceil to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN ceil(fptypeN x) { return ::__tg_ceil(x); }
-  
-/*! @abstract Generalizes the  function floor to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN floor(fptypeN x) { return ::__tg_floor(x); }
-  
-/*! @abstract Generalizes the  function rint to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN rint(fptypeN x) { return ::__tg_rint(x); }
-  
-/*! @abstract Generalizes the  function round to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN round(fptypeN x) { return ::__tg_round(x); }
-  
-/*! @abstract Generalizes the  function trunc to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN trunc(fptypeN x) { return ::__tg_trunc(x); }
-  
-/*! @abstract Generalizes the  function atan2 to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN atan2(fptypeN y, fptypeN x) { return ::__tg_atan2(y, x); }
-    
-/*! @abstract Generalizes the  function hypot to operate on vectors
- *  of floats and doubles.                                                    */
-  template 
-  static SIMD_CPPFUNC fptypeN hypot(fptypeN x, fptypeN y) { return ::__tg_hypot(x, y); }
-    
-/*! @abstract Generalizes the  function pow to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN pow(fptypeN x, fptypeN y) { return ::__tg_pow(x, y); }
-    
-/*! @abstract Generalizes the  function fmod to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN fmod(fptypeN x, fptypeN y) { return ::__tg_fmod(x, y); }
-    
-/*! @abstract Generalizes the  function remainder to operate on
- *  vectors of floats and doubles.                                            */
-  template 
-  static SIMD_CPPFUNC fptypeN remainder(fptypeN x, fptypeN y) { return ::__tg_remainder(x, y); }
-    
-/*! @abstract Generalizes the  function copysign to operate on
- *  vectors of floats and doubles.                                            */
-  template 
-  static SIMD_CPPFUNC fptypeN copysign(fptypeN x, fptypeN y) { return ::__tg_copysign(x, y); }
-    
-/*! @abstract Generalizes the  function nextafter to operate on
- *  vectors of floats and doubles.                                            */
-  template 
-  static SIMD_CPPFUNC fptypeN nextafter(fptypeN x, fptypeN y) { return ::__tg_nextafter(x, y); }
-    
-/*! @abstract Generalizes the  function fdim to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN fdim(fptypeN x, fptypeN y) { return ::__tg_fdim(x, y); }
-    
-/*! @abstract Generalizes the  function fmax to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN fmax(fptypeN x, fptypeN y) { return ::__tg_fmax(x, y); }
-    
-/*! @abstract Generalizes the  function fmin to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN fmin(fptypeN x, fptypeN y) { return ::__tg_fmin(x, y); }
-    
-/*! @abstract Generalizes the  function fma to operate on vectors of
- *  floats and doubles.                                                       */
-  template 
-  static SIMD_CPPFUNC fptypeN fma(fptypeN x, fptypeN y, fptypeN z) { return ::__tg_fma(x, y, z); }
-        
-/*! @abstract Computes x*y + z by the most efficient means available; either
- *  a fused multiply add or separate multiply and add.                        */
-  template 
-  static SIMD_CPPFUNC fptypeN muladd(fptypeN x, fptypeN y, fptypeN z) { return ::simd_muladd(x, y, z); }
-};
-
-extern "C" {
-#else
-#include 
-/* C and Objective-C, we need some infrastructure to piggyback on tgmath.h    */
-static SIMD_OVERLOAD simd_float2 __tg_promote(simd_float2);
-static SIMD_OVERLOAD simd_float3 __tg_promote(simd_float3);
-static SIMD_OVERLOAD simd_float4 __tg_promote(simd_float4);
-static SIMD_OVERLOAD simd_float8 __tg_promote(simd_float8);
-static SIMD_OVERLOAD simd_float16 __tg_promote(simd_float16);
-static SIMD_OVERLOAD simd_double2 __tg_promote(simd_double2);
-static SIMD_OVERLOAD simd_double3 __tg_promote(simd_double3);
-static SIMD_OVERLOAD simd_double4 __tg_promote(simd_double4);
-static SIMD_OVERLOAD simd_double8 __tg_promote(simd_double8);
-
-/*  Apple extensions to , added in macOS 10.9 and iOS 7.0             */
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_9   || \
-    __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_0 || \
-    __DRIVERKIT_VERSION_MIN_REQUIRED >= __DRIVERKIT_19_0
-static inline SIMD_CFUNC float __tg_cospi(float x) { return __cospif(x); }
-static inline SIMD_CFUNC double __tg_cospi(double x) { return __cospi(x); }
-#undef cospi
-/*! @abstract `cospi(x)` computes `cos(pi * x)` without intermediate rounding.
- *
- *  @discussion Both faster and more accurate than multiplying by `pi` and then
- *  calling `cos`. Defined for `float` and `double` as well as vectors of
- *  floats and doubles as provided by ``.                        */
-#define cospi(__x) __tg_cospi(__tg_promote1((__x))(__x))
-
-static inline SIMD_CFUNC float __tg_sinpi(float x) { return __sinpif(x); }
-static inline SIMD_CFUNC double __tg_sinpi(double x) { return __sinpi(x); }
-#undef sinpi
-/*! @abstract `sinpi(x)` computes `sin(pi * x)` without intermediate rounding.
- *
- *  @discussion Both faster and more accurate than multiplying by `pi` and then
- *  calling `sin`. Defined for `float` and `double` as well as vectors
- *  of floats and doubles as provided by ``.                     */
-#define sinpi(__x) __tg_sinpi(__tg_promote1((__x))(__x))
-
-static inline SIMD_CFUNC float __tg_tanpi(float x) { return __tanpif(x); }
-static inline SIMD_CFUNC double __tg_tanpi(double x) { return __tanpi(x); }
-#undef tanpi
-/*! @abstract `tanpi(x)` computes `tan(pi * x)` without intermediate rounding.
- *
- *  @discussion Both faster and more accurate than multiplying by `pi` and then
- *  calling `tan`. Defined for `float` and `double` as well as vectors of
- *  floats and doubles as provided by ``.                        */
-#define tanpi(__x) __tg_tanpi(__tg_promote1((__x))(__x))
-
-static inline SIMD_CFUNC float __tg_exp10(float x) { return __exp10f(x); }
-static inline SIMD_CFUNC double __tg_exp10(double x) { return __exp10(x); }
-#undef exp10
-/*! @abstract `exp10(x)` computes `10**x` more efficiently and accurately
- *  than `pow(10, x)`.
- *
- *  @discussion Defined for `float` and `double` as well as vectors of floats
- *  and doubles as provided by ``.                               */
-#define exp10(__x) __tg_exp10(__tg_promote1((__x))(__x))
-#endif
-  
-#endif /* !__cplusplus */
-  
-#pragma mark - fabs implementation
-static inline SIMD_CFUNC simd_float2 __tg_fabs(simd_float2 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_float3 __tg_fabs(simd_float3 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_float4 __tg_fabs(simd_float4 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_float8 __tg_fabs(simd_float8 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_float16 __tg_fabs(simd_float16 x) { return simd_bitselect(0.0, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_double2 __tg_fabs(simd_double2 x) { return simd_bitselect(0.0, x, 0x7fffffffffffffffL); }
-static inline SIMD_CFUNC simd_double3 __tg_fabs(simd_double3 x) { return simd_bitselect(0.0, x, 0x7fffffffffffffffL); }
-static inline SIMD_CFUNC simd_double4 __tg_fabs(simd_double4 x) { return simd_bitselect(0.0, x, 0x7fffffffffffffffL); }
-static inline SIMD_CFUNC simd_double8 __tg_fabs(simd_double8 x) { return simd_bitselect(0.0, x, 0x7fffffffffffffffL); }
-  
-#pragma mark - fmin, fmax implementation
-static SIMD_CFUNC simd_float2 __tg_fmin(simd_float2 x, simd_float2 y) {
-#if defined __SSE2__
-  return simd_make_float2(__tg_fmin(simd_make_float4_undef(x), simd_make_float4_undef(y)));
-#elif defined __arm64__
-  return vminnm_f32(x, y);
-#elif defined __arm__ && __FINITE_MATH_ONLY__
-  return vmin_f32(x, y);
-#else
-  return simd_bitselect(y, x, (x <= y) | (y != y));
-#endif
-}
-  
-static SIMD_CFUNC simd_float3 __tg_fmin(simd_float3 x, simd_float3 y) {
-  return simd_make_float3(__tg_fmin(simd_make_float4_undef(x), simd_make_float4_undef(y)));
-}
-  
-static SIMD_CFUNC simd_float4 __tg_fmin(simd_float4 x, simd_float4 y) {
-#if defined __AVX512DQ__ && defined __AVX512VL__ && !__FINITE_MATH_ONLY__
-  return _mm_range_ps(x, y, 4);
-#elif defined __SSE2__ && __FINITE_MATH_ONLY__
-  return _mm_min_ps(x, y);
-#elif defined __SSE2__
-  return simd_bitselect(_mm_min_ps(x, y), x, y != y);
-#elif defined __arm64__
-  return vminnmq_f32(x, y);
-#elif defined __arm__ && __FINITE_MATH_ONLY__
-  return vminq_f32(x, y);
-#else
-  return simd_bitselect(y, x, (x <= y) | (y != y));
-#endif
-}
-  
-static SIMD_CFUNC simd_float8 __tg_fmin(simd_float8 x, simd_float8 y) {
-#if defined __AVX512DQ__ && defined __AVX512VL__ && !__FINITE_MATH_ONLY__
-  return _mm256_range_ps(x, y, 4);
-#elif defined __AVX__ && __FINITE_MATH_ONLY__
-  return _mm256_min_ps(x, y);
-#elif defined __AVX__
-  return simd_bitselect(_mm256_min_ps(x, y), x, y != y);
-#else
-  return simd_make_float8(__tg_fmin(x.lo, y.lo), __tg_fmin(x.hi, y.hi));
-#endif
-}
-  
-static SIMD_CFUNC simd_float16 __tg_fmin(simd_float16 x, simd_float16 y) {
-#if defined __AVX512DQ__ && !__FINITE_MATH_ONLY__
-  return _mm512_range_ps(x, y, 4);
-#elif defined __AVX512F__ && __FINITE_MATH_ONLY__
-  return _mm512_min_ps(x, y);
-#elif defined __AVX512F__
-  return simd_bitselect(_mm512_min_ps(x, y), x, y != y);
-#else
-  return simd_make_float16(__tg_fmin(x.lo, y.lo), __tg_fmin(x.hi, y.hi));
-#endif
-}
-  
-static SIMD_CFUNC simd_double2 __tg_fmin(simd_double2 x, simd_double2 y) {
-#if defined __AVX512DQ__ && defined __AVX512VL__
-  return _mm_range_pd(x, y, 4);
-#elif defined __SSE2__ && __FINITE_MATH_ONLY__
-  return _mm_min_pd(x, y);
-#elif defined __SSE2__
-  return simd_bitselect(_mm_min_pd(x, y), x, y != y);
-#elif defined __arm64__
-  return vminnmq_f64(x, y);
-#else
-  return simd_bitselect(y, x, (x <= y) | (y != y));
-#endif
-}
-  
-static SIMD_CFUNC simd_double3 __tg_fmin(simd_double3 x, simd_double3 y) {
-  return simd_make_double3(__tg_fmin(simd_make_double4_undef(x), simd_make_double4_undef(y)));
-}
-  
-static SIMD_CFUNC simd_double4 __tg_fmin(simd_double4 x, simd_double4 y) {
-#if defined __AVX512DQ__ && defined __AVX512VL__
-  return _mm256_range_pd(x, y, 4);
-#elif defined __AVX__ && __FINITE_MATH_ONLY__
-  return _mm256_min_pd(x, y);
-#elif defined __AVX__
-  return simd_bitselect(_mm256_min_pd(x, y), x, y != y);
-#else
-  return simd_make_double4(__tg_fmin(x.lo, y.lo), __tg_fmin(x.hi, y.hi));
-#endif
-}
-
-static SIMD_CFUNC simd_double8 __tg_fmin(simd_double8 x, simd_double8 y) {
-#if defined __AVX512DQ__
-  return _mm512_range_pd(x, y, 4);
-#elif defined __AVX512F__ && __FINITE_MATH_ONLY__
-  return _mm512_min_pd(x, y);
-#elif defined __AVX512F__
-  return simd_bitselect(_mm512_min_pd(x, y), x, y != y);
-#else
-  return simd_make_double8(__tg_fmin(x.lo, y.lo), __tg_fmin(x.hi, y.hi));
-#endif
-}
-
-static SIMD_CFUNC simd_float2 __tg_fmax(simd_float2 x, simd_float2 y) {
-#if defined __SSE2__
-  return simd_make_float2(__tg_fmax(simd_make_float4_undef(x), simd_make_float4_undef(y)));
-#elif defined __arm64__
-  return vmaxnm_f32(x, y);
-#elif defined __arm__ && __FINITE_MATH_ONLY__
-  return vmax_f32(x, y);
-#else
-  return simd_bitselect(y, x, (x >= y) | (y != y));
-#endif
-}
-  
-static SIMD_CFUNC simd_float3 __tg_fmax(simd_float3 x, simd_float3 y) {
-  return simd_make_float3(__tg_fmax(simd_make_float4_undef(x), simd_make_float4_undef(y)));
-}
-  
-static SIMD_CFUNC simd_float4 __tg_fmax(simd_float4 x, simd_float4 y) {
-#if defined __AVX512DQ__ && defined __AVX512VL__ && !__FINITE_MATH_ONLY__
-  return _mm_range_ps(x, y, 5);
-#elif defined __SSE2__ && __FINITE_MATH_ONLY__
-  return _mm_max_ps(x, y);
-#elif defined __SSE2__
-  return simd_bitselect(_mm_max_ps(x, y), x, y != y);
-#elif defined __arm64__
-  return vmaxnmq_f32(x, y);
-#elif defined __arm__ && __FINITE_MATH_ONLY__
-  return vmaxq_f32(x, y);
-#else
-  return simd_bitselect(y, x, (x >= y) | (y != y));
-#endif
-}
-  
-static SIMD_CFUNC simd_float8 __tg_fmax(simd_float8 x, simd_float8 y) {
-#if defined __AVX512DQ__ && defined __AVX512VL__ && !__FINITE_MATH_ONLY__
-  return _mm256_range_ps(x, y, 5);
-#elif defined __AVX__ && __FINITE_MATH_ONLY__
-  return _mm256_max_ps(x, y);
-#elif defined __AVX__
-  return simd_bitselect(_mm256_max_ps(x, y), x, y != y);
-#else
-  return simd_make_float8(__tg_fmax(x.lo, y.lo), __tg_fmax(x.hi, y.hi));
-#endif
-}
-  
-static SIMD_CFUNC simd_float16 __tg_fmax(simd_float16 x, simd_float16 y) {
-#if defined __AVX512DQ__ && !__FINITE_MATH_ONLY__
-  return _mm512_range_ps(x, y, 5);
-#elif defined __AVX512F__ && __FINITE_MATH_ONLY__
-  return _mm512_max_ps(x, y);
-#elif defined __AVX512F__
-  return simd_bitselect(_mm512_max_ps(x, y), x, y != y);
-#else
-  return simd_make_float16(__tg_fmax(x.lo, y.lo), __tg_fmax(x.hi, y.hi));
-#endif
-}
-  
-static SIMD_CFUNC simd_double2 __tg_fmax(simd_double2 x, simd_double2 y) {
-#if defined __AVX512DQ__ && defined __AVX512VL__
-  return _mm_range_pd(x, y, 5);
-#elif defined __SSE2__ && __FINITE_MATH_ONLY__
-  return _mm_max_pd(x, y);
-#elif defined __SSE2__
-  return simd_bitselect(_mm_max_pd(x, y), x, y != y);
-#elif defined __arm64__
-  return vmaxnmq_f64(x, y);
-#else
-  return simd_bitselect(y, x, (x >= y) | (y != y));
-#endif
-}
-  
-static SIMD_CFUNC simd_double3 __tg_fmax(simd_double3 x, simd_double3 y) {
-  return simd_make_double3(__tg_fmax(simd_make_double4_undef(x), simd_make_double4_undef(y)));
-}
-  
-static SIMD_CFUNC simd_double4 __tg_fmax(simd_double4 x, simd_double4 y) {
-#if defined __AVX512DQ__ && defined __AVX512VL__
-  return _mm256_range_pd(x, y, 5);
-#elif defined __AVX__ && __FINITE_MATH_ONLY__
-  return _mm256_max_pd(x, y);
-#elif defined __AVX__
-  return simd_bitselect(_mm256_max_pd(x, y), x, y != y);
-#else
-  return simd_make_double4(__tg_fmax(x.lo, y.lo), __tg_fmax(x.hi, y.hi));
-#endif
-}
-
-static SIMD_CFUNC simd_double8 __tg_fmax(simd_double8 x, simd_double8 y) {
-#if defined __AVX512DQ__
-  return _mm512_range_pd(x, y, 5);
-#elif defined __AVX512F__ && __FINITE_MATH_ONLY__
-  return _mm512_max_pd(x, y);
-#elif defined __AVX512F__
-  return simd_bitselect(_mm512_max_pd(x, y), x, y != y);
-#else
-  return simd_make_double8(__tg_fmax(x.lo, y.lo), __tg_fmax(x.hi, y.hi));
-#endif
-}
-
-#pragma mark - copysign implementation
-static inline SIMD_CFUNC simd_float2 __tg_copysign(simd_float2 x, simd_float2 y) { return simd_bitselect(y, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_float3 __tg_copysign(simd_float3 x, simd_float3 y) { return simd_bitselect(y, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_float4 __tg_copysign(simd_float4 x, simd_float4 y) { return simd_bitselect(y, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_float8 __tg_copysign(simd_float8 x, simd_float8 y) { return simd_bitselect(y, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_float16 __tg_copysign(simd_float16 x, simd_float16 y) { return simd_bitselect(y, x, 0x7fffffff); }
-static inline SIMD_CFUNC simd_double2 __tg_copysign(simd_double2 x, simd_double2 y) { return simd_bitselect(y, x, 0x7fffffffffffffffL); }
-static inline SIMD_CFUNC simd_double3 __tg_copysign(simd_double3 x, simd_double3 y) { return simd_bitselect(y, x, 0x7fffffffffffffffL); }
-static inline SIMD_CFUNC simd_double4 __tg_copysign(simd_double4 x, simd_double4 y) { return simd_bitselect(y, x, 0x7fffffffffffffffL); }
-static inline SIMD_CFUNC simd_double8 __tg_copysign(simd_double8 x, simd_double8 y) { return simd_bitselect(y, x, 0x7fffffffffffffffL); }
-  
-#pragma mark - sqrt implementation
-static SIMD_CFUNC simd_float2 __tg_sqrt(simd_float2 x) {
-#if defined __SSE2__
-  return simd_make_float2(__tg_sqrt(simd_make_float4_undef(x)));
-#elif defined __arm64__
-  return vsqrt_f32(x);
-#else
-  return simd_make_float2(sqrt(x.x), sqrt(x.y));
-#endif
-}
-
-static SIMD_CFUNC simd_float3 __tg_sqrt(simd_float3 x) {
-  return simd_make_float3(__tg_sqrt(simd_make_float4_undef(x)));
-}
-
-static SIMD_CFUNC simd_float4 __tg_sqrt(simd_float4 x) {
-#if defined __SSE2__
-  return _mm_sqrt_ps(x);
-#elif defined __arm64__
-  return vsqrtq_f32(x);
-#else
-  return simd_make_float4(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
-#endif
-}
-
-static SIMD_CFUNC simd_float8 __tg_sqrt(simd_float8 x) {
-#if defined __AVX__
-  return _mm256_sqrt_ps(x);
-#else
-  return simd_make_float8(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
-#endif
-}
-  
-static SIMD_CFUNC simd_float16 __tg_sqrt(simd_float16 x) {
-#if defined __AVX512F__
-  return _mm512_sqrt_ps(x);
-#else
-  return simd_make_float16(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
-#endif
-}
-
-static SIMD_CFUNC simd_double2 __tg_sqrt(simd_double2 x) {
-#if defined __SSE2__
-  return _mm_sqrt_pd(x);
-#elif defined __arm64__
-  return vsqrtq_f64(x);
-#else
-  return simd_make_double2(sqrt(x.x), sqrt(x.y));
-#endif
-}
-  
-static SIMD_CFUNC simd_double3 __tg_sqrt(simd_double3 x) {
-  return simd_make_double3(__tg_sqrt(simd_make_double4_undef(x)));
-}
-
-static SIMD_CFUNC simd_double4 __tg_sqrt(simd_double4 x) {
-#if defined __AVX__
-  return _mm256_sqrt_pd(x);
-#else
-  return simd_make_double4(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
-#endif
-}
-  
-static SIMD_CFUNC simd_double8 __tg_sqrt(simd_double8 x) {
-#if defined __AVX512F__
-  return _mm512_sqrt_pd(x);
-#else
-  return simd_make_double8(__tg_sqrt(x.lo), __tg_sqrt(x.hi));
-#endif
-}
-  
-#pragma mark - ceil, floor, rint, trunc implementation
-static SIMD_CFUNC simd_float2 __tg_ceil(simd_float2 x) {
-#if defined __arm64__
-  return vrndp_f32(x);
-#else
-  return simd_make_float2(__tg_ceil(simd_make_float4_undef(x)));
-#endif
-}
-  
-static SIMD_CFUNC simd_float3 __tg_ceil(simd_float3 x) {
-  return simd_make_float3(__tg_ceil(simd_make_float4_undef(x)));
-}
-  
-#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_ceil_f4(simd_float4 x);
-#endif
-
-static SIMD_CFUNC simd_float4 __tg_ceil(simd_float4 x) {
-#if defined __SSE4_1__
-  return _mm_round_ps(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
-#elif defined __arm64__
-  return vrndpq_f32(x);
-#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-  return _simd_ceil_f4(x);
-#else
-  simd_float4 truncated = __tg_trunc(x);
-  simd_float4 adjust = simd_bitselect((simd_float4)0, 1, truncated < x);
-  return __tg_copysign(truncated + adjust, x);
-#endif
-}
- 
-static SIMD_CFUNC simd_float8 __tg_ceil(simd_float8 x) {
-#if defined __AVX__
-  return _mm256_round_ps(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_float8(__tg_ceil(x.lo), __tg_ceil(x.hi));
-#endif
-}
- 
-static SIMD_CFUNC simd_float16 __tg_ceil(simd_float16 x) {
-#if defined __AVX512F__
-  return _mm512_roundscale_ps(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_float16(__tg_ceil(x.lo), __tg_ceil(x.hi));
-#endif
-}
-  
-#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_ceil_d2(simd_double2 x);
-#endif
-  
-static SIMD_CFUNC simd_double2 __tg_ceil(simd_double2 x) {
-#if defined __SSE4_1__
-  return _mm_round_pd(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
-#elif defined __arm64__
-  return vrndpq_f64(x);
-#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-  return _simd_ceil_d2(x);
-#else
-  simd_double2 truncated = __tg_trunc(x);
-  simd_double2 adjust = simd_bitselect((simd_double2)0, 1, truncated < x);
-  return __tg_copysign(truncated + adjust, x);
-#endif
-}
-  
-static SIMD_CFUNC simd_double3 __tg_ceil(simd_double3 x) {
-  return simd_make_double3(__tg_ceil(simd_make_double4_undef(x)));
-}
- 
-static SIMD_CFUNC simd_double4 __tg_ceil(simd_double4 x) {
-#if defined __AVX__
-  return _mm256_round_pd(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_double4(__tg_ceil(x.lo), __tg_ceil(x.hi));
-#endif
-}
- 
-static SIMD_CFUNC simd_double8 __tg_ceil(simd_double8 x) {
-#if defined __AVX512F__
-  return _mm512_roundscale_pd(x, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_double8(__tg_ceil(x.lo), __tg_ceil(x.hi));
-#endif
-}
-
-static SIMD_CFUNC simd_float2 __tg_floor(simd_float2 x) {
-#if defined __arm64__
-  return vrndm_f32(x);
-#else
-  return simd_make_float2(__tg_floor(simd_make_float4_undef(x)));
-#endif
-}
-  
-static SIMD_CFUNC simd_float3 __tg_floor(simd_float3 x) {
-  return simd_make_float3(__tg_floor(simd_make_float4_undef(x)));
-}
-  
-#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_floor_f4(simd_float4 x);
-#endif
-
-static SIMD_CFUNC simd_float4 __tg_floor(simd_float4 x) {
-#if defined __SSE4_1__
-  return _mm_round_ps(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
-#elif defined __arm64__
-  return vrndmq_f32(x);
-#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-  return _simd_floor_f4(x);
-#else
-  simd_float4 truncated = __tg_trunc(x);
-  simd_float4 adjust = simd_bitselect((simd_float4)0, 1, truncated > x);
-  return truncated - adjust;
-#endif
-}
- 
-static SIMD_CFUNC simd_float8 __tg_floor(simd_float8 x) {
-#if defined __AVX__
-  return _mm256_round_ps(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_float8(__tg_floor(x.lo), __tg_floor(x.hi));
-#endif
-}
- 
-static SIMD_CFUNC simd_float16 __tg_floor(simd_float16 x) {
-#if defined __AVX512F__
-  return _mm512_roundscale_ps(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_float16(__tg_floor(x.lo), __tg_floor(x.hi));
-#endif
-}
-  
-#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_floor_d2(simd_double2 x);
-#endif
-  
-static SIMD_CFUNC simd_double2 __tg_floor(simd_double2 x) {
-#if defined __SSE4_1__
-  return _mm_round_pd(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
-#elif defined __arm64__
-  return vrndmq_f64(x);
-#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-  return _simd_floor_d2(x);
-#else
-  simd_double2 truncated = __tg_trunc(x);
-  simd_double2 adjust = simd_bitselect((simd_double2)0, 1, truncated > x);
-  return truncated - adjust;
-#endif
-}
-  
-static SIMD_CFUNC simd_double3 __tg_floor(simd_double3 x) {
-  return simd_make_double3(__tg_floor(simd_make_double4_undef(x)));
-}
- 
-static SIMD_CFUNC simd_double4 __tg_floor(simd_double4 x) {
-#if defined __AVX__
-  return _mm256_round_pd(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_double4(__tg_floor(x.lo), __tg_floor(x.hi));
-#endif
-}
- 
-static SIMD_CFUNC simd_double8 __tg_floor(simd_double8 x) {
-#if defined __AVX512F__
-  return _mm512_roundscale_pd(x, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_double8(__tg_floor(x.lo), __tg_floor(x.hi));
-#endif
-}
-
-static SIMD_CFUNC simd_float2 __tg_rint(simd_float2 x) {
-#if defined __arm64__
-  return vrndx_f32(x);
-#else
-  return simd_make_float2(__tg_rint(simd_make_float4_undef(x)));
-#endif
-}
-  
-static SIMD_CFUNC simd_float3 __tg_rint(simd_float3 x) {
-  return simd_make_float3(__tg_rint(simd_make_float4_undef(x)));
-}
-  
-#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_rint_f4(simd_float4 x);
-#endif
-
-static SIMD_CFUNC simd_float4 __tg_rint(simd_float4 x) {
-#if defined __SSE4_1__
-  return _mm_round_ps(x, _MM_FROUND_RINT);
-#elif defined __arm64__
-  return vrndxq_f32(x);
-#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-  return _simd_rint_f4(x);
-#else
-  simd_float4 magic = __tg_copysign(0x1.0p23, x);
-  simd_int4 x_is_small = __tg_fabs(x) < 0x1.0p23;
-  return simd_bitselect(x, (x + magic) - magic, x_is_small & 0x7fffffff);
-#endif
-}
- 
-static SIMD_CFUNC simd_float8 __tg_rint(simd_float8 x) {
-#if defined __AVX__
-  return _mm256_round_ps(x, _MM_FROUND_RINT);
-#else
-  return simd_make_float8(__tg_rint(x.lo), __tg_rint(x.hi));
-#endif
-}
- 
-static SIMD_CFUNC simd_float16 __tg_rint(simd_float16 x) {
-#if defined __AVX512F__
-  return _mm512_roundscale_ps(x, _MM_FROUND_RINT);
-#else
-  return simd_make_float16(__tg_rint(x.lo), __tg_rint(x.hi));
-#endif
-}
-  
-#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_rint_d2(simd_double2 x);
-#endif
-  
-static SIMD_CFUNC simd_double2 __tg_rint(simd_double2 x) {
-#if defined __SSE4_1__
-  return _mm_round_pd(x, _MM_FROUND_RINT);
-#elif defined __arm64__
-  return vrndxq_f64(x);
-#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-  return _simd_rint_d2(x);
-#else
-  simd_double2 magic = __tg_copysign(0x1.0p52, x);
-  simd_long2 x_is_small = __tg_fabs(x) < 0x1.0p52;
-  return simd_bitselect(x, (x + magic) - magic, x_is_small & 0x7fffffffffffffff);
-#endif
-}
-  
-static SIMD_CFUNC simd_double3 __tg_rint(simd_double3 x) {
-  return simd_make_double3(__tg_rint(simd_make_double4_undef(x)));
-}
- 
-static SIMD_CFUNC simd_double4 __tg_rint(simd_double4 x) {
-#if defined __AVX__
-  return _mm256_round_pd(x, _MM_FROUND_RINT);
-#else
-  return simd_make_double4(__tg_rint(x.lo), __tg_rint(x.hi));
-#endif
-}
- 
-static SIMD_CFUNC simd_double8 __tg_rint(simd_double8 x) {
-#if defined __AVX512F__
-  return _mm512_roundscale_pd(x, _MM_FROUND_RINT);
-#else
-  return simd_make_double8(__tg_rint(x.lo), __tg_rint(x.hi));
-#endif
-}
-
-static SIMD_CFUNC simd_float2 __tg_trunc(simd_float2 x) {
-#if defined __arm64__
-  return vrnd_f32(x);
-#else
-  return simd_make_float2(__tg_trunc(simd_make_float4_undef(x)));
-#endif
-}
-  
-static SIMD_CFUNC simd_float3 __tg_trunc(simd_float3 x) {
-  return simd_make_float3(__tg_trunc(simd_make_float4_undef(x)));
-}
-  
-#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_trunc_f4(simd_float4 x);
-#endif
-
-static SIMD_CFUNC simd_float4 __tg_trunc(simd_float4 x) {
-#if defined __SSE4_1__
-  return _mm_round_ps(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
-#elif defined __arm64__
-  return vrndq_f32(x);
-#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-  return _simd_trunc_f4(x);
-#else
-  simd_float4 binade = simd_bitselect(0, x, 0x7f800000);
-  simd_int4 mask = (simd_int4)__tg_fmin(-2*binade + 1, -0);
-  simd_float4 result = simd_bitselect(0, x, mask);
-  return simd_bitselect(x, result, binade < 0x1.0p23);
-#endif
-}
- 
-static SIMD_CFUNC simd_float8 __tg_trunc(simd_float8 x) {
-#if defined __AVX__
-  return _mm256_round_ps(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_float8(__tg_trunc(x.lo), __tg_trunc(x.hi));
-#endif
-}
- 
-static SIMD_CFUNC simd_float16 __tg_trunc(simd_float16 x) {
-#if defined __AVX512F__
-  return _mm512_roundscale_ps(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_float16(__tg_trunc(x.lo), __tg_trunc(x.hi));
-#endif
-}
-  
-#if defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_trunc_d2(simd_double2 x);
-#endif
-  
-static SIMD_CFUNC simd_double2 __tg_trunc(simd_double2 x) {
-#if defined __SSE4_1__
-  return _mm_round_pd(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
-#elif defined __arm64__
-  return vrndq_f64(x);
-#elif defined __arm__ && SIMD_LIBRARY_VERSION >= 3
-  return _simd_trunc_d2(x);
-#else
-  simd_double2 binade = simd_bitselect(0, x, 0x7ff0000000000000);
-  simd_long2 mask = (simd_long2)__tg_fmin(-2*binade + 1, -0);
-  simd_double2 result = simd_bitselect(0, x, mask);
-  return simd_bitselect(x, result, binade < 0x1.0p52);
-#endif
-}
-  
-static SIMD_CFUNC simd_double3 __tg_trunc(simd_double3 x) {
-  return simd_make_double3(__tg_trunc(simd_make_double4_undef(x)));
-}
- 
-static SIMD_CFUNC simd_double4 __tg_trunc(simd_double4 x) {
-#if defined __AVX__
-  return _mm256_round_pd(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_double4(__tg_trunc(x.lo), __tg_trunc(x.hi));
-#endif
-}
- 
-static SIMD_CFUNC simd_double8 __tg_trunc(simd_double8 x) {
-#if defined __AVX512F__
-  return _mm512_roundscale_pd(x, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
-#else
-  return simd_make_double8(__tg_trunc(x.lo), __tg_trunc(x.hi));
-#endif
-}
-
-#pragma mark - sine, cosine implementation
-static inline SIMD_CFUNC simd_float2 __tg_sin(simd_float2 x) {
-  return simd_make_float2(__tg_sin(simd_make_float4(x)));
-}
-  
-static inline SIMD_CFUNC simd_float3 __tg_sin(simd_float3 x) {
-  return simd_make_float3(__tg_sin(simd_make_float4(x)));
-}
-  
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_sin_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_sin(simd_float4 x) {
-  return _simd_sin_f4(x);
-}
-#elif SIMD_LIBRARY_VERSION == 1
-extern simd_float4 __sin_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_sin(simd_float4 x) {
-  return __sin_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_sin(simd_float4 x) {
-  return simd_make_float4(sin(x.x), sin(x.y), sin(x.z), sin(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_sin_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_sin(simd_float8 x) {
-  return _simd_sin_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_sin(simd_float8 x) {
-  return simd_make_float8(__tg_sin(x.lo), __tg_sin(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_sin_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_sin(simd_float16 x) {
-  return _simd_sin_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_sin(simd_float16 x) {
-  return simd_make_float16(__tg_sin(x.lo), __tg_sin(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_sin_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_sin(simd_double2 x) {
-  return _simd_sin_d2(x);
-}
-#elif SIMD_LIBRARY_VERSION == 1
-extern simd_double2 __sin_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_sin(simd_double2 x) {
-  return __sin_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_sin(simd_double2 x) {
-  return simd_make_double2(sin(x.x), sin(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_sin(simd_double3 x) {
-  return simd_make_double3(__tg_sin(simd_make_double4(x)));
-}
-  
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_sin_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_sin(simd_double4 x) {
-  return _simd_sin_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_sin(simd_double4 x) {
-  return simd_make_double4(__tg_sin(x.lo), __tg_sin(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_sin_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_sin(simd_double8 x) {
-  return _simd_sin_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_sin(simd_double8 x) {
-  return simd_make_double8(__tg_sin(x.lo), __tg_sin(x.hi));
-}
-#endif
-
-static inline SIMD_CFUNC simd_float2 __tg_cos(simd_float2 x) {
-  return simd_make_float2(__tg_cos(simd_make_float4(x)));
-}
-  
-static inline SIMD_CFUNC simd_float3 __tg_cos(simd_float3 x) {
-  return simd_make_float3(__tg_cos(simd_make_float4(x)));
-}
-  
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_cos_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_cos(simd_float4 x) {
-  return _simd_cos_f4(x);
-}
-#elif SIMD_LIBRARY_VERSION == 1
-extern simd_float4 __cos_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_cos(simd_float4 x) {
-  return __cos_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_cos(simd_float4 x) {
-  return simd_make_float4(cos(x.x), cos(x.y), cos(x.z), cos(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_cos_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_cos(simd_float8 x) {
-  return _simd_cos_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_cos(simd_float8 x) {
-  return simd_make_float8(__tg_cos(x.lo), __tg_cos(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_cos_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_cos(simd_float16 x) {
-  return _simd_cos_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_cos(simd_float16 x) {
-  return simd_make_float16(__tg_cos(x.lo), __tg_cos(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_cos_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_cos(simd_double2 x) {
-  return _simd_cos_d2(x);
-}
-#elif SIMD_LIBRARY_VERSION == 1
-extern simd_double2 __cos_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_cos(simd_double2 x) {
-  return __cos_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_cos(simd_double2 x) {
-  return simd_make_double2(cos(x.x), cos(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_cos(simd_double3 x) {
-  return simd_make_double3(__tg_cos(simd_make_double4(x)));
-}
-  
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_cos_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_cos(simd_double4 x) {
-  return _simd_cos_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_cos(simd_double4 x) {
-  return simd_make_double4(__tg_cos(x.lo), __tg_cos(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_cos_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_cos(simd_double8 x) {
-  return _simd_cos_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_cos(simd_double8 x) {
-  return simd_make_double8(__tg_cos(x.lo), __tg_cos(x.hi));
-}
-#endif
-
-  
-#pragma mark - acos implementation
-static inline SIMD_CFUNC simd_float2 __tg_acos(simd_float2 x) {
-  return simd_make_float2(__tg_acos(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_acos(simd_float3 x) {
-  return simd_make_float3(__tg_acos(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_acos_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_acos(simd_float4 x) {
-  return _simd_acos_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_acos(simd_float4 x) {
-  return simd_make_float4(acos(x.x), acos(x.y), acos(x.z), acos(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_acos_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_acos(simd_float8 x) {
-  return _simd_acos_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_acos(simd_float8 x) {
-  return simd_make_float8(__tg_acos(x.lo), __tg_acos(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_acos_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_acos(simd_float16 x) {
-  return _simd_acos_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_acos(simd_float16 x) {
-  return simd_make_float16(__tg_acos(x.lo), __tg_acos(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_acos_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_acos(simd_double2 x) {
-  return _simd_acos_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_acos(simd_double2 x) {
-  return simd_make_double2(acos(x.x), acos(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_acos(simd_double3 x) {
-  return simd_make_double3(__tg_acos(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_acos_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_acos(simd_double4 x) {
-  return _simd_acos_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_acos(simd_double4 x) {
-  return simd_make_double4(__tg_acos(x.lo), __tg_acos(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_acos_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_acos(simd_double8 x) {
-  return _simd_acos_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_acos(simd_double8 x) {
-  return simd_make_double8(__tg_acos(x.lo), __tg_acos(x.hi));
-}
-#endif
-
-#pragma mark - asin implementation
-static inline SIMD_CFUNC simd_float2 __tg_asin(simd_float2 x) {
-  return simd_make_float2(__tg_asin(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_asin(simd_float3 x) {
-  return simd_make_float3(__tg_asin(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_asin_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_asin(simd_float4 x) {
-  return _simd_asin_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_asin(simd_float4 x) {
-  return simd_make_float4(asin(x.x), asin(x.y), asin(x.z), asin(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_asin_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_asin(simd_float8 x) {
-  return _simd_asin_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_asin(simd_float8 x) {
-  return simd_make_float8(__tg_asin(x.lo), __tg_asin(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_asin_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_asin(simd_float16 x) {
-  return _simd_asin_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_asin(simd_float16 x) {
-  return simd_make_float16(__tg_asin(x.lo), __tg_asin(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_asin_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_asin(simd_double2 x) {
-  return _simd_asin_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_asin(simd_double2 x) {
-  return simd_make_double2(asin(x.x), asin(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_asin(simd_double3 x) {
-  return simd_make_double3(__tg_asin(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_asin_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_asin(simd_double4 x) {
-  return _simd_asin_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_asin(simd_double4 x) {
-  return simd_make_double4(__tg_asin(x.lo), __tg_asin(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_asin_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_asin(simd_double8 x) {
-  return _simd_asin_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_asin(simd_double8 x) {
-  return simd_make_double8(__tg_asin(x.lo), __tg_asin(x.hi));
-}
-#endif
-
-#pragma mark - atan implementation
-static inline SIMD_CFUNC simd_float2 __tg_atan(simd_float2 x) {
-  return simd_make_float2(__tg_atan(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_atan(simd_float3 x) {
-  return simd_make_float3(__tg_atan(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_atan_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_atan(simd_float4 x) {
-  return _simd_atan_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_atan(simd_float4 x) {
-  return simd_make_float4(atan(x.x), atan(x.y), atan(x.z), atan(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_atan_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_atan(simd_float8 x) {
-  return _simd_atan_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_atan(simd_float8 x) {
-  return simd_make_float8(__tg_atan(x.lo), __tg_atan(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_atan_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_atan(simd_float16 x) {
-  return _simd_atan_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_atan(simd_float16 x) {
-  return simd_make_float16(__tg_atan(x.lo), __tg_atan(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_atan_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_atan(simd_double2 x) {
-  return _simd_atan_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_atan(simd_double2 x) {
-  return simd_make_double2(atan(x.x), atan(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_atan(simd_double3 x) {
-  return simd_make_double3(__tg_atan(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_atan_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_atan(simd_double4 x) {
-  return _simd_atan_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_atan(simd_double4 x) {
-  return simd_make_double4(__tg_atan(x.lo), __tg_atan(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_atan_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_atan(simd_double8 x) {
-  return _simd_atan_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_atan(simd_double8 x) {
-  return simd_make_double8(__tg_atan(x.lo), __tg_atan(x.hi));
-}
-#endif
-
-#pragma mark - tan implementation
-static inline SIMD_CFUNC simd_float2 __tg_tan(simd_float2 x) {
-  return simd_make_float2(__tg_tan(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_tan(simd_float3 x) {
-  return simd_make_float3(__tg_tan(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_tan_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_tan(simd_float4 x) {
-  return _simd_tan_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_tan(simd_float4 x) {
-  return simd_make_float4(tan(x.x), tan(x.y), tan(x.z), tan(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_tan_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_tan(simd_float8 x) {
-  return _simd_tan_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_tan(simd_float8 x) {
-  return simd_make_float8(__tg_tan(x.lo), __tg_tan(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_tan_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_tan(simd_float16 x) {
-  return _simd_tan_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_tan(simd_float16 x) {
-  return simd_make_float16(__tg_tan(x.lo), __tg_tan(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_tan_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_tan(simd_double2 x) {
-  return _simd_tan_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_tan(simd_double2 x) {
-  return simd_make_double2(tan(x.x), tan(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_tan(simd_double3 x) {
-  return simd_make_double3(__tg_tan(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_tan_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_tan(simd_double4 x) {
-  return _simd_tan_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_tan(simd_double4 x) {
-  return simd_make_double4(__tg_tan(x.lo), __tg_tan(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_tan_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_tan(simd_double8 x) {
-  return _simd_tan_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_tan(simd_double8 x) {
-  return simd_make_double8(__tg_tan(x.lo), __tg_tan(x.hi));
-}
-#endif
-
-#pragma mark - cospi implementation
-#if SIMD_LIBRARY_VERSION >= 1
-static inline SIMD_CFUNC simd_float2 __tg_cospi(simd_float2 x) {
-  return simd_make_float2(__tg_cospi(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_cospi(simd_float3 x) {
-  return simd_make_float3(__tg_cospi(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_cospi_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_cospi(simd_float4 x) {
-  return _simd_cospi_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_cospi(simd_float4 x) {
-  return simd_make_float4(__cospi(x.x), __cospi(x.y), __cospi(x.z), __cospi(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_cospi_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_cospi(simd_float8 x) {
-  return _simd_cospi_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_cospi(simd_float8 x) {
-  return simd_make_float8(__tg_cospi(x.lo), __tg_cospi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_cospi_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_cospi(simd_float16 x) {
-  return _simd_cospi_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_cospi(simd_float16 x) {
-  return simd_make_float16(__tg_cospi(x.lo), __tg_cospi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_cospi_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_cospi(simd_double2 x) {
-  return _simd_cospi_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_cospi(simd_double2 x) {
-  return simd_make_double2(__cospi(x.x), __cospi(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_cospi(simd_double3 x) {
-  return simd_make_double3(__tg_cospi(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_cospi_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_cospi(simd_double4 x) {
-  return _simd_cospi_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_cospi(simd_double4 x) {
-  return simd_make_double4(__tg_cospi(x.lo), __tg_cospi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_cospi_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_cospi(simd_double8 x) {
-  return _simd_cospi_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_cospi(simd_double8 x) {
-  return simd_make_double8(__tg_cospi(x.lo), __tg_cospi(x.hi));
-}
-#endif
-
-#endif /* SIMD_LIBRARY_VERSION */
-#pragma mark - sinpi implementation
-#if SIMD_LIBRARY_VERSION >= 1
-static inline SIMD_CFUNC simd_float2 __tg_sinpi(simd_float2 x) {
-  return simd_make_float2(__tg_sinpi(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_sinpi(simd_float3 x) {
-  return simd_make_float3(__tg_sinpi(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_sinpi_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_sinpi(simd_float4 x) {
-  return _simd_sinpi_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_sinpi(simd_float4 x) {
-  return simd_make_float4(__sinpi(x.x), __sinpi(x.y), __sinpi(x.z), __sinpi(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_sinpi_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_sinpi(simd_float8 x) {
-  return _simd_sinpi_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_sinpi(simd_float8 x) {
-  return simd_make_float8(__tg_sinpi(x.lo), __tg_sinpi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_sinpi_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_sinpi(simd_float16 x) {
-  return _simd_sinpi_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_sinpi(simd_float16 x) {
-  return simd_make_float16(__tg_sinpi(x.lo), __tg_sinpi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_sinpi_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_sinpi(simd_double2 x) {
-  return _simd_sinpi_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_sinpi(simd_double2 x) {
-  return simd_make_double2(__sinpi(x.x), __sinpi(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_sinpi(simd_double3 x) {
-  return simd_make_double3(__tg_sinpi(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_sinpi_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_sinpi(simd_double4 x) {
-  return _simd_sinpi_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_sinpi(simd_double4 x) {
-  return simd_make_double4(__tg_sinpi(x.lo), __tg_sinpi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_sinpi_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_sinpi(simd_double8 x) {
-  return _simd_sinpi_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_sinpi(simd_double8 x) {
-  return simd_make_double8(__tg_sinpi(x.lo), __tg_sinpi(x.hi));
-}
-#endif
-
-#endif /* SIMD_LIBRARY_VERSION */
-#pragma mark - tanpi implementation
-#if SIMD_LIBRARY_VERSION >= 1
-static inline SIMD_CFUNC simd_float2 __tg_tanpi(simd_float2 x) {
-  return simd_make_float2(__tg_tanpi(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_tanpi(simd_float3 x) {
-  return simd_make_float3(__tg_tanpi(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_tanpi_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_tanpi(simd_float4 x) {
-  return _simd_tanpi_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_tanpi(simd_float4 x) {
-  return simd_make_float4(__tanpi(x.x), __tanpi(x.y), __tanpi(x.z), __tanpi(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_tanpi_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_tanpi(simd_float8 x) {
-  return _simd_tanpi_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_tanpi(simd_float8 x) {
-  return simd_make_float8(__tg_tanpi(x.lo), __tg_tanpi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_tanpi_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_tanpi(simd_float16 x) {
-  return _simd_tanpi_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_tanpi(simd_float16 x) {
-  return simd_make_float16(__tg_tanpi(x.lo), __tg_tanpi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_tanpi_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_tanpi(simd_double2 x) {
-  return _simd_tanpi_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_tanpi(simd_double2 x) {
-  return simd_make_double2(__tanpi(x.x), __tanpi(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_tanpi(simd_double3 x) {
-  return simd_make_double3(__tg_tanpi(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_tanpi_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_tanpi(simd_double4 x) {
-  return _simd_tanpi_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_tanpi(simd_double4 x) {
-  return simd_make_double4(__tg_tanpi(x.lo), __tg_tanpi(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_tanpi_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_tanpi(simd_double8 x) {
-  return _simd_tanpi_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_tanpi(simd_double8 x) {
-  return simd_make_double8(__tg_tanpi(x.lo), __tg_tanpi(x.hi));
-}
-#endif
-
-#endif /* SIMD_LIBRARY_VERSION */
-#pragma mark - acosh implementation
-static inline SIMD_CFUNC simd_float2 __tg_acosh(simd_float2 x) {
-  return simd_make_float2(__tg_acosh(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_acosh(simd_float3 x) {
-  return simd_make_float3(__tg_acosh(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_acosh_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_acosh(simd_float4 x) {
-  return _simd_acosh_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_acosh(simd_float4 x) {
-  return simd_make_float4(acosh(x.x), acosh(x.y), acosh(x.z), acosh(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_acosh_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_acosh(simd_float8 x) {
-  return _simd_acosh_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_acosh(simd_float8 x) {
-  return simd_make_float8(__tg_acosh(x.lo), __tg_acosh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_acosh_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_acosh(simd_float16 x) {
-  return _simd_acosh_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_acosh(simd_float16 x) {
-  return simd_make_float16(__tg_acosh(x.lo), __tg_acosh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_acosh_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_acosh(simd_double2 x) {
-  return _simd_acosh_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_acosh(simd_double2 x) {
-  return simd_make_double2(acosh(x.x), acosh(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_acosh(simd_double3 x) {
-  return simd_make_double3(__tg_acosh(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_acosh_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_acosh(simd_double4 x) {
-  return _simd_acosh_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_acosh(simd_double4 x) {
-  return simd_make_double4(__tg_acosh(x.lo), __tg_acosh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_acosh_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_acosh(simd_double8 x) {
-  return _simd_acosh_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_acosh(simd_double8 x) {
-  return simd_make_double8(__tg_acosh(x.lo), __tg_acosh(x.hi));
-}
-#endif
-
-#pragma mark - asinh implementation
-static inline SIMD_CFUNC simd_float2 __tg_asinh(simd_float2 x) {
-  return simd_make_float2(__tg_asinh(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_asinh(simd_float3 x) {
-  return simd_make_float3(__tg_asinh(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_asinh_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_asinh(simd_float4 x) {
-  return _simd_asinh_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_asinh(simd_float4 x) {
-  return simd_make_float4(asinh(x.x), asinh(x.y), asinh(x.z), asinh(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_asinh_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_asinh(simd_float8 x) {
-  return _simd_asinh_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_asinh(simd_float8 x) {
-  return simd_make_float8(__tg_asinh(x.lo), __tg_asinh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_asinh_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_asinh(simd_float16 x) {
-  return _simd_asinh_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_asinh(simd_float16 x) {
-  return simd_make_float16(__tg_asinh(x.lo), __tg_asinh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_asinh_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_asinh(simd_double2 x) {
-  return _simd_asinh_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_asinh(simd_double2 x) {
-  return simd_make_double2(asinh(x.x), asinh(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_asinh(simd_double3 x) {
-  return simd_make_double3(__tg_asinh(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_asinh_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_asinh(simd_double4 x) {
-  return _simd_asinh_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_asinh(simd_double4 x) {
-  return simd_make_double4(__tg_asinh(x.lo), __tg_asinh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_asinh_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_asinh(simd_double8 x) {
-  return _simd_asinh_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_asinh(simd_double8 x) {
-  return simd_make_double8(__tg_asinh(x.lo), __tg_asinh(x.hi));
-}
-#endif
-
-#pragma mark - atanh implementation
-static inline SIMD_CFUNC simd_float2 __tg_atanh(simd_float2 x) {
-  return simd_make_float2(__tg_atanh(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_atanh(simd_float3 x) {
-  return simd_make_float3(__tg_atanh(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_atanh_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_atanh(simd_float4 x) {
-  return _simd_atanh_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_atanh(simd_float4 x) {
-  return simd_make_float4(atanh(x.x), atanh(x.y), atanh(x.z), atanh(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_atanh_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_atanh(simd_float8 x) {
-  return _simd_atanh_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_atanh(simd_float8 x) {
-  return simd_make_float8(__tg_atanh(x.lo), __tg_atanh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_atanh_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_atanh(simd_float16 x) {
-  return _simd_atanh_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_atanh(simd_float16 x) {
-  return simd_make_float16(__tg_atanh(x.lo), __tg_atanh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_atanh_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_atanh(simd_double2 x) {
-  return _simd_atanh_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_atanh(simd_double2 x) {
-  return simd_make_double2(atanh(x.x), atanh(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_atanh(simd_double3 x) {
-  return simd_make_double3(__tg_atanh(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_atanh_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_atanh(simd_double4 x) {
-  return _simd_atanh_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_atanh(simd_double4 x) {
-  return simd_make_double4(__tg_atanh(x.lo), __tg_atanh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_atanh_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_atanh(simd_double8 x) {
-  return _simd_atanh_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_atanh(simd_double8 x) {
-  return simd_make_double8(__tg_atanh(x.lo), __tg_atanh(x.hi));
-}
-#endif
-
-#pragma mark - cosh implementation
-static inline SIMD_CFUNC simd_float2 __tg_cosh(simd_float2 x) {
-  return simd_make_float2(__tg_cosh(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_cosh(simd_float3 x) {
-  return simd_make_float3(__tg_cosh(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_cosh_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_cosh(simd_float4 x) {
-  return _simd_cosh_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_cosh(simd_float4 x) {
-  return simd_make_float4(cosh(x.x), cosh(x.y), cosh(x.z), cosh(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_cosh_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_cosh(simd_float8 x) {
-  return _simd_cosh_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_cosh(simd_float8 x) {
-  return simd_make_float8(__tg_cosh(x.lo), __tg_cosh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_cosh_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_cosh(simd_float16 x) {
-  return _simd_cosh_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_cosh(simd_float16 x) {
-  return simd_make_float16(__tg_cosh(x.lo), __tg_cosh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_cosh_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_cosh(simd_double2 x) {
-  return _simd_cosh_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_cosh(simd_double2 x) {
-  return simd_make_double2(cosh(x.x), cosh(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_cosh(simd_double3 x) {
-  return simd_make_double3(__tg_cosh(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_cosh_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_cosh(simd_double4 x) {
-  return _simd_cosh_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_cosh(simd_double4 x) {
-  return simd_make_double4(__tg_cosh(x.lo), __tg_cosh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_cosh_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_cosh(simd_double8 x) {
-  return _simd_cosh_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_cosh(simd_double8 x) {
-  return simd_make_double8(__tg_cosh(x.lo), __tg_cosh(x.hi));
-}
-#endif
-
-#pragma mark - sinh implementation
-static inline SIMD_CFUNC simd_float2 __tg_sinh(simd_float2 x) {
-  return simd_make_float2(__tg_sinh(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_sinh(simd_float3 x) {
-  return simd_make_float3(__tg_sinh(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_sinh_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_sinh(simd_float4 x) {
-  return _simd_sinh_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_sinh(simd_float4 x) {
-  return simd_make_float4(sinh(x.x), sinh(x.y), sinh(x.z), sinh(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_sinh_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_sinh(simd_float8 x) {
-  return _simd_sinh_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_sinh(simd_float8 x) {
-  return simd_make_float8(__tg_sinh(x.lo), __tg_sinh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_sinh_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_sinh(simd_float16 x) {
-  return _simd_sinh_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_sinh(simd_float16 x) {
-  return simd_make_float16(__tg_sinh(x.lo), __tg_sinh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_sinh_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_sinh(simd_double2 x) {
-  return _simd_sinh_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_sinh(simd_double2 x) {
-  return simd_make_double2(sinh(x.x), sinh(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_sinh(simd_double3 x) {
-  return simd_make_double3(__tg_sinh(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_sinh_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_sinh(simd_double4 x) {
-  return _simd_sinh_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_sinh(simd_double4 x) {
-  return simd_make_double4(__tg_sinh(x.lo), __tg_sinh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_sinh_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_sinh(simd_double8 x) {
-  return _simd_sinh_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_sinh(simd_double8 x) {
-  return simd_make_double8(__tg_sinh(x.lo), __tg_sinh(x.hi));
-}
-#endif
-
-#pragma mark - tanh implementation
-static inline SIMD_CFUNC simd_float2 __tg_tanh(simd_float2 x) {
-  return simd_make_float2(__tg_tanh(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_tanh(simd_float3 x) {
-  return simd_make_float3(__tg_tanh(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_tanh_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_tanh(simd_float4 x) {
-  return _simd_tanh_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_tanh(simd_float4 x) {
-  return simd_make_float4(tanh(x.x), tanh(x.y), tanh(x.z), tanh(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_tanh_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_tanh(simd_float8 x) {
-  return _simd_tanh_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_tanh(simd_float8 x) {
-  return simd_make_float8(__tg_tanh(x.lo), __tg_tanh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_tanh_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_tanh(simd_float16 x) {
-  return _simd_tanh_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_tanh(simd_float16 x) {
-  return simd_make_float16(__tg_tanh(x.lo), __tg_tanh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_tanh_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_tanh(simd_double2 x) {
-  return _simd_tanh_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_tanh(simd_double2 x) {
-  return simd_make_double2(tanh(x.x), tanh(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_tanh(simd_double3 x) {
-  return simd_make_double3(__tg_tanh(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_tanh_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_tanh(simd_double4 x) {
-  return _simd_tanh_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_tanh(simd_double4 x) {
-  return simd_make_double4(__tg_tanh(x.lo), __tg_tanh(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_tanh_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_tanh(simd_double8 x) {
-  return _simd_tanh_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_tanh(simd_double8 x) {
-  return simd_make_double8(__tg_tanh(x.lo), __tg_tanh(x.hi));
-}
-#endif
-
-#pragma mark - exp implementation
-static inline SIMD_CFUNC simd_float2 __tg_exp(simd_float2 x) {
-  return simd_make_float2(__tg_exp(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_exp(simd_float3 x) {
-  return simd_make_float3(__tg_exp(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_exp_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_exp(simd_float4 x) {
-  return _simd_exp_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_exp(simd_float4 x) {
-  return simd_make_float4(exp(x.x), exp(x.y), exp(x.z), exp(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_exp_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_exp(simd_float8 x) {
-  return _simd_exp_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_exp(simd_float8 x) {
-  return simd_make_float8(__tg_exp(x.lo), __tg_exp(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_exp_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_exp(simd_float16 x) {
-  return _simd_exp_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_exp(simd_float16 x) {
-  return simd_make_float16(__tg_exp(x.lo), __tg_exp(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_exp_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_exp(simd_double2 x) {
-  return _simd_exp_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_exp(simd_double2 x) {
-  return simd_make_double2(exp(x.x), exp(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_exp(simd_double3 x) {
-  return simd_make_double3(__tg_exp(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_exp_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_exp(simd_double4 x) {
-  return _simd_exp_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_exp(simd_double4 x) {
-  return simd_make_double4(__tg_exp(x.lo), __tg_exp(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_exp_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_exp(simd_double8 x) {
-  return _simd_exp_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_exp(simd_double8 x) {
-  return simd_make_double8(__tg_exp(x.lo), __tg_exp(x.hi));
-}
-#endif
-
-#pragma mark - exp2 implementation
-static inline SIMD_CFUNC simd_float2 __tg_exp2(simd_float2 x) {
-  return simd_make_float2(__tg_exp2(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_exp2(simd_float3 x) {
-  return simd_make_float3(__tg_exp2(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_exp2_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_exp2(simd_float4 x) {
-  return _simd_exp2_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_exp2(simd_float4 x) {
-  return simd_make_float4(exp2(x.x), exp2(x.y), exp2(x.z), exp2(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_exp2_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_exp2(simd_float8 x) {
-  return _simd_exp2_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_exp2(simd_float8 x) {
-  return simd_make_float8(__tg_exp2(x.lo), __tg_exp2(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_exp2_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_exp2(simd_float16 x) {
-  return _simd_exp2_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_exp2(simd_float16 x) {
-  return simd_make_float16(__tg_exp2(x.lo), __tg_exp2(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_exp2_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_exp2(simd_double2 x) {
-  return _simd_exp2_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_exp2(simd_double2 x) {
-  return simd_make_double2(exp2(x.x), exp2(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_exp2(simd_double3 x) {
-  return simd_make_double3(__tg_exp2(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_exp2_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_exp2(simd_double4 x) {
-  return _simd_exp2_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_exp2(simd_double4 x) {
-  return simd_make_double4(__tg_exp2(x.lo), __tg_exp2(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_exp2_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_exp2(simd_double8 x) {
-  return _simd_exp2_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_exp2(simd_double8 x) {
-  return simd_make_double8(__tg_exp2(x.lo), __tg_exp2(x.hi));
-}
-#endif
-
-#pragma mark - exp10 implementation
-#if SIMD_LIBRARY_VERSION >= 1
-static inline SIMD_CFUNC simd_float2 __tg_exp10(simd_float2 x) {
-  return simd_make_float2(__tg_exp10(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_exp10(simd_float3 x) {
-  return simd_make_float3(__tg_exp10(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_exp10_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_exp10(simd_float4 x) {
-  return _simd_exp10_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_exp10(simd_float4 x) {
-  return simd_make_float4(__exp10(x.x), __exp10(x.y), __exp10(x.z), __exp10(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_exp10_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_exp10(simd_float8 x) {
-  return _simd_exp10_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_exp10(simd_float8 x) {
-  return simd_make_float8(__tg_exp10(x.lo), __tg_exp10(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_exp10_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_exp10(simd_float16 x) {
-  return _simd_exp10_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_exp10(simd_float16 x) {
-  return simd_make_float16(__tg_exp10(x.lo), __tg_exp10(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_exp10_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_exp10(simd_double2 x) {
-  return _simd_exp10_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_exp10(simd_double2 x) {
-  return simd_make_double2(__exp10(x.x), __exp10(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_exp10(simd_double3 x) {
-  return simd_make_double3(__tg_exp10(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_exp10_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_exp10(simd_double4 x) {
-  return _simd_exp10_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_exp10(simd_double4 x) {
-  return simd_make_double4(__tg_exp10(x.lo), __tg_exp10(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_exp10_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_exp10(simd_double8 x) {
-  return _simd_exp10_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_exp10(simd_double8 x) {
-  return simd_make_double8(__tg_exp10(x.lo), __tg_exp10(x.hi));
-}
-#endif
-
-#endif /* SIMD_LIBRARY_VERSION */
-#pragma mark - expm1 implementation
-static inline SIMD_CFUNC simd_float2 __tg_expm1(simd_float2 x) {
-  return simd_make_float2(__tg_expm1(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_expm1(simd_float3 x) {
-  return simd_make_float3(__tg_expm1(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_expm1_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_expm1(simd_float4 x) {
-  return _simd_expm1_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_expm1(simd_float4 x) {
-  return simd_make_float4(expm1(x.x), expm1(x.y), expm1(x.z), expm1(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_expm1_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_expm1(simd_float8 x) {
-  return _simd_expm1_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_expm1(simd_float8 x) {
-  return simd_make_float8(__tg_expm1(x.lo), __tg_expm1(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_expm1_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_expm1(simd_float16 x) {
-  return _simd_expm1_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_expm1(simd_float16 x) {
-  return simd_make_float16(__tg_expm1(x.lo), __tg_expm1(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_expm1_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_expm1(simd_double2 x) {
-  return _simd_expm1_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_expm1(simd_double2 x) {
-  return simd_make_double2(expm1(x.x), expm1(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_expm1(simd_double3 x) {
-  return simd_make_double3(__tg_expm1(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_expm1_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_expm1(simd_double4 x) {
-  return _simd_expm1_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_expm1(simd_double4 x) {
-  return simd_make_double4(__tg_expm1(x.lo), __tg_expm1(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_expm1_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_expm1(simd_double8 x) {
-  return _simd_expm1_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_expm1(simd_double8 x) {
-  return simd_make_double8(__tg_expm1(x.lo), __tg_expm1(x.hi));
-}
-#endif
-
-#pragma mark - log implementation
-static inline SIMD_CFUNC simd_float2 __tg_log(simd_float2 x) {
-  return simd_make_float2(__tg_log(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_log(simd_float3 x) {
-  return simd_make_float3(__tg_log(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_log_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_log(simd_float4 x) {
-  return _simd_log_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_log(simd_float4 x) {
-  return simd_make_float4(log(x.x), log(x.y), log(x.z), log(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_log_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_log(simd_float8 x) {
-  return _simd_log_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_log(simd_float8 x) {
-  return simd_make_float8(__tg_log(x.lo), __tg_log(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_log_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_log(simd_float16 x) {
-  return _simd_log_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_log(simd_float16 x) {
-  return simd_make_float16(__tg_log(x.lo), __tg_log(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_log_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_log(simd_double2 x) {
-  return _simd_log_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_log(simd_double2 x) {
-  return simd_make_double2(log(x.x), log(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_log(simd_double3 x) {
-  return simd_make_double3(__tg_log(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_log_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_log(simd_double4 x) {
-  return _simd_log_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_log(simd_double4 x) {
-  return simd_make_double4(__tg_log(x.lo), __tg_log(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_log_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_log(simd_double8 x) {
-  return _simd_log_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_log(simd_double8 x) {
-  return simd_make_double8(__tg_log(x.lo), __tg_log(x.hi));
-}
-#endif
-
-#pragma mark - log2 implementation
-static inline SIMD_CFUNC simd_float2 __tg_log2(simd_float2 x) {
-  return simd_make_float2(__tg_log2(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_log2(simd_float3 x) {
-  return simd_make_float3(__tg_log2(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_log2_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_log2(simd_float4 x) {
-  return _simd_log2_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_log2(simd_float4 x) {
-  return simd_make_float4(log2(x.x), log2(x.y), log2(x.z), log2(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_log2_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_log2(simd_float8 x) {
-  return _simd_log2_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_log2(simd_float8 x) {
-  return simd_make_float8(__tg_log2(x.lo), __tg_log2(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_log2_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_log2(simd_float16 x) {
-  return _simd_log2_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_log2(simd_float16 x) {
-  return simd_make_float16(__tg_log2(x.lo), __tg_log2(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_log2_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_log2(simd_double2 x) {
-  return _simd_log2_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_log2(simd_double2 x) {
-  return simd_make_double2(log2(x.x), log2(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_log2(simd_double3 x) {
-  return simd_make_double3(__tg_log2(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_log2_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_log2(simd_double4 x) {
-  return _simd_log2_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_log2(simd_double4 x) {
-  return simd_make_double4(__tg_log2(x.lo), __tg_log2(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_log2_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_log2(simd_double8 x) {
-  return _simd_log2_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_log2(simd_double8 x) {
-  return simd_make_double8(__tg_log2(x.lo), __tg_log2(x.hi));
-}
-#endif
-
-#pragma mark - log10 implementation
-static inline SIMD_CFUNC simd_float2 __tg_log10(simd_float2 x) {
-  return simd_make_float2(__tg_log10(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_log10(simd_float3 x) {
-  return simd_make_float3(__tg_log10(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_log10_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_log10(simd_float4 x) {
-  return _simd_log10_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_log10(simd_float4 x) {
-  return simd_make_float4(log10(x.x), log10(x.y), log10(x.z), log10(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_log10_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_log10(simd_float8 x) {
-  return _simd_log10_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_log10(simd_float8 x) {
-  return simd_make_float8(__tg_log10(x.lo), __tg_log10(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_log10_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_log10(simd_float16 x) {
-  return _simd_log10_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_log10(simd_float16 x) {
-  return simd_make_float16(__tg_log10(x.lo), __tg_log10(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_log10_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_log10(simd_double2 x) {
-  return _simd_log10_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_log10(simd_double2 x) {
-  return simd_make_double2(log10(x.x), log10(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_log10(simd_double3 x) {
-  return simd_make_double3(__tg_log10(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_log10_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_log10(simd_double4 x) {
-  return _simd_log10_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_log10(simd_double4 x) {
-  return simd_make_double4(__tg_log10(x.lo), __tg_log10(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_log10_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_log10(simd_double8 x) {
-  return _simd_log10_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_log10(simd_double8 x) {
-  return simd_make_double8(__tg_log10(x.lo), __tg_log10(x.hi));
-}
-#endif
-
-#pragma mark - log1p implementation
-static inline SIMD_CFUNC simd_float2 __tg_log1p(simd_float2 x) {
-  return simd_make_float2(__tg_log1p(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_log1p(simd_float3 x) {
-  return simd_make_float3(__tg_log1p(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_log1p_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_log1p(simd_float4 x) {
-  return _simd_log1p_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_log1p(simd_float4 x) {
-  return simd_make_float4(log1p(x.x), log1p(x.y), log1p(x.z), log1p(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_log1p_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_log1p(simd_float8 x) {
-  return _simd_log1p_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_log1p(simd_float8 x) {
-  return simd_make_float8(__tg_log1p(x.lo), __tg_log1p(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_log1p_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_log1p(simd_float16 x) {
-  return _simd_log1p_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_log1p(simd_float16 x) {
-  return simd_make_float16(__tg_log1p(x.lo), __tg_log1p(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_log1p_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_log1p(simd_double2 x) {
-  return _simd_log1p_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_log1p(simd_double2 x) {
-  return simd_make_double2(log1p(x.x), log1p(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_log1p(simd_double3 x) {
-  return simd_make_double3(__tg_log1p(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_log1p_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_log1p(simd_double4 x) {
-  return _simd_log1p_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_log1p(simd_double4 x) {
-  return simd_make_double4(__tg_log1p(x.lo), __tg_log1p(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_log1p_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_log1p(simd_double8 x) {
-  return _simd_log1p_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_log1p(simd_double8 x) {
-  return simd_make_double8(__tg_log1p(x.lo), __tg_log1p(x.hi));
-}
-#endif
-
-#pragma mark - cbrt implementation
-static inline SIMD_CFUNC simd_float2 __tg_cbrt(simd_float2 x) {
-  return simd_make_float2(__tg_cbrt(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_cbrt(simd_float3 x) {
-  return simd_make_float3(__tg_cbrt(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_cbrt_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_cbrt(simd_float4 x) {
-  return _simd_cbrt_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_cbrt(simd_float4 x) {
-  return simd_make_float4(cbrt(x.x), cbrt(x.y), cbrt(x.z), cbrt(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_cbrt_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_cbrt(simd_float8 x) {
-  return _simd_cbrt_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_cbrt(simd_float8 x) {
-  return simd_make_float8(__tg_cbrt(x.lo), __tg_cbrt(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_cbrt_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_cbrt(simd_float16 x) {
-  return _simd_cbrt_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_cbrt(simd_float16 x) {
-  return simd_make_float16(__tg_cbrt(x.lo), __tg_cbrt(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_cbrt_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_cbrt(simd_double2 x) {
-  return _simd_cbrt_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_cbrt(simd_double2 x) {
-  return simd_make_double2(cbrt(x.x), cbrt(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_cbrt(simd_double3 x) {
-  return simd_make_double3(__tg_cbrt(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_cbrt_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_cbrt(simd_double4 x) {
-  return _simd_cbrt_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_cbrt(simd_double4 x) {
-  return simd_make_double4(__tg_cbrt(x.lo), __tg_cbrt(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_cbrt_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_cbrt(simd_double8 x) {
-  return _simd_cbrt_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_cbrt(simd_double8 x) {
-  return simd_make_double8(__tg_cbrt(x.lo), __tg_cbrt(x.hi));
-}
-#endif
-
-#pragma mark - erf implementation
-static inline SIMD_CFUNC simd_float2 __tg_erf(simd_float2 x) {
-  return simd_make_float2(__tg_erf(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_erf(simd_float3 x) {
-  return simd_make_float3(__tg_erf(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_erf_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_erf(simd_float4 x) {
-  return _simd_erf_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_erf(simd_float4 x) {
-  return simd_make_float4(erf(x.x), erf(x.y), erf(x.z), erf(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_erf_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_erf(simd_float8 x) {
-  return _simd_erf_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_erf(simd_float8 x) {
-  return simd_make_float8(__tg_erf(x.lo), __tg_erf(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_erf_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_erf(simd_float16 x) {
-  return _simd_erf_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_erf(simd_float16 x) {
-  return simd_make_float16(__tg_erf(x.lo), __tg_erf(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_erf_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_erf(simd_double2 x) {
-  return _simd_erf_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_erf(simd_double2 x) {
-  return simd_make_double2(erf(x.x), erf(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_erf(simd_double3 x) {
-  return simd_make_double3(__tg_erf(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_erf_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_erf(simd_double4 x) {
-  return _simd_erf_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_erf(simd_double4 x) {
-  return simd_make_double4(__tg_erf(x.lo), __tg_erf(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_erf_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_erf(simd_double8 x) {
-  return _simd_erf_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_erf(simd_double8 x) {
-  return simd_make_double8(__tg_erf(x.lo), __tg_erf(x.hi));
-}
-#endif
-
-#pragma mark - erfc implementation
-static inline SIMD_CFUNC simd_float2 __tg_erfc(simd_float2 x) {
-  return simd_make_float2(__tg_erfc(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_erfc(simd_float3 x) {
-  return simd_make_float3(__tg_erfc(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_erfc_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_erfc(simd_float4 x) {
-  return _simd_erfc_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_erfc(simd_float4 x) {
-  return simd_make_float4(erfc(x.x), erfc(x.y), erfc(x.z), erfc(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_erfc_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_erfc(simd_float8 x) {
-  return _simd_erfc_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_erfc(simd_float8 x) {
-  return simd_make_float8(__tg_erfc(x.lo), __tg_erfc(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_erfc_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_erfc(simd_float16 x) {
-  return _simd_erfc_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_erfc(simd_float16 x) {
-  return simd_make_float16(__tg_erfc(x.lo), __tg_erfc(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_erfc_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_erfc(simd_double2 x) {
-  return _simd_erfc_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_erfc(simd_double2 x) {
-  return simd_make_double2(erfc(x.x), erfc(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_erfc(simd_double3 x) {
-  return simd_make_double3(__tg_erfc(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_erfc_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_erfc(simd_double4 x) {
-  return _simd_erfc_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_erfc(simd_double4 x) {
-  return simd_make_double4(__tg_erfc(x.lo), __tg_erfc(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_erfc_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_erfc(simd_double8 x) {
-  return _simd_erfc_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_erfc(simd_double8 x) {
-  return simd_make_double8(__tg_erfc(x.lo), __tg_erfc(x.hi));
-}
-#endif
-
-#pragma mark - tgamma implementation
-static inline SIMD_CFUNC simd_float2 __tg_tgamma(simd_float2 x) {
-  return simd_make_float2(__tg_tgamma(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_tgamma(simd_float3 x) {
-  return simd_make_float3(__tg_tgamma(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_tgamma_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_tgamma(simd_float4 x) {
-  return _simd_tgamma_f4(x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_tgamma(simd_float4 x) {
-  return simd_make_float4(tgamma(x.x), tgamma(x.y), tgamma(x.z), tgamma(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_tgamma_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_tgamma(simd_float8 x) {
-  return _simd_tgamma_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_tgamma(simd_float8 x) {
-  return simd_make_float8(__tg_tgamma(x.lo), __tg_tgamma(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_tgamma_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_tgamma(simd_float16 x) {
-  return _simd_tgamma_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_tgamma(simd_float16 x) {
-  return simd_make_float16(__tg_tgamma(x.lo), __tg_tgamma(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_tgamma_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_tgamma(simd_double2 x) {
-  return _simd_tgamma_d2(x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_tgamma(simd_double2 x) {
-  return simd_make_double2(tgamma(x.x), tgamma(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_tgamma(simd_double3 x) {
-  return simd_make_double3(__tg_tgamma(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_tgamma_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_tgamma(simd_double4 x) {
-  return _simd_tgamma_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_tgamma(simd_double4 x) {
-  return simd_make_double4(__tg_tgamma(x.lo), __tg_tgamma(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_tgamma_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_tgamma(simd_double8 x) {
-  return _simd_tgamma_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_tgamma(simd_double8 x) {
-  return simd_make_double8(__tg_tgamma(x.lo), __tg_tgamma(x.hi));
-}
-#endif
-
-#pragma mark - round implementation
-static inline SIMD_CFUNC simd_float2 __tg_round(simd_float2 x) {
-  return simd_make_float2(__tg_round(simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_round(simd_float3 x) {
-  return simd_make_float3(__tg_round(simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_round_f4(simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_round(simd_float4 x) {
-#if defined __arm64__
-  return vrndaq_f32(x);
-#else
-  return _simd_round_f4(x);
-#endif
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_round(simd_float4 x) {
-  return simd_make_float4(round(x.x), round(x.y), round(x.z), round(x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_round_f8(simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_round(simd_float8 x) {
-  return _simd_round_f8(x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_round(simd_float8 x) {
-  return simd_make_float8(__tg_round(x.lo), __tg_round(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_round_f16(simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_round(simd_float16 x) {
-  return _simd_round_f16(x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_round(simd_float16 x) {
-  return simd_make_float16(__tg_round(x.lo), __tg_round(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_round_d2(simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_round(simd_double2 x) {
-#if defined __arm64__
-  return vrndaq_f64(x);
-#else
-  return _simd_round_d2(x);
-#endif
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_round(simd_double2 x) {
-  return simd_make_double2(round(x.x), round(x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_round(simd_double3 x) {
-  return simd_make_double3(__tg_round(simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_round_d4(simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_round(simd_double4 x) {
-  return _simd_round_d4(x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_round(simd_double4 x) {
-  return simd_make_double4(__tg_round(x.lo), __tg_round(x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_round_d8(simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_round(simd_double8 x) {
-  return _simd_round_d8(x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_round(simd_double8 x) {
-  return simd_make_double8(__tg_round(x.lo), __tg_round(x.hi));
-}
-#endif
-
-#pragma mark - atan2 implementation
-static inline SIMD_CFUNC simd_float2 __tg_atan2(simd_float2 y, simd_float2 x) {
-  return simd_make_float2(__tg_atan2(simd_make_float4(y), simd_make_float4(x)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_atan2(simd_float3 y, simd_float3 x) {
-  return simd_make_float3(__tg_atan2(simd_make_float4(y), simd_make_float4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_atan2_f4(simd_float4 y, simd_float4 x);
-static inline SIMD_CFUNC simd_float4 __tg_atan2(simd_float4 y, simd_float4 x) {
-  return _simd_atan2_f4(y, x);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_atan2(simd_float4 y, simd_float4 x) {
-  return simd_make_float4(atan2(y.x, x.x), atan2(y.y, x.y), atan2(y.z, x.z), atan2(y.w, x.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_atan2_f8(simd_float8 y, simd_float8 x);
-static inline SIMD_CFUNC simd_float8 __tg_atan2(simd_float8 y, simd_float8 x) {
-  return _simd_atan2_f8(y, x);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_atan2(simd_float8 y, simd_float8 x) {
-  return simd_make_float8(__tg_atan2(y.lo, x.lo), __tg_atan2(y.hi, x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_atan2_f16(simd_float16 y, simd_float16 x);
-static inline SIMD_CFUNC simd_float16 __tg_atan2(simd_float16 y, simd_float16 x) {
-  return _simd_atan2_f16(y, x);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_atan2(simd_float16 y, simd_float16 x) {
-  return simd_make_float16(__tg_atan2(y.lo, x.lo), __tg_atan2(y.hi, x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_atan2_d2(simd_double2 y, simd_double2 x);
-static inline SIMD_CFUNC simd_double2 __tg_atan2(simd_double2 y, simd_double2 x) {
-  return _simd_atan2_d2(y, x);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_atan2(simd_double2 y, simd_double2 x) {
-  return simd_make_double2(atan2(y.x, x.x), atan2(y.y, x.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_atan2(simd_double3 y, simd_double3 x) {
-  return simd_make_double3(__tg_atan2(simd_make_double4(y), simd_make_double4(x)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_atan2_d4(simd_double4 y, simd_double4 x);
-static inline SIMD_CFUNC simd_double4 __tg_atan2(simd_double4 y, simd_double4 x) {
-  return _simd_atan2_d4(y, x);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_atan2(simd_double4 y, simd_double4 x) {
-  return simd_make_double4(__tg_atan2(y.lo, x.lo), __tg_atan2(y.hi, x.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_atan2_d8(simd_double8 y, simd_double8 x);
-static inline SIMD_CFUNC simd_double8 __tg_atan2(simd_double8 y, simd_double8 x) {
-  return _simd_atan2_d8(y, x);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_atan2(simd_double8 y, simd_double8 x) {
-  return simd_make_double8(__tg_atan2(y.lo, x.lo), __tg_atan2(y.hi, x.hi));
-}
-#endif
-
-#pragma mark - hypot implementation
-static inline SIMD_CFUNC simd_float2 __tg_hypot(simd_float2 x, simd_float2 y) {
-  return simd_make_float2(__tg_hypot(simd_make_float4(x), simd_make_float4(y)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_hypot(simd_float3 x, simd_float3 y) {
-  return simd_make_float3(__tg_hypot(simd_make_float4(x), simd_make_float4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_hypot_f4(simd_float4 x, simd_float4 y);
-static inline SIMD_CFUNC simd_float4 __tg_hypot(simd_float4 x, simd_float4 y) {
-  return _simd_hypot_f4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_hypot(simd_float4 x, simd_float4 y) {
-  return simd_make_float4(hypot(x.x, y.x), hypot(x.y, y.y), hypot(x.z, y.z), hypot(x.w, y.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_hypot_f8(simd_float8 x, simd_float8 y);
-static inline SIMD_CFUNC simd_float8 __tg_hypot(simd_float8 x, simd_float8 y) {
-  return _simd_hypot_f8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_hypot(simd_float8 x, simd_float8 y) {
-  return simd_make_float8(__tg_hypot(x.lo, y.lo), __tg_hypot(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_hypot_f16(simd_float16 x, simd_float16 y);
-static inline SIMD_CFUNC simd_float16 __tg_hypot(simd_float16 x, simd_float16 y) {
-  return _simd_hypot_f16(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_hypot(simd_float16 x, simd_float16 y) {
-  return simd_make_float16(__tg_hypot(x.lo, y.lo), __tg_hypot(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_hypot_d2(simd_double2 x, simd_double2 y);
-static inline SIMD_CFUNC simd_double2 __tg_hypot(simd_double2 x, simd_double2 y) {
-  return _simd_hypot_d2(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_hypot(simd_double2 x, simd_double2 y) {
-  return simd_make_double2(hypot(x.x, y.x), hypot(x.y, y.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_hypot(simd_double3 x, simd_double3 y) {
-  return simd_make_double3(__tg_hypot(simd_make_double4(x), simd_make_double4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_hypot_d4(simd_double4 x, simd_double4 y);
-static inline SIMD_CFUNC simd_double4 __tg_hypot(simd_double4 x, simd_double4 y) {
-  return _simd_hypot_d4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_hypot(simd_double4 x, simd_double4 y) {
-  return simd_make_double4(__tg_hypot(x.lo, y.lo), __tg_hypot(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_hypot_d8(simd_double8 x, simd_double8 y);
-static inline SIMD_CFUNC simd_double8 __tg_hypot(simd_double8 x, simd_double8 y) {
-  return _simd_hypot_d8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_hypot(simd_double8 x, simd_double8 y) {
-  return simd_make_double8(__tg_hypot(x.lo, y.lo), __tg_hypot(x.hi, y.hi));
-}
-#endif
-
-#pragma mark - pow implementation
-static inline SIMD_CFUNC simd_float2 __tg_pow(simd_float2 x, simd_float2 y) {
-  return simd_make_float2(__tg_pow(simd_make_float4(x), simd_make_float4(y)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_pow(simd_float3 x, simd_float3 y) {
-  return simd_make_float3(__tg_pow(simd_make_float4(x), simd_make_float4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_pow_f4(simd_float4 x, simd_float4 y);
-static inline SIMD_CFUNC simd_float4 __tg_pow(simd_float4 x, simd_float4 y) {
-  return _simd_pow_f4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_pow(simd_float4 x, simd_float4 y) {
-  return simd_make_float4(pow(x.x, y.x), pow(x.y, y.y), pow(x.z, y.z), pow(x.w, y.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_pow_f8(simd_float8 x, simd_float8 y);
-static inline SIMD_CFUNC simd_float8 __tg_pow(simd_float8 x, simd_float8 y) {
-  return _simd_pow_f8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_pow(simd_float8 x, simd_float8 y) {
-  return simd_make_float8(__tg_pow(x.lo, y.lo), __tg_pow(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_pow_f16(simd_float16 x, simd_float16 y);
-static inline SIMD_CFUNC simd_float16 __tg_pow(simd_float16 x, simd_float16 y) {
-  return _simd_pow_f16(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_pow(simd_float16 x, simd_float16 y) {
-  return simd_make_float16(__tg_pow(x.lo, y.lo), __tg_pow(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_pow_d2(simd_double2 x, simd_double2 y);
-static inline SIMD_CFUNC simd_double2 __tg_pow(simd_double2 x, simd_double2 y) {
-  return _simd_pow_d2(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_pow(simd_double2 x, simd_double2 y) {
-  return simd_make_double2(pow(x.x, y.x), pow(x.y, y.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_pow(simd_double3 x, simd_double3 y) {
-  return simd_make_double3(__tg_pow(simd_make_double4(x), simd_make_double4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_pow_d4(simd_double4 x, simd_double4 y);
-static inline SIMD_CFUNC simd_double4 __tg_pow(simd_double4 x, simd_double4 y) {
-  return _simd_pow_d4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_pow(simd_double4 x, simd_double4 y) {
-  return simd_make_double4(__tg_pow(x.lo, y.lo), __tg_pow(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_pow_d8(simd_double8 x, simd_double8 y);
-static inline SIMD_CFUNC simd_double8 __tg_pow(simd_double8 x, simd_double8 y) {
-  return _simd_pow_d8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_pow(simd_double8 x, simd_double8 y) {
-  return simd_make_double8(__tg_pow(x.lo, y.lo), __tg_pow(x.hi, y.hi));
-}
-#endif
-
-#pragma mark - fmod implementation
-static inline SIMD_CFUNC simd_float2 __tg_fmod(simd_float2 x, simd_float2 y) {
-  return simd_make_float2(__tg_fmod(simd_make_float4(x), simd_make_float4(y)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_fmod(simd_float3 x, simd_float3 y) {
-  return simd_make_float3(__tg_fmod(simd_make_float4(x), simd_make_float4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_fmod_f4(simd_float4 x, simd_float4 y);
-static inline SIMD_CFUNC simd_float4 __tg_fmod(simd_float4 x, simd_float4 y) {
-  return _simd_fmod_f4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_fmod(simd_float4 x, simd_float4 y) {
-  return simd_make_float4(fmod(x.x, y.x), fmod(x.y, y.y), fmod(x.z, y.z), fmod(x.w, y.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_fmod_f8(simd_float8 x, simd_float8 y);
-static inline SIMD_CFUNC simd_float8 __tg_fmod(simd_float8 x, simd_float8 y) {
-  return _simd_fmod_f8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_fmod(simd_float8 x, simd_float8 y) {
-  return simd_make_float8(__tg_fmod(x.lo, y.lo), __tg_fmod(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_fmod_f16(simd_float16 x, simd_float16 y);
-static inline SIMD_CFUNC simd_float16 __tg_fmod(simd_float16 x, simd_float16 y) {
-  return _simd_fmod_f16(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_fmod(simd_float16 x, simd_float16 y) {
-  return simd_make_float16(__tg_fmod(x.lo, y.lo), __tg_fmod(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_fmod_d2(simd_double2 x, simd_double2 y);
-static inline SIMD_CFUNC simd_double2 __tg_fmod(simd_double2 x, simd_double2 y) {
-  return _simd_fmod_d2(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_fmod(simd_double2 x, simd_double2 y) {
-  return simd_make_double2(fmod(x.x, y.x), fmod(x.y, y.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_fmod(simd_double3 x, simd_double3 y) {
-  return simd_make_double3(__tg_fmod(simd_make_double4(x), simd_make_double4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_fmod_d4(simd_double4 x, simd_double4 y);
-static inline SIMD_CFUNC simd_double4 __tg_fmod(simd_double4 x, simd_double4 y) {
-  return _simd_fmod_d4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_fmod(simd_double4 x, simd_double4 y) {
-  return simd_make_double4(__tg_fmod(x.lo, y.lo), __tg_fmod(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_fmod_d8(simd_double8 x, simd_double8 y);
-static inline SIMD_CFUNC simd_double8 __tg_fmod(simd_double8 x, simd_double8 y) {
-  return _simd_fmod_d8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_fmod(simd_double8 x, simd_double8 y) {
-  return simd_make_double8(__tg_fmod(x.lo, y.lo), __tg_fmod(x.hi, y.hi));
-}
-#endif
-
-#pragma mark - remainder implementation
-static inline SIMD_CFUNC simd_float2 __tg_remainder(simd_float2 x, simd_float2 y) {
-  return simd_make_float2(__tg_remainder(simd_make_float4(x), simd_make_float4(y)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_remainder(simd_float3 x, simd_float3 y) {
-  return simd_make_float3(__tg_remainder(simd_make_float4(x), simd_make_float4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_remainder_f4(simd_float4 x, simd_float4 y);
-static inline SIMD_CFUNC simd_float4 __tg_remainder(simd_float4 x, simd_float4 y) {
-  return _simd_remainder_f4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_remainder(simd_float4 x, simd_float4 y) {
-  return simd_make_float4(remainder(x.x, y.x), remainder(x.y, y.y), remainder(x.z, y.z), remainder(x.w, y.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_remainder_f8(simd_float8 x, simd_float8 y);
-static inline SIMD_CFUNC simd_float8 __tg_remainder(simd_float8 x, simd_float8 y) {
-  return _simd_remainder_f8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_remainder(simd_float8 x, simd_float8 y) {
-  return simd_make_float8(__tg_remainder(x.lo, y.lo), __tg_remainder(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_remainder_f16(simd_float16 x, simd_float16 y);
-static inline SIMD_CFUNC simd_float16 __tg_remainder(simd_float16 x, simd_float16 y) {
-  return _simd_remainder_f16(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_remainder(simd_float16 x, simd_float16 y) {
-  return simd_make_float16(__tg_remainder(x.lo, y.lo), __tg_remainder(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_remainder_d2(simd_double2 x, simd_double2 y);
-static inline SIMD_CFUNC simd_double2 __tg_remainder(simd_double2 x, simd_double2 y) {
-  return _simd_remainder_d2(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_remainder(simd_double2 x, simd_double2 y) {
-  return simd_make_double2(remainder(x.x, y.x), remainder(x.y, y.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_remainder(simd_double3 x, simd_double3 y) {
-  return simd_make_double3(__tg_remainder(simd_make_double4(x), simd_make_double4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_remainder_d4(simd_double4 x, simd_double4 y);
-static inline SIMD_CFUNC simd_double4 __tg_remainder(simd_double4 x, simd_double4 y) {
-  return _simd_remainder_d4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_remainder(simd_double4 x, simd_double4 y) {
-  return simd_make_double4(__tg_remainder(x.lo, y.lo), __tg_remainder(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_remainder_d8(simd_double8 x, simd_double8 y);
-static inline SIMD_CFUNC simd_double8 __tg_remainder(simd_double8 x, simd_double8 y) {
-  return _simd_remainder_d8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_remainder(simd_double8 x, simd_double8 y) {
-  return simd_make_double8(__tg_remainder(x.lo, y.lo), __tg_remainder(x.hi, y.hi));
-}
-#endif
-
-#pragma mark - nextafter implementation
-static inline SIMD_CFUNC simd_float2 __tg_nextafter(simd_float2 x, simd_float2 y) {
-  return simd_make_float2(__tg_nextafter(simd_make_float4(x), simd_make_float4(y)));
-}
-
-static inline SIMD_CFUNC simd_float3 __tg_nextafter(simd_float3 x, simd_float3 y) {
-  return simd_make_float3(__tg_nextafter(simd_make_float4(x), simd_make_float4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_float4 _simd_nextafter_f4(simd_float4 x, simd_float4 y);
-static inline SIMD_CFUNC simd_float4 __tg_nextafter(simd_float4 x, simd_float4 y) {
-  return _simd_nextafter_f4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float4 __tg_nextafter(simd_float4 x, simd_float4 y) {
-  return simd_make_float4(nextafter(x.x, y.x), nextafter(x.y, y.y), nextafter(x.z, y.z), nextafter(x.w, y.w));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_float8 _simd_nextafter_f8(simd_float8 x, simd_float8 y);
-static inline SIMD_CFUNC simd_float8 __tg_nextafter(simd_float8 x, simd_float8 y) {
-  return _simd_nextafter_f8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float8 __tg_nextafter(simd_float8 x, simd_float8 y) {
-  return simd_make_float8(__tg_nextafter(x.lo, y.lo), __tg_nextafter(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_float16 _simd_nextafter_f16(simd_float16 x, simd_float16 y);
-static inline SIMD_CFUNC simd_float16 __tg_nextafter(simd_float16 x, simd_float16 y) {
-  return _simd_nextafter_f16(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_float16 __tg_nextafter(simd_float16 x, simd_float16 y) {
-  return simd_make_float16(__tg_nextafter(x.lo, y.lo), __tg_nextafter(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_nextafter_d2(simd_double2 x, simd_double2 y);
-static inline SIMD_CFUNC simd_double2 __tg_nextafter(simd_double2 x, simd_double2 y) {
-  return _simd_nextafter_d2(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double2 __tg_nextafter(simd_double2 x, simd_double2 y) {
-  return simd_make_double2(nextafter(x.x, y.x), nextafter(x.y, y.y));
-}
-#endif
-
-static inline SIMD_CFUNC simd_double3 __tg_nextafter(simd_double3 x, simd_double3 y) {
-  return simd_make_double3(__tg_nextafter(simd_make_double4(x), simd_make_double4(y)));
-}
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX2__
-extern simd_double4 _simd_nextafter_d4(simd_double4 x, simd_double4 y);
-static inline SIMD_CFUNC simd_double4 __tg_nextafter(simd_double4 x, simd_double4 y) {
-  return _simd_nextafter_d4(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double4 __tg_nextafter(simd_double4 x, simd_double4 y) {
-  return simd_make_double4(__tg_nextafter(x.lo, y.lo), __tg_nextafter(x.hi, y.hi));
-}
-#endif
-
-#if SIMD_LIBRARY_VERSION >= 3 && defined __AVX512F__
-extern simd_double8 _simd_nextafter_d8(simd_double8 x, simd_double8 y);
-static inline SIMD_CFUNC simd_double8 __tg_nextafter(simd_double8 x, simd_double8 y) {
-  return _simd_nextafter_d8(x, y);
-}
-#else
-static inline SIMD_CFUNC simd_double8 __tg_nextafter(simd_double8 x, simd_double8 y) {
-  return simd_make_double8(__tg_nextafter(x.lo, y.lo), __tg_nextafter(x.hi, y.hi));
-}
-#endif
-
-static inline SIMD_CFUNC simd_float2 __tg_fdim(simd_float2 x, simd_float2 y) { return simd_bitselect(x-y, 0, x= 3
-extern simd_float4 _simd_fma_f4(simd_float4 x, simd_float4 y, simd_float4 z);
-#endif
-static inline SIMD_CFUNC simd_float4 __tg_fma(simd_float4 x, simd_float4 y, simd_float4 z) {
-#if defined __arm64__ || defined __ARM_VFPV4__
-  return vfmaq_f32(z, x, y);
-#elif (defined __i386__ || defined __x86_64__) && defined __FMA__
-  return _mm_fmadd_ps(x, y, z);
-#elif SIMD_LIBRARY_VERSION >= 3
-  return _simd_fma_f4(x, y, z);
-#else
-  return simd_make_float4(fma(x.x, y.x, z.x), fma(x.y, y.y, z.y), fma(x.z, y.z, z.z), fma(x.w, y.w, z.w));
-#endif
-}
-
-static inline SIMD_CFUNC simd_float8 __tg_fma(simd_float8 x, simd_float8 y, simd_float8 z) {
-#if (defined __i386__ || defined __x86_64__) && defined __FMA__
-  return _mm256_fmadd_ps(x, y, z);
-#else
-  return simd_make_float8(__tg_fma(x.lo, y.lo, z.lo), __tg_fma(x.hi, y.hi, z.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_float16 __tg_fma(simd_float16 x, simd_float16 y, simd_float16 z) {
-#if defined __AVX512F__
-  return _mm512_fmadd_ps(x, y, z);
-#else
-  return simd_make_float16(__tg_fma(x.lo, y.lo, z.lo), __tg_fma(x.hi, y.hi, z.hi));
-#endif
-}
-
-#if SIMD_LIBRARY_VERSION >= 3
-extern simd_double2 _simd_fma_d2(simd_double2 x, simd_double2 y, simd_double2 z);
-#endif
-static inline SIMD_CFUNC simd_double2 __tg_fma(simd_double2 x, simd_double2 y, simd_double2 z) {
-#if defined __arm64__
-  return vfmaq_f64(z, x, y);
-#elif (defined __i386__ || defined __x86_64__) && defined __FMA__
-  return _mm_fmadd_pd(x, y, z);
-#elif SIMD_LIBRARY_VERSION >= 3
-  return _simd_fma_d2(x, y, z);
-#else
-  return simd_make_double2(fma(x.x, y.x, z.x), fma(x.y, y.y, z.y));
-#endif
-}
-
-static inline SIMD_CFUNC simd_double3 __tg_fma(simd_double3 x, simd_double3 y, simd_double3 z) {
-  return simd_make_double3(__tg_fma(simd_make_double4(x), simd_make_double4(y), simd_make_double4(z)));
-}
-
-static inline SIMD_CFUNC simd_double4 __tg_fma(simd_double4 x, simd_double4 y, simd_double4 z) {
-#if (defined __i386__ || defined __x86_64__) && defined __FMA__
-  return _mm256_fmadd_pd(x, y, z);
-#else
-  return simd_make_double4(__tg_fma(x.lo, y.lo, z.lo), __tg_fma(x.hi, y.hi, z.hi));
-#endif
-}
-
-static inline SIMD_CFUNC simd_double8 __tg_fma(simd_double8 x, simd_double8 y, simd_double8 z) {
-#if defined __AVX512F__
-  return _mm512_fmadd_pd(x, y, z);
-#else
-  return simd_make_double8(__tg_fma(x.lo, y.lo, z.lo), __tg_fma(x.hi, y.hi, z.hi));
-#endif
-}
-
-static inline SIMD_CFUNC float simd_muladd(float x, float y, float z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_float2 simd_muladd(simd_float2 x, simd_float2 y, simd_float2 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_float3 simd_muladd(simd_float3 x, simd_float3 y, simd_float3 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_float4 simd_muladd(simd_float4 x, simd_float4 y, simd_float4 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_float8 simd_muladd(simd_float8 x, simd_float8 y, simd_float8 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_float16 simd_muladd(simd_float16 x, simd_float16 y, simd_float16 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC double simd_muladd(double x, double y, double z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_double2 simd_muladd(simd_double2 x, simd_double2 y, simd_double2 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_double3 simd_muladd(simd_double3 x, simd_double3 y, simd_double3 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_double4 simd_muladd(simd_double4 x, simd_double4 y, simd_double4 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-static inline SIMD_CFUNC simd_double8 simd_muladd(simd_double8 x, simd_double8 y, simd_double8 z) {
-#pragma STDC FP_CONTRACT ON
-  return x*y + z;
-}
-#ifdef __cplusplus
-}      /* extern "C" */
-#endif
-#endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
-#endif /* SIMD_MATH_HEADER */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/simd/matrix.h b/lib/libc/include/x86_64-macos.10-none/simd/matrix.h
deleted file mode 100644
index a62384e13318a8ecf8d23c66e905a4911e4e188c..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/simd/matrix.h
+++ /dev/null
@@ -1,1786 +0,0 @@
-/* Copyright (c) 2014-2017 Apple, Inc. All rights reserved.
- *
- *      Function                        Result
- *      ------------------------------------------------------------------
- *
- *      simd_diagonal_matrix(x)         A square matrix with the vector x
- *                                      as its diagonal.
- *
- *      simd_matrix(c0, c1, ... )       A matrix with the specified vectors
- *                                      as columns.
- *
- *      simd_matrix_from_rows(r0, r1, ... )  A matrix with the specified vectors
- *                                      as rows.
- *
- *      simd_mul(a,x)                   Scalar product a*x.
- *
- *      simd_linear_combination(a,x,b,y)  a*x + b*y.
- *
- *      simd_add(x,y)                   Macro wrapping linear_combination
- *                                      to compute x + y.
- *
- *      simd_sub(x,y)                   Macro wrapping linear_combination
- *                                      to compute x - y.
- *
- *      simd_transpose(x)               Transpose of the matrix x.
- *
- *      simd_inverse(x)                 Inverse of x if x is non-singular.  If
- *                                      x is singular, the result is undefined.
- *
- *      simd_mul(x,y)                   If x is a matrix, returns the matrix
- *                                      product x*y, where y is either a matrix
- *                                      or a column vector.  If x is a vector,
- *                                      returns the product x*y where x is
- *                                      interpreted as a row vector.
- *
- *      simd_equal(x,y)                 Returns true if and only if every
- *                                      element of x is exactly equal to the
- *                                      corresponding element of y.
- *
- *      simd_almost_equal_elements(x,y,tol)
- *                                      Returns true if and only if for each
- *                                      entry xij in x, the corresponding
- *                                      element yij in y satisfies
- *                                      |xij - yij| <= tol.
- *
- *      simd_almost_equal_elements_relative(x,y,tol)
- *                                      Returns true if and only if for each
- *                                      entry xij in x, the corresponding
- *                                      element yij in y satisfies
- *                                      |xij - yij| <= tol*|xij|.
- *
- *  The header also defines a few useful global matrix objects:
- *  matrix_identity_floatNxM and matrix_identity_doubleNxM, may be used to get
- *  an identity matrix of the specified size.
- *
- *  In C++, we are able to use namespacing to make the functions more concise;
- *  we also overload some common arithmetic operators to work with the matrix
- *  types:
- *
- *      C++ Function                    Equivalent C Function
- *      --------------------------------------------------------------------
- *      simd::inverse                   simd_inverse
- *      simd::transpose                 simd_transpose
- *      operator+                       simd_add
- *      operator-                       simd_sub
- *      operator+=                      N/A
- *      operator-=                      N/A
- *      operator*                       simd_mul or simd_mul
- *      operator*=                      simd_mul or simd_mul
- *      operator==                      simd_equal
- *      operator!=                      !simd_equal
- *      simd::almost_equal_elements     simd_almost_equal_elements
- *      simd::almost_equal_elements_relative  simd_almost_equal_elements_relative
- *
- *   provides constructors for C++ matrix types.
- */
-
-#ifndef SIMD_MATRIX_HEADER
-#define SIMD_MATRIX_HEADER
-
-#include 
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-#include 
-#include 
-#include 
-#include 
-
-#ifdef __cplusplus
-    extern "C" {
-#endif
-
-extern const simd_float2x2 matrix_identity_float2x2  __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-extern const simd_float3x3 matrix_identity_float3x3  __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-extern const simd_float4x4 matrix_identity_float4x4  __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-extern const simd_double2x2 matrix_identity_double2x2 __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-extern const simd_double3x3 matrix_identity_double3x3 __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-extern const simd_double4x4 matrix_identity_double4x4 __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-
-static simd_float2x2 SIMD_CFUNC simd_diagonal_matrix(simd_float2 __x);
-static simd_float3x3 SIMD_CFUNC simd_diagonal_matrix(simd_float3 __x);
-static simd_float4x4 SIMD_CFUNC simd_diagonal_matrix(simd_float4 __x);
-static simd_double2x2 SIMD_CFUNC simd_diagonal_matrix(simd_double2 __x);
-static simd_double3x3 SIMD_CFUNC simd_diagonal_matrix(simd_double3 __x);
-static simd_double4x4 SIMD_CFUNC simd_diagonal_matrix(simd_double4 __x);
-#define matrix_from_diagonal simd_diagonal_matrix
-
-static simd_float2x2 SIMD_CFUNC simd_matrix(simd_float2 col0, simd_float2 col1);
-static simd_float3x2 SIMD_CFUNC simd_matrix(simd_float2 col0, simd_float2 col1, simd_float2 col2);
-static simd_float4x2 SIMD_CFUNC simd_matrix(simd_float2 col0, simd_float2 col1, simd_float2 col2, simd_float2 col3);
-static simd_float2x3 SIMD_CFUNC simd_matrix(simd_float3 col0, simd_float3 col1);
-static simd_float3x3 SIMD_CFUNC simd_matrix(simd_float3 col0, simd_float3 col1, simd_float3 col2);
-static simd_float4x3 SIMD_CFUNC simd_matrix(simd_float3 col0, simd_float3 col1, simd_float3 col2, simd_float3 col3);
-static simd_float2x4 SIMD_CFUNC simd_matrix(simd_float4 col0, simd_float4 col1);
-static simd_float3x4 SIMD_CFUNC simd_matrix(simd_float4 col0, simd_float4 col1, simd_float4 col2);
-static simd_float4x4 SIMD_CFUNC simd_matrix(simd_float4 col0, simd_float4 col1, simd_float4 col2, simd_float4 col3);
-static simd_double2x2 SIMD_CFUNC simd_matrix(simd_double2 col0, simd_double2 col1);
-static simd_double3x2 SIMD_CFUNC simd_matrix(simd_double2 col0, simd_double2 col1, simd_double2 col2);
-static simd_double4x2 SIMD_CFUNC simd_matrix(simd_double2 col0, simd_double2 col1, simd_double2 col2, simd_double2 col3);
-static simd_double2x3 SIMD_CFUNC simd_matrix(simd_double3 col0, simd_double3 col1);
-static simd_double3x3 SIMD_CFUNC simd_matrix(simd_double3 col0, simd_double3 col1, simd_double3 col2);
-static simd_double4x3 SIMD_CFUNC simd_matrix(simd_double3 col0, simd_double3 col1, simd_double3 col2, simd_double3 col3);
-static simd_double2x4 SIMD_CFUNC simd_matrix(simd_double4 col0, simd_double4 col1);
-static simd_double3x4 SIMD_CFUNC simd_matrix(simd_double4 col0, simd_double4 col1, simd_double4 col2);
-static simd_double4x4 SIMD_CFUNC simd_matrix(simd_double4 col0, simd_double4 col1, simd_double4 col2, simd_double4 col3);
-#define matrix_from_columns simd_matrix
-
-static simd_float2x2 SIMD_CFUNC simd_matrix_from_rows(simd_float2 row0, simd_float2 row1);
-static simd_float2x3 SIMD_CFUNC simd_matrix_from_rows(simd_float2 row0, simd_float2 row1, simd_float2 row2);
-static simd_float2x4 SIMD_CFUNC simd_matrix_from_rows(simd_float2 row0, simd_float2 row1, simd_float2 row2, simd_float2 row3);
-static simd_float3x2 SIMD_CFUNC simd_matrix_from_rows(simd_float3 row0, simd_float3 row1);
-static simd_float3x3 SIMD_CFUNC simd_matrix_from_rows(simd_float3 row0, simd_float3 row1, simd_float3 row2);
-static simd_float3x4 SIMD_CFUNC simd_matrix_from_rows(simd_float3 row0, simd_float3 row1, simd_float3 row2, simd_float3 row3);
-static simd_float4x2 SIMD_CFUNC simd_matrix_from_rows(simd_float4 row0, simd_float4 row1);
-static simd_float4x3 SIMD_CFUNC simd_matrix_from_rows(simd_float4 row0, simd_float4 row1, simd_float4 row2);
-static simd_float4x4 SIMD_CFUNC simd_matrix_from_rows(simd_float4 row0, simd_float4 row1, simd_float4 row2, simd_float4 row3);
-static simd_double2x2 SIMD_CFUNC simd_matrix_from_rows(simd_double2 row0, simd_double2 row1);
-static simd_double2x3 SIMD_CFUNC simd_matrix_from_rows(simd_double2 row0, simd_double2 row1, simd_double2 row2);
-static simd_double2x4 SIMD_CFUNC simd_matrix_from_rows(simd_double2 row0, simd_double2 row1, simd_double2 row2, simd_double2 row3);
-static simd_double3x2 SIMD_CFUNC simd_matrix_from_rows(simd_double3 row0, simd_double3 row1);
-static simd_double3x3 SIMD_CFUNC simd_matrix_from_rows(simd_double3 row0, simd_double3 row1, simd_double3 row2);
-static simd_double3x4 SIMD_CFUNC simd_matrix_from_rows(simd_double3 row0, simd_double3 row1, simd_double3 row2, simd_double3 row3);
-static simd_double4x2 SIMD_CFUNC simd_matrix_from_rows(simd_double4 row0, simd_double4 row1);
-static simd_double4x3 SIMD_CFUNC simd_matrix_from_rows(simd_double4 row0, simd_double4 row1, simd_double4 row2);
-static simd_double4x4 SIMD_CFUNC simd_matrix_from_rows(simd_double4 row0, simd_double4 row1, simd_double4 row2, simd_double4 row3);
-#define matrix_from_rows simd_matrix_from_rows
-        
-static  simd_float3x3 SIMD_NOINLINE simd_matrix3x3(simd_quatf q);
-static  simd_float4x4 SIMD_NOINLINE simd_matrix4x4(simd_quatf q);
-static simd_double3x3 SIMD_NOINLINE simd_matrix3x3(simd_quatd q);
-static simd_double4x4 SIMD_NOINLINE simd_matrix4x4(simd_quatd q);
-
-static simd_float2x2 SIMD_CFUNC simd_mul(float __a, simd_float2x2 __x);
-static simd_float3x2 SIMD_CFUNC simd_mul(float __a, simd_float3x2 __x);
-static simd_float4x2 SIMD_CFUNC simd_mul(float __a, simd_float4x2 __x);
-static simd_float2x3 SIMD_CFUNC simd_mul(float __a, simd_float2x3 __x);
-static simd_float3x3 SIMD_CFUNC simd_mul(float __a, simd_float3x3 __x);
-static simd_float4x3 SIMD_CFUNC simd_mul(float __a, simd_float4x3 __x);
-static simd_float2x4 SIMD_CFUNC simd_mul(float __a, simd_float2x4 __x);
-static simd_float3x4 SIMD_CFUNC simd_mul(float __a, simd_float3x4 __x);
-static simd_float4x4 SIMD_CFUNC simd_mul(float __a, simd_float4x4 __x);
-static simd_double2x2 SIMD_CFUNC simd_mul(double __a, simd_double2x2 __x);
-static simd_double3x2 SIMD_CFUNC simd_mul(double __a, simd_double3x2 __x);
-static simd_double4x2 SIMD_CFUNC simd_mul(double __a, simd_double4x2 __x);
-static simd_double2x3 SIMD_CFUNC simd_mul(double __a, simd_double2x3 __x);
-static simd_double3x3 SIMD_CFUNC simd_mul(double __a, simd_double3x3 __x);
-static simd_double4x3 SIMD_CFUNC simd_mul(double __a, simd_double4x3 __x);
-static simd_double2x4 SIMD_CFUNC simd_mul(double __a, simd_double2x4 __x);
-static simd_double3x4 SIMD_CFUNC simd_mul(double __a, simd_double3x4 __x);
-static simd_double4x4 SIMD_CFUNC simd_mul(double __a, simd_double4x4 __x);
-
-static simd_float2x2 SIMD_CFUNC simd_linear_combination(float __a, simd_float2x2 __x, float __b, simd_float2x2 __y);
-static simd_float3x2 SIMD_CFUNC simd_linear_combination(float __a, simd_float3x2 __x, float __b, simd_float3x2 __y);
-static simd_float4x2 SIMD_CFUNC simd_linear_combination(float __a, simd_float4x2 __x, float __b, simd_float4x2 __y);
-static simd_float2x3 SIMD_CFUNC simd_linear_combination(float __a, simd_float2x3 __x, float __b, simd_float2x3 __y);
-static simd_float3x3 SIMD_CFUNC simd_linear_combination(float __a, simd_float3x3 __x, float __b, simd_float3x3 __y);
-static simd_float4x3 SIMD_CFUNC simd_linear_combination(float __a, simd_float4x3 __x, float __b, simd_float4x3 __y);
-static simd_float2x4 SIMD_CFUNC simd_linear_combination(float __a, simd_float2x4 __x, float __b, simd_float2x4 __y);
-static simd_float3x4 SIMD_CFUNC simd_linear_combination(float __a, simd_float3x4 __x, float __b, simd_float3x4 __y);
-static simd_float4x4 SIMD_CFUNC simd_linear_combination(float __a, simd_float4x4 __x, float __b, simd_float4x4 __y);
-static simd_double2x2 SIMD_CFUNC simd_linear_combination(double __a, simd_double2x2 __x, double __b, simd_double2x2 __y);
-static simd_double3x2 SIMD_CFUNC simd_linear_combination(double __a, simd_double3x2 __x, double __b, simd_double3x2 __y);
-static simd_double4x2 SIMD_CFUNC simd_linear_combination(double __a, simd_double4x2 __x, double __b, simd_double4x2 __y);
-static simd_double2x3 SIMD_CFUNC simd_linear_combination(double __a, simd_double2x3 __x, double __b, simd_double2x3 __y);
-static simd_double3x3 SIMD_CFUNC simd_linear_combination(double __a, simd_double3x3 __x, double __b, simd_double3x3 __y);
-static simd_double4x3 SIMD_CFUNC simd_linear_combination(double __a, simd_double4x3 __x, double __b, simd_double4x3 __y);
-static simd_double2x4 SIMD_CFUNC simd_linear_combination(double __a, simd_double2x4 __x, double __b, simd_double2x4 __y);
-static simd_double3x4 SIMD_CFUNC simd_linear_combination(double __a, simd_double3x4 __x, double __b, simd_double3x4 __y);
-static simd_double4x4 SIMD_CFUNC simd_linear_combination(double __a, simd_double4x4 __x, double __b, simd_double4x4 __y);
-#define matrix_linear_combination simd_linear_combination
-      
-static simd_float2x2 SIMD_CFUNC simd_add(simd_float2x2 __x, simd_float2x2 __y);
-static simd_float3x2 SIMD_CFUNC simd_add(simd_float3x2 __x, simd_float3x2 __y);
-static simd_float4x2 SIMD_CFUNC simd_add(simd_float4x2 __x, simd_float4x2 __y);
-static simd_float2x3 SIMD_CFUNC simd_add(simd_float2x3 __x, simd_float2x3 __y);
-static simd_float3x3 SIMD_CFUNC simd_add(simd_float3x3 __x, simd_float3x3 __y);
-static simd_float4x3 SIMD_CFUNC simd_add(simd_float4x3 __x, simd_float4x3 __y);
-static simd_float2x4 SIMD_CFUNC simd_add(simd_float2x4 __x, simd_float2x4 __y);
-static simd_float3x4 SIMD_CFUNC simd_add(simd_float3x4 __x, simd_float3x4 __y);
-static simd_float4x4 SIMD_CFUNC simd_add(simd_float4x4 __x, simd_float4x4 __y);
-static simd_double2x2 SIMD_CFUNC simd_add(simd_double2x2 __x, simd_double2x2 __y);
-static simd_double3x2 SIMD_CFUNC simd_add(simd_double3x2 __x, simd_double3x2 __y);
-static simd_double4x2 SIMD_CFUNC simd_add(simd_double4x2 __x, simd_double4x2 __y);
-static simd_double2x3 SIMD_CFUNC simd_add(simd_double2x3 __x, simd_double2x3 __y);
-static simd_double3x3 SIMD_CFUNC simd_add(simd_double3x3 __x, simd_double3x3 __y);
-static simd_double4x3 SIMD_CFUNC simd_add(simd_double4x3 __x, simd_double4x3 __y);
-static simd_double2x4 SIMD_CFUNC simd_add(simd_double2x4 __x, simd_double2x4 __y);
-static simd_double3x4 SIMD_CFUNC simd_add(simd_double3x4 __x, simd_double3x4 __y);
-static simd_double4x4 SIMD_CFUNC simd_add(simd_double4x4 __x, simd_double4x4 __y);
-#define matrix_add simd_add
-      
-static simd_float2x2 SIMD_CFUNC simd_sub(simd_float2x2 __x, simd_float2x2 __y);
-static simd_float3x2 SIMD_CFUNC simd_sub(simd_float3x2 __x, simd_float3x2 __y);
-static simd_float4x2 SIMD_CFUNC simd_sub(simd_float4x2 __x, simd_float4x2 __y);
-static simd_float2x3 SIMD_CFUNC simd_sub(simd_float2x3 __x, simd_float2x3 __y);
-static simd_float3x3 SIMD_CFUNC simd_sub(simd_float3x3 __x, simd_float3x3 __y);
-static simd_float4x3 SIMD_CFUNC simd_sub(simd_float4x3 __x, simd_float4x3 __y);
-static simd_float2x4 SIMD_CFUNC simd_sub(simd_float2x4 __x, simd_float2x4 __y);
-static simd_float3x4 SIMD_CFUNC simd_sub(simd_float3x4 __x, simd_float3x4 __y);
-static simd_float4x4 SIMD_CFUNC simd_sub(simd_float4x4 __x, simd_float4x4 __y);
-static simd_double2x2 SIMD_CFUNC simd_sub(simd_double2x2 __x, simd_double2x2 __y);
-static simd_double3x2 SIMD_CFUNC simd_sub(simd_double3x2 __x, simd_double3x2 __y);
-static simd_double4x2 SIMD_CFUNC simd_sub(simd_double4x2 __x, simd_double4x2 __y);
-static simd_double2x3 SIMD_CFUNC simd_sub(simd_double2x3 __x, simd_double2x3 __y);
-static simd_double3x3 SIMD_CFUNC simd_sub(simd_double3x3 __x, simd_double3x3 __y);
-static simd_double4x3 SIMD_CFUNC simd_sub(simd_double4x3 __x, simd_double4x3 __y);
-static simd_double2x4 SIMD_CFUNC simd_sub(simd_double2x4 __x, simd_double2x4 __y);
-static simd_double3x4 SIMD_CFUNC simd_sub(simd_double3x4 __x, simd_double3x4 __y);
-static simd_double4x4 SIMD_CFUNC simd_sub(simd_double4x4 __x, simd_double4x4 __y);
-#define matrix_sub simd_sub
-
-static simd_float2x2 SIMD_CFUNC simd_transpose(simd_float2x2 __x);
-static simd_float2x3 SIMD_CFUNC simd_transpose(simd_float3x2 __x);
-static simd_float2x4 SIMD_CFUNC simd_transpose(simd_float4x2 __x);
-static simd_float3x2 SIMD_CFUNC simd_transpose(simd_float2x3 __x);
-static simd_float3x3 SIMD_CFUNC simd_transpose(simd_float3x3 __x);
-static simd_float3x4 SIMD_CFUNC simd_transpose(simd_float4x3 __x);
-static simd_float4x2 SIMD_CFUNC simd_transpose(simd_float2x4 __x);
-static simd_float4x3 SIMD_CFUNC simd_transpose(simd_float3x4 __x);
-static simd_float4x4 SIMD_CFUNC simd_transpose(simd_float4x4 __x);
-static simd_double2x2 SIMD_CFUNC simd_transpose(simd_double2x2 __x);
-static simd_double2x3 SIMD_CFUNC simd_transpose(simd_double3x2 __x);
-static simd_double2x4 SIMD_CFUNC simd_transpose(simd_double4x2 __x);
-static simd_double3x2 SIMD_CFUNC simd_transpose(simd_double2x3 __x);
-static simd_double3x3 SIMD_CFUNC simd_transpose(simd_double3x3 __x);
-static simd_double3x4 SIMD_CFUNC simd_transpose(simd_double4x3 __x);
-static simd_double4x2 SIMD_CFUNC simd_transpose(simd_double2x4 __x);
-static simd_double4x3 SIMD_CFUNC simd_transpose(simd_double3x4 __x);
-static simd_double4x4 SIMD_CFUNC simd_transpose(simd_double4x4 __x);
-#define matrix_transpose simd_transpose
-
-static float SIMD_CFUNC simd_determinant(simd_float2x2 __x);
-static float SIMD_CFUNC simd_determinant(simd_float3x3 __x);
-static float SIMD_CFUNC simd_determinant(simd_float4x4 __x);
-static double SIMD_CFUNC simd_determinant(simd_double2x2 __x);
-static double SIMD_CFUNC simd_determinant(simd_double3x3 __x);
-static double SIMD_CFUNC simd_determinant(simd_double4x4 __x);
-#define matrix_determinant simd_determinant
-
-static simd_float2x2 SIMD_CFUNC simd_inverse(simd_float2x2 __x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-static simd_float3x3 SIMD_CFUNC simd_inverse(simd_float3x3 __x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-static simd_float4x4 SIMD_CFUNC simd_inverse(simd_float4x4 __x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-static simd_double2x2 SIMD_CFUNC simd_inverse(simd_double2x2 __x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-static simd_double3x3 SIMD_CFUNC simd_inverse(simd_double3x3 __x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-static simd_double4x4 SIMD_CFUNC simd_inverse(simd_double4x4 __x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
-#define matrix_invert simd_inverse
-
-static simd_float2 SIMD_CFUNC simd_mul(simd_float2x2 __x, simd_float2 __y);
-static simd_float2 SIMD_CFUNC simd_mul(simd_float3x2 __x, simd_float3 __y);
-static simd_float2 SIMD_CFUNC simd_mul(simd_float4x2 __x, simd_float4 __y);
-static simd_float3 SIMD_CFUNC simd_mul(simd_float2x3 __x, simd_float2 __y);
-static simd_float3 SIMD_CFUNC simd_mul(simd_float3x3 __x, simd_float3 __y);
-static simd_float3 SIMD_CFUNC simd_mul(simd_float4x3 __x, simd_float4 __y);
-static simd_float4 SIMD_CFUNC simd_mul(simd_float2x4 __x, simd_float2 __y);
-static simd_float4 SIMD_CFUNC simd_mul(simd_float3x4 __x, simd_float3 __y);
-static simd_float4 SIMD_CFUNC simd_mul(simd_float4x4 __x, simd_float4 __y);
-static simd_double2 SIMD_CFUNC simd_mul(simd_double2x2 __x, simd_double2 __y);
-static simd_double2 SIMD_CFUNC simd_mul(simd_double3x2 __x, simd_double3 __y);
-static simd_double2 SIMD_CFUNC simd_mul(simd_double4x2 __x, simd_double4 __y);
-static simd_double3 SIMD_CFUNC simd_mul(simd_double2x3 __x, simd_double2 __y);
-static simd_double3 SIMD_CFUNC simd_mul(simd_double3x3 __x, simd_double3 __y);
-static simd_double3 SIMD_CFUNC simd_mul(simd_double4x3 __x, simd_double4 __y);
-static simd_double4 SIMD_CFUNC simd_mul(simd_double2x4 __x, simd_double2 __y);
-static simd_double4 SIMD_CFUNC simd_mul(simd_double3x4 __x, simd_double3 __y);
-static simd_double4 SIMD_CFUNC simd_mul(simd_double4x4 __x, simd_double4 __y);
-static simd_float2 SIMD_CFUNC simd_mul(simd_float2 __x, simd_float2x2 __y);
-static simd_float3 SIMD_CFUNC simd_mul(simd_float2 __x, simd_float3x2 __y);
-static simd_float4 SIMD_CFUNC simd_mul(simd_float2 __x, simd_float4x2 __y);
-static simd_float2 SIMD_CFUNC simd_mul(simd_float3 __x, simd_float2x3 __y);
-static simd_float3 SIMD_CFUNC simd_mul(simd_float3 __x, simd_float3x3 __y);
-static simd_float4 SIMD_CFUNC simd_mul(simd_float3 __x, simd_float4x3 __y);
-static simd_float2 SIMD_CFUNC simd_mul(simd_float4 __x, simd_float2x4 __y);
-static simd_float3 SIMD_CFUNC simd_mul(simd_float4 __x, simd_float3x4 __y);
-static simd_float4 SIMD_CFUNC simd_mul(simd_float4 __x, simd_float4x4 __y);
-static simd_double2 SIMD_CFUNC simd_mul(simd_double2 __x, simd_double2x2 __y);
-static simd_double3 SIMD_CFUNC simd_mul(simd_double2 __x, simd_double3x2 __y);
-static simd_double4 SIMD_CFUNC simd_mul(simd_double2 __x, simd_double4x2 __y);
-static simd_double2 SIMD_CFUNC simd_mul(simd_double3 __x, simd_double2x3 __y);
-static simd_double3 SIMD_CFUNC simd_mul(simd_double3 __x, simd_double3x3 __y);
-static simd_double4 SIMD_CFUNC simd_mul(simd_double3 __x, simd_double4x3 __y);
-static simd_double2 SIMD_CFUNC simd_mul(simd_double4 __x, simd_double2x4 __y);
-static simd_double3 SIMD_CFUNC simd_mul(simd_double4 __x, simd_double3x4 __y);
-static simd_double4 SIMD_CFUNC simd_mul(simd_double4 __x, simd_double4x4 __y);
-static simd_float2x2 SIMD_CFUNC simd_mul(simd_float2x2 __x, simd_float2x2 __y);
-static simd_float3x2 SIMD_CFUNC simd_mul(simd_float2x2 __x, simd_float3x2 __y);
-static simd_float4x2 SIMD_CFUNC simd_mul(simd_float2x2 __x, simd_float4x2 __y);
-static simd_float2x3 SIMD_CFUNC simd_mul(simd_float2x3 __x, simd_float2x2 __y);
-static simd_float3x3 SIMD_CFUNC simd_mul(simd_float2x3 __x, simd_float3x2 __y);
-static simd_float4x3 SIMD_CFUNC simd_mul(simd_float2x3 __x, simd_float4x2 __y);
-static simd_float2x4 SIMD_CFUNC simd_mul(simd_float2x4 __x, simd_float2x2 __y);
-static simd_float3x4 SIMD_CFUNC simd_mul(simd_float2x4 __x, simd_float3x2 __y);
-static simd_float4x4 SIMD_CFUNC simd_mul(simd_float2x4 __x, simd_float4x2 __y);
-static simd_double2x2 SIMD_CFUNC simd_mul(simd_double2x2 __x, simd_double2x2 __y);
-static simd_double3x2 SIMD_CFUNC simd_mul(simd_double2x2 __x, simd_double3x2 __y);
-static simd_double4x2 SIMD_CFUNC simd_mul(simd_double2x2 __x, simd_double4x2 __y);
-static simd_double2x3 SIMD_CFUNC simd_mul(simd_double2x3 __x, simd_double2x2 __y);
-static simd_double3x3 SIMD_CFUNC simd_mul(simd_double2x3 __x, simd_double3x2 __y);
-static simd_double4x3 SIMD_CFUNC simd_mul(simd_double2x3 __x, simd_double4x2 __y);
-static simd_double2x4 SIMD_CFUNC simd_mul(simd_double2x4 __x, simd_double2x2 __y);
-static simd_double3x4 SIMD_CFUNC simd_mul(simd_double2x4 __x, simd_double3x2 __y);
-static simd_double4x4 SIMD_CFUNC simd_mul(simd_double2x4 __x, simd_double4x2 __y);
-static simd_float2x2 SIMD_CFUNC simd_mul(simd_float3x2 __x, simd_float2x3 __y);
-static simd_float3x2 SIMD_CFUNC simd_mul(simd_float3x2 __x, simd_float3x3 __y);
-static simd_float4x2 SIMD_CFUNC simd_mul(simd_float3x2 __x, simd_float4x3 __y);
-static simd_float2x3 SIMD_CFUNC simd_mul(simd_float3x3 __x, simd_float2x3 __y);
-static simd_float3x3 SIMD_CFUNC simd_mul(simd_float3x3 __x, simd_float3x3 __y);
-static simd_float4x3 SIMD_CFUNC simd_mul(simd_float3x3 __x, simd_float4x3 __y);
-static simd_float2x4 SIMD_CFUNC simd_mul(simd_float3x4 __x, simd_float2x3 __y);
-static simd_float3x4 SIMD_CFUNC simd_mul(simd_float3x4 __x, simd_float3x3 __y);
-static simd_float4x4 SIMD_CFUNC simd_mul(simd_float3x4 __x, simd_float4x3 __y);
-static simd_double2x2 SIMD_CFUNC simd_mul(simd_double3x2 __x, simd_double2x3 __y);
-static simd_double3x2 SIMD_CFUNC simd_mul(simd_double3x2 __x, simd_double3x3 __y);
-static simd_double4x2 SIMD_CFUNC simd_mul(simd_double3x2 __x, simd_double4x3 __y);
-static simd_double2x3 SIMD_CFUNC simd_mul(simd_double3x3 __x, simd_double2x3 __y);
-static simd_double3x3 SIMD_CFUNC simd_mul(simd_double3x3 __x, simd_double3x3 __y);
-static simd_double4x3 SIMD_CFUNC simd_mul(simd_double3x3 __x, simd_double4x3 __y);
-static simd_double2x4 SIMD_CFUNC simd_mul(simd_double3x4 __x, simd_double2x3 __y);
-static simd_double3x4 SIMD_CFUNC simd_mul(simd_double3x4 __x, simd_double3x3 __y);
-static simd_double4x4 SIMD_CFUNC simd_mul(simd_double3x4 __x, simd_double4x3 __y);
-static simd_float2x2 SIMD_CFUNC simd_mul(simd_float4x2 __x, simd_float2x4 __y);
-static simd_float3x2 SIMD_CFUNC simd_mul(simd_float4x2 __x, simd_float3x4 __y);
-static simd_float4x2 SIMD_CFUNC simd_mul(simd_float4x2 __x, simd_float4x4 __y);
-static simd_float2x3 SIMD_CFUNC simd_mul(simd_float4x3 __x, simd_float2x4 __y);
-static simd_float3x3 SIMD_CFUNC simd_mul(simd_float4x3 __x, simd_float3x4 __y);
-static simd_float4x3 SIMD_CFUNC simd_mul(simd_float4x3 __x, simd_float4x4 __y);
-static simd_float2x4 SIMD_CFUNC simd_mul(simd_float4x4 __x, simd_float2x4 __y);
-static simd_float3x4 SIMD_CFUNC simd_mul(simd_float4x4 __x, simd_float3x4 __y);
-static simd_float4x4 SIMD_CFUNC simd_mul(simd_float4x4 __x, simd_float4x4 __y);
-static simd_double2x2 SIMD_CFUNC simd_mul(simd_double4x2 __x, simd_double2x4 __y);
-static simd_double3x2 SIMD_CFUNC simd_mul(simd_double4x2 __x, simd_double3x4 __y);
-static simd_double4x2 SIMD_CFUNC simd_mul(simd_double4x2 __x, simd_double4x4 __y);
-static simd_double2x3 SIMD_CFUNC simd_mul(simd_double4x3 __x, simd_double2x4 __y);
-static simd_double3x3 SIMD_CFUNC simd_mul(simd_double4x3 __x, simd_double3x4 __y);
-static simd_double4x3 SIMD_CFUNC simd_mul(simd_double4x3 __x, simd_double4x4 __y);
-static simd_double2x4 SIMD_CFUNC simd_mul(simd_double4x4 __x, simd_double2x4 __y);
-static simd_double3x4 SIMD_CFUNC simd_mul(simd_double4x4 __x, simd_double3x4 __y);
-static simd_double4x4 SIMD_CFUNC simd_mul(simd_double4x4 __x, simd_double4x4 __y);
-    
-static simd_bool SIMD_CFUNC simd_equal(simd_float2x2 __x, simd_float2x2 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_float2x3 __x, simd_float2x3 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_float2x4 __x, simd_float2x4 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_float3x2 __x, simd_float3x2 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_float3x3 __x, simd_float3x3 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_float3x4 __x, simd_float3x4 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_float4x2 __x, simd_float4x2 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_float4x3 __x, simd_float4x3 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_float4x4 __x, simd_float4x4 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double2x2 __x, simd_double2x2 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double2x3 __x, simd_double2x3 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double2x4 __x, simd_double2x4 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double3x2 __x, simd_double3x2 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double3x3 __x, simd_double3x3 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double3x4 __x, simd_double3x4 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double4x2 __x, simd_double4x2 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double4x3 __x, simd_double4x3 __y);
-static simd_bool SIMD_CFUNC simd_equal(simd_double4x4 __x, simd_double4x4 __y);
-#define matrix_equal simd_equal
-      
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float2x2 __x, simd_float2x2 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float2x3 __x, simd_float2x3 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float2x4 __x, simd_float2x4 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float3x2 __x, simd_float3x2 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float3x3 __x, simd_float3x3 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float3x4 __x, simd_float3x4 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float4x2 __x, simd_float4x2 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float4x3 __x, simd_float4x3 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float4x4 __x, simd_float4x4 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double2x2 __x, simd_double2x2 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double2x3 __x, simd_double2x3 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double2x4 __x, simd_double2x4 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double3x2 __x, simd_double3x2 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double3x3 __x, simd_double3x3 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double3x4 __x, simd_double3x4 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double4x2 __x, simd_double4x2 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double4x3 __x, simd_double4x3 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double4x4 __x, simd_double4x4 __y, double __tol);
-#define matrix_almost_equal_elements simd_almost_equal_elements
-      
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float2x2 __x, simd_float2x2 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float2x3 __x, simd_float2x3 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float2x4 __x, simd_float2x4 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float3x2 __x, simd_float3x2 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float3x3 __x, simd_float3x3 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float3x4 __x, simd_float3x4 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float4x2 __x, simd_float4x2 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float4x3 __x, simd_float4x3 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float4x4 __x, simd_float4x4 __y, float __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double2x2 __x, simd_double2x2 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double2x3 __x, simd_double2x3 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double2x4 __x, simd_double2x4 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double3x2 __x, simd_double3x2 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double3x3 __x, simd_double3x3 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double3x4 __x, simd_double3x4 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double4x2 __x, simd_double4x2 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double4x3 __x, simd_double4x3 __y, double __tol);
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double4x4 __x, simd_double4x4 __y, double __tol);
-#define matrix_almost_equal_elements_relative simd_almost_equal_elements_relative
-
-#ifdef __cplusplus
-} /* extern "C" */
-
-namespace simd {
-  static SIMD_CPPFUNC float2x2 operator+(const float2x2 x, const float2x2 y) { return float2x2(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC float2x3 operator+(const float2x3 x, const float2x3 y) { return float2x3(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC float2x4 operator+(const float2x4 x, const float2x4 y) { return float2x4(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC float3x2 operator+(const float3x2 x, const float3x2 y) { return float3x2(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC float3x3 operator+(const float3x3 x, const float3x3 y) { return float3x3(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC float3x4 operator+(const float3x4 x, const float3x4 y) { return float3x4(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC float4x2 operator+(const float4x2 x, const float4x2 y) { return float4x2(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC float4x3 operator+(const float4x3 x, const float4x3 y) { return float4x3(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC float4x4 operator+(const float4x4 x, const float4x4 y) { return float4x4(::simd_linear_combination(1, x, 1, y)); }
-  
-  static SIMD_CPPFUNC float2x2 operator-(const float2x2 x, const float2x2 y) { return float2x2(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC float2x3 operator-(const float2x3 x, const float2x3 y) { return float2x3(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC float2x4 operator-(const float2x4 x, const float2x4 y) { return float2x4(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC float3x2 operator-(const float3x2 x, const float3x2 y) { return float3x2(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC float3x3 operator-(const float3x3 x, const float3x3 y) { return float3x3(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC float3x4 operator-(const float3x4 x, const float3x4 y) { return float3x4(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC float4x2 operator-(const float4x2 x, const float4x2 y) { return float4x2(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC float4x3 operator-(const float4x3 x, const float4x3 y) { return float4x3(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC float4x4 operator-(const float4x4 x, const float4x4 y) { return float4x4(::simd_linear_combination(1, x, -1, y)); }
-  
-  static SIMD_CPPFUNC float2x2& operator+=(float2x2& x, const float2x2 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC float2x3& operator+=(float2x3& x, const float2x3 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC float2x4& operator+=(float2x4& x, const float2x4 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC float3x2& operator+=(float3x2& x, const float3x2 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC float3x3& operator+=(float3x3& x, const float3x3 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC float3x4& operator+=(float3x4& x, const float3x4 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC float4x2& operator+=(float4x2& x, const float4x2 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC float4x3& operator+=(float4x3& x, const float4x3 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC float4x4& operator+=(float4x4& x, const float4x4 y) { x = x + y; return x; }
-  
-  static SIMD_CPPFUNC float2x2& operator-=(float2x2& x, const float2x2 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC float2x3& operator-=(float2x3& x, const float2x3 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC float2x4& operator-=(float2x4& x, const float2x4 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC float3x2& operator-=(float3x2& x, const float3x2 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC float3x3& operator-=(float3x3& x, const float3x3 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC float3x4& operator-=(float3x4& x, const float3x4 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC float4x2& operator-=(float4x2& x, const float4x2 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC float4x3& operator-=(float4x3& x, const float4x3 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC float4x4& operator-=(float4x4& x, const float4x4 y) { x = x - y; return x; }
-  
-  static SIMD_CPPFUNC float2x2 transpose(const float2x2 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC float2x3 transpose(const float3x2 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC float2x4 transpose(const float4x2 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC float3x2 transpose(const float2x3 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC float3x3 transpose(const float3x3 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC float3x4 transpose(const float4x3 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC float4x2 transpose(const float2x4 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC float4x3 transpose(const float3x4 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC float4x4 transpose(const float4x4 x) { return ::simd_transpose(x); }
-  
-  static SIMD_CPPFUNC float determinant(const float2x2 x) { return ::simd_determinant(x); }
-  static SIMD_CPPFUNC float determinant(const float3x3 x) { return ::simd_determinant(x); }
-  static SIMD_CPPFUNC float determinant(const float4x4 x) { return ::simd_determinant(x); }
-  
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wgcc-compat"
-  static SIMD_CPPFUNC float2x2 inverse(const float2x2 x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0)) { return ::simd_inverse(x); }
-  static SIMD_CPPFUNC float3x3 inverse(const float3x3 x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0)) { return ::simd_inverse(x); }
-  static SIMD_CPPFUNC float4x4 inverse(const float4x4 x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0)) { return ::simd_inverse(x); }
-#pragma clang diagnostic pop
-  
-  static SIMD_CPPFUNC float2x2 operator*(const float a, const float2x2 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float2x3 operator*(const float a, const float2x3 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float2x4 operator*(const float a, const float2x4 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float3x2 operator*(const float a, const float3x2 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float3x3 operator*(const float a, const float3x3 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float3x4 operator*(const float a, const float3x4 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float4x2 operator*(const float a, const float4x2 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float4x3 operator*(const float a, const float4x3 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float4x4 operator*(const float a, const float4x4 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float2x2 operator*(const float2x2 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float2x3 operator*(const float2x3 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float2x4 operator*(const float2x4 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float3x2 operator*(const float3x2 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float3x3 operator*(const float3x3 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float3x4 operator*(const float3x4 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float4x2 operator*(const float4x2 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float4x3 operator*(const float4x3 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float4x4 operator*(const float4x4 x, const float a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC float2x2& operator*=(float2x2& x, const float a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC float2x3& operator*=(float2x3& x, const float a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC float2x4& operator*=(float2x4& x, const float a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC float3x2& operator*=(float3x2& x, const float a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC float3x3& operator*=(float3x3& x, const float a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC float3x4& operator*=(float3x4& x, const float a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC float4x2& operator*=(float4x2& x, const float a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC float4x3& operator*=(float4x3& x, const float a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC float4x4& operator*=(float4x4& x, const float a) { x = ::simd_mul(a, x); return x; }
-  
-  static SIMD_CPPFUNC float2 operator*(const float2 x, const float2x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3 operator*(const float2 x, const float3x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4 operator*(const float2 x, const float4x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2 operator*(const float3 x, const float2x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3 operator*(const float3 x, const float3x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4 operator*(const float3 x, const float4x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2 operator*(const float4 x, const float2x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3 operator*(const float4 x, const float3x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4 operator*(const float4 x, const float4x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2 operator*(const float2x2 x, const float2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2 operator*(const float3x2 x, const float3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2 operator*(const float4x2 x, const float4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3 operator*(const float2x3 x, const float2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3 operator*(const float3x3 x, const float3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3 operator*(const float4x3 x, const float4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4 operator*(const float2x4 x, const float2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4 operator*(const float3x4 x, const float3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4 operator*(const float4x4 x, const float4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2& operator*=(float2& x, const float2x2 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float3& operator*=(float3& x, const float3x3 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float4& operator*=(float4& x, const float4x4 y) { x = ::simd_mul(x, y); return x; }
-  
-  static SIMD_CPPFUNC float2x2 operator*(const float2x2 x, const float2x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x2 operator*(const float2x2 x, const float3x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x2 operator*(const float2x2 x, const float4x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x3 operator*(const float2x3 x, const float2x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x3 operator*(const float2x3 x, const float3x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x3 operator*(const float2x3 x, const float4x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x4 operator*(const float2x4 x, const float2x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x4 operator*(const float2x4 x, const float3x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x4 operator*(const float2x4 x, const float4x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x2 operator*(const float3x2 x, const float2x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x2 operator*(const float3x2 x, const float3x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x2 operator*(const float3x2 x, const float4x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x3 operator*(const float3x3 x, const float2x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x3 operator*(const float3x3 x, const float3x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x3 operator*(const float3x3 x, const float4x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x4 operator*(const float3x4 x, const float2x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x4 operator*(const float3x4 x, const float3x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x4 operator*(const float3x4 x, const float4x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x2 operator*(const float4x2 x, const float2x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x2 operator*(const float4x2 x, const float3x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x2 operator*(const float4x2 x, const float4x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x3 operator*(const float4x3 x, const float2x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x3 operator*(const float4x3 x, const float3x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x3 operator*(const float4x3 x, const float4x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x4 operator*(const float4x4 x, const float2x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float3x4 operator*(const float4x4 x, const float3x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float4x4 operator*(const float4x4 x, const float4x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC float2x2& operator*=(float2x2& x, const float2x2 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float2x3& operator*=(float2x3& x, const float2x2 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float2x4& operator*=(float2x4& x, const float2x2 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float3x2& operator*=(float3x2& x, const float3x3 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float3x3& operator*=(float3x3& x, const float3x3 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float3x4& operator*=(float3x4& x, const float3x3 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float4x2& operator*=(float4x2& x, const float4x4 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float4x3& operator*=(float4x3& x, const float4x4 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC float4x4& operator*=(float4x4& x, const float4x4 y) { x = ::simd_mul(x, y); return x; }
-  
-  static SIMD_CPPFUNC bool operator==(const float2x2& x, const float2x2& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const float2x3& x, const float2x3& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const float2x4& x, const float2x4& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const float3x2& x, const float3x2& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const float3x3& x, const float3x3& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const float3x4& x, const float3x4& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const float4x2& x, const float4x2& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const float4x3& x, const float4x3& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const float4x4& x, const float4x4& y) { return ::simd_equal(x, y); }
-  
-  static SIMD_CPPFUNC bool operator!=(const float2x2& x, const float2x2& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const float2x3& x, const float2x3& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const float2x4& x, const float2x4& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const float3x2& x, const float3x2& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const float3x3& x, const float3x3& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const float3x4& x, const float3x4& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const float4x2& x, const float4x2& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const float4x3& x, const float4x3& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const float4x4& x, const float4x4& y) { return !(x == y); }
-  
-  static SIMD_CPPFUNC bool almost_equal_elements(const float2x2 x, const float2x2 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const float2x3 x, const float2x3 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const float2x4 x, const float2x4 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const float3x2 x, const float3x2 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const float3x3 x, const float3x3 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const float3x4 x, const float3x4 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const float4x2 x, const float4x2 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const float4x3 x, const float4x3 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const float4x4 x, const float4x4 y, const float tol) { return ::simd_almost_equal_elements(x, y, tol); }
-    
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float2x2 x, const float2x2 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float2x3 x, const float2x3 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float2x4 x, const float2x4 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float3x2 x, const float3x2 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float3x3 x, const float3x3 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float3x4 x, const float3x4 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float4x2 x, const float4x2 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float4x3 x, const float4x3 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const float4x4 x, const float4x4 y, const float tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  
-  static SIMD_CPPFUNC double2x2 operator+(const double2x2 x, const double2x2 y) { return double2x2(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC double2x3 operator+(const double2x3 x, const double2x3 y) { return double2x3(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC double2x4 operator+(const double2x4 x, const double2x4 y) { return double2x4(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC double3x2 operator+(const double3x2 x, const double3x2 y) { return double3x2(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC double3x3 operator+(const double3x3 x, const double3x3 y) { return double3x3(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC double3x4 operator+(const double3x4 x, const double3x4 y) { return double3x4(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC double4x2 operator+(const double4x2 x, const double4x2 y) { return double4x2(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC double4x3 operator+(const double4x3 x, const double4x3 y) { return double4x3(::simd_linear_combination(1, x, 1, y)); }
-  static SIMD_CPPFUNC double4x4 operator+(const double4x4 x, const double4x4 y) { return double4x4(::simd_linear_combination(1, x, 1, y)); }
-  
-  static SIMD_CPPFUNC double2x2 operator-(const double2x2 x, const double2x2 y) { return double2x2(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC double2x3 operator-(const double2x3 x, const double2x3 y) { return double2x3(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC double2x4 operator-(const double2x4 x, const double2x4 y) { return double2x4(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC double3x2 operator-(const double3x2 x, const double3x2 y) { return double3x2(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC double3x3 operator-(const double3x3 x, const double3x3 y) { return double3x3(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC double3x4 operator-(const double3x4 x, const double3x4 y) { return double3x4(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC double4x2 operator-(const double4x2 x, const double4x2 y) { return double4x2(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC double4x3 operator-(const double4x3 x, const double4x3 y) { return double4x3(::simd_linear_combination(1, x, -1, y)); }
-  static SIMD_CPPFUNC double4x4 operator-(const double4x4 x, const double4x4 y) { return double4x4(::simd_linear_combination(1, x, -1, y)); }
-  
-  static SIMD_CPPFUNC double2x2& operator+=(double2x2& x, const double2x2 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC double2x3& operator+=(double2x3& x, const double2x3 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC double2x4& operator+=(double2x4& x, const double2x4 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC double3x2& operator+=(double3x2& x, const double3x2 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC double3x3& operator+=(double3x3& x, const double3x3 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC double3x4& operator+=(double3x4& x, const double3x4 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC double4x2& operator+=(double4x2& x, const double4x2 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC double4x3& operator+=(double4x3& x, const double4x3 y) { x = x + y; return x; }
-  static SIMD_CPPFUNC double4x4& operator+=(double4x4& x, const double4x4 y) { x = x + y; return x; }
-  
-  static SIMD_CPPFUNC double2x2& operator-=(double2x2& x, const double2x2 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC double2x3& operator-=(double2x3& x, const double2x3 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC double2x4& operator-=(double2x4& x, const double2x4 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC double3x2& operator-=(double3x2& x, const double3x2 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC double3x3& operator-=(double3x3& x, const double3x3 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC double3x4& operator-=(double3x4& x, const double3x4 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC double4x2& operator-=(double4x2& x, const double4x2 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC double4x3& operator-=(double4x3& x, const double4x3 y) { x = x - y; return x; }
-  static SIMD_CPPFUNC double4x4& operator-=(double4x4& x, const double4x4 y) { x = x - y; return x; }
-  
-  static SIMD_CPPFUNC double2x2 transpose(const double2x2 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC double2x3 transpose(const double3x2 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC double2x4 transpose(const double4x2 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC double3x2 transpose(const double2x3 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC double3x3 transpose(const double3x3 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC double3x4 transpose(const double4x3 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC double4x2 transpose(const double2x4 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC double4x3 transpose(const double3x4 x) { return ::simd_transpose(x); }
-  static SIMD_CPPFUNC double4x4 transpose(const double4x4 x) { return ::simd_transpose(x); }
-  
-  static SIMD_CPPFUNC double determinant(const double2x2 x) { return ::simd_determinant(x); }
-  static SIMD_CPPFUNC double determinant(const double3x3 x) { return ::simd_determinant(x); }
-  static SIMD_CPPFUNC double determinant(const double4x4 x) { return ::simd_determinant(x); }
-  
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wgcc-compat"
-  static SIMD_CPPFUNC double2x2 inverse(const double2x2 x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0)) { return ::simd_inverse(x); }
-  static SIMD_CPPFUNC double3x3 inverse(const double3x3 x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0)) { return ::simd_inverse(x); }
-  static SIMD_CPPFUNC double4x4 inverse(const double4x4 x) __API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0)) { return ::simd_inverse(x); }
-#pragma clang diagnostic pop
-  
-  static SIMD_CPPFUNC double2x2 operator*(const double a, const double2x2 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double2x3 operator*(const double a, const double2x3 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double2x4 operator*(const double a, const double2x4 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double3x2 operator*(const double a, const double3x2 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double3x3 operator*(const double a, const double3x3 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double3x4 operator*(const double a, const double3x4 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double4x2 operator*(const double a, const double4x2 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double4x3 operator*(const double a, const double4x3 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double4x4 operator*(const double a, const double4x4 x) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double2x2 operator*(const double2x2 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double2x3 operator*(const double2x3 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double2x4 operator*(const double2x4 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double3x2 operator*(const double3x2 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double3x3 operator*(const double3x3 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double3x4 operator*(const double3x4 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double4x2 operator*(const double4x2 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double4x3 operator*(const double4x3 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double4x4 operator*(const double4x4 x, const double a) { return ::simd_mul(a, x); }
-  static SIMD_CPPFUNC double2x2& operator*=(double2x2& x, const double a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC double2x3& operator*=(double2x3& x, const double a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC double2x4& operator*=(double2x4& x, const double a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC double3x2& operator*=(double3x2& x, const double a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC double3x3& operator*=(double3x3& x, const double a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC double3x4& operator*=(double3x4& x, const double a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC double4x2& operator*=(double4x2& x, const double a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC double4x3& operator*=(double4x3& x, const double a) { x = ::simd_mul(a, x); return x; }
-  static SIMD_CPPFUNC double4x4& operator*=(double4x4& x, const double a) { x = ::simd_mul(a, x); return x; }
-  
-  static SIMD_CPPFUNC double2 operator*(const double2 x, const double2x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3 operator*(const double2 x, const double3x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4 operator*(const double2 x, const double4x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2 operator*(const double3 x, const double2x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3 operator*(const double3 x, const double3x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4 operator*(const double3 x, const double4x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2 operator*(const double4 x, const double2x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3 operator*(const double4 x, const double3x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4 operator*(const double4 x, const double4x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2 operator*(const double2x2 x, const double2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2 operator*(const double3x2 x, const double3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2 operator*(const double4x2 x, const double4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3 operator*(const double2x3 x, const double2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3 operator*(const double3x3 x, const double3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3 operator*(const double4x3 x, const double4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4 operator*(const double2x4 x, const double2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4 operator*(const double3x4 x, const double3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4 operator*(const double4x4 x, const double4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2& operator*=(double2& x, const double2x2 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double3& operator*=(double3& x, const double3x3 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double4& operator*=(double4& x, const double4x4 y) { x = ::simd_mul(x, y); return x; }
-  
-  static SIMD_CPPFUNC double2x2 operator*(const double2x2 x, const double2x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x2 operator*(const double2x2 x, const double3x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x2 operator*(const double2x2 x, const double4x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x3 operator*(const double2x3 x, const double2x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x3 operator*(const double2x3 x, const double3x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x3 operator*(const double2x3 x, const double4x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x4 operator*(const double2x4 x, const double2x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x4 operator*(const double2x4 x, const double3x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x4 operator*(const double2x4 x, const double4x2 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x2 operator*(const double3x2 x, const double2x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x2 operator*(const double3x2 x, const double3x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x2 operator*(const double3x2 x, const double4x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x3 operator*(const double3x3 x, const double2x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x3 operator*(const double3x3 x, const double3x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x3 operator*(const double3x3 x, const double4x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x4 operator*(const double3x4 x, const double2x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x4 operator*(const double3x4 x, const double3x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x4 operator*(const double3x4 x, const double4x3 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x2 operator*(const double4x2 x, const double2x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x2 operator*(const double4x2 x, const double3x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x2 operator*(const double4x2 x, const double4x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x3 operator*(const double4x3 x, const double2x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x3 operator*(const double4x3 x, const double3x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x3 operator*(const double4x3 x, const double4x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x4 operator*(const double4x4 x, const double2x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double3x4 operator*(const double4x4 x, const double3x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double4x4 operator*(const double4x4 x, const double4x4 y) { return ::simd_mul(x, y); }
-  static SIMD_CPPFUNC double2x2& operator*=(double2x2& x, const double2x2 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double2x3& operator*=(double2x3& x, const double2x2 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double2x4& operator*=(double2x4& x, const double2x2 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double3x2& operator*=(double3x2& x, const double3x3 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double3x3& operator*=(double3x3& x, const double3x3 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double3x4& operator*=(double3x4& x, const double3x3 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double4x2& operator*=(double4x2& x, const double4x4 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double4x3& operator*=(double4x3& x, const double4x4 y) { x = ::simd_mul(x, y); return x; }
-  static SIMD_CPPFUNC double4x4& operator*=(double4x4& x, const double4x4 y) { x = ::simd_mul(x, y); return x; }
-  
-  static SIMD_CPPFUNC bool operator==(const double2x2& x, const double2x2& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const double2x3& x, const double2x3& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const double2x4& x, const double2x4& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const double3x2& x, const double3x2& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const double3x3& x, const double3x3& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const double3x4& x, const double3x4& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const double4x2& x, const double4x2& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const double4x3& x, const double4x3& y) { return ::simd_equal(x, y); }
-  static SIMD_CPPFUNC bool operator==(const double4x4& x, const double4x4& y) { return ::simd_equal(x, y); }
-  
-  static SIMD_CPPFUNC bool operator!=(const double2x2& x, const double2x2& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const double2x3& x, const double2x3& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const double2x4& x, const double2x4& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const double3x2& x, const double3x2& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const double3x3& x, const double3x3& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const double3x4& x, const double3x4& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const double4x2& x, const double4x2& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const double4x3& x, const double4x3& y) { return !(x == y); }
-  static SIMD_CPPFUNC bool operator!=(const double4x4& x, const double4x4& y) { return !(x == y); }
-  
-  static SIMD_CPPFUNC bool almost_equal_elements(const double2x2 x, const double2x2 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const double2x3 x, const double2x3 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const double2x4 x, const double2x4 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const double3x2 x, const double3x2 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const double3x3 x, const double3x3 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const double3x4 x, const double3x4 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const double4x2 x, const double4x2 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const double4x3 x, const double4x3 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements(const double4x4 x, const double4x4 y, const double tol) { return ::simd_almost_equal_elements(x, y, tol); }
-  
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double2x2 x, const double2x2 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double2x3 x, const double2x3 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double2x4 x, const double2x4 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double3x2 x, const double3x2 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double3x3 x, const double3x3 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double3x4 x, const double3x4 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double4x2 x, const double4x2 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double4x3 x, const double4x3 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-  static SIMD_CPPFUNC bool almost_equal_elements_relative(const double4x4 x, const double4x4 y, const double tol) { return ::simd_almost_equal_elements_relative(x, y, tol); }
-}
-
-extern "C" {
-#endif /* __cplusplus */
-
-#pragma mark - Implementation
-
-static  simd_float2x2 SIMD_CFUNC simd_diagonal_matrix(simd_float2  __x) {  simd_float2x2 __r = { .columns[0] = {__x.x,0}, .columns[1] = {0,__x.y} }; return __r; }
-static simd_double2x2 SIMD_CFUNC simd_diagonal_matrix(simd_double2 __x) { simd_double2x2 __r = { .columns[0] = {__x.x,0}, .columns[1] = {0,__x.y} }; return __r; }
-static  simd_float3x3 SIMD_CFUNC simd_diagonal_matrix(simd_float3  __x) {  simd_float3x3 __r = { .columns[0] = {__x.x,0,0}, .columns[1] = {0,__x.y,0}, .columns[2] = {0,0,__x.z} }; return __r; }
-static simd_double3x3 SIMD_CFUNC simd_diagonal_matrix(simd_double3 __x) { simd_double3x3 __r = { .columns[0] = {__x.x,0,0}, .columns[1] = {0,__x.y,0}, .columns[2] = {0,0,__x.z} }; return __r; }
-static  simd_float4x4 SIMD_CFUNC simd_diagonal_matrix(simd_float4  __x) {  simd_float4x4 __r = { .columns[0] = {__x.x,0,0,0}, .columns[1] = {0,__x.y,0,0}, .columns[2] = {0,0,__x.z,0}, .columns[3] = {0,0,0,__x.w} }; return __r; }
-static simd_double4x4 SIMD_CFUNC simd_diagonal_matrix(simd_double4 __x) { simd_double4x4 __r = { .columns[0] = {__x.x,0,0,0}, .columns[1] = {0,__x.y,0,0}, .columns[2] = {0,0,__x.z,0}, .columns[3] = {0,0,0,__x.w} }; return __r; }
-
-static  simd_float2x2 SIMD_CFUNC simd_matrix(simd_float2  col0, simd_float2  col1) {  simd_float2x2 __r = { .columns[0] = col0, .columns[1] = col1 }; return __r; }
-static  simd_float2x3 SIMD_CFUNC simd_matrix(simd_float3  col0, simd_float3  col1) {  simd_float2x3 __r = { .columns[0] = col0, .columns[1] = col1 }; return __r; }
-static  simd_float2x4 SIMD_CFUNC simd_matrix(simd_float4  col0, simd_float4  col1) {  simd_float2x4 __r = { .columns[0] = col0, .columns[1] = col1 }; return __r; }
-static simd_double2x2 SIMD_CFUNC simd_matrix(simd_double2 col0, simd_double2 col1) { simd_double2x2 __r = { .columns[0] = col0, .columns[1] = col1 }; return __r; }
-static simd_double2x3 SIMD_CFUNC simd_matrix(simd_double3 col0, simd_double3 col1) { simd_double2x3 __r = { .columns[0] = col0, .columns[1] = col1 }; return __r; }
-static simd_double2x4 SIMD_CFUNC simd_matrix(simd_double4 col0, simd_double4 col1) { simd_double2x4 __r = { .columns[0] = col0, .columns[1] = col1 }; return __r; }
-static  simd_float3x2 SIMD_CFUNC simd_matrix(simd_float2  col0, simd_float2  col1, simd_float2  col2) {  simd_float3x2 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2 }; return __r; }
-static  simd_float3x3 SIMD_CFUNC simd_matrix(simd_float3  col0, simd_float3  col1, simd_float3  col2) {  simd_float3x3 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2 }; return __r; }
-static  simd_float3x4 SIMD_CFUNC simd_matrix(simd_float4  col0, simd_float4  col1, simd_float4  col2) {  simd_float3x4 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2 }; return __r; }
-static simd_double3x2 SIMD_CFUNC simd_matrix(simd_double2 col0, simd_double2 col1, simd_double2 col2) { simd_double3x2 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2 }; return __r; }
-static simd_double3x3 SIMD_CFUNC simd_matrix(simd_double3 col0, simd_double3 col1, simd_double3 col2) { simd_double3x3 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2 }; return __r; }
-static simd_double3x4 SIMD_CFUNC simd_matrix(simd_double4 col0, simd_double4 col1, simd_double4 col2) { simd_double3x4 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2 }; return __r; }
-static  simd_float4x2 SIMD_CFUNC simd_matrix(simd_float2  col0, simd_float2  col1, simd_float2  col2, simd_float2  col3) {  simd_float4x2 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2, .columns[3] = col3 }; return __r; }
-static  simd_float4x3 SIMD_CFUNC simd_matrix(simd_float3  col0, simd_float3  col1, simd_float3  col2, simd_float3  col3) {  simd_float4x3 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2, .columns[3] = col3 }; return __r; }
-static  simd_float4x4 SIMD_CFUNC simd_matrix(simd_float4  col0, simd_float4  col1, simd_float4  col2, simd_float4  col3) {  simd_float4x4 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2, .columns[3] = col3 }; return __r; }
-static simd_double4x2 SIMD_CFUNC simd_matrix(simd_double2 col0, simd_double2 col1, simd_double2 col2, simd_double2 col3) { simd_double4x2 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2, .columns[3] = col3 }; return __r; }
-static simd_double4x3 SIMD_CFUNC simd_matrix(simd_double3 col0, simd_double3 col1, simd_double3 col2, simd_double3 col3) { simd_double4x3 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2, .columns[3] = col3 }; return __r; }
-static simd_double4x4 SIMD_CFUNC simd_matrix(simd_double4 col0, simd_double4 col1, simd_double4 col2, simd_double4 col3) { simd_double4x4 __r = { .columns[0] = col0, .columns[1] = col1, .columns[2] = col2, .columns[3] = col3 }; return __r; }
-
-static  simd_float2x2 SIMD_CFUNC simd_matrix_from_rows(simd_float2  row0, simd_float2  row1) { return simd_transpose(simd_matrix(row0, row1)); }
-static  simd_float3x2 SIMD_CFUNC simd_matrix_from_rows(simd_float3  row0, simd_float3  row1) { return simd_transpose(simd_matrix(row0, row1)); }
-static  simd_float4x2 SIMD_CFUNC simd_matrix_from_rows(simd_float4  row0, simd_float4  row1) { return simd_transpose(simd_matrix(row0, row1)); }
-static simd_double2x2 SIMD_CFUNC simd_matrix_from_rows(simd_double2 row0, simd_double2 row1) { return simd_transpose(simd_matrix(row0, row1)); }
-static simd_double3x2 SIMD_CFUNC simd_matrix_from_rows(simd_double3 row0, simd_double3 row1) { return simd_transpose(simd_matrix(row0, row1)); }
-static simd_double4x2 SIMD_CFUNC simd_matrix_from_rows(simd_double4 row0, simd_double4 row1) { return simd_transpose(simd_matrix(row0, row1)); }
-static  simd_float2x3 SIMD_CFUNC simd_matrix_from_rows(simd_float2  row0, simd_float2  row1, simd_float2  row2) { return simd_transpose(simd_matrix(row0, row1, row2)); }
-static  simd_float3x3 SIMD_CFUNC simd_matrix_from_rows(simd_float3  row0, simd_float3  row1, simd_float3  row2) { return simd_transpose(simd_matrix(row0, row1, row2)); }
-static  simd_float4x3 SIMD_CFUNC simd_matrix_from_rows(simd_float4  row0, simd_float4  row1, simd_float4  row2) { return simd_transpose(simd_matrix(row0, row1, row2)); }
-static simd_double2x3 SIMD_CFUNC simd_matrix_from_rows(simd_double2 row0, simd_double2 row1, simd_double2 row2) { return simd_transpose(simd_matrix(row0, row1, row2)); }
-static simd_double3x3 SIMD_CFUNC simd_matrix_from_rows(simd_double3 row0, simd_double3 row1, simd_double3 row2) { return simd_transpose(simd_matrix(row0, row1, row2)); }
-static simd_double4x3 SIMD_CFUNC simd_matrix_from_rows(simd_double4 row0, simd_double4 row1, simd_double4 row2) { return simd_transpose(simd_matrix(row0, row1, row2)); }
-static  simd_float2x4 SIMD_CFUNC simd_matrix_from_rows(simd_float2  row0, simd_float2  row1, simd_float2  row2, simd_float2  row3) { return simd_transpose(simd_matrix(row0, row1, row2, row3)); }
-static  simd_float3x4 SIMD_CFUNC simd_matrix_from_rows(simd_float3  row0, simd_float3  row1, simd_float3  row2, simd_float3  row3) { return simd_transpose(simd_matrix(row0, row1, row2, row3)); }
-static  simd_float4x4 SIMD_CFUNC simd_matrix_from_rows(simd_float4  row0, simd_float4  row1, simd_float4  row2, simd_float4  row3) { return simd_transpose(simd_matrix(row0, row1, row2, row3)); }
-static simd_double2x4 SIMD_CFUNC simd_matrix_from_rows(simd_double2 row0, simd_double2 row1, simd_double2 row2, simd_double2 row3) { return simd_transpose(simd_matrix(row0, row1, row2, row3)); }
-static simd_double3x4 SIMD_CFUNC simd_matrix_from_rows(simd_double3 row0, simd_double3 row1, simd_double3 row2, simd_double3 row3) { return simd_transpose(simd_matrix(row0, row1, row2, row3)); }
-static simd_double4x4 SIMD_CFUNC simd_matrix_from_rows(simd_double4 row0, simd_double4 row1, simd_double4 row2, simd_double4 row3) { return simd_transpose(simd_matrix(row0, row1, row2, row3)); }
-  
-static  simd_float3x3 SIMD_NOINLINE simd_matrix3x3(simd_quatf q) {
-  simd_float4x4 r = simd_matrix4x4(q);
-  return (simd_float3x3){ r.columns[0].xyz, r.columns[1].xyz, r.columns[2].xyz };
-}
-
-static  simd_float4x4 SIMD_NOINLINE simd_matrix4x4(simd_quatf q) {
-  simd_float4 v = q.vector;
-  simd_float4x4 r = {
-    .columns[0] = { 1 - 2*(v.y*v.y + v.z*v.z),
-                        2*(v.x*v.y + v.z*v.w),
-                        2*(v.x*v.z - v.y*v.w), 0 },
-    .columns[1] = {     2*(v.x*v.y - v.z*v.w),
-                    1 - 2*(v.z*v.z + v.x*v.x),
-                        2*(v.y*v.z + v.x*v.w), 0 },
-    .columns[2] = {     2*(v.z*v.x + v.y*v.w),
-                        2*(v.y*v.z - v.x*v.w),
-                    1 - 2*(v.y*v.y + v.x*v.x), 0 },
-    .columns[3] = { 0, 0, 0, 1 }
-  };
-  return r;
-}
-  
-static simd_double3x3 SIMD_NOINLINE simd_matrix3x3(simd_quatd q) {
-  simd_double4x4 r = simd_matrix4x4(q);
-  return (simd_double3x3){ r.columns[0].xyz, r.columns[1].xyz, r.columns[2].xyz };
-}
-
-static simd_double4x4 SIMD_NOINLINE simd_matrix4x4(simd_quatd q) {
-  simd_double4 v = q.vector;
-  simd_double4x4 r = {
-    .columns[0] = { 1 - 2*(v.y*v.y + v.z*v.z),
-                        2*(v.x*v.y + v.z*v.w),
-                        2*(v.x*v.z - v.y*v.w), 0 },
-    .columns[1] = {     2*(v.x*v.y - v.z*v.w),
-                    1 - 2*(v.z*v.z + v.x*v.x),
-                        2*(v.y*v.z + v.x*v.w), 0 },
-    .columns[2] = {     2*(v.z*v.x + v.y*v.w),
-                        2*(v.y*v.z - v.x*v.w),
-                    1 - 2*(v.y*v.y + v.x*v.x), 0 },
-    .columns[3] = { 0, 0, 0, 1 }
-  };
-  return r;
-}
-
-static  simd_float2x2 SIMD_CFUNC matrix_scale(float  __a,  simd_float2x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static  simd_float3x2 SIMD_CFUNC matrix_scale(float  __a,  simd_float3x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static  simd_float4x2 SIMD_CFUNC matrix_scale(float  __a,  simd_float4x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static  simd_float2x3 SIMD_CFUNC matrix_scale(float  __a,  simd_float2x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static  simd_float3x3 SIMD_CFUNC matrix_scale(float  __a,  simd_float3x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static  simd_float4x3 SIMD_CFUNC matrix_scale(float  __a,  simd_float4x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static  simd_float2x4 SIMD_CFUNC matrix_scale(float  __a,  simd_float2x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static  simd_float3x4 SIMD_CFUNC matrix_scale(float  __a,  simd_float3x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static  simd_float4x4 SIMD_CFUNC matrix_scale(float  __a,  simd_float4x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static simd_double2x2 SIMD_CFUNC matrix_scale(double __a, simd_double2x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static simd_double3x2 SIMD_CFUNC matrix_scale(double __a, simd_double3x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static simd_double4x2 SIMD_CFUNC matrix_scale(double __a, simd_double4x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static simd_double2x3 SIMD_CFUNC matrix_scale(double __a, simd_double2x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static simd_double3x3 SIMD_CFUNC matrix_scale(double __a, simd_double3x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static simd_double4x3 SIMD_CFUNC matrix_scale(double __a, simd_double4x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static simd_double2x4 SIMD_CFUNC matrix_scale(double __a, simd_double2x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static simd_double3x4 SIMD_CFUNC matrix_scale(double __a, simd_double3x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static simd_double4x4 SIMD_CFUNC matrix_scale(double __a, simd_double4x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-  
-static  simd_float2x2 SIMD_CFUNC simd_mul(float  __a,  simd_float2x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static  simd_float3x2 SIMD_CFUNC simd_mul(float  __a,  simd_float3x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static  simd_float4x2 SIMD_CFUNC simd_mul(float  __a,  simd_float4x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static  simd_float2x3 SIMD_CFUNC simd_mul(float  __a,  simd_float2x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static  simd_float3x3 SIMD_CFUNC simd_mul(float  __a,  simd_float3x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static  simd_float4x3 SIMD_CFUNC simd_mul(float  __a,  simd_float4x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static  simd_float2x4 SIMD_CFUNC simd_mul(float  __a,  simd_float2x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static  simd_float3x4 SIMD_CFUNC simd_mul(float  __a,  simd_float3x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static  simd_float4x4 SIMD_CFUNC simd_mul(float  __a,  simd_float4x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static simd_double2x2 SIMD_CFUNC simd_mul(double __a, simd_double2x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static simd_double3x2 SIMD_CFUNC simd_mul(double __a, simd_double3x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static simd_double4x2 SIMD_CFUNC simd_mul(double __a, simd_double4x2 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static simd_double2x3 SIMD_CFUNC simd_mul(double __a, simd_double2x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static simd_double3x3 SIMD_CFUNC simd_mul(double __a, simd_double3x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static simd_double4x3 SIMD_CFUNC simd_mul(double __a, simd_double4x3 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-static simd_double2x4 SIMD_CFUNC simd_mul(double __a, simd_double2x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; return __x; }
-static simd_double3x4 SIMD_CFUNC simd_mul(double __a, simd_double3x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; return __x; }
-static simd_double4x4 SIMD_CFUNC simd_mul(double __a, simd_double4x4 __x) { __x.columns[0] *= __a; __x.columns[1] *= __a; __x.columns[2] *= __a; __x.columns[3] *= __a; return __x; }
-
-static  simd_float2x2 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float2x2 __x, float  __b,  simd_float2x2 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    return __x;
-}
-static  simd_float3x2 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float3x2 __x, float  __b,  simd_float3x2 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    return __x;
-}
-static  simd_float4x2 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float4x2 __x, float  __b,  simd_float4x2 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    __x.columns[3] = __a*__x.columns[3] + __b*__y.columns[3];
-    return __x;
-}
-static  simd_float2x3 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float2x3 __x, float  __b,  simd_float2x3 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    return __x;
-}
-static  simd_float3x3 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float3x3 __x, float  __b,  simd_float3x3 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    return __x;
-}
-static  simd_float4x3 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float4x3 __x, float  __b,  simd_float4x3 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    __x.columns[3] = __a*__x.columns[3] + __b*__y.columns[3];
-    return __x;
-}
-static  simd_float2x4 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float2x4 __x, float  __b,  simd_float2x4 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    return __x;
-}
-static  simd_float3x4 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float3x4 __x, float  __b,  simd_float3x4 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    return __x;
-}
-static  simd_float4x4 SIMD_CFUNC simd_linear_combination(float  __a,  simd_float4x4 __x, float  __b,  simd_float4x4 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    __x.columns[3] = __a*__x.columns[3] + __b*__y.columns[3];
-    return __x;
-}
-static simd_double2x2 SIMD_CFUNC simd_linear_combination(double __a, simd_double2x2 __x, double __b, simd_double2x2 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    return __x;
-}
-static simd_double3x2 SIMD_CFUNC simd_linear_combination(double __a, simd_double3x2 __x, double __b, simd_double3x2 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    return __x;
-}
-static simd_double4x2 SIMD_CFUNC simd_linear_combination(double __a, simd_double4x2 __x, double __b, simd_double4x2 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    __x.columns[3] = __a*__x.columns[3] + __b*__y.columns[3];
-    return __x;
-}
-static simd_double2x3 SIMD_CFUNC simd_linear_combination(double __a, simd_double2x3 __x, double __b, simd_double2x3 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    return __x;
-}
-static simd_double3x3 SIMD_CFUNC simd_linear_combination(double __a, simd_double3x3 __x, double __b, simd_double3x3 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    return __x;
-}
-static simd_double4x3 SIMD_CFUNC simd_linear_combination(double __a, simd_double4x3 __x, double __b, simd_double4x3 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    __x.columns[3] = __a*__x.columns[3] + __b*__y.columns[3];
-    return __x;
-}
-static simd_double2x4 SIMD_CFUNC simd_linear_combination(double __a, simd_double2x4 __x, double __b, simd_double2x4 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    return __x;
-}
-static simd_double3x4 SIMD_CFUNC simd_linear_combination(double __a, simd_double3x4 __x, double __b, simd_double3x4 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    return __x;
-}
-static simd_double4x4 SIMD_CFUNC simd_linear_combination(double __a, simd_double4x4 __x, double __b, simd_double4x4 __y) {
-    __x.columns[0] = __a*__x.columns[0] + __b*__y.columns[0];
-    __x.columns[1] = __a*__x.columns[1] + __b*__y.columns[1];
-    __x.columns[2] = __a*__x.columns[2] + __b*__y.columns[2];
-    __x.columns[3] = __a*__x.columns[3] + __b*__y.columns[3];
-    return __x;
-}
-  
-static simd_float2x2 SIMD_CFUNC simd_add(simd_float2x2 __x, simd_float2x2 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_float3x2 SIMD_CFUNC simd_add(simd_float3x2 __x, simd_float3x2 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_float4x2 SIMD_CFUNC simd_add(simd_float4x2 __x, simd_float4x2 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_float2x3 SIMD_CFUNC simd_add(simd_float2x3 __x, simd_float2x3 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_float3x3 SIMD_CFUNC simd_add(simd_float3x3 __x, simd_float3x3 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_float4x3 SIMD_CFUNC simd_add(simd_float4x3 __x, simd_float4x3 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_float2x4 SIMD_CFUNC simd_add(simd_float2x4 __x, simd_float2x4 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_float3x4 SIMD_CFUNC simd_add(simd_float3x4 __x, simd_float3x4 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_float4x4 SIMD_CFUNC simd_add(simd_float4x4 __x, simd_float4x4 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double2x2 SIMD_CFUNC simd_add(simd_double2x2 __x, simd_double2x2 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double3x2 SIMD_CFUNC simd_add(simd_double3x2 __x, simd_double3x2 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double4x2 SIMD_CFUNC simd_add(simd_double4x2 __x, simd_double4x2 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double2x3 SIMD_CFUNC simd_add(simd_double2x3 __x, simd_double2x3 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double3x3 SIMD_CFUNC simd_add(simd_double3x3 __x, simd_double3x3 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double4x3 SIMD_CFUNC simd_add(simd_double4x3 __x, simd_double4x3 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double2x4 SIMD_CFUNC simd_add(simd_double2x4 __x, simd_double2x4 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double3x4 SIMD_CFUNC simd_add(simd_double3x4 __x, simd_double3x4 __y) { return simd_linear_combination(1, __x, 1, __y); }
-static simd_double4x4 SIMD_CFUNC simd_add(simd_double4x4 __x, simd_double4x4 __y) { return simd_linear_combination(1, __x, 1, __y); }
-      
-static simd_float2x2 SIMD_CFUNC simd_sub(simd_float2x2 __x, simd_float2x2 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_float3x2 SIMD_CFUNC simd_sub(simd_float3x2 __x, simd_float3x2 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_float4x2 SIMD_CFUNC simd_sub(simd_float4x2 __x, simd_float4x2 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_float2x3 SIMD_CFUNC simd_sub(simd_float2x3 __x, simd_float2x3 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_float3x3 SIMD_CFUNC simd_sub(simd_float3x3 __x, simd_float3x3 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_float4x3 SIMD_CFUNC simd_sub(simd_float4x3 __x, simd_float4x3 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_float2x4 SIMD_CFUNC simd_sub(simd_float2x4 __x, simd_float2x4 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_float3x4 SIMD_CFUNC simd_sub(simd_float3x4 __x, simd_float3x4 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_float4x4 SIMD_CFUNC simd_sub(simd_float4x4 __x, simd_float4x4 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double2x2 SIMD_CFUNC simd_sub(simd_double2x2 __x, simd_double2x2 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double3x2 SIMD_CFUNC simd_sub(simd_double3x2 __x, simd_double3x2 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double4x2 SIMD_CFUNC simd_sub(simd_double4x2 __x, simd_double4x2 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double2x3 SIMD_CFUNC simd_sub(simd_double2x3 __x, simd_double2x3 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double3x3 SIMD_CFUNC simd_sub(simd_double3x3 __x, simd_double3x3 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double4x3 SIMD_CFUNC simd_sub(simd_double4x3 __x, simd_double4x3 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double2x4 SIMD_CFUNC simd_sub(simd_double2x4 __x, simd_double2x4 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double3x4 SIMD_CFUNC simd_sub(simd_double3x4 __x, simd_double3x4 __y) { return simd_linear_combination(1, __x, -1, __y); }
-static simd_double4x4 SIMD_CFUNC simd_sub(simd_double4x4 __x, simd_double4x4 __y) { return simd_linear_combination(1, __x, -1, __y); }
-
-static simd_float2x2 SIMD_CFUNC simd_transpose(simd_float2x2 __x) {
-#if defined __SSE__
-    simd_float4 __x0, __x1;
-    __x0.xy = __x.columns[0];
-    __x1.xy = __x.columns[1];
-    simd_float4 __r01 = _mm_unpacklo_ps(__x0, __x1);
-    return simd_matrix(__r01.lo, __r01.hi);
-#else
-    return simd_matrix((simd_float2){__x.columns[0][0], __x.columns[1][0]},
-                               (simd_float2){__x.columns[0][1], __x.columns[1][1]});
-#endif
-}
-    
-static simd_float3x2 SIMD_CFUNC simd_transpose(simd_float2x3 __x) {
-#if defined __SSE__
-    simd_float4 __x0, __x1;
-    __x0.xyz = __x.columns[0];
-    __x1.xyz = __x.columns[1];
-    simd_float4 __r01 = _mm_unpacklo_ps(__x0, __x1);
-    simd_float4 __r2x = _mm_unpackhi_ps(__x0, __x1);
-    return simd_matrix(__r01.lo, __r01.hi, __r2x.lo);
-#else
-    return simd_matrix((simd_float2){__x.columns[0][0], __x.columns[1][0]},
-                               (simd_float2){__x.columns[0][1], __x.columns[1][1]},
-                               (simd_float2){__x.columns[0][2], __x.columns[1][2]});
-#endif
-}
-    
-static simd_float4x2 SIMD_CFUNC simd_transpose(simd_float2x4 __x) {
-#if defined __SSE__
-    simd_float4 __r01 = _mm_unpacklo_ps(__x.columns[0], __x.columns[1]);
-    simd_float4 __r23 = _mm_unpackhi_ps(__x.columns[0], __x.columns[1]);
-    return simd_matrix(__r01.lo, __r01.hi, __r23.lo, __r23.hi);
-#else
-    return simd_matrix((simd_float2){__x.columns[0][0], __x.columns[1][0]},
-                               (simd_float2){__x.columns[0][1], __x.columns[1][1]},
-                               (simd_float2){__x.columns[0][2], __x.columns[1][2]},
-                               (simd_float2){__x.columns[0][3], __x.columns[1][3]});
-#endif
-}
-    
-static simd_float2x3 SIMD_CFUNC simd_transpose(simd_float3x2 __x) {
-#if defined __SSE__
-    simd_float4 __x0, __x1, __x2;
-    __x0.xy = __x.columns[0];
-    __x1.xy = __x.columns[1];
-    __x2.xy = __x.columns[2];
-    simd_float4 __t = _mm_unpacklo_ps(__x0, __x1);
-    simd_float4 __r0 = _mm_shuffle_ps(__t,__x2,0xc4);
-    simd_float4 __r1 = _mm_shuffle_ps(__t,__x2,0xde);
-    return simd_matrix(__r0.xyz, __r1.xyz);
-#else
-    return simd_matrix((simd_float3){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0]},
-                               (simd_float3){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1]});
-#endif
-}
-    
-static simd_float3x3 SIMD_CFUNC simd_transpose(simd_float3x3 __x) {
-#if defined __SSE__
-    simd_float4 __x0, __x1, __x2;
-    __x0.xyz = __x.columns[0];
-    __x1.xyz = __x.columns[1];
-    __x2.xyz = __x.columns[2];
-    simd_float4 __t0 = _mm_unpacklo_ps(__x0, __x1);
-    simd_float4 __t1 = _mm_unpackhi_ps(__x0, __x1);
-    simd_float4 __r0 = __t0; __r0.hi = __x2.lo;
-    simd_float4 __r1 = _mm_shuffle_ps(__t0, __x2, 0xde);
-    simd_float4 __r2 = __x2; __r2.lo = __t1.lo;
-    return simd_matrix(__r0.xyz, __r1.xyz, __r2.xyz);
-#else
-    return simd_matrix((simd_float3){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0]},
-                               (simd_float3){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1]},
-                               (simd_float3){__x.columns[0][2], __x.columns[1][2], __x.columns[2][2]});
-#endif
-}
-    
-static simd_float4x3 SIMD_CFUNC simd_transpose(simd_float3x4 __x) {
-#if defined __SSE__
-    simd_float4 __t0 = _mm_unpacklo_ps(__x.columns[0],__x.columns[1]); /* 00 10 01 11 */
-    simd_float4 __t1 = _mm_unpackhi_ps(__x.columns[0],__x.columns[1]); /* 02 12 03 13 */
-    simd_float4 __r0 = __t0; __r0.hi = __x.columns[2].lo;
-    simd_float4 __r1 = _mm_shuffle_ps(__t0, __x.columns[2], 0xde);
-    simd_float4 __r2 = __x.columns[2]; __r2.lo = __t1.lo;
-    simd_float4 __r3 = _mm_shuffle_ps(__t1, __x.columns[2], 0xfe);
-    return simd_matrix(__r0.xyz, __r1.xyz, __r2.xyz, __r3.xyz);
-#else
-    return simd_matrix((simd_float3){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0]},
-                               (simd_float3){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1]},
-                               (simd_float3){__x.columns[0][2], __x.columns[1][2], __x.columns[2][2]},
-                               (simd_float3){__x.columns[0][3], __x.columns[1][3], __x.columns[2][3]});
-#endif
-}
-
-static simd_float2x4 SIMD_CFUNC simd_transpose(simd_float4x2 __x) {
-#if defined __SSE__
-    simd_float4 __x0, __x1, __x2, __x3;
-    __x0.xy = __x.columns[0];
-    __x1.xy = __x.columns[1];
-    __x2.xy = __x.columns[2];
-    __x3.xy = __x.columns[3];
-    simd_float4 __t0 = _mm_unpacklo_ps(__x0,__x2);
-    simd_float4 __t1 = _mm_unpacklo_ps(__x1,__x3);
-    simd_float4 __r0 = _mm_unpacklo_ps(__t0,__t1);
-    simd_float4 __r1 = _mm_unpackhi_ps(__t0,__t1);
-    return simd_matrix(__r0,__r1);
-#else
-    return simd_matrix((simd_float4){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0], __x.columns[3][0]},
-                               (simd_float4){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1], __x.columns[3][1]});
-#endif
-}
-
-static simd_float3x4 SIMD_CFUNC simd_transpose(simd_float4x3 __x) {
-#if defined __SSE__
-    simd_float4 __x0, __x1, __x2, __x3;
-    __x0.xyz = __x.columns[0];
-    __x1.xyz = __x.columns[1];
-    __x2.xyz = __x.columns[2];
-    __x3.xyz = __x.columns[3];
-    simd_float4 __t0 = _mm_unpacklo_ps(__x0,__x2);
-    simd_float4 __t1 = _mm_unpackhi_ps(__x0,__x2);
-    simd_float4 __t2 = _mm_unpacklo_ps(__x1,__x3);
-    simd_float4 __t3 = _mm_unpackhi_ps(__x1,__x3);
-    simd_float4 __r0 = _mm_unpacklo_ps(__t0,__t2);
-    simd_float4 __r1 = _mm_unpackhi_ps(__t0,__t2);
-    simd_float4 __r2 = _mm_unpacklo_ps(__t1,__t3);
-    return simd_matrix(__r0,__r1,__r2);
-#else
-    return simd_matrix((simd_float4){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0], __x.columns[3][0]},
-                               (simd_float4){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1], __x.columns[3][1]},
-                               (simd_float4){__x.columns[0][2], __x.columns[1][2], __x.columns[2][2], __x.columns[3][2]});
-#endif
-}
-
-static simd_float4x4 SIMD_CFUNC simd_transpose(simd_float4x4 __x) {
-#if defined __SSE__
-    simd_float4 __t0 = _mm_unpacklo_ps(__x.columns[0],__x.columns[2]);
-    simd_float4 __t1 = _mm_unpackhi_ps(__x.columns[0],__x.columns[2]);
-    simd_float4 __t2 = _mm_unpacklo_ps(__x.columns[1],__x.columns[3]);
-    simd_float4 __t3 = _mm_unpackhi_ps(__x.columns[1],__x.columns[3]);
-    simd_float4 __r0 = _mm_unpacklo_ps(__t0,__t2);
-    simd_float4 __r1 = _mm_unpackhi_ps(__t0,__t2);
-    simd_float4 __r2 = _mm_unpacklo_ps(__t1,__t3);
-    simd_float4 __r3 = _mm_unpackhi_ps(__t1,__t3);
-    return simd_matrix(__r0,__r1,__r2,__r3);
-#else
-    return simd_matrix((simd_float4){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0], __x.columns[3][0]},
-                               (simd_float4){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1], __x.columns[3][1]},
-                               (simd_float4){__x.columns[0][2], __x.columns[1][2], __x.columns[2][2], __x.columns[3][2]},
-                               (simd_float4){__x.columns[0][3], __x.columns[1][3], __x.columns[2][3], __x.columns[3][3]});
-#endif
-}
-
-static simd_double2x2 SIMD_CFUNC simd_transpose(simd_double2x2 __x) {
-    return simd_matrix((simd_double2){__x.columns[0][0], __x.columns[1][0]},
-                               (simd_double2){__x.columns[0][1], __x.columns[1][1]});
-}
-
-static simd_double3x2 SIMD_CFUNC simd_transpose(simd_double2x3 __x) {
-    return simd_matrix((simd_double2){__x.columns[0][0], __x.columns[1][0]},
-                               (simd_double2){__x.columns[0][1], __x.columns[1][1]},
-                               (simd_double2){__x.columns[0][2], __x.columns[1][2]});
-}
-
-static simd_double4x2 SIMD_CFUNC simd_transpose(simd_double2x4 __x) {
-    return simd_matrix((simd_double2){__x.columns[0][0], __x.columns[1][0]},
-                               (simd_double2){__x.columns[0][1], __x.columns[1][1]},
-                               (simd_double2){__x.columns[0][2], __x.columns[1][2]},
-                               (simd_double2){__x.columns[0][3], __x.columns[1][3]});
-}
-
-static simd_double2x3 SIMD_CFUNC simd_transpose(simd_double3x2 __x) {
-    return simd_matrix((simd_double3){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0]},
-                               (simd_double3){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1]});
-}
-
-static simd_double3x3 SIMD_CFUNC simd_transpose(simd_double3x3 __x) {
-    return simd_matrix((simd_double3){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0]},
-                               (simd_double3){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1]},
-                               (simd_double3){__x.columns[0][2], __x.columns[1][2], __x.columns[2][2]});
-}
-
-static simd_double4x3 SIMD_CFUNC simd_transpose(simd_double3x4 __x) {
-    return simd_matrix((simd_double3){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0]},
-                               (simd_double3){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1]},
-                               (simd_double3){__x.columns[0][2], __x.columns[1][2], __x.columns[2][2]},
-                               (simd_double3){__x.columns[0][3], __x.columns[1][3], __x.columns[2][3]});
-}
-
-static simd_double2x4 SIMD_CFUNC simd_transpose(simd_double4x2 __x) {
-    return simd_matrix((simd_double4){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0], __x.columns[3][0]},
-                               (simd_double4){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1], __x.columns[3][1]});
-}
-
-static simd_double3x4 SIMD_CFUNC simd_transpose(simd_double4x3 __x) {
-    return simd_matrix((simd_double4){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0], __x.columns[3][0]},
-                               (simd_double4){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1], __x.columns[3][1]},
-                               (simd_double4){__x.columns[0][2], __x.columns[1][2], __x.columns[2][2], __x.columns[3][2]});
-}
-
-static simd_double4x4 SIMD_CFUNC simd_transpose(simd_double4x4 __x) {
-    return simd_matrix((simd_double4){__x.columns[0][0], __x.columns[1][0], __x.columns[2][0], __x.columns[3][0]},
-                               (simd_double4){__x.columns[0][1], __x.columns[1][1], __x.columns[2][1], __x.columns[3][1]},
-                               (simd_double4){__x.columns[0][2], __x.columns[1][2], __x.columns[2][2], __x.columns[3][2]},
-                               (simd_double4){__x.columns[0][3], __x.columns[1][3], __x.columns[2][3], __x.columns[3][3]});
-}
-
-static  simd_float3 SIMD_CFUNC __rotate1( simd_float3 __x) { return __builtin_shufflevector(__x,__x,1,2,0); }
-static  simd_float3 SIMD_CFUNC __rotate2( simd_float3 __x) { return __builtin_shufflevector(__x,__x,2,0,1); }
-static  simd_float4 SIMD_CFUNC __rotate1( simd_float4 __x) { return __builtin_shufflevector(__x,__x,1,2,3,0); }
-static  simd_float4 SIMD_CFUNC __rotate2( simd_float4 __x) { return __builtin_shufflevector(__x,__x,2,3,0,1); }
-static  simd_float4 SIMD_CFUNC __rotate3( simd_float4 __x) { return __builtin_shufflevector(__x,__x,3,0,1,2); }
-static simd_double3 SIMD_CFUNC __rotate1(simd_double3 __x) { return __builtin_shufflevector(__x,__x,1,2,0); }
-static simd_double3 SIMD_CFUNC __rotate2(simd_double3 __x) { return __builtin_shufflevector(__x,__x,2,0,1); }
-static simd_double4 SIMD_CFUNC __rotate1(simd_double4 __x) { return __builtin_shufflevector(__x,__x,1,2,3,0); }
-static simd_double4 SIMD_CFUNC __rotate2(simd_double4 __x) { return __builtin_shufflevector(__x,__x,2,3,0,1); }
-static simd_double4 SIMD_CFUNC __rotate3(simd_double4 __x) { return __builtin_shufflevector(__x,__x,3,0,1,2); }
-
-static  float SIMD_CFUNC simd_determinant( simd_float2x2 __x) { return __x.columns[0][0]*__x.columns[1][1] - __x.columns[0][1]*__x.columns[1][0]; }
-static double SIMD_CFUNC simd_determinant(simd_double2x2 __x) { return __x.columns[0][0]*__x.columns[1][1] - __x.columns[0][1]*__x.columns[1][0]; }
-static  float SIMD_CFUNC simd_determinant( simd_float3x3 __x) { return simd_reduce_add(__x.columns[0]*(__rotate1(__x.columns[1])*__rotate2(__x.columns[2]) - __rotate2(__x.columns[1])*__rotate1(__x.columns[2]))); }
-static double SIMD_CFUNC simd_determinant(simd_double3x3 __x) { return simd_reduce_add(__x.columns[0]*(__rotate1(__x.columns[1])*__rotate2(__x.columns[2]) - __rotate2(__x.columns[1])*__rotate1(__x.columns[2]))); }
-static  float SIMD_CFUNC simd_determinant( simd_float4x4 __x) {
-    simd_float4 codet = __x.columns[0]*(__rotate1(__x.columns[1])*(__rotate2(__x.columns[2])*__rotate3(__x.columns[3])-__rotate3(__x.columns[2])*__rotate2(__x.columns[3])) +
-                                          __rotate2(__x.columns[1])*(__rotate3(__x.columns[2])*__rotate1(__x.columns[3])-__rotate1(__x.columns[2])*__rotate3(__x.columns[3])) +
-                                          __rotate3(__x.columns[1])*(__rotate1(__x.columns[2])*__rotate2(__x.columns[3])-__rotate2(__x.columns[2])*__rotate1(__x.columns[3])));
-    return simd_reduce_add(codet.even - codet.odd);
-}
-static double SIMD_CFUNC simd_determinant(simd_double4x4 __x) {
-    simd_double4 codet = __x.columns[0]*(__rotate1(__x.columns[1])*(__rotate2(__x.columns[2])*__rotate3(__x.columns[3])-__rotate3(__x.columns[2])*__rotate2(__x.columns[3])) +
-                                           __rotate2(__x.columns[1])*(__rotate3(__x.columns[2])*__rotate1(__x.columns[3])-__rotate1(__x.columns[2])*__rotate3(__x.columns[3])) +
-                                           __rotate3(__x.columns[1])*(__rotate1(__x.columns[2])*__rotate2(__x.columns[3])-__rotate2(__x.columns[2])*__rotate1(__x.columns[3])));
-    return simd_reduce_add(codet.even - codet.odd);
-}
-
-static  simd_float2x2 SIMD_CFUNC simd_inverse( simd_float2x2 __x) { return __invert_f2(__x); }
-static  simd_float3x3 SIMD_CFUNC simd_inverse( simd_float3x3 __x) { return __invert_f3(__x); }
-static  simd_float4x4 SIMD_CFUNC simd_inverse( simd_float4x4 __x) { return __invert_f4(__x); }
-static simd_double2x2 SIMD_CFUNC simd_inverse(simd_double2x2 __x) { return __invert_d2(__x); }
-static simd_double3x3 SIMD_CFUNC simd_inverse(simd_double3x3 __x) { return __invert_d3(__x); }
-static simd_double4x4 SIMD_CFUNC simd_inverse(simd_double4x4 __x) { return __invert_d4(__x); }
-
-static  simd_float2 SIMD_CFUNC simd_mul( simd_float2x2 __x,  simd_float2 __y) {  simd_float2 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); return __r; }
-static  simd_float3 SIMD_CFUNC simd_mul( simd_float2x3 __x,  simd_float2 __y) {  simd_float3 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); return __r; }
-static  simd_float4 SIMD_CFUNC simd_mul( simd_float2x4 __x,  simd_float2 __y) {  simd_float4 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); return __r; }
-static  simd_float2 SIMD_CFUNC simd_mul( simd_float3x2 __x,  simd_float3 __y) {  simd_float2 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); return __r; }
-static  simd_float3 SIMD_CFUNC simd_mul( simd_float3x3 __x,  simd_float3 __y) {  simd_float3 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); return __r; }
-static  simd_float4 SIMD_CFUNC simd_mul( simd_float3x4 __x,  simd_float3 __y) {  simd_float4 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); return __r; }
-static  simd_float2 SIMD_CFUNC simd_mul( simd_float4x2 __x,  simd_float4 __y) {  simd_float2 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); __r = simd_muladd( __x.columns[3], __y[3],__r); return __r; }
-static  simd_float3 SIMD_CFUNC simd_mul( simd_float4x3 __x,  simd_float4 __y) {  simd_float3 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); __r = simd_muladd( __x.columns[3], __y[3],__r); return __r; }
-static  simd_float4 SIMD_CFUNC simd_mul( simd_float4x4 __x,  simd_float4 __y) {  simd_float4 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); __r = simd_muladd( __x.columns[3], __y[3],__r); return __r; }
-static simd_double2 SIMD_CFUNC simd_mul(simd_double2x2 __x, simd_double2 __y) { simd_double2 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); return __r; }
-static simd_double3 SIMD_CFUNC simd_mul(simd_double2x3 __x, simd_double2 __y) { simd_double3 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); return __r; }
-static simd_double4 SIMD_CFUNC simd_mul(simd_double2x4 __x, simd_double2 __y) { simd_double4 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); return __r; }
-static simd_double2 SIMD_CFUNC simd_mul(simd_double3x2 __x, simd_double3 __y) { simd_double2 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); return __r; }
-static simd_double3 SIMD_CFUNC simd_mul(simd_double3x3 __x, simd_double3 __y) { simd_double3 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); return __r; }
-static simd_double4 SIMD_CFUNC simd_mul(simd_double3x4 __x, simd_double3 __y) { simd_double4 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); return __r; }
-static simd_double2 SIMD_CFUNC simd_mul(simd_double4x2 __x, simd_double4 __y) { simd_double2 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); __r = simd_muladd( __x.columns[3], __y[3],__r); return __r; }
-static simd_double3 SIMD_CFUNC simd_mul(simd_double4x3 __x, simd_double4 __y) { simd_double3 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); __r = simd_muladd( __x.columns[3], __y[3],__r); return __r; }
-static simd_double4 SIMD_CFUNC simd_mul(simd_double4x4 __x, simd_double4 __y) { simd_double4 __r = __x.columns[0]*__y[0]; __r = simd_muladd( __x.columns[1], __y[1],__r); __r = simd_muladd( __x.columns[2], __y[2],__r); __r = simd_muladd( __x.columns[3], __y[3],__r); return __r; }
-
-static  simd_float2 SIMD_CFUNC simd_mul( simd_float2 __x,  simd_float2x2 __y) { return simd_mul(simd_transpose(__y), __x); }
-static  simd_float3 SIMD_CFUNC simd_mul( simd_float2 __x,  simd_float3x2 __y) { return simd_mul(simd_transpose(__y), __x); }
-static  simd_float4 SIMD_CFUNC simd_mul( simd_float2 __x,  simd_float4x2 __y) { return simd_mul(simd_transpose(__y), __x); }
-static  simd_float2 SIMD_CFUNC simd_mul( simd_float3 __x,  simd_float2x3 __y) { return simd_mul(simd_transpose(__y), __x); }
-static  simd_float3 SIMD_CFUNC simd_mul( simd_float3 __x,  simd_float3x3 __y) { return simd_mul(simd_transpose(__y), __x); }
-static  simd_float4 SIMD_CFUNC simd_mul( simd_float3 __x,  simd_float4x3 __y) { return simd_mul(simd_transpose(__y), __x); }
-static  simd_float2 SIMD_CFUNC simd_mul( simd_float4 __x,  simd_float2x4 __y) { return simd_mul(simd_transpose(__y), __x); }
-static  simd_float3 SIMD_CFUNC simd_mul( simd_float4 __x,  simd_float3x4 __y) { return simd_mul(simd_transpose(__y), __x); }
-static  simd_float4 SIMD_CFUNC simd_mul( simd_float4 __x,  simd_float4x4 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double2 SIMD_CFUNC simd_mul(simd_double2 __x, simd_double2x2 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double3 SIMD_CFUNC simd_mul(simd_double2 __x, simd_double3x2 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double4 SIMD_CFUNC simd_mul(simd_double2 __x, simd_double4x2 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double2 SIMD_CFUNC simd_mul(simd_double3 __x, simd_double2x3 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double3 SIMD_CFUNC simd_mul(simd_double3 __x, simd_double3x3 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double4 SIMD_CFUNC simd_mul(simd_double3 __x, simd_double4x3 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double2 SIMD_CFUNC simd_mul(simd_double4 __x, simd_double2x4 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double3 SIMD_CFUNC simd_mul(simd_double4 __x, simd_double3x4 __y) { return simd_mul(simd_transpose(__y), __x); }
-static simd_double4 SIMD_CFUNC simd_mul(simd_double4 __x, simd_double4x4 __y) { return simd_mul(simd_transpose(__y), __x); }
-
-static  simd_float2x2 SIMD_CFUNC simd_mul( simd_float2x2 __x,  simd_float2x2 __y) {  simd_float2x2 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x2 SIMD_CFUNC simd_mul(simd_double2x2 __x, simd_double2x2 __y) { simd_double2x2 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float2x3 SIMD_CFUNC simd_mul( simd_float2x3 __x,  simd_float2x2 __y) {  simd_float2x3 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x3 SIMD_CFUNC simd_mul(simd_double2x3 __x, simd_double2x2 __y) { simd_double2x3 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float2x4 SIMD_CFUNC simd_mul( simd_float2x4 __x,  simd_float2x2 __y) {  simd_float2x4 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x4 SIMD_CFUNC simd_mul(simd_double2x4 __x, simd_double2x2 __y) { simd_double2x4 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float2x2 SIMD_CFUNC simd_mul( simd_float3x2 __x,  simd_float2x3 __y) {  simd_float2x2 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x2 SIMD_CFUNC simd_mul(simd_double3x2 __x, simd_double2x3 __y) { simd_double2x2 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float2x3 SIMD_CFUNC simd_mul( simd_float3x3 __x,  simd_float2x3 __y) {  simd_float2x3 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x3 SIMD_CFUNC simd_mul(simd_double3x3 __x, simd_double2x3 __y) { simd_double2x3 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float2x4 SIMD_CFUNC simd_mul( simd_float3x4 __x,  simd_float2x3 __y) {  simd_float2x4 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x4 SIMD_CFUNC simd_mul(simd_double3x4 __x, simd_double2x3 __y) { simd_double2x4 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float2x2 SIMD_CFUNC simd_mul( simd_float4x2 __x,  simd_float2x4 __y) {  simd_float2x2 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x2 SIMD_CFUNC simd_mul(simd_double4x2 __x, simd_double2x4 __y) { simd_double2x2 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float2x3 SIMD_CFUNC simd_mul( simd_float4x3 __x,  simd_float2x4 __y) {  simd_float2x3 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x3 SIMD_CFUNC simd_mul(simd_double4x3 __x, simd_double2x4 __y) { simd_double2x3 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float2x4 SIMD_CFUNC simd_mul( simd_float4x4 __x,  simd_float2x4 __y) {  simd_float2x4 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double2x4 SIMD_CFUNC simd_mul(simd_double4x4 __x, simd_double2x4 __y) { simd_double2x4 __r; for (int i=0; i<2; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-
-static  simd_float3x2 SIMD_CFUNC simd_mul( simd_float2x2 __x,  simd_float3x2 __y) {  simd_float3x2 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x2 SIMD_CFUNC simd_mul(simd_double2x2 __x, simd_double3x2 __y) { simd_double3x2 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float3x3 SIMD_CFUNC simd_mul( simd_float2x3 __x,  simd_float3x2 __y) {  simd_float3x3 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x3 SIMD_CFUNC simd_mul(simd_double2x3 __x, simd_double3x2 __y) { simd_double3x3 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float3x4 SIMD_CFUNC simd_mul( simd_float2x4 __x,  simd_float3x2 __y) {  simd_float3x4 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x4 SIMD_CFUNC simd_mul(simd_double2x4 __x, simd_double3x2 __y) { simd_double3x4 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float3x2 SIMD_CFUNC simd_mul( simd_float3x2 __x,  simd_float3x3 __y) {  simd_float3x2 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x2 SIMD_CFUNC simd_mul(simd_double3x2 __x, simd_double3x3 __y) { simd_double3x2 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float3x3 SIMD_CFUNC simd_mul( simd_float3x3 __x,  simd_float3x3 __y) {  simd_float3x3 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x3 SIMD_CFUNC simd_mul(simd_double3x3 __x, simd_double3x3 __y) { simd_double3x3 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float3x4 SIMD_CFUNC simd_mul( simd_float3x4 __x,  simd_float3x3 __y) {  simd_float3x4 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x4 SIMD_CFUNC simd_mul(simd_double3x4 __x, simd_double3x3 __y) { simd_double3x4 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float3x2 SIMD_CFUNC simd_mul( simd_float4x2 __x,  simd_float3x4 __y) {  simd_float3x2 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x2 SIMD_CFUNC simd_mul(simd_double4x2 __x, simd_double3x4 __y) { simd_double3x2 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float3x3 SIMD_CFUNC simd_mul( simd_float4x3 __x,  simd_float3x4 __y) {  simd_float3x3 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x3 SIMD_CFUNC simd_mul(simd_double4x3 __x, simd_double3x4 __y) { simd_double3x3 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float3x4 SIMD_CFUNC simd_mul( simd_float4x4 __x,  simd_float3x4 __y) {  simd_float3x4 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double3x4 SIMD_CFUNC simd_mul(simd_double4x4 __x, simd_double3x4 __y) { simd_double3x4 __r; for (int i=0; i<3; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-
-static  simd_float4x2 SIMD_CFUNC simd_mul( simd_float2x2 __x,  simd_float4x2 __y) {  simd_float4x2 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x2 SIMD_CFUNC simd_mul(simd_double2x2 __x, simd_double4x2 __y) { simd_double4x2 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float4x3 SIMD_CFUNC simd_mul( simd_float2x3 __x,  simd_float4x2 __y) {  simd_float4x3 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x3 SIMD_CFUNC simd_mul(simd_double2x3 __x, simd_double4x2 __y) { simd_double4x3 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float4x4 SIMD_CFUNC simd_mul( simd_float2x4 __x,  simd_float4x2 __y) {  simd_float4x4 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x4 SIMD_CFUNC simd_mul(simd_double2x4 __x, simd_double4x2 __y) { simd_double4x4 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float4x2 SIMD_CFUNC simd_mul( simd_float3x2 __x,  simd_float4x3 __y) {  simd_float4x2 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x2 SIMD_CFUNC simd_mul(simd_double3x2 __x, simd_double4x3 __y) { simd_double4x2 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float4x3 SIMD_CFUNC simd_mul( simd_float3x3 __x,  simd_float4x3 __y) {  simd_float4x3 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x3 SIMD_CFUNC simd_mul(simd_double3x3 __x, simd_double4x3 __y) { simd_double4x3 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float4x4 SIMD_CFUNC simd_mul( simd_float3x4 __x,  simd_float4x3 __y) {  simd_float4x4 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x4 SIMD_CFUNC simd_mul(simd_double3x4 __x, simd_double4x3 __y) { simd_double4x4 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float4x2 SIMD_CFUNC simd_mul( simd_float4x2 __x,  simd_float4x4 __y) {  simd_float4x2 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x2 SIMD_CFUNC simd_mul(simd_double4x2 __x, simd_double4x4 __y) { simd_double4x2 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float4x3 SIMD_CFUNC simd_mul( simd_float4x3 __x,  simd_float4x4 __y) {  simd_float4x3 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x3 SIMD_CFUNC simd_mul(simd_double4x3 __x, simd_double4x4 __y) { simd_double4x3 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static  simd_float4x4 SIMD_CFUNC simd_mul( simd_float4x4 __x,  simd_float4x4 __y) {  simd_float4x4 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-static simd_double4x4 SIMD_CFUNC simd_mul(simd_double4x4 __x, simd_double4x4 __y) { simd_double4x4 __r; for (int i=0; i<4; ++i) __r.columns[i] = simd_mul(__x, __y.columns[i]); return __r; }
-  
-static  simd_float2 SIMD_CFUNC matrix_multiply( simd_float2x2 __x,  simd_float2 __y) { return simd_mul(__x, __y); }
-static  simd_float3 SIMD_CFUNC matrix_multiply( simd_float2x3 __x,  simd_float2 __y) { return simd_mul(__x, __y); }
-static  simd_float4 SIMD_CFUNC matrix_multiply( simd_float2x4 __x,  simd_float2 __y) { return simd_mul(__x, __y); }
-static  simd_float2 SIMD_CFUNC matrix_multiply( simd_float3x2 __x,  simd_float3 __y) { return simd_mul(__x, __y); }
-static  simd_float3 SIMD_CFUNC matrix_multiply( simd_float3x3 __x,  simd_float3 __y) { return simd_mul(__x, __y); }
-static  simd_float4 SIMD_CFUNC matrix_multiply( simd_float3x4 __x,  simd_float3 __y) { return simd_mul(__x, __y); }
-static  simd_float2 SIMD_CFUNC matrix_multiply( simd_float4x2 __x,  simd_float4 __y) { return simd_mul(__x, __y); }
-static  simd_float3 SIMD_CFUNC matrix_multiply( simd_float4x3 __x,  simd_float4 __y) { return simd_mul(__x, __y); }
-static  simd_float4 SIMD_CFUNC matrix_multiply( simd_float4x4 __x,  simd_float4 __y) { return simd_mul(__x, __y); }
-static simd_double2 SIMD_CFUNC matrix_multiply(simd_double2x2 __x, simd_double2 __y) { return simd_mul(__x, __y); }
-static simd_double3 SIMD_CFUNC matrix_multiply(simd_double2x3 __x, simd_double2 __y) { return simd_mul(__x, __y); }
-static simd_double4 SIMD_CFUNC matrix_multiply(simd_double2x4 __x, simd_double2 __y) { return simd_mul(__x, __y); }
-static simd_double2 SIMD_CFUNC matrix_multiply(simd_double3x2 __x, simd_double3 __y) { return simd_mul(__x, __y); }
-static simd_double3 SIMD_CFUNC matrix_multiply(simd_double3x3 __x, simd_double3 __y) { return simd_mul(__x, __y); }
-static simd_double4 SIMD_CFUNC matrix_multiply(simd_double3x4 __x, simd_double3 __y) { return simd_mul(__x, __y); }
-static simd_double2 SIMD_CFUNC matrix_multiply(simd_double4x2 __x, simd_double4 __y) { return simd_mul(__x, __y); }
-static simd_double3 SIMD_CFUNC matrix_multiply(simd_double4x3 __x, simd_double4 __y) { return simd_mul(__x, __y); }
-static simd_double4 SIMD_CFUNC matrix_multiply(simd_double4x4 __x, simd_double4 __y) { return simd_mul(__x, __y); }
-  
-static  simd_float2 SIMD_CFUNC matrix_multiply( simd_float2 __x,  simd_float2x2 __y) { return simd_mul(__x, __y); }
-static  simd_float3 SIMD_CFUNC matrix_multiply( simd_float2 __x,  simd_float3x2 __y) { return simd_mul(__x, __y); }
-static  simd_float4 SIMD_CFUNC matrix_multiply( simd_float2 __x,  simd_float4x2 __y) { return simd_mul(__x, __y); }
-static  simd_float2 SIMD_CFUNC matrix_multiply( simd_float3 __x,  simd_float2x3 __y) { return simd_mul(__x, __y); }
-static  simd_float3 SIMD_CFUNC matrix_multiply( simd_float3 __x,  simd_float3x3 __y) { return simd_mul(__x, __y); }
-static  simd_float4 SIMD_CFUNC matrix_multiply( simd_float3 __x,  simd_float4x3 __y) { return simd_mul(__x, __y); }
-static  simd_float2 SIMD_CFUNC matrix_multiply( simd_float4 __x,  simd_float2x4 __y) { return simd_mul(__x, __y); }
-static  simd_float3 SIMD_CFUNC matrix_multiply( simd_float4 __x,  simd_float3x4 __y) { return simd_mul(__x, __y); }
-static  simd_float4 SIMD_CFUNC matrix_multiply( simd_float4 __x,  simd_float4x4 __y) { return simd_mul(__x, __y); }
-static simd_double2 SIMD_CFUNC matrix_multiply(simd_double2 __x, simd_double2x2 __y) { return simd_mul(__x, __y); }
-static simd_double3 SIMD_CFUNC matrix_multiply(simd_double2 __x, simd_double3x2 __y) { return simd_mul(__x, __y); }
-static simd_double4 SIMD_CFUNC matrix_multiply(simd_double2 __x, simd_double4x2 __y) { return simd_mul(__x, __y); }
-static simd_double2 SIMD_CFUNC matrix_multiply(simd_double3 __x, simd_double2x3 __y) { return simd_mul(__x, __y); }
-static simd_double3 SIMD_CFUNC matrix_multiply(simd_double3 __x, simd_double3x3 __y) { return simd_mul(__x, __y); }
-static simd_double4 SIMD_CFUNC matrix_multiply(simd_double3 __x, simd_double4x3 __y) { return simd_mul(__x, __y); }
-static simd_double2 SIMD_CFUNC matrix_multiply(simd_double4 __x, simd_double2x4 __y) { return simd_mul(__x, __y); }
-static simd_double3 SIMD_CFUNC matrix_multiply(simd_double4 __x, simd_double3x4 __y) { return simd_mul(__x, __y); }
-static simd_double4 SIMD_CFUNC matrix_multiply(simd_double4 __x, simd_double4x4 __y) { return simd_mul(__x, __y); }
-  
-static  simd_float2x2 SIMD_CFUNC matrix_multiply( simd_float2x2 __x,  simd_float2x2 __y) { return simd_mul(__x, __y); }
-static simd_double2x2 SIMD_CFUNC matrix_multiply(simd_double2x2 __x, simd_double2x2 __y) { return simd_mul(__x, __y); }
-static  simd_float2x3 SIMD_CFUNC matrix_multiply( simd_float2x3 __x,  simd_float2x2 __y) { return simd_mul(__x, __y); }
-static simd_double2x3 SIMD_CFUNC matrix_multiply(simd_double2x3 __x, simd_double2x2 __y) { return simd_mul(__x, __y); }
-static  simd_float2x4 SIMD_CFUNC matrix_multiply( simd_float2x4 __x,  simd_float2x2 __y) { return simd_mul(__x, __y); }
-static simd_double2x4 SIMD_CFUNC matrix_multiply(simd_double2x4 __x, simd_double2x2 __y) { return simd_mul(__x, __y); }
-static  simd_float2x2 SIMD_CFUNC matrix_multiply( simd_float3x2 __x,  simd_float2x3 __y) { return simd_mul(__x, __y); }
-static simd_double2x2 SIMD_CFUNC matrix_multiply(simd_double3x2 __x, simd_double2x3 __y) { return simd_mul(__x, __y); }
-static  simd_float2x3 SIMD_CFUNC matrix_multiply( simd_float3x3 __x,  simd_float2x3 __y) { return simd_mul(__x, __y); }
-static simd_double2x3 SIMD_CFUNC matrix_multiply(simd_double3x3 __x, simd_double2x3 __y) { return simd_mul(__x, __y); }
-static  simd_float2x4 SIMD_CFUNC matrix_multiply( simd_float3x4 __x,  simd_float2x3 __y) { return simd_mul(__x, __y); }
-static simd_double2x4 SIMD_CFUNC matrix_multiply(simd_double3x4 __x, simd_double2x3 __y) { return simd_mul(__x, __y); }
-static  simd_float2x2 SIMD_CFUNC matrix_multiply( simd_float4x2 __x,  simd_float2x4 __y) { return simd_mul(__x, __y); }
-static simd_double2x2 SIMD_CFUNC matrix_multiply(simd_double4x2 __x, simd_double2x4 __y) { return simd_mul(__x, __y); }
-static  simd_float2x3 SIMD_CFUNC matrix_multiply( simd_float4x3 __x,  simd_float2x4 __y) { return simd_mul(__x, __y); }
-static simd_double2x3 SIMD_CFUNC matrix_multiply(simd_double4x3 __x, simd_double2x4 __y) { return simd_mul(__x, __y); }
-static  simd_float2x4 SIMD_CFUNC matrix_multiply( simd_float4x4 __x,  simd_float2x4 __y) { return simd_mul(__x, __y); }
-static simd_double2x4 SIMD_CFUNC matrix_multiply(simd_double4x4 __x, simd_double2x4 __y) { return simd_mul(__x, __y); }
-  
-static  simd_float3x2 SIMD_CFUNC matrix_multiply( simd_float2x2 __x,  simd_float3x2 __y) { return simd_mul(__x, __y); }
-static simd_double3x2 SIMD_CFUNC matrix_multiply(simd_double2x2 __x, simd_double3x2 __y) { return simd_mul(__x, __y); }
-static  simd_float3x3 SIMD_CFUNC matrix_multiply( simd_float2x3 __x,  simd_float3x2 __y) { return simd_mul(__x, __y); }
-static simd_double3x3 SIMD_CFUNC matrix_multiply(simd_double2x3 __x, simd_double3x2 __y) { return simd_mul(__x, __y); }
-static  simd_float3x4 SIMD_CFUNC matrix_multiply( simd_float2x4 __x,  simd_float3x2 __y) { return simd_mul(__x, __y); }
-static simd_double3x4 SIMD_CFUNC matrix_multiply(simd_double2x4 __x, simd_double3x2 __y) { return simd_mul(__x, __y); }
-static  simd_float3x2 SIMD_CFUNC matrix_multiply( simd_float3x2 __x,  simd_float3x3 __y) { return simd_mul(__x, __y); }
-static simd_double3x2 SIMD_CFUNC matrix_multiply(simd_double3x2 __x, simd_double3x3 __y) { return simd_mul(__x, __y); }
-static  simd_float3x3 SIMD_CFUNC matrix_multiply( simd_float3x3 __x,  simd_float3x3 __y) { return simd_mul(__x, __y); }
-static simd_double3x3 SIMD_CFUNC matrix_multiply(simd_double3x3 __x, simd_double3x3 __y) { return simd_mul(__x, __y); }
-static  simd_float3x4 SIMD_CFUNC matrix_multiply( simd_float3x4 __x,  simd_float3x3 __y) { return simd_mul(__x, __y); }
-static simd_double3x4 SIMD_CFUNC matrix_multiply(simd_double3x4 __x, simd_double3x3 __y) { return simd_mul(__x, __y); }
-static  simd_float3x2 SIMD_CFUNC matrix_multiply( simd_float4x2 __x,  simd_float3x4 __y) { return simd_mul(__x, __y); }
-static simd_double3x2 SIMD_CFUNC matrix_multiply(simd_double4x2 __x, simd_double3x4 __y) { return simd_mul(__x, __y); }
-static  simd_float3x3 SIMD_CFUNC matrix_multiply( simd_float4x3 __x,  simd_float3x4 __y) { return simd_mul(__x, __y); }
-static simd_double3x3 SIMD_CFUNC matrix_multiply(simd_double4x3 __x, simd_double3x4 __y) { return simd_mul(__x, __y); }
-static  simd_float3x4 SIMD_CFUNC matrix_multiply( simd_float4x4 __x,  simd_float3x4 __y) { return simd_mul(__x, __y); }
-static simd_double3x4 SIMD_CFUNC matrix_multiply(simd_double4x4 __x, simd_double3x4 __y) { return simd_mul(__x, __y); }
-  
-static  simd_float4x2 SIMD_CFUNC matrix_multiply( simd_float2x2 __x,  simd_float4x2 __y) { return simd_mul(__x, __y); }
-static simd_double4x2 SIMD_CFUNC matrix_multiply(simd_double2x2 __x, simd_double4x2 __y) { return simd_mul(__x, __y); }
-static  simd_float4x3 SIMD_CFUNC matrix_multiply( simd_float2x3 __x,  simd_float4x2 __y) { return simd_mul(__x, __y); }
-static simd_double4x3 SIMD_CFUNC matrix_multiply(simd_double2x3 __x, simd_double4x2 __y) { return simd_mul(__x, __y); }
-static  simd_float4x4 SIMD_CFUNC matrix_multiply( simd_float2x4 __x,  simd_float4x2 __y) { return simd_mul(__x, __y); }
-static simd_double4x4 SIMD_CFUNC matrix_multiply(simd_double2x4 __x, simd_double4x2 __y) { return simd_mul(__x, __y); }
-static  simd_float4x2 SIMD_CFUNC matrix_multiply( simd_float3x2 __x,  simd_float4x3 __y) { return simd_mul(__x, __y); }
-static simd_double4x2 SIMD_CFUNC matrix_multiply(simd_double3x2 __x, simd_double4x3 __y) { return simd_mul(__x, __y); }
-static  simd_float4x3 SIMD_CFUNC matrix_multiply( simd_float3x3 __x,  simd_float4x3 __y) { return simd_mul(__x, __y); }
-static simd_double4x3 SIMD_CFUNC matrix_multiply(simd_double3x3 __x, simd_double4x3 __y) { return simd_mul(__x, __y); }
-static  simd_float4x4 SIMD_CFUNC matrix_multiply( simd_float3x4 __x,  simd_float4x3 __y) { return simd_mul(__x, __y); }
-static simd_double4x4 SIMD_CFUNC matrix_multiply(simd_double3x4 __x, simd_double4x3 __y) { return simd_mul(__x, __y); }
-static  simd_float4x2 SIMD_CFUNC matrix_multiply( simd_float4x2 __x,  simd_float4x4 __y) { return simd_mul(__x, __y); }
-static simd_double4x2 SIMD_CFUNC matrix_multiply(simd_double4x2 __x, simd_double4x4 __y) { return simd_mul(__x, __y); }
-static  simd_float4x3 SIMD_CFUNC matrix_multiply( simd_float4x3 __x,  simd_float4x4 __y) { return simd_mul(__x, __y); }
-static simd_double4x3 SIMD_CFUNC matrix_multiply(simd_double4x3 __x, simd_double4x4 __y) { return simd_mul(__x, __y); }
-static  simd_float4x4 SIMD_CFUNC matrix_multiply( simd_float4x4 __x,  simd_float4x4 __y) { return simd_mul(__x, __y); }
-static simd_double4x4 SIMD_CFUNC matrix_multiply(simd_double4x4 __x, simd_double4x4 __y) { return simd_mul(__x, __y); }
-
-static simd_bool SIMD_CFUNC simd_equal(simd_float2x2 __x, simd_float2x2 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_float2x3 __x, simd_float2x3 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_float2x4 __x, simd_float2x4 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_float3x2 __x, simd_float3x2 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_float3x3 __x, simd_float3x3 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_float3x4 __x, simd_float3x4 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_float4x2 __x, simd_float4x2 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]) &
-                      (__x.columns[3] == __y.columns[3]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_float4x3 __x, simd_float4x3 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]) &
-                      (__x.columns[3] == __y.columns[3]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_float4x4 __x, simd_float4x4 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]) &
-                      (__x.columns[3] == __y.columns[3]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double2x2 __x, simd_double2x2 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double2x3 __x, simd_double2x3 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double2x4 __x, simd_double2x4 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double3x2 __x, simd_double3x2 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double3x3 __x, simd_double3x3 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double3x4 __x, simd_double3x4 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double4x2 __x, simd_double4x2 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]) &
-                      (__x.columns[3] == __y.columns[3]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double4x3 __x, simd_double4x3 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]) &
-                      (__x.columns[3] == __y.columns[3]));
-}
-static simd_bool SIMD_CFUNC simd_equal(simd_double4x4 __x, simd_double4x4 __y) {
-    return simd_all((__x.columns[0] == __y.columns[0]) &
-                      (__x.columns[1] == __y.columns[1]) &
-                      (__x.columns[2] == __y.columns[2]) &
-                      (__x.columns[3] == __y.columns[3]));
-}
-
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float2x2 __x, simd_float2x2 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float2x3 __x, simd_float2x3 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float2x4 __x, simd_float2x4 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float3x2 __x, simd_float3x2 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float3x3 __x, simd_float3x3 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float3x4 __x, simd_float3x4 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float4x2 __x, simd_float4x2 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float4x3 __x, simd_float4x3 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_float4x4 __x, simd_float4x4 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double2x2 __x, simd_double2x2 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double2x3 __x, simd_double2x3 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double2x4 __x, simd_double2x4 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double3x2 __x, simd_double3x2 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double3x3 __x, simd_double3x3 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double3x4 __x, simd_double3x4 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double4x2 __x, simd_double4x2 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double4x3 __x, simd_double4x3 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements(simd_double4x4 __x, simd_double4x4 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol));
-}
-
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float2x2 __x, simd_float2x2 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float2x3 __x, simd_float2x3 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float2x4 __x, simd_float2x4 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float3x2 __x, simd_float3x2 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float3x3 __x, simd_float3x3 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float3x4 __x, simd_float3x4 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float4x2 __x, simd_float4x2 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol*__tg_fabs(__x.columns[3])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float4x3 __x, simd_float4x3 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol*__tg_fabs(__x.columns[3])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_float4x4 __x, simd_float4x4 __y, float __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol*__tg_fabs(__x.columns[3])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double2x2 __x, simd_double2x2 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double2x3 __x, simd_double2x3 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double2x4 __x, simd_double2x4 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double3x2 __x, simd_double3x2 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double3x3 __x, simd_double3x3 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double3x4 __x, simd_double3x4 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double4x2 __x, simd_double4x2 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol*__tg_fabs(__x.columns[3])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double4x3 __x, simd_double4x3 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol*__tg_fabs(__x.columns[3])));
-}
-static simd_bool SIMD_CFUNC simd_almost_equal_elements_relative(simd_double4x4 __x, simd_double4x4 __y, double __tol) {
-    return simd_all((__tg_fabs(__x.columns[0] - __y.columns[0]) <= __tol*__tg_fabs(__x.columns[0])) &
-                      (__tg_fabs(__x.columns[1] - __y.columns[1]) <= __tol*__tg_fabs(__x.columns[1])) &
-                      (__tg_fabs(__x.columns[2] - __y.columns[2]) <= __tol*__tg_fabs(__x.columns[2])) &
-                      (__tg_fabs(__x.columns[3] - __y.columns[3]) <= __tol*__tg_fabs(__x.columns[3])));
-}
-    
-#ifdef __cplusplus
-}
-#endif
-#endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
-#endif /* __SIMD_HEADER__ */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/simd/matrix_types.h b/lib/libc/include/x86_64-macos.10-none/simd/matrix_types.h
deleted file mode 100644
index 904df687a66ad50d0ebb22a92b35ae2b8e036e5d..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/simd/matrix_types.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/*  Copyright (c) 2014-2017 Apple, Inc. All rights reserved.
- *
- *  This header defines nine matrix types for each of float and double, which
- *  are intended for use together with the vector types defined in
- *  .
- *
- *  For compatibility with common graphics libraries, these matrices are stored
- *  in column-major order, and implemented as arrays of column vectors.
- *  Column-major storage order may seem a little strange if you aren't used to
- *  it, but for most usage the memory layout of the matrices shouldn't matter
- *  at all; instead you should think of matrices as abstract mathematical
- *  objects that you use to perform arithmetic without worrying about the
- *  details of the underlying representation.
- *
- *  WARNING: vectors of length three are internally represented as length four
- *  vectors with one element of padding (for alignment purposes).  This means
- *  that when a floatNx3 or doubleNx3 is viewed as a vector, it appears to
- *  have 4*N elements instead of the expected 3*N (with one padding element
- *  at the end of each column).  The matrix elements are laid out in memory
- *  as follows:
- *
- *      { 0, 1, 2, x, 3, 4, 5, x, ... }
- *
- *  (where the scalar indices used above indicate the conceptual column-
- *  major storage order).  If you aren't monkeying around with the internal
- *  storage details of matrices, you don't need to worry about this at all.
- *  Consider this yet another good reason to avoid doing so.                  */
-
-#ifndef SIMD_MATRIX_TYPES_HEADER
-#define SIMD_MATRIX_TYPES_HEADER
-
-#include 
-#if SIMD_COMPILER_HAS_REQUIRED_FEATURES
-
-/*  Matrix types available in C, Objective-C, and C++                         */
-typedef simd_float2x2 matrix_float2x2;
-typedef simd_float3x2 matrix_float3x2;
-typedef simd_float4x2 matrix_float4x2;
-
-typedef simd_float2x3 matrix_float2x3;
-typedef simd_float3x3 matrix_float3x3;
-typedef simd_float4x3 matrix_float4x3;
-
-typedef simd_float2x4 matrix_float2x4;
-typedef simd_float3x4 matrix_float3x4;
-typedef simd_float4x4 matrix_float4x4;
-
-typedef simd_double2x2 matrix_double2x2;
-typedef simd_double3x2 matrix_double3x2;
-typedef simd_double4x2 matrix_double4x2;
-
-typedef simd_double2x3 matrix_double2x3;
-typedef simd_double3x3 matrix_double3x3;
-typedef simd_double4x3 matrix_double4x3;
-
-typedef simd_double2x4 matrix_double2x4;
-typedef simd_double3x4 matrix_double3x4;
-typedef simd_double4x4 matrix_double4x4;
-
-#ifdef __cplusplus
-#if defined SIMD_MATRIX_HEADER
-static  simd_float3x3 SIMD_NOINLINE simd_matrix3x3(simd_quatf q);
-static  simd_float4x4 SIMD_NOINLINE simd_matrix4x4(simd_quatf q);
-static simd_double3x3 SIMD_NOINLINE simd_matrix3x3(simd_quatd q);
-static simd_double4x4 SIMD_NOINLINE simd_matrix4x4(simd_quatd q);
-#endif
-
-namespace simd {
-  
-  struct float2x2 : ::simd_float2x2 {
-    float2x2() { columns[0] = 0; columns[1] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float2x2(float diagonal) : float2x2((float2)diagonal) { }
-#endif
-    float2x2(float2 v) { columns[0] = (float2){v.x,0}; columns[1] = (float2){0,v.y}; }
-    float2x2(float2 c0, float2 c1) { columns[0] = c0; columns[1] = c1; }
-    float2x2(::simd_float2x2 m) : ::simd_float2x2(m) { }
-  };
-  
-  struct float3x2 : ::simd_float3x2 {
-    float3x2() { columns[0] = 0; columns[1] = 0; columns[2] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float3x2(float diagonal) : float3x2((float2)diagonal) { }
-#endif
-    float3x2(float2 v) { columns[0] = (float2){v.x,0}; columns[1] = (float2){0,v.y}; columns[2] = 0; }
-    float3x2(float2 c0, float2 c1, float2 c2) { columns[0] = c0; columns[1] = c1; columns[2] = c2; }
-    float3x2(::simd_float3x2 m) : ::simd_float3x2(m) { }
-  };
-  
-  struct float4x2 : ::simd_float4x2 {
-    float4x2() { columns[0] = 0; columns[1] = 0; columns[2] = 0; columns[3] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float4x2(float diagonal) : float4x2((float2)diagonal) { }
-#endif
-    float4x2(float2 v) { columns[0] = (float2){v.x,0}; columns[1] = (float2){0,v.y}; columns[2] = 0; columns[3] = 0; }
-    float4x2(float2 c0, float2 c1, float2 c2, float2 c3) { columns[0] = c0; columns[1] = c1; columns[2] = c2; columns[3] = c3; }
-    float4x2(::simd_float4x2 m) : ::simd_float4x2(m) { }
-  };
-  
-  struct float2x3 : ::simd_float2x3 {
-    float2x3() { columns[0] = 0; columns[1] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float2x3(float diagonal) : float2x3((float2)diagonal) { }
-#endif
-    float2x3(float2 v) { columns[0] = (float3){v.x,0,0}; columns[1] = (float3){0,v.y,0}; }
-    float2x3(float3 c0, float3 c1) { columns[0] = c0; columns[1] = c1; }
-    float2x3(::simd_float2x3 m) : ::simd_float2x3(m) { }
-  };
-  
-  struct float3x3 : ::simd_float3x3 {
-    float3x3() { columns[0] = 0; columns[1] = 0; columns[2] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float3x3(float diagonal) : float3x3((float3)diagonal) { }
-#endif
-    float3x3(float3 v) { columns[0] = (float3){v.x,0,0}; columns[1] = (float3){0,v.y,0}; columns[2] = (float3){0,0,v.z}; }
-    float3x3(float3 c0, float3 c1, float3 c2) { columns[0] = c0; columns[1] = c1; columns[2] = c2; }
-    float3x3(::simd_float3x3 m) : ::simd_float3x3(m) { }
-#if defined SIMD_MATRIX_HEADER
-    float3x3(::simd_quatf q) : ::simd_float3x3(::simd_matrix3x3(q)) { }
-#endif
-  };
-  
-  struct float4x3 : ::simd_float4x3 {
-    float4x3() { columns[0] = 0; columns[1] = 0; columns[2] = 0; columns[3] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float4x3(float diagonal) : float4x3((float3)diagonal) { }
-#endif
-    float4x3(float3 v) { columns[0] = (float3){v.x,0,0}; columns[1] = (float3){0,v.y,0}; columns[2] = (float3){0,0,v.z}; columns[3] = 0; }
-    float4x3(float3 c0, float3 c1, float3 c2, float3 c3) { columns[0] = c0; columns[1] = c1; columns[2] = c2; columns[3] = c3; }
-    float4x3(::simd_float4x3 m) : ::simd_float4x3(m) { }
-  };
-  
-  struct float2x4 : ::simd_float2x4 {
-    float2x4() { columns[0] = 0; columns[1] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float2x4(float diagonal) : float2x4((float2)diagonal) { }
-#endif
-    float2x4(float2 v) { columns[0] = (float4){v.x,0,0,0}; columns[1] = (float4){0,v.y,0,0}; }
-    float2x4(float4 c0, float4 c1) { columns[0] = c0; columns[1] = c1; }
-    float2x4(::simd_float2x4 m) : ::simd_float2x4(m) { }
-  };
-  
-  struct float3x4 : ::simd_float3x4 {
-    float3x4() { columns[0] = 0; columns[1] = 0; columns[2] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float3x4(float diagonal) : float3x4((float3)diagonal) { }
-#endif
-    float3x4(float3 v) { columns[0] = (float4){v.x,0,0,0}; columns[1] = (float4){0,v.y,0,0}; columns[2] = (float4){0,0,v.z,0}; }
-    float3x4(float4 c0, float4 c1, float4 c2) { columns[0] = c0; columns[1] = c1; columns[2] = c2; }
-    float3x4(::simd_float3x4 m) : ::simd_float3x4(m) { }
-  };
-  
-  struct float4x4 : ::simd_float4x4 {
-    float4x4() { columns[0] = 0; columns[1] = 0; columns[2] = 0; columns[3] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    float4x4(float diagonal) : float4x4((float4)diagonal) { }
-#endif
-    float4x4(float4 v) { columns[0] = (float4){v.x,0,0,0}; columns[1] = (float4){0,v.y,0,0}; columns[2] = (float4){0,0,v.z,0}; columns[3] = (float4){0,0,0,v.w}; }
-    float4x4(float4 c0, float4 c1, float4 c2, float4 c3) { columns[0] = c0; columns[1] = c1; columns[2] = c2; columns[3] = c3; }
-    float4x4(::simd_float4x4 m) : ::simd_float4x4(m) { }
-#if defined SIMD_MATRIX_HEADER
-    float4x4(::simd_quatf q) : ::simd_float4x4(::simd_matrix4x4(q)) { }
-#endif
-  };
-  
-  struct double2x2 : ::simd_double2x2 {
-    double2x2() { columns[0] = 0; columns[1] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double2x2(double diagonal) : double2x2((double2)diagonal) { }
-#endif
-    double2x2(double2 v) { columns[0] = (double2){v.x,0}; columns[1] = (double2){0,v.y}; }
-    double2x2(double2 c0, double2 c1) { columns[0] = c0; columns[1] = c1; }
-    double2x2(::simd_double2x2 m) : ::simd_double2x2(m) { }
-  };
-  
-  struct double3x2 : ::simd_double3x2 {
-    double3x2() { columns[0] = 0; columns[1] = 0; columns[2] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double3x2(double diagonal) : double3x2((double2)diagonal) { }
-#endif
-    double3x2(double2 v) { columns[0] = (double2){v.x,0}; columns[1] = (double2){0,v.y}; columns[2] = 0; }
-    double3x2(double2 c0, double2 c1, double2 c2) { columns[0] = c0; columns[1] = c1; columns[2] = c2; }
-    double3x2(::simd_double3x2 m) : ::simd_double3x2(m) { }
-  };
-  
-  struct double4x2 : ::simd_double4x2 {
-    double4x2() { columns[0] = 0; columns[1] = 0; columns[2] = 0; columns[3] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double4x2(double diagonal) : double4x2((double2)diagonal) { }
-#endif
-    double4x2(double2 v) { columns[0] = (double2){v.x,0}; columns[1] = (double2){0,v.y}; columns[2] = 0; columns[3] = 0; }
-    double4x2(double2 c0, double2 c1, double2 c2, double2 c3) { columns[0] = c0; columns[1] = c1; columns[2] = c2; columns[3] = c3; }
-    double4x2(::simd_double4x2 m) : ::simd_double4x2(m) { }
-  };
-  
-  struct double2x3 : ::simd_double2x3 {
-    double2x3() { columns[0] = 0; columns[1] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double2x3(double diagonal) : double2x3((double2)diagonal) { }
-#endif
-    double2x3(double2 v) { columns[0] = (double3){v.x,0,0}; columns[1] = (double3){0,v.y,0}; }
-    double2x3(double3 c0, double3 c1) { columns[0] = c0; columns[1] = c1; }
-    double2x3(::simd_double2x3 m) : ::simd_double2x3(m) { }
-  };
-  
-  struct double3x3 : ::simd_double3x3 {
-    double3x3() { columns[0] = 0; columns[1] = 0; columns[2] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double3x3(double diagonal) : double3x3((double3)diagonal) { }
-#endif
-    double3x3(double3 v) { columns[0] = (double3){v.x,0,0}; columns[1] = (double3){0,v.y,0}; columns[2] = (double3){0,0,v.z}; }
-    double3x3(double3 c0, double3 c1, double3 c2) { columns[0] = c0; columns[1] = c1; columns[2] = c2; }
-    double3x3(::simd_double3x3 m) : ::simd_double3x3(m) { }
-#if defined SIMD_MATRIX_HEADER
-    double3x3(::simd_quatd q) : ::simd_double3x3(::simd_matrix3x3(q)) { }
-#endif
-  };
-  
-  struct double4x3 : ::simd_double4x3 {
-    double4x3() { columns[0] = 0; columns[1] = 0; columns[2] = 0; columns[3] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double4x3(double diagonal) : double4x3((double3)diagonal) { }
-#endif
-    double4x3(double3 v) { columns[0] = (double3){v.x,0,0}; columns[1] = (double3){0,v.y,0}; columns[2] = (double3){0,0,v.z}; columns[3] = 0; }
-    double4x3(double3 c0, double3 c1, double3 c2, double3 c3) { columns[0] = c0; columns[1] = c1; columns[2] = c2; columns[3] = c3; }
-    double4x3(::simd_double4x3 m) : ::simd_double4x3(m) { }
-  };
-  
-  struct double2x4 : ::simd_double2x4 {
-    double2x4() { columns[0] = 0; columns[1] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double2x4(double diagonal) : double2x4((double2)diagonal) { }
-#endif
-    double2x4(double2 v) { columns[0] = (double4){v.x,0,0,0}; columns[1] = (double4){0,v.y,0,0}; }
-    double2x4(double4 c0, double4 c1) { columns[0] = c0; columns[1] = c1; }
-    double2x4(::simd_double2x4 m) : ::simd_double2x4(m) { }
-  };
-  
-  struct double3x4 : ::simd_double3x4 {
-    double3x4() { columns[0] = 0; columns[1] = 0; columns[2] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double3x4(double diagonal) : double3x4((double3)diagonal) { }
-#endif
-    double3x4(double3 v) { columns[0] = (double4){v.x,0,0,0}; columns[1] = (double4){0,v.y,0,0}; columns[2] = (double4){0,0,v.z,0}; }
-    double3x4(double4 c0, double4 c1, double4 c2) { columns[0] = c0; columns[1] = c1; columns[2] = c2; }
-    double3x4(::simd_double3x4 m) : ::simd_double3x4(m) { }
-  };
-  
-  struct double4x4 : ::simd_double4x4 {
-    double4x4() { columns[0] = 0; columns[1] = 0; columns[2] = 0; columns[3] = 0; }
-#if __has_feature(cxx_delegating_constructors)
-    double4x4(double diagonal) : double4x4((double4)diagonal) { }
-#endif
-    double4x4(double4 v) { columns[0] = (double4){v.x,0,0,0}; columns[1] = (double4){0,v.y,0,0}; columns[2] = (double4){0,0,v.z,0}; columns[3] = (double4){0,0,0,v.w}; }
-    double4x4(double4 c0, double4 c1, double4 c2, double4 c3) { columns[0] = c0; columns[1] = c1; columns[2] = c2; columns[3] = c3; }
-    double4x4(::simd_double4x4 m) : ::simd_double4x4(m) { }
-#if defined SIMD_MATRIX_HEADER
-    double4x4(::simd_quatd q) : ::simd_double4x4(::simd_matrix4x4(q)) { }
-#endif
-  };
-}
-#endif /* __cplusplus */
-#endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */
-#endif /* SIMD_MATRIX_TYPES_HEADER */
\ No newline at end of file
diff --git a/lib/libc/include/x86_64-macos.10-none/simd/packed.h b/lib/libc/include/x86_64-macos.10-none/simd/packed.h
deleted file mode 100644
index dfdc1999994715bfcea532d6c07100f3fe8e08a3..0000000000000000000000000000000000000000
--- a/lib/libc/include/x86_64-macos.10-none/simd/packed.h
+++ /dev/null
@@ -1,1031 +0,0 @@
-/*! @header
- *  This header defines fixed size vector types with relaxed alignment. For 
- *  each vector type defined by  that is not a 1- or 3-
- *  element vector, there is a corresponding type defined by this header that
- *  requires only the alignment matching that of the underlying scalar type.
- *
- *  These types should be used to access buffers that may not be sufficiently
- *  aligned to allow them to be accessed using the "normal" simd vector types.
- *  As an example of this usage, suppose that you want to load a vector of
- *  four floats from an array of floats. The type simd_float4 has sixteen byte
- *  alignment, whereas an array of floats has only four byte alignment.
- *  Thus, naively casting a pointer into the array to (simd_float4 *) would 
- *  invoke undefined behavior, and likely produce an alignment fault at
- *  runtime. Instead, use the corresponding packed type to load from the array:
- *
- *  
- *  @textblock
- *  simd_float4 vector = *(packed_simd_float4 *)&array[i];
- *  // do something with vector ...
- *  @/textblock
- *  
- * - * It's important to note that the packed_ types are only needed to work with - * memory; once the data is loaded, we simply operate on it as usual using - * the simd_float4 type, as illustrated above. - * - * @copyright 2014-2017 Apple, Inc. All rights reserved. - * @unsorted */ - -#ifndef SIMD_PACKED_TYPES -#define SIMD_PACKED_TYPES - -# include -# if SIMD_COMPILER_HAS_REQUIRED_FEATURES -/*! @abstract A vector of two 8-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_char2. The alignment of this type is that of the underlying - * scalar element type, so you can use it to load or store from an array of - * that type. */ -typedef __attribute__((__ext_vector_type__(2),__aligned__(1))) char simd_packed_char2; - -/*! @abstract A vector of four 8-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_char4. The alignment of this type is that of the underlying - * scalar element type, so you can use it to load or store from an array of - * that type. */ -typedef __attribute__((__ext_vector_type__(4),__aligned__(1))) char simd_packed_char4; - -/*! @abstract A vector of eight 8-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ this type is also available as simd::packed_char8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(8),__aligned__(1))) char simd_packed_char8; - -/*! @abstract A vector of sixteen 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C++ this type is also available as simd::packed_char16. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(16),__aligned__(1))) char simd_packed_char16; - -/*! @abstract A vector of thirty-two 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C++ this type is also available as simd::packed_char32. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(32),__aligned__(1))) char simd_packed_char32; - -/*! @abstract A vector of sixty-four 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C++ this type is also available as simd::packed_char64. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(64),__aligned__(1))) char simd_packed_char64; - -/*! @abstract A vector of two 8-bit unsigned integers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_uchar2. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -typedef __attribute__((__ext_vector_type__(2),__aligned__(1))) unsigned char simd_packed_uchar2; - -/*! @abstract A vector of four 8-bit unsigned integers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_uchar4. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -typedef __attribute__((__ext_vector_type__(4),__aligned__(1))) unsigned char simd_packed_uchar4; - -/*! @abstract A vector of eight 8-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_uchar8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(8),__aligned__(1))) unsigned char simd_packed_uchar8; - -/*! @abstract A vector of sixteen 8-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_uchar16. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(16),__aligned__(1))) unsigned char simd_packed_uchar16; - -/*! @abstract A vector of thirty-two 8-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_uchar32. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(32),__aligned__(1))) unsigned char simd_packed_uchar32; - -/*! @abstract A vector of sixty-four 8-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_uchar64. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(64),__aligned__(1))) unsigned char simd_packed_uchar64; - -/*! @abstract A vector of two 16-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_short2. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -typedef __attribute__((__ext_vector_type__(2),__aligned__(2))) short simd_packed_short2; - -/*! @abstract A vector of four 16-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_short4. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -typedef __attribute__((__ext_vector_type__(4),__aligned__(2))) short simd_packed_short4; - -/*! @abstract A vector of eight 16-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C++ this type is also available as simd::packed_short8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(8),__aligned__(2))) short simd_packed_short8; - -/*! @abstract A vector of sixteen 16-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C++ this type is also available as simd::packed_short16. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(16),__aligned__(2))) short simd_packed_short16; - -/*! @abstract A vector of thirty-two 16-bit signed (twos-complement) - * integers with relaxed alignment. - * @description In C++ this type is also available as simd::packed_short32. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(32),__aligned__(2))) short simd_packed_short32; - -/*! @abstract A vector of two 16-bit unsigned integers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_ushort2. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -typedef __attribute__((__ext_vector_type__(2),__aligned__(2))) unsigned short simd_packed_ushort2; - -/*! @abstract A vector of four 16-bit unsigned integers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_ushort4. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -typedef __attribute__((__ext_vector_type__(4),__aligned__(2))) unsigned short simd_packed_ushort4; - -/*! @abstract A vector of eight 16-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_ushort8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(8),__aligned__(2))) unsigned short simd_packed_ushort8; - -/*! @abstract A vector of sixteen 16-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as - * simd::packed_ushort16. This type is not available in Metal. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(16),__aligned__(2))) unsigned short simd_packed_ushort16; - -/*! @abstract A vector of thirty-two 16-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as - * simd::packed_ushort32. This type is not available in Metal. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(32),__aligned__(2))) unsigned short simd_packed_ushort32; - -/*! @abstract A vector of two 32-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_int2. The alignment of this type is that of the underlying - * scalar element type, so you can use it to load or store from an array of - * that type. */ -typedef __attribute__((__ext_vector_type__(2),__aligned__(4))) int simd_packed_int2; - -/*! @abstract A vector of four 32-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_int4. The alignment of this type is that of the underlying - * scalar element type, so you can use it to load or store from an array of - * that type. */ -typedef __attribute__((__ext_vector_type__(4),__aligned__(4))) int simd_packed_int4; - -/*! @abstract A vector of eight 32-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C++ this type is also available as simd::packed_int8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(8),__aligned__(4))) int simd_packed_int8; - -/*! @abstract A vector of sixteen 32-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C++ this type is also available as simd::packed_int16. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(16),__aligned__(4))) int simd_packed_int16; - -/*! @abstract A vector of two 32-bit unsigned integers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_uint2. The alignment of this type is that of the underlying - * scalar element type, so you can use it to load or store from an array of - * that type. */ -typedef __attribute__((__ext_vector_type__(2),__aligned__(4))) unsigned int simd_packed_uint2; - -/*! @abstract A vector of four 32-bit unsigned integers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_uint4. The alignment of this type is that of the underlying - * scalar element type, so you can use it to load or store from an array of - * that type. */ -typedef __attribute__((__ext_vector_type__(4),__aligned__(4))) unsigned int simd_packed_uint4; - -/*! @abstract A vector of eight 32-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_uint8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(8),__aligned__(4))) unsigned int simd_packed_uint8; - -/*! @abstract A vector of sixteen 32-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_uint16. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(16),__aligned__(4))) unsigned int simd_packed_uint16; - -/*! @abstract A vector of two 32-bit floating-point numbers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_float2. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -typedef __attribute__((__ext_vector_type__(2),__aligned__(4))) float simd_packed_float2; - -/*! @abstract A vector of four 32-bit floating-point numbers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_float4. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -typedef __attribute__((__ext_vector_type__(4),__aligned__(4))) float simd_packed_float4; - -/*! @abstract A vector of eight 32-bit floating-point numbers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_float8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(8),__aligned__(4))) float simd_packed_float8; - -/*! @abstract A vector of sixteen 32-bit floating-point numbers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_float16. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -typedef __attribute__((__ext_vector_type__(16),__aligned__(4))) float simd_packed_float16; - -/*! @abstract A vector of two 64-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_long2. The alignment of this type is that of the underlying - * scalar element type, so you can use it to load or store from an array of - * that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(2),__aligned__(8))) simd_long1 simd_packed_long2; -#else -typedef __attribute__((__ext_vector_type__(2),__aligned__(4))) simd_long1 simd_packed_long2; -#endif - -/*! @abstract A vector of four 64-bit signed (twos-complement) integers with - * relaxed alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_long4. The alignment of this type is that of the underlying - * scalar element type, so you can use it to load or store from an array of - * that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(4),__aligned__(8))) simd_long1 simd_packed_long4; -#else -typedef __attribute__((__ext_vector_type__(4),__aligned__(4))) simd_long1 simd_packed_long4; -#endif - -/*! @abstract A vector of eight 64-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C++ this type is also available as simd::packed_long8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(8),__aligned__(8))) simd_long1 simd_packed_long8; -#else -typedef __attribute__((__ext_vector_type__(8),__aligned__(4))) simd_long1 simd_packed_long8; -#endif - -/*! @abstract A vector of two 64-bit unsigned integers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_ulong2. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(2),__aligned__(8))) simd_ulong1 simd_packed_ulong2; -#else -typedef __attribute__((__ext_vector_type__(2),__aligned__(4))) simd_ulong1 simd_packed_ulong2; -#endif - -/*! @abstract A vector of four 64-bit unsigned integers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_ulong4. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(4),__aligned__(8))) simd_ulong1 simd_packed_ulong4; -#else -typedef __attribute__((__ext_vector_type__(4),__aligned__(4))) simd_ulong1 simd_packed_ulong4; -#endif - -/*! @abstract A vector of eight 64-bit unsigned integers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_ulong8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(8),__aligned__(8))) simd_ulong1 simd_packed_ulong8; -#else -typedef __attribute__((__ext_vector_type__(8),__aligned__(4))) simd_ulong1 simd_packed_ulong8; -#endif - -/*! @abstract A vector of two 64-bit floating-point numbers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_double2. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(2),__aligned__(8))) double simd_packed_double2; -#else -typedef __attribute__((__ext_vector_type__(2),__aligned__(4))) double simd_packed_double2; -#endif - -/*! @abstract A vector of four 64-bit floating-point numbers with relaxed - * alignment. - * @description In C++ and Metal, this type is also available as - * simd::packed_double4. The alignment of this type is that of the - * underlying scalar element type, so you can use it to load or store from - * an array of that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(4),__aligned__(8))) double simd_packed_double4; -#else -typedef __attribute__((__ext_vector_type__(4),__aligned__(4))) double simd_packed_double4; -#endif - -/*! @abstract A vector of eight 64-bit floating-point numbers with relaxed - * alignment. - * @description In C++ this type is also available as simd::packed_double8. - * This type is not available in Metal. The alignment of this type is only - * that of the underlying scalar element type, so you can use it to load or - * store from an array of that type. */ -#if defined __LP64__ -typedef __attribute__((__ext_vector_type__(8),__aligned__(8))) double simd_packed_double8; -#else -typedef __attribute__((__ext_vector_type__(8),__aligned__(4))) double simd_packed_double8; -#endif - -/* MARK: C++ vector types */ -#if defined __cplusplus -namespace simd { - namespace packed { - /*! @abstract A vector of two 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_char2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_char2 char2; - - /*! @abstract A vector of four 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_char4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_char4 char4; - - /*! @abstract A vector of eight 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_char8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_char8 char8; - - /*! @abstract A vector of sixteen 8-bit signed (twos-complement) - * integers with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_char16. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_char16 char16; - - /*! @abstract A vector of thirty-two 8-bit signed (twos-complement) - * integers with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_char32. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_char32 char32; - - /*! @abstract A vector of sixty-four 8-bit signed (twos-complement) - * integers with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_char64. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_char64 char64; - - /*! @abstract A vector of two 8-bit unsigned integers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_uchar2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_uchar2 uchar2; - - /*! @abstract A vector of four 8-bit unsigned integers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_uchar4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_uchar4 uchar4; - - /*! @abstract A vector of eight 8-bit unsigned integers with relaxed - * alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_uchar8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_uchar8 uchar8; - - /*! @abstract A vector of sixteen 8-bit unsigned integers with relaxed - * alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_uchar16. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_uchar16 uchar16; - - /*! @abstract A vector of thirty-two 8-bit unsigned integers with - * relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_uchar32. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_uchar32 uchar32; - - /*! @abstract A vector of sixty-four 8-bit unsigned integers with - * relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_uchar64. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_uchar64 uchar64; - - /*! @abstract A vector of two 16-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_short2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_short2 short2; - - /*! @abstract A vector of four 16-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_short4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_short4 short4; - - /*! @abstract A vector of eight 16-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_short8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_short8 short8; - - /*! @abstract A vector of sixteen 16-bit signed (twos-complement) - * integers with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_short16. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_short16 short16; - - /*! @abstract A vector of thirty-two 16-bit signed (twos-complement) - * integers with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_short32. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_short32 short32; - - /*! @abstract A vector of two 16-bit unsigned integers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_ushort2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_ushort2 ushort2; - - /*! @abstract A vector of four 16-bit unsigned integers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_ushort4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_ushort4 ushort4; - - /*! @abstract A vector of eight 16-bit unsigned integers with relaxed - * alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_ushort8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_ushort8 ushort8; - - /*! @abstract A vector of sixteen 16-bit unsigned integers with relaxed - * alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_ushort16. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_ushort16 ushort16; - - /*! @abstract A vector of thirty-two 16-bit unsigned integers with - * relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_ushort32. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_ushort32 ushort32; - - /*! @abstract A vector of two 32-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_int2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_int2 int2; - - /*! @abstract A vector of four 32-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_int4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_int4 int4; - - /*! @abstract A vector of eight 32-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_int8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_int8 int8; - - /*! @abstract A vector of sixteen 32-bit signed (twos-complement) - * integers with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_int16. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_int16 int16; - - /*! @abstract A vector of two 32-bit unsigned integers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_uint2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_uint2 uint2; - - /*! @abstract A vector of four 32-bit unsigned integers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_uint4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_uint4 uint4; - - /*! @abstract A vector of eight 32-bit unsigned integers with relaxed - * alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_uint8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_uint8 uint8; - - /*! @abstract A vector of sixteen 32-bit unsigned integers with relaxed - * alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_uint16. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_uint16 uint16; - - /*! @abstract A vector of two 32-bit floating-point numbers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_float2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_float2 float2; - - /*! @abstract A vector of four 32-bit floating-point numbers with - * relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_float4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_float4 float4; - - /*! @abstract A vector of eight 32-bit floating-point numbers with - * relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_float8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_float8 float8; - - /*! @abstract A vector of sixteen 32-bit floating-point numbers with - * relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_float16. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_float16 float16; - - /*! @abstract A vector of two 64-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_long2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_long2 long2; - - /*! @abstract A vector of four 64-bit signed (twos-complement) integers - * with relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_long4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_long4 long4; - - /*! @abstract A vector of eight 64-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_long8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_long8 long8; - - /*! @abstract A vector of two 64-bit unsigned integers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_ulong2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_ulong2 ulong2; - - /*! @abstract A vector of four 64-bit unsigned integers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_ulong4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_ulong4 ulong4; - - /*! @abstract A vector of eight 64-bit unsigned integers with relaxed - * alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_ulong8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_ulong8 ulong8; - - /*! @abstract A vector of two 64-bit floating-point numbers with relaxed - * alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_double2. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_double2 double2; - - /*! @abstract A vector of four 64-bit floating-point numbers with - * relaxed alignment. - * @description In C or Objective-C, this type is available as - * simd_packed_double4. The alignment of this type is only that of the - * underlying scalar element type, so you can use it to load or store - * from an array of that type. */ -typedef ::simd_packed_double4 double4; - - /*! @abstract A vector of eight 64-bit floating-point numbers with - * relaxed alignment. - * @description This type is not available in Metal. In C or - * Objective-C, this type is available as simd_packed_double8. The - * alignment of this type is only that of the underlying scalar element - * type, so you can use it to load or store from an array of that type. */ -typedef ::simd_packed_double8 double8; - - } /* namespace simd::packed:: */ -} /* namespace simd:: */ -#endif /* __cplusplus */ - -/* MARK: Deprecated vector types */ -/*! @group Deprecated vector types - * @discussion These are the original types used by earlier versions of the - * simd library; they are provided here for compatability with existing source - * files. Use the new ("simd_"-prefixed) types for future development. */ -/*! @abstract A vector of two 8-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_char2 - * or simd::packed_char2 instead. */ -typedef simd_packed_char2 packed_char2; - -/*! @abstract A vector of four 8-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_char4 - * or simd::packed_char4 instead. */ -typedef simd_packed_char4 packed_char4; - -/*! @abstract A vector of eight 8-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_char8 - * or simd::packed_char8 instead. */ -typedef simd_packed_char8 packed_char8; - -/*! @abstract A vector of sixteen 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_char16 - * or simd::packed_char16 instead. */ -typedef simd_packed_char16 packed_char16; - -/*! @abstract A vector of thirty-two 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_char32 - * or simd::packed_char32 instead. */ -typedef simd_packed_char32 packed_char32; - -/*! @abstract A vector of sixty-four 8-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_char64 - * or simd::packed_char64 instead. */ -typedef simd_packed_char64 packed_char64; - -/*! @abstract A vector of two 8-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uchar2 - * or simd::packed_uchar2 instead. */ -typedef simd_packed_uchar2 packed_uchar2; - -/*! @abstract A vector of four 8-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uchar4 - * or simd::packed_uchar4 instead. */ -typedef simd_packed_uchar4 packed_uchar4; - -/*! @abstract A vector of eight 8-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uchar8 - * or simd::packed_uchar8 instead. */ -typedef simd_packed_uchar8 packed_uchar8; - -/*! @abstract A vector of sixteen 8-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uchar16 - * or simd::packed_uchar16 instead. */ -typedef simd_packed_uchar16 packed_uchar16; - -/*! @abstract A vector of thirty-two 8-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uchar32 - * or simd::packed_uchar32 instead. */ -typedef simd_packed_uchar32 packed_uchar32; - -/*! @abstract A vector of sixty-four 8-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uchar64 - * or simd::packed_uchar64 instead. */ -typedef simd_packed_uchar64 packed_uchar64; - -/*! @abstract A vector of two 16-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_short2 - * or simd::packed_short2 instead. */ -typedef simd_packed_short2 packed_short2; - -/*! @abstract A vector of four 16-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_short4 - * or simd::packed_short4 instead. */ -typedef simd_packed_short4 packed_short4; - -/*! @abstract A vector of eight 16-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_short8 - * or simd::packed_short8 instead. */ -typedef simd_packed_short8 packed_short8; - -/*! @abstract A vector of sixteen 16-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_short16 - * or simd::packed_short16 instead. */ -typedef simd_packed_short16 packed_short16; - -/*! @abstract A vector of thirty-two 16-bit signed (twos-complement) - * integers with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_short32 - * or simd::packed_short32 instead. */ -typedef simd_packed_short32 packed_short32; - -/*! @abstract A vector of two 16-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_ushort2 - * or simd::packed_ushort2 instead. */ -typedef simd_packed_ushort2 packed_ushort2; - -/*! @abstract A vector of four 16-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_ushort4 - * or simd::packed_ushort4 instead. */ -typedef simd_packed_ushort4 packed_ushort4; - -/*! @abstract A vector of eight 16-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_ushort8 - * or simd::packed_ushort8 instead. */ -typedef simd_packed_ushort8 packed_ushort8; - -/*! @abstract A vector of sixteen 16-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use - * simd_packed_ushort16 or simd::packed_ushort16 instead. */ -typedef simd_packed_ushort16 packed_ushort16; - -/*! @abstract A vector of thirty-two 16-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use - * simd_packed_ushort32 or simd::packed_ushort32 instead. */ -typedef simd_packed_ushort32 packed_ushort32; - -/*! @abstract A vector of two 32-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_int2 or - * simd::packed_int2 instead. */ -typedef simd_packed_int2 packed_int2; - -/*! @abstract A vector of four 32-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_int4 or - * simd::packed_int4 instead. */ -typedef simd_packed_int4 packed_int4; - -/*! @abstract A vector of eight 32-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_int8 or - * simd::packed_int8 instead. */ -typedef simd_packed_int8 packed_int8; - -/*! @abstract A vector of sixteen 32-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_int16 - * or simd::packed_int16 instead. */ -typedef simd_packed_int16 packed_int16; - -/*! @abstract A vector of two 32-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uint2 - * or simd::packed_uint2 instead. */ -typedef simd_packed_uint2 packed_uint2; - -/*! @abstract A vector of four 32-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uint4 - * or simd::packed_uint4 instead. */ -typedef simd_packed_uint4 packed_uint4; - -/*! @abstract A vector of eight 32-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uint8 - * or simd::packed_uint8 instead. */ -typedef simd_packed_uint8 packed_uint8; - -/*! @abstract A vector of sixteen 32-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_uint16 - * or simd::packed_uint16 instead. */ -typedef simd_packed_uint16 packed_uint16; - -/*! @abstract A vector of two 32-bit floating-point numbers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_float2 - * or simd::packed_float2 instead. */ -typedef simd_packed_float2 packed_float2; - -/*! @abstract A vector of four 32-bit floating-point numbers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_float4 - * or simd::packed_float4 instead. */ -typedef simd_packed_float4 packed_float4; - -/*! @abstract A vector of eight 32-bit floating-point numbers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_float8 - * or simd::packed_float8 instead. */ -typedef simd_packed_float8 packed_float8; - -/*! @abstract A vector of sixteen 32-bit floating-point numbers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_float16 - * or simd::packed_float16 instead. */ -typedef simd_packed_float16 packed_float16; - -/*! @abstract A vector of two 64-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_long2 - * or simd::packed_long2 instead. */ -typedef simd_packed_long2 packed_long2; - -/*! @abstract A vector of four 64-bit signed (twos-complement) integers with - * relaxed alignment. - * @description This type is deprecated; you should use simd_packed_long4 - * or simd::packed_long4 instead. */ -typedef simd_packed_long4 packed_long4; - -/*! @abstract A vector of eight 64-bit signed (twos-complement) integers - * with relaxed alignment. - * @description This type is deprecated; you should use simd_packed_long8 - * or simd::packed_long8 instead. */ -typedef simd_packed_long8 packed_long8; - -/*! @abstract A vector of two 64-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_ulong2 - * or simd::packed_ulong2 instead. */ -typedef simd_packed_ulong2 packed_ulong2; - -/*! @abstract A vector of four 64-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_ulong4 - * or simd::packed_ulong4 instead. */ -typedef simd_packed_ulong4 packed_ulong4; - -/*! @abstract A vector of eight 64-bit unsigned integers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_ulong8 - * or simd::packed_ulong8 instead. */ -typedef simd_packed_ulong8 packed_ulong8; - -/*! @abstract A vector of two 64-bit floating-point numbers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_double2 - * or simd::packed_double2 instead. */ -typedef simd_packed_double2 packed_double2; - -/*! @abstract A vector of four 64-bit floating-point numbers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_double4 - * or simd::packed_double4 instead. */ -typedef simd_packed_double4 packed_double4; - -/*! @abstract A vector of eight 64-bit floating-point numbers with relaxed - * alignment. - * @description This type is deprecated; you should use simd_packed_double8 - * or simd::packed_double8 instead. */ -typedef simd_packed_double8 packed_double8; - -# endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */ -#endif \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/simd/quaternion.h b/lib/libc/include/x86_64-macos.10-none/simd/quaternion.h deleted file mode 100644 index 32158d7e8ddbb726c9a8979103a0a5caa7e0db33..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/simd/quaternion.h +++ /dev/null @@ -1,1192 +0,0 @@ -/*! @header - * This header defines functions for constructing and using quaternions. - * @copyright 2015-2016 Apple, Inc. All rights reserved. - * @unsorted */ - -#ifndef SIMD_QUATERNIONS -#define SIMD_QUATERNIONS - -#include -#if SIMD_COMPILER_HAS_REQUIRED_FEATURES -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* MARK: - C and Objective-C float interfaces */ - -/*! @abstract Constructs a quaternion from four scalar values. - * - * @param ix The first component of the imaginary (vector) part. - * @param iy The second component of the imaginary (vector) part. - * @param iz The third component of the imaginary (vector) part. - * - * @param r The real (scalar) part. */ -static inline SIMD_CFUNC simd_quatf simd_quaternion(float ix, float iy, float iz, float r) { - return (simd_quatf){ { ix, iy, iz, r } }; -} - -/*! @abstract Constructs a quaternion from an array of four scalars. - * - * @discussion Note that the imaginary part of the quaternion comes from - * array elements 0, 1, and 2, and the real part comes from element 3. */ -static inline SIMD_NONCONST simd_quatf simd_quaternion(const float xyzr[4]) { - return (simd_quatf){ *(const simd_packed_float4 *)xyzr }; -} - -/*! @abstract Constructs a quaternion from a four-element vector. - * - * @discussion Note that the imaginary (vector) part of the quaternion comes - * from lanes 0, 1, and 2 of the vector, and the real (scalar) part comes from - * lane 3. */ -static inline SIMD_CFUNC simd_quatf simd_quaternion(simd_float4 xyzr) { - return (simd_quatf){ xyzr }; -} - -/*! @abstract Constructs a quaternion that rotates by `angle` radians about - * `axis`. */ -static inline SIMD_CFUNC simd_quatf simd_quaternion(float angle, simd_float3 axis); - -/*! @abstract Construct a quaternion that rotates from one vector to another. - * - * @param from A normalized three-element vector. - * @param to A normalized three-element vector. - * - * @discussion The rotation axis is `simd_cross(from, to)`. If `from` and - * `to` point in opposite directions (to within machine precision), an - * arbitrary rotation axis is chosen, and the angle is pi radians. */ -static SIMD_NOINLINE simd_quatf simd_quaternion(simd_float3 from, simd_float3 to); - -/*! @abstract Construct a quaternion from a 3x3 rotation `matrix`. - * - * @discussion If `matrix` is not orthogonal with determinant 1, the result - * is undefined. */ -static SIMD_NOINLINE simd_quatf simd_quaternion(simd_float3x3 matrix); - -/*! @abstract Construct a quaternion from a 4x4 rotation `matrix`. - * - * @discussion The last row and column of the matrix are ignored. This - * function is equivalent to calling simd_quaternion with the upper-left 3x3 - * submatrix . */ -static SIMD_NOINLINE simd_quatf simd_quaternion(simd_float4x4 matrix); - -/*! @abstract The real (scalar) part of the quaternion `q`. */ -static inline SIMD_CFUNC float simd_real(simd_quatf q) { - return q.vector.w; -} - -/*! @abstract The imaginary (vector) part of the quaternion `q`. */ -static inline SIMD_CFUNC simd_float3 simd_imag(simd_quatf q) { - return q.vector.xyz; -} - -/*! @abstract The angle (in radians) of rotation represented by `q`. */ -static inline SIMD_CFUNC float simd_angle(simd_quatf q); - -/*! @abstract The normalized axis (a 3-element vector) around which the - * action of the quaternion `q` rotates. */ -static inline SIMD_CFUNC simd_float3 simd_axis(simd_quatf q); - -/*! @abstract The sum of the quaternions `p` and `q`. */ -static inline SIMD_CFUNC simd_quatf simd_add(simd_quatf p, simd_quatf q); - -/*! @abstract The difference of the quaternions `p` and `q`. */ -static inline SIMD_CFUNC simd_quatf simd_sub(simd_quatf p, simd_quatf q); - -/*! @abstract The product of the quaternions `p` and `q`. */ -static inline SIMD_CFUNC simd_quatf simd_mul(simd_quatf p, simd_quatf q); - -/*! @abstract The quaternion `q` scaled by the real value `a`. */ -static inline SIMD_CFUNC simd_quatf simd_mul(simd_quatf q, float a); - -/*! @abstract The quaternion `q` scaled by the real value `a`. */ -static inline SIMD_CFUNC simd_quatf simd_mul(float a, simd_quatf q); - -/*! @abstract The conjugate of the quaternion `q`. */ -static inline SIMD_CFUNC simd_quatf simd_conjugate(simd_quatf q); - -/*! @abstract The (multiplicative) inverse of the quaternion `q`. */ -static inline SIMD_CFUNC simd_quatf simd_inverse(simd_quatf q); - -/*! @abstract The negation (additive inverse) of the quaternion `q`. */ -static inline SIMD_CFUNC simd_quatf simd_negate(simd_quatf q); - -/*! @abstract The dot product of the quaternions `p` and `q` interpreted as - * four-dimensional vectors. */ -static inline SIMD_CFUNC float simd_dot(simd_quatf p, simd_quatf q); - -/*! @abstract The length of the quaternion `q`. */ -static inline SIMD_CFUNC float simd_length(simd_quatf q); - -/*! @abstract The unit quaternion obtained by normalizing `q`. */ -static inline SIMD_CFUNC simd_quatf simd_normalize(simd_quatf q); - -/*! @abstract Rotates the vector `v` by the quaternion `q`. */ -static inline SIMD_CFUNC simd_float3 simd_act(simd_quatf q, simd_float3 v); - -/*! @abstract Logarithm of the quaternion `q`. - * @discussion Do not call this function directly; use `log(q)` instead. - * - * We can write a quaternion `q` in the form: `r(cos(t) + sin(t)v)` where - * `r` is the length of `q`, `t` is an angle, and `v` is a unit 3-vector. - * The logarithm of `q` is `log(r) + tv`, just like the logarithm of the - * complex number `r*(cos(t) + i sin(t))` is `log(r) + it`. - * - * Note that this function is not robust against poorly-scaled non-unit - * quaternions, because it is primarily used for spline interpolation of - * unit quaternions. If you need to compute a robust logarithm of general - * quaternions, you can use the following approach: - * - * scale = simd_reduce_max(simd_abs(q.vector)); - * logq = log(simd_recip(scale)*q); - * logq.real += log(scale); - * return logq; */ -static SIMD_NOINLINE simd_quatf __tg_log(simd_quatf q); - -/*! @abstract Inverse of `log( )`; the exponential map on quaternions. - * @discussion Do not call this function directly; use `exp(q)` instead. */ -static SIMD_NOINLINE simd_quatf __tg_exp(simd_quatf q); - -/*! @abstract Spherical linear interpolation along the shortest arc between - * quaternions `q0` and `q1`. */ -static SIMD_NOINLINE simd_quatf simd_slerp(simd_quatf q0, simd_quatf q1, float t); - -/*! @abstract Spherical linear interpolation along the longest arc between - * quaternions `q0` and `q1`. */ -static SIMD_NOINLINE simd_quatf simd_slerp_longest(simd_quatf q0, simd_quatf q1, float t); - -/*! @abstract Interpolate between quaternions along a spherical cubic spline. - * - * @discussion The function interpolates between q1 and q2. q0 is the left - * endpoint of the previous interval, and q3 is the right endpoint of the next - * interval. Use this function to smoothly interpolate between a sequence of - * rotations. */ -static SIMD_NOINLINE simd_quatf simd_spline(simd_quatf q0, simd_quatf q1, simd_quatf q2, simd_quatf q3, float t); - -/*! @abstract Spherical cubic Bezier interpolation between quaternions. - * - * @discussion The function treats q0 ... q3 as control points and uses slerp - * in place of lerp in the De Castlejeau algorithm. The endpoints of - * interpolation are thus q0 and q3, and the curve will not generally pass - * through q1 or q2. Note that the convex hull property of "standard" Bezier - * curve does not hold on the sphere. */ -static SIMD_NOINLINE simd_quatf simd_bezier(simd_quatf q0, simd_quatf q1, simd_quatf q2, simd_quatf q3, float t); - -#ifdef __cplusplus -} /* extern "C" */ -/* MARK: - C++ float interfaces */ - -namespace simd { - struct quatf : ::simd_quatf { - /*! @abstract The identity quaternion. */ - quatf( ) : ::simd_quatf(::simd_quaternion((float4){0,0,0,1})) { } - - /*! @abstract Constructs a C++ quaternion from a C quaternion. */ - quatf(::simd_quatf q) : ::simd_quatf(q) { } - - /*! @abstract Constructs a quaternion from components. */ - quatf(float ix, float iy, float iz, float r) : ::simd_quatf(::simd_quaternion(ix, iy, iz, r)) { } - - /*! @abstract Constructs a quaternion from an array of scalars. */ - quatf(const float xyzr[4]) : ::simd_quatf(::simd_quaternion(xyzr)) { } - - /*! @abstract Constructs a quaternion from a vector. */ - quatf(float4 xyzr) : ::simd_quatf(::simd_quaternion(xyzr)) { } - - /*! @abstract Quaternion representing rotation about `axis` by `angle` - * radians. */ - quatf(float angle, float3 axis) : ::simd_quatf(::simd_quaternion(angle, axis)) { } - - /*! @abstract Quaternion that rotates `from` into `to`. */ - quatf(float3 from, float3 to) : ::simd_quatf(::simd_quaternion(from, to)) { } - - /*! @abstract Constructs a quaternion from a rotation matrix. */ - quatf(::simd_float3x3 matrix) : ::simd_quatf(::simd_quaternion(matrix)) { } - - /*! @abstract Constructs a quaternion from a rotation matrix. */ - quatf(::simd_float4x4 matrix) : ::simd_quatf(::simd_quaternion(matrix)) { } - - /*! @abstract The real (scalar) part of the quaternion. */ - float real(void) const { return ::simd_real(*this); } - - /*! @abstract The imaginary (vector) part of the quaternion. */ - float3 imag(void) const { return ::simd_imag(*this); } - - /*! @abstract The angle the quaternion rotates by. */ - float angle(void) const { return ::simd_angle(*this); } - - /*! @abstract The axis the quaternion rotates about. */ - float3 axis(void) const { return ::simd_axis(*this); } - - /*! @abstract The length of the quaternion. */ - float length(void) const { return ::simd_length(*this); } - - /*! @abstract Act on the vector `v` by rotation. */ - float3 operator()(const ::simd_float3 v) const { return ::simd_act(*this, v); } - }; - - static SIMD_CPPFUNC quatf operator+(const ::simd_quatf p, const ::simd_quatf q) { return ::simd_add(p, q); } - static SIMD_CPPFUNC quatf operator-(const ::simd_quatf p, const ::simd_quatf q) { return ::simd_sub(p, q); } - static SIMD_CPPFUNC quatf operator-(const ::simd_quatf p) { return ::simd_negate(p); } - static SIMD_CPPFUNC quatf operator*(const float r, const ::simd_quatf p) { return ::simd_mul(r, p); } - static SIMD_CPPFUNC quatf operator*(const ::simd_quatf p, const float r) { return ::simd_mul(p, r); } - static SIMD_CPPFUNC quatf operator*(const ::simd_quatf p, const ::simd_quatf q) { return ::simd_mul(p, q); } - static SIMD_CPPFUNC quatf operator/(const ::simd_quatf p, const ::simd_quatf q) { return ::simd_mul(p, ::simd_inverse(q)); } - static SIMD_CPPFUNC quatf operator+=(quatf &p, const ::simd_quatf q) { return p = p+q; } - static SIMD_CPPFUNC quatf operator-=(quatf &p, const ::simd_quatf q) { return p = p-q; } - static SIMD_CPPFUNC quatf operator*=(quatf &p, const float r) { return p = p*r; } - static SIMD_CPPFUNC quatf operator*=(quatf &p, const ::simd_quatf q) { return p = p*q; } - static SIMD_CPPFUNC quatf operator/=(quatf &p, const ::simd_quatf q) { return p = p/q; } - - /*! @abstract The conjugate of the quaternion `q`. */ - static SIMD_CPPFUNC quatf conjugate(const ::simd_quatf p) { return ::simd_conjugate(p); } - - /*! @abstract The (multiplicative) inverse of the quaternion `q`. */ - static SIMD_CPPFUNC quatf inverse(const ::simd_quatf p) { return ::simd_inverse(p); } - - /*! @abstract The dot product of the quaternions `p` and `q` interpreted as - * four-dimensional vectors. */ - static SIMD_CPPFUNC float dot(const ::simd_quatf p, const ::simd_quatf q) { return ::simd_dot(p, q); } - - /*! @abstract The unit quaternion obtained by normalizing `q`. */ - static SIMD_CPPFUNC quatf normalize(const ::simd_quatf p) { return ::simd_normalize(p); } - - /*! @abstract logarithm of the quaternion `q`. */ - static SIMD_CPPFUNC quatf log(const ::simd_quatf q) { return ::__tg_log(q); } - - /*! @abstract exponential map of quaterion `q`. */ - static SIMD_CPPFUNC quatf exp(const ::simd_quatf q) { return ::__tg_exp(q); } - - /*! @abstract Spherical linear interpolation along the shortest arc between - * quaternions `q0` and `q1`. */ - static SIMD_CPPFUNC quatf slerp(const ::simd_quatf p0, const ::simd_quatf p1, float t) { return ::simd_slerp(p0, p1, t); } - - /*! @abstract Spherical linear interpolation along the longest arc between - * quaternions `q0` and `q1`. */ - static SIMD_CPPFUNC quatf slerp_longest(const ::simd_quatf p0, const ::simd_quatf p1, float t) { return ::simd_slerp_longest(p0, p1, t); } - - /*! @abstract Interpolate between quaternions along a spherical cubic spline. - * - * @discussion The function interpolates between q1 and q2. q0 is the left - * endpoint of the previous interval, and q3 is the right endpoint of the next - * interval. Use this function to smoothly interpolate between a sequence of - * rotations. */ - static SIMD_CPPFUNC quatf spline(const ::simd_quatf p0, const ::simd_quatf p1, const ::simd_quatf p2, const ::simd_quatf p3, float t) { return ::simd_spline(p0, p1, p2, p3, t); } - - /*! @abstract Spherical cubic Bezier interpolation between quaternions. - * - * @discussion The function treats q0 ... q3 as control points and uses slerp - * in place of lerp in the De Castlejeau algorithm. The endpoints of - * interpolation are thus q0 and q3, and the curve will not generally pass - * through q1 or q2. Note that the convex hull property of "standard" Bezier - * curve does not hold on the sphere. */ - static SIMD_CPPFUNC quatf bezier(const ::simd_quatf p0, const ::simd_quatf p1, const ::simd_quatf p2, const ::simd_quatf p3, float t) { return ::simd_bezier(p0, p1, p2, p3, t); } -} - -extern "C" { -#endif /* __cplusplus */ - -/* MARK: - float implementations */ - -#include -#include - -/* tg_promote is implementation gobbledygook that enables the compile-time - * dispatching in tgmath.h to work its magic. */ -static simd_quatf __attribute__((__overloadable__)) __tg_promote(simd_quatf); - -/*! @abstract Constructs a quaternion from imaginary and real parts. - * @discussion This function is hidden behind an underscore to avoid confusion - * with the angle-axis constructor. */ -static inline SIMD_CFUNC simd_quatf _simd_quaternion(simd_float3 imag, float real) { - return simd_quaternion(simd_make_float4(imag, real)); -} - -static inline SIMD_CFUNC simd_quatf simd_quaternion(float angle, simd_float3 axis) { - return _simd_quaternion(sin(angle/2) * axis, cos(angle/2)); -} - -static inline SIMD_CFUNC float simd_angle(simd_quatf q) { - return 2*atan2(simd_length(q.vector.xyz), q.vector.w); -} - -static inline SIMD_CFUNC simd_float3 simd_axis(simd_quatf q) { - return simd_normalize(q.vector.xyz); -} - -static inline SIMD_CFUNC simd_quatf simd_add(simd_quatf p, simd_quatf q) { - return simd_quaternion(p.vector + q.vector); -} - -static inline SIMD_CFUNC simd_quatf simd_sub(simd_quatf p, simd_quatf q) { - return simd_quaternion(p.vector - q.vector); -} - -static inline SIMD_CFUNC simd_quatf simd_mul(simd_quatf p, simd_quatf q) { - #pragma STDC FP_CONTRACT ON - return simd_quaternion((p.vector.x * __builtin_shufflevector(q.vector, -q.vector, 3,6,1,4) + - p.vector.y * __builtin_shufflevector(q.vector, -q.vector, 2,3,4,5)) + - (p.vector.z * __builtin_shufflevector(q.vector, -q.vector, 5,0,3,6) + - p.vector.w * q.vector)); -} - -static inline SIMD_CFUNC simd_quatf simd_mul(simd_quatf q, float a) { - return simd_quaternion(a * q.vector); -} - -static inline SIMD_CFUNC simd_quatf simd_mul(float a, simd_quatf q) { - return simd_mul(q,a); -} - -static inline SIMD_CFUNC simd_quatf simd_conjugate(simd_quatf q) { - return simd_quaternion(q.vector * (simd_float4){-1,-1,-1, 1}); -} - -static inline SIMD_CFUNC simd_quatf simd_inverse(simd_quatf q) { - return simd_quaternion(simd_conjugate(q).vector * simd_recip(simd_length_squared(q.vector))); -} - -static inline SIMD_CFUNC simd_quatf simd_negate(simd_quatf q) { - return simd_quaternion(-q.vector); -} - -static inline SIMD_CFUNC float simd_dot(simd_quatf p, simd_quatf q) { - return simd_dot(p.vector, q.vector); -} - -static inline SIMD_CFUNC float simd_length(simd_quatf q) { - return simd_length(q.vector); -} - -static inline SIMD_CFUNC simd_quatf simd_normalize(simd_quatf q) { - float length_squared = simd_length_squared(q.vector); - if (length_squared == 0) { - return simd_quaternion((simd_float4){0,0,0,1}); - } - return simd_quaternion(q.vector * simd_rsqrt(length_squared)); -} - -#if defined __arm__ || defined __arm64__ -/*! @abstract Multiplies the vector `v` by the quaternion `q`. - * - * @discussion This IS NOT the action of `q` on `v` (i.e. this is not rotation - * by `q`. That operation is provided by `simd_act(q, v)`. This function is an - * implementation detail and you should not call it directly. It may be - * removed or modified in future versions of the simd module. */ -static inline SIMD_CFUNC simd_quatf _simd_mul_vq(simd_float3 v, simd_quatf q) { - #pragma STDC FP_CONTRACT ON - return simd_quaternion(v.x * __builtin_shufflevector(q.vector, -q.vector, 3,6,1,4) + - v.y * __builtin_shufflevector(q.vector, -q.vector, 2,3,4,5) + - v.z * __builtin_shufflevector(q.vector, -q.vector, 5,0,3,6)); -} -#endif - -static inline SIMD_CFUNC simd_float3 simd_act(simd_quatf q, simd_float3 v) { -#if defined __arm__ || defined __arm64__ - return simd_mul(q, _simd_mul_vq(v, simd_conjugate(q))).vector.xyz; -#else - #pragma STDC FP_CONTRACT ON - simd_float3 t = 2*simd_cross(simd_imag(q),v); - return v + simd_real(q)*t + simd_cross(simd_imag(q), t); -#endif -} - -static SIMD_NOINLINE simd_quatf __tg_log(simd_quatf q) { - float real = __tg_log(simd_length_squared(q.vector))/2; - if (simd_equal(simd_imag(q), 0)) return _simd_quaternion(0, real); - simd_float3 imag = __tg_acos(simd_real(q)/simd_length(q)) * simd_normalize(simd_imag(q)); - return _simd_quaternion(imag, real); -} - -static SIMD_NOINLINE simd_quatf __tg_exp(simd_quatf q) { - // angle is actually *twice* the angle of the rotation corresponding to - // the resulting quaternion, which is why we don't simply use the (angle, - // axis) constructor to generate `unit`. - float angle = simd_length(simd_imag(q)); - if (angle == 0) return _simd_quaternion(0, exp(simd_real(q))); - simd_float3 axis = simd_normalize(simd_imag(q)); - simd_quatf unit = _simd_quaternion(sin(angle)*axis, cosf(angle)); - return simd_mul(exp(simd_real(q)), unit); -} - -/*! @abstract Implementation detail of the `simd_quaternion(from, to)` - * initializer. - * - * @discussion Computes the quaternion rotation `from` to `to` if they are - * separated by less than 90 degrees. Not numerically stable for larger - * angles. This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static inline SIMD_CFUNC simd_quatf _simd_quaternion_reduced(simd_float3 from, simd_float3 to) { - simd_float3 half = simd_normalize(from + to); - return _simd_quaternion(simd_cross(from, half), simd_dot(from, half)); -} - -static SIMD_NOINLINE simd_quatf simd_quaternion(simd_float3 from, simd_float3 to) { - - // If the angle between from and to is not too big, we can compute the - // rotation accurately using a simple implementation. - if (simd_dot(from, to) >= 0) { - return _simd_quaternion_reduced(from, to); - } - - // Because from and to are more than 90 degrees apart, we compute the - // rotation in two stages (from -> half), (half -> to) to preserve numerical - // accuracy. - simd_float3 half = simd_normalize(from + to); - - if (simd_length_squared(half) == 0) { - // half is nearly zero, so from and to point in nearly opposite directions - // and the rotation is numerically underspecified. Pick an axis orthogonal - // to the vectors, and use an angle of pi radians. - simd_float3 abs_from = simd_abs(from); - if (abs_from.x <= abs_from.y && abs_from.x <= abs_from.z) - return _simd_quaternion(simd_normalize(simd_cross(from, (simd_float3){1,0,0})), 0.f); - else if (abs_from.y <= abs_from.z) - return _simd_quaternion(simd_normalize(simd_cross(from, (simd_float3){0,1,0})), 0.f); - else - return _simd_quaternion(simd_normalize(simd_cross(from, (simd_float3){0,0,1})), 0.f); - } - - // Compute the two-step rotation. */ - return simd_mul(_simd_quaternion_reduced(from, half), - _simd_quaternion_reduced(half, to)); -} - -static SIMD_NOINLINE simd_quatf simd_quaternion(simd_float3x3 matrix) { - const simd_float3 *mat = matrix.columns; - float trace = mat[0][0] + mat[1][1] + mat[2][2]; - if (trace >= 0.0) { - float r = 2*sqrt(1 + trace); - float rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[1][2] - mat[2][1]), - rinv*(mat[2][0] - mat[0][2]), - rinv*(mat[0][1] - mat[1][0]), - r/4); - } else if (mat[0][0] >= mat[1][1] && mat[0][0] >= mat[2][2]) { - float r = 2*sqrt(1 - mat[1][1] - mat[2][2] + mat[0][0]); - float rinv = simd_recip(r); - return simd_quaternion(r/4, - rinv*(mat[0][1] + mat[1][0]), - rinv*(mat[0][2] + mat[2][0]), - rinv*(mat[1][2] - mat[2][1])); - } else if (mat[1][1] >= mat[2][2]) { - float r = 2*sqrt(1 - mat[0][0] - mat[2][2] + mat[1][1]); - float rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[0][1] + mat[1][0]), - r/4, - rinv*(mat[1][2] + mat[2][1]), - rinv*(mat[2][0] - mat[0][2])); - } else { - float r = 2*sqrt(1 - mat[0][0] - mat[1][1] + mat[2][2]); - float rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[0][2] + mat[2][0]), - rinv*(mat[1][2] + mat[2][1]), - r/4, - rinv*(mat[0][1] - mat[1][0])); - } -} - -static SIMD_NOINLINE simd_quatf simd_quaternion(simd_float4x4 matrix) { - const simd_float4 *mat = matrix.columns; - float trace = mat[0][0] + mat[1][1] + mat[2][2]; - if (trace >= 0.0) { - float r = 2*sqrt(1 + trace); - float rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[1][2] - mat[2][1]), - rinv*(mat[2][0] - mat[0][2]), - rinv*(mat[0][1] - mat[1][0]), - r/4); - } else if (mat[0][0] >= mat[1][1] && mat[0][0] >= mat[2][2]) { - float r = 2*sqrt(1 - mat[1][1] - mat[2][2] + mat[0][0]); - float rinv = simd_recip(r); - return simd_quaternion(r/4, - rinv*(mat[0][1] + mat[1][0]), - rinv*(mat[0][2] + mat[2][0]), - rinv*(mat[1][2] - mat[2][1])); - } else if (mat[1][1] >= mat[2][2]) { - float r = 2*sqrt(1 - mat[0][0] - mat[2][2] + mat[1][1]); - float rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[0][1] + mat[1][0]), - r/4, - rinv*(mat[1][2] + mat[2][1]), - rinv*(mat[2][0] - mat[0][2])); - } else { - float r = 2*sqrt(1 - mat[0][0] - mat[1][1] + mat[2][2]); - float rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[0][2] + mat[2][0]), - rinv*(mat[1][2] + mat[2][1]), - r/4, - rinv*(mat[0][1] - mat[1][0])); - } -} - -/*! @abstract The angle between p and q interpreted as 4-dimensional vectors. - * - * @discussion This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static SIMD_NOINLINE float _simd_angle(simd_quatf p, simd_quatf q) { - return 2*atan2(simd_length(p.vector - q.vector), simd_length(p.vector + q.vector)); -} - -/*! @abstract sin(x)/x. - * - * @discussion This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static SIMD_CFUNC float _simd_sinc(float x) { - if (x == 0) return 1; - return sin(x)/x; -} - -/*! @abstract Spherical lerp between q0 and q1. - * - * @discussion This function may interpolate along either the longer or - * shorter path between q0 and q1; it is used as an implementation detail - * in `simd_slerp` and `simd_slerp_longest`; you should use those functions - * instead of calling this directly. */ -static SIMD_NOINLINE simd_quatf _simd_slerp_internal(simd_quatf q0, simd_quatf q1, float t) { - float s = 1 - t; - float a = _simd_angle(q0, q1); - float r = simd_recip(_simd_sinc(a)); - return simd_normalize(simd_quaternion(_simd_sinc(s*a)*r*s*q0.vector + _simd_sinc(t*a)*r*t*q1.vector)); -} - -static SIMD_NOINLINE simd_quatf simd_slerp(simd_quatf q0, simd_quatf q1, float t) { - if (simd_dot(q0, q1) >= 0) - return _simd_slerp_internal(q0, q1, t); - return _simd_slerp_internal(q0, simd_negate(q1), t); -} - -static SIMD_NOINLINE simd_quatf simd_slerp_longest(simd_quatf q0, simd_quatf q1, float t) { - if (simd_dot(q0, q1) >= 0) - return _simd_slerp_internal(q0, simd_negate(q1), t); - return _simd_slerp_internal(q0, q1, t); -} - -/*! @discussion This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static SIMD_NOINLINE simd_quatf _simd_intermediate(simd_quatf q0, simd_quatf q1, simd_quatf q2) { - simd_quatf p0 = __tg_log(simd_mul(q0, simd_inverse(q1))); - simd_quatf p2 = __tg_log(simd_mul(q2, simd_inverse(q1))); - return simd_normalize(simd_mul(q1, __tg_exp(simd_mul(-0.25, simd_add(p0,p2))))); -} - -/*! @discussion This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static SIMD_NOINLINE simd_quatf _simd_squad(simd_quatf q0, simd_quatf qa, simd_quatf qb, simd_quatf q1, float t) { - simd_quatf r0 = _simd_slerp_internal(q0, q1, t); - simd_quatf r1 = _simd_slerp_internal(qa, qb, t); - return _simd_slerp_internal(r0, r1, 2*t*(1 - t)); -} - -static SIMD_NOINLINE simd_quatf simd_spline(simd_quatf q0, simd_quatf q1, simd_quatf q2, simd_quatf q3, float t) { - simd_quatf qa = _simd_intermediate(q0, q1, q2); - simd_quatf qb = _simd_intermediate(q1, q2, q3); - return _simd_squad(q1, qa, qb, q2, t); -} - -static SIMD_NOINLINE simd_quatf simd_bezier(simd_quatf q0, simd_quatf q1, simd_quatf q2, simd_quatf q3, float t) { - simd_quatf q01 = _simd_slerp_internal(q0, q1, t); - simd_quatf q12 = _simd_slerp_internal(q1, q2, t); - simd_quatf q23 = _simd_slerp_internal(q2, q3, t); - simd_quatf q012 = _simd_slerp_internal(q01, q12, t); - simd_quatf q123 = _simd_slerp_internal(q12, q23, t); - return _simd_slerp_internal(q012, q123, t); -} - -/* MARK: - C and Objective-C double interfaces */ - -/*! @abstract Constructs a quaternion from four scalar values. - * - * @param ix The first component of the imaginary (vector) part. - * @param iy The second component of the imaginary (vector) part. - * @param iz The third component of the imaginary (vector) part. - * - * @param r The real (scalar) part. */ -static inline SIMD_CFUNC simd_quatd simd_quaternion(double ix, double iy, double iz, double r) { - return (simd_quatd){ { ix, iy, iz, r } }; -} - -/*! @abstract Constructs a quaternion from an array of four scalars. - * - * @discussion Note that the imaginary part of the quaternion comes from - * array elements 0, 1, and 2, and the real part comes from element 3. */ -static inline SIMD_NONCONST simd_quatd simd_quaternion(const double xyzr[4]) { - return (simd_quatd){ *(const simd_packed_double4 *)xyzr }; -} - -/*! @abstract Constructs a quaternion from a four-element vector. - * - * @discussion Note that the imaginary (vector) part of the quaternion comes - * from lanes 0, 1, and 2 of the vector, and the real (scalar) part comes from - * lane 3. */ -static inline SIMD_CFUNC simd_quatd simd_quaternion(simd_double4 xyzr) { - return (simd_quatd){ xyzr }; -} - -/*! @abstract Constructs a quaternion that rotates by `angle` radians about - * `axis`. */ -static inline SIMD_CFUNC simd_quatd simd_quaternion(double angle, simd_double3 axis); - -/*! @abstract Construct a quaternion that rotates from one vector to another. - * - * @param from A normalized three-element vector. - * @param to A normalized three-element vector. - * - * @discussion The rotation axis is `simd_cross(from, to)`. If `from` and - * `to` point in opposite directions (to within machine precision), an - * arbitrary rotation axis is chosen, and the angle is pi radians. */ -static SIMD_NOINLINE simd_quatd simd_quaternion(simd_double3 from, simd_double3 to); - -/*! @abstract Construct a quaternion from a 3x3 rotation `matrix`. - * - * @discussion If `matrix` is not orthogonal with determinant 1, the result - * is undefined. */ -static SIMD_NOINLINE simd_quatd simd_quaternion(simd_double3x3 matrix); - -/*! @abstract Construct a quaternion from a 4x4 rotation `matrix`. - * - * @discussion The last row and column of the matrix are ignored. This - * function is equivalent to calling simd_quaternion with the upper-left 3x3 - * submatrix . */ -static SIMD_NOINLINE simd_quatd simd_quaternion(simd_double4x4 matrix); - -/*! @abstract The real (scalar) part of the quaternion `q`. */ -static inline SIMD_CFUNC double simd_real(simd_quatd q) { - return q.vector.w; -} - -/*! @abstract The imaginary (vector) part of the quaternion `q`. */ -static inline SIMD_CFUNC simd_double3 simd_imag(simd_quatd q) { - return q.vector.xyz; -} - -/*! @abstract The angle (in radians) of rotation represented by `q`. */ -static inline SIMD_CFUNC double simd_angle(simd_quatd q); - -/*! @abstract The normalized axis (a 3-element vector) around which the - * action of the quaternion `q` rotates. */ -static inline SIMD_CFUNC simd_double3 simd_axis(simd_quatd q); - -/*! @abstract The sum of the quaternions `p` and `q`. */ -static inline SIMD_CFUNC simd_quatd simd_add(simd_quatd p, simd_quatd q); - -/*! @abstract The difference of the quaternions `p` and `q`. */ -static inline SIMD_CFUNC simd_quatd simd_sub(simd_quatd p, simd_quatd q); - -/*! @abstract The product of the quaternions `p` and `q`. */ -static inline SIMD_CFUNC simd_quatd simd_mul(simd_quatd p, simd_quatd q); - -/*! @abstract The quaternion `q` scaled by the real value `a`. */ -static inline SIMD_CFUNC simd_quatd simd_mul(simd_quatd q, double a); - -/*! @abstract The quaternion `q` scaled by the real value `a`. */ -static inline SIMD_CFUNC simd_quatd simd_mul(double a, simd_quatd q); - -/*! @abstract The conjugate of the quaternion `q`. */ -static inline SIMD_CFUNC simd_quatd simd_conjugate(simd_quatd q); - -/*! @abstract The (multiplicative) inverse of the quaternion `q`. */ -static inline SIMD_CFUNC simd_quatd simd_inverse(simd_quatd q); - -/*! @abstract The negation (additive inverse) of the quaternion `q`. */ -static inline SIMD_CFUNC simd_quatd simd_negate(simd_quatd q); - -/*! @abstract The dot product of the quaternions `p` and `q` interpreted as - * four-dimensional vectors. */ -static inline SIMD_CFUNC double simd_dot(simd_quatd p, simd_quatd q); - -/*! @abstract The length of the quaternion `q`. */ -static inline SIMD_CFUNC double simd_length(simd_quatd q); - -/*! @abstract The unit quaternion obtained by normalizing `q`. */ -static inline SIMD_CFUNC simd_quatd simd_normalize(simd_quatd q); - -/*! @abstract Rotates the vector `v` by the quaternion `q`. */ -static inline SIMD_CFUNC simd_double3 simd_act(simd_quatd q, simd_double3 v); - -/*! @abstract Logarithm of the quaternion `q`. - * @discussion Do not call this function directly; use `log(q)` instead. - * - * We can write a quaternion `q` in the form: `r(cos(t) + sin(t)v)` where - * `r` is the length of `q`, `t` is an angle, and `v` is a unit 3-vector. - * The logarithm of `q` is `log(r) + tv`, just like the logarithm of the - * complex number `r*(cos(t) + i sin(t))` is `log(r) + it`. - * - * Note that this function is not robust against poorly-scaled non-unit - * quaternions, because it is primarily used for spline interpolation of - * unit quaternions. If you need to compute a robust logarithm of general - * quaternions, you can use the following approach: - * - * scale = simd_reduce_max(simd_abs(q.vector)); - * logq = log(simd_recip(scale)*q); - * logq.real += log(scale); - * return logq; */ -static SIMD_NOINLINE simd_quatd __tg_log(simd_quatd q); - -/*! @abstract Inverse of `log( )`; the exponential map on quaternions. - * @discussion Do not call this function directly; use `exp(q)` instead. */ -static SIMD_NOINLINE simd_quatd __tg_exp(simd_quatd q); - -/*! @abstract Spherical linear interpolation along the shortest arc between - * quaternions `q0` and `q1`. */ -static SIMD_NOINLINE simd_quatd simd_slerp(simd_quatd q0, simd_quatd q1, double t); - -/*! @abstract Spherical linear interpolation along the longest arc between - * quaternions `q0` and `q1`. */ -static SIMD_NOINLINE simd_quatd simd_slerp_longest(simd_quatd q0, simd_quatd q1, double t); - -/*! @abstract Interpolate between quaternions along a spherical cubic spline. - * - * @discussion The function interpolates between q1 and q2. q0 is the left - * endpoint of the previous interval, and q3 is the right endpoint of the next - * interval. Use this function to smoothly interpolate between a sequence of - * rotations. */ -static SIMD_NOINLINE simd_quatd simd_spline(simd_quatd q0, simd_quatd q1, simd_quatd q2, simd_quatd q3, double t); - -/*! @abstract Spherical cubic Bezier interpolation between quaternions. - * - * @discussion The function treats q0 ... q3 as control points and uses slerp - * in place of lerp in the De Castlejeau algorithm. The endpoints of - * interpolation are thus q0 and q3, and the curve will not generally pass - * through q1 or q2. Note that the convex hull property of "standard" Bezier - * curve does not hold on the sphere. */ -static SIMD_NOINLINE simd_quatd simd_bezier(simd_quatd q0, simd_quatd q1, simd_quatd q2, simd_quatd q3, double t); - -#ifdef __cplusplus -} /* extern "C" */ -/* MARK: - C++ double interfaces */ - -namespace simd { - struct quatd : ::simd_quatd { - /*! @abstract The identity quaternion. */ - quatd( ) : ::simd_quatd(::simd_quaternion((double4){0,0,0,1})) { } - - /*! @abstract Constructs a C++ quaternion from a C quaternion. */ - quatd(::simd_quatd q) : ::simd_quatd(q) { } - - /*! @abstract Constructs a quaternion from components. */ - quatd(double ix, double iy, double iz, double r) : ::simd_quatd(::simd_quaternion(ix, iy, iz, r)) { } - - /*! @abstract Constructs a quaternion from an array of scalars. */ - quatd(const double xyzr[4]) : ::simd_quatd(::simd_quaternion(xyzr)) { } - - /*! @abstract Constructs a quaternion from a vector. */ - quatd(double4 xyzr) : ::simd_quatd(::simd_quaternion(xyzr)) { } - - /*! @abstract Quaternion representing rotation about `axis` by `angle` - * radians. */ - quatd(double angle, double3 axis) : ::simd_quatd(::simd_quaternion(angle, axis)) { } - - /*! @abstract Quaternion that rotates `from` into `to`. */ - quatd(double3 from, double3 to) : ::simd_quatd(::simd_quaternion(from, to)) { } - - /*! @abstract Constructs a quaternion from a rotation matrix. */ - quatd(::simd_double3x3 matrix) : ::simd_quatd(::simd_quaternion(matrix)) { } - - /*! @abstract Constructs a quaternion from a rotation matrix. */ - quatd(::simd_double4x4 matrix) : ::simd_quatd(::simd_quaternion(matrix)) { } - - /*! @abstract The real (scalar) part of the quaternion. */ - double real(void) const { return ::simd_real(*this); } - - /*! @abstract The imaginary (vector) part of the quaternion. */ - double3 imag(void) const { return ::simd_imag(*this); } - - /*! @abstract The angle the quaternion rotates by. */ - double angle(void) const { return ::simd_angle(*this); } - - /*! @abstract The axis the quaternion rotates about. */ - double3 axis(void) const { return ::simd_axis(*this); } - - /*! @abstract The length of the quaternion. */ - double length(void) const { return ::simd_length(*this); } - - /*! @abstract Act on the vector `v` by rotation. */ - double3 operator()(const ::simd_double3 v) const { return ::simd_act(*this, v); } - }; - - static SIMD_CPPFUNC quatd operator+(const ::simd_quatd p, const ::simd_quatd q) { return ::simd_add(p, q); } - static SIMD_CPPFUNC quatd operator-(const ::simd_quatd p, const ::simd_quatd q) { return ::simd_sub(p, q); } - static SIMD_CPPFUNC quatd operator-(const ::simd_quatd p) { return ::simd_negate(p); } - static SIMD_CPPFUNC quatd operator*(const double r, const ::simd_quatd p) { return ::simd_mul(r, p); } - static SIMD_CPPFUNC quatd operator*(const ::simd_quatd p, const double r) { return ::simd_mul(p, r); } - static SIMD_CPPFUNC quatd operator*(const ::simd_quatd p, const ::simd_quatd q) { return ::simd_mul(p, q); } - static SIMD_CPPFUNC quatd operator/(const ::simd_quatd p, const ::simd_quatd q) { return ::simd_mul(p, ::simd_inverse(q)); } - static SIMD_CPPFUNC quatd operator+=(quatd &p, const ::simd_quatd q) { return p = p+q; } - static SIMD_CPPFUNC quatd operator-=(quatd &p, const ::simd_quatd q) { return p = p-q; } - static SIMD_CPPFUNC quatd operator*=(quatd &p, const double r) { return p = p*r; } - static SIMD_CPPFUNC quatd operator*=(quatd &p, const ::simd_quatd q) { return p = p*q; } - static SIMD_CPPFUNC quatd operator/=(quatd &p, const ::simd_quatd q) { return p = p/q; } - - /*! @abstract The conjugate of the quaternion `q`. */ - static SIMD_CPPFUNC quatd conjugate(const ::simd_quatd p) { return ::simd_conjugate(p); } - - /*! @abstract The (multiplicative) inverse of the quaternion `q`. */ - static SIMD_CPPFUNC quatd inverse(const ::simd_quatd p) { return ::simd_inverse(p); } - - /*! @abstract The dot product of the quaternions `p` and `q` interpreted as - * four-dimensional vectors. */ - static SIMD_CPPFUNC double dot(const ::simd_quatd p, const ::simd_quatd q) { return ::simd_dot(p, q); } - - /*! @abstract The unit quaternion obtained by normalizing `q`. */ - static SIMD_CPPFUNC quatd normalize(const ::simd_quatd p) { return ::simd_normalize(p); } - - /*! @abstract logarithm of the quaternion `q`. */ - static SIMD_CPPFUNC quatd log(const ::simd_quatd q) { return ::__tg_log(q); } - - /*! @abstract exponential map of quaterion `q`. */ - static SIMD_CPPFUNC quatd exp(const ::simd_quatd q) { return ::__tg_exp(q); } - - /*! @abstract Spherical linear interpolation along the shortest arc between - * quaternions `q0` and `q1`. */ - static SIMD_CPPFUNC quatd slerp(const ::simd_quatd p0, const ::simd_quatd p1, double t) { return ::simd_slerp(p0, p1, t); } - - /*! @abstract Spherical linear interpolation along the longest arc between - * quaternions `q0` and `q1`. */ - static SIMD_CPPFUNC quatd slerp_longest(const ::simd_quatd p0, const ::simd_quatd p1, double t) { return ::simd_slerp_longest(p0, p1, t); } - - /*! @abstract Interpolate between quaternions along a spherical cubic spline. - * - * @discussion The function interpolates between q1 and q2. q0 is the left - * endpoint of the previous interval, and q3 is the right endpoint of the next - * interval. Use this function to smoothly interpolate between a sequence of - * rotations. */ - static SIMD_CPPFUNC quatd spline(const ::simd_quatd p0, const ::simd_quatd p1, const ::simd_quatd p2, const ::simd_quatd p3, double t) { return ::simd_spline(p0, p1, p2, p3, t); } - - /*! @abstract Spherical cubic Bezier interpolation between quaternions. - * - * @discussion The function treats q0 ... q3 as control points and uses slerp - * in place of lerp in the De Castlejeau algorithm. The endpoints of - * interpolation are thus q0 and q3, and the curve will not generally pass - * through q1 or q2. Note that the convex hull property of "standard" Bezier - * curve does not hold on the sphere. */ - static SIMD_CPPFUNC quatd bezier(const ::simd_quatd p0, const ::simd_quatd p1, const ::simd_quatd p2, const ::simd_quatd p3, double t) { return ::simd_bezier(p0, p1, p2, p3, t); } -} - -extern "C" { -#endif /* __cplusplus */ - -/* MARK: - double implementations */ - -#include -#include - -/* tg_promote is implementation gobbledygook that enables the compile-time - * dispatching in tgmath.h to work its magic. */ -static simd_quatd __attribute__((__overloadable__)) __tg_promote(simd_quatd); - -/*! @abstract Constructs a quaternion from imaginary and real parts. - * @discussion This function is hidden behind an underscore to avoid confusion - * with the angle-axis constructor. */ -static inline SIMD_CFUNC simd_quatd _simd_quaternion(simd_double3 imag, double real) { - return simd_quaternion(simd_make_double4(imag, real)); -} - -static inline SIMD_CFUNC simd_quatd simd_quaternion(double angle, simd_double3 axis) { - return _simd_quaternion(sin(angle/2) * axis, cos(angle/2)); -} - -static inline SIMD_CFUNC double simd_angle(simd_quatd q) { - return 2*atan2(simd_length(q.vector.xyz), q.vector.w); -} - -static inline SIMD_CFUNC simd_double3 simd_axis(simd_quatd q) { - return simd_normalize(q.vector.xyz); -} - -static inline SIMD_CFUNC simd_quatd simd_add(simd_quatd p, simd_quatd q) { - return simd_quaternion(p.vector + q.vector); -} - -static inline SIMD_CFUNC simd_quatd simd_sub(simd_quatd p, simd_quatd q) { - return simd_quaternion(p.vector - q.vector); -} - -static inline SIMD_CFUNC simd_quatd simd_mul(simd_quatd p, simd_quatd q) { - #pragma STDC FP_CONTRACT ON - return simd_quaternion((p.vector.x * __builtin_shufflevector(q.vector, -q.vector, 3,6,1,4) + - p.vector.y * __builtin_shufflevector(q.vector, -q.vector, 2,3,4,5)) + - (p.vector.z * __builtin_shufflevector(q.vector, -q.vector, 5,0,3,6) + - p.vector.w * q.vector)); -} - -static inline SIMD_CFUNC simd_quatd simd_mul(simd_quatd q, double a) { - return simd_quaternion(a * q.vector); -} - -static inline SIMD_CFUNC simd_quatd simd_mul(double a, simd_quatd q) { - return simd_mul(q,a); -} - -static inline SIMD_CFUNC simd_quatd simd_conjugate(simd_quatd q) { - return simd_quaternion(q.vector * (simd_double4){-1,-1,-1, 1}); -} - -static inline SIMD_CFUNC simd_quatd simd_inverse(simd_quatd q) { - return simd_quaternion(simd_conjugate(q).vector * simd_recip(simd_length_squared(q.vector))); -} - -static inline SIMD_CFUNC simd_quatd simd_negate(simd_quatd q) { - return simd_quaternion(-q.vector); -} - -static inline SIMD_CFUNC double simd_dot(simd_quatd p, simd_quatd q) { - return simd_dot(p.vector, q.vector); -} - -static inline SIMD_CFUNC double simd_length(simd_quatd q) { - return simd_length(q.vector); -} - -static inline SIMD_CFUNC simd_quatd simd_normalize(simd_quatd q) { - double length_squared = simd_length_squared(q.vector); - if (length_squared == 0) { - return simd_quaternion((simd_double4){0,0,0,1}); - } - return simd_quaternion(q.vector * simd_rsqrt(length_squared)); -} - -#if defined __arm__ || defined __arm64__ -/*! @abstract Multiplies the vector `v` by the quaternion `q`. - * - * @discussion This IS NOT the action of `q` on `v` (i.e. this is not rotation - * by `q`. That operation is provided by `simd_act(q, v)`. This function is an - * implementation detail and you should not call it directly. It may be - * removed or modified in future versions of the simd module. */ -static inline SIMD_CFUNC simd_quatd _simd_mul_vq(simd_double3 v, simd_quatd q) { - #pragma STDC FP_CONTRACT ON - return simd_quaternion(v.x * __builtin_shufflevector(q.vector, -q.vector, 3,6,1,4) + - v.y * __builtin_shufflevector(q.vector, -q.vector, 2,3,4,5) + - v.z * __builtin_shufflevector(q.vector, -q.vector, 5,0,3,6)); -} -#endif - -static inline SIMD_CFUNC simd_double3 simd_act(simd_quatd q, simd_double3 v) { -#if defined __arm__ || defined __arm64__ - return simd_mul(q, _simd_mul_vq(v, simd_conjugate(q))).vector.xyz; -#else - #pragma STDC FP_CONTRACT ON - simd_double3 t = 2*simd_cross(simd_imag(q),v); - return v + simd_real(q)*t + simd_cross(simd_imag(q), t); -#endif -} - -static SIMD_NOINLINE simd_quatd __tg_log(simd_quatd q) { - double real = __tg_log(simd_length_squared(q.vector))/2; - if (simd_equal(simd_imag(q), 0)) return _simd_quaternion(0, real); - simd_double3 imag = __tg_acos(simd_real(q)/simd_length(q)) * simd_normalize(simd_imag(q)); - return _simd_quaternion(imag, real); -} - -static SIMD_NOINLINE simd_quatd __tg_exp(simd_quatd q) { - // angle is actually *twice* the angle of the rotation corresponding to - // the resulting quaternion, which is why we don't simply use the (angle, - // axis) constructor to generate `unit`. - double angle = simd_length(simd_imag(q)); - if (angle == 0) return _simd_quaternion(0, exp(simd_real(q))); - simd_double3 axis = simd_normalize(simd_imag(q)); - simd_quatd unit = _simd_quaternion(sin(angle)*axis, cosf(angle)); - return simd_mul(exp(simd_real(q)), unit); -} - -/*! @abstract Implementation detail of the `simd_quaternion(from, to)` - * initializer. - * - * @discussion Computes the quaternion rotation `from` to `to` if they are - * separated by less than 90 degrees. Not numerically stable for larger - * angles. This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static inline SIMD_CFUNC simd_quatd _simd_quaternion_reduced(simd_double3 from, simd_double3 to) { - simd_double3 half = simd_normalize(from + to); - return _simd_quaternion(simd_cross(from, half), simd_dot(from, half)); -} - -static SIMD_NOINLINE simd_quatd simd_quaternion(simd_double3 from, simd_double3 to) { - - // If the angle between from and to is not too big, we can compute the - // rotation accurately using a simple implementation. - if (simd_dot(from, to) >= 0) { - return _simd_quaternion_reduced(from, to); - } - - // Because from and to are more than 90 degrees apart, we compute the - // rotation in two stages (from -> half), (half -> to) to preserve numerical - // accuracy. - simd_double3 half = simd_normalize(from + to); - - if (simd_length_squared(half) == 0) { - // half is nearly zero, so from and to point in nearly opposite directions - // and the rotation is numerically underspecified. Pick an axis orthogonal - // to the vectors, and use an angle of pi radians. - simd_double3 abs_from = simd_abs(from); - if (abs_from.x <= abs_from.y && abs_from.x <= abs_from.z) - return _simd_quaternion(simd_normalize(simd_cross(from, (simd_double3){1,0,0})), 0.f); - else if (abs_from.y <= abs_from.z) - return _simd_quaternion(simd_normalize(simd_cross(from, (simd_double3){0,1,0})), 0.f); - else - return _simd_quaternion(simd_normalize(simd_cross(from, (simd_double3){0,0,1})), 0.f); - } - - // Compute the two-step rotation. */ - return simd_mul(_simd_quaternion_reduced(from, half), - _simd_quaternion_reduced(half, to)); -} - -static SIMD_NOINLINE simd_quatd simd_quaternion(simd_double3x3 matrix) { - const simd_double3 *mat = matrix.columns; - double trace = mat[0][0] + mat[1][1] + mat[2][2]; - if (trace >= 0.0) { - double r = 2*sqrt(1 + trace); - double rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[1][2] - mat[2][1]), - rinv*(mat[2][0] - mat[0][2]), - rinv*(mat[0][1] - mat[1][0]), - r/4); - } else if (mat[0][0] >= mat[1][1] && mat[0][0] >= mat[2][2]) { - double r = 2*sqrt(1 - mat[1][1] - mat[2][2] + mat[0][0]); - double rinv = simd_recip(r); - return simd_quaternion(r/4, - rinv*(mat[0][1] + mat[1][0]), - rinv*(mat[0][2] + mat[2][0]), - rinv*(mat[1][2] - mat[2][1])); - } else if (mat[1][1] >= mat[2][2]) { - double r = 2*sqrt(1 - mat[0][0] - mat[2][2] + mat[1][1]); - double rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[0][1] + mat[1][0]), - r/4, - rinv*(mat[1][2] + mat[2][1]), - rinv*(mat[2][0] - mat[0][2])); - } else { - double r = 2*sqrt(1 - mat[0][0] - mat[1][1] + mat[2][2]); - double rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[0][2] + mat[2][0]), - rinv*(mat[1][2] + mat[2][1]), - r/4, - rinv*(mat[0][1] - mat[1][0])); - } -} - -static SIMD_NOINLINE simd_quatd simd_quaternion(simd_double4x4 matrix) { - const simd_double4 *mat = matrix.columns; - double trace = mat[0][0] + mat[1][1] + mat[2][2]; - if (trace >= 0.0) { - double r = 2*sqrt(1 + trace); - double rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[1][2] - mat[2][1]), - rinv*(mat[2][0] - mat[0][2]), - rinv*(mat[0][1] - mat[1][0]), - r/4); - } else if (mat[0][0] >= mat[1][1] && mat[0][0] >= mat[2][2]) { - double r = 2*sqrt(1 - mat[1][1] - mat[2][2] + mat[0][0]); - double rinv = simd_recip(r); - return simd_quaternion(r/4, - rinv*(mat[0][1] + mat[1][0]), - rinv*(mat[0][2] + mat[2][0]), - rinv*(mat[1][2] - mat[2][1])); - } else if (mat[1][1] >= mat[2][2]) { - double r = 2*sqrt(1 - mat[0][0] - mat[2][2] + mat[1][1]); - double rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[0][1] + mat[1][0]), - r/4, - rinv*(mat[1][2] + mat[2][1]), - rinv*(mat[2][0] - mat[0][2])); - } else { - double r = 2*sqrt(1 - mat[0][0] - mat[1][1] + mat[2][2]); - double rinv = simd_recip(r); - return simd_quaternion(rinv*(mat[0][2] + mat[2][0]), - rinv*(mat[1][2] + mat[2][1]), - r/4, - rinv*(mat[0][1] - mat[1][0])); - } -} - -/*! @abstract The angle between p and q interpreted as 4-dimensional vectors. - * - * @discussion This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static SIMD_NOINLINE double _simd_angle(simd_quatd p, simd_quatd q) { - return 2*atan2(simd_length(p.vector - q.vector), simd_length(p.vector + q.vector)); -} - -/*! @abstract sin(x)/x. - * - * @discussion This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static SIMD_CFUNC double _simd_sinc(double x) { - if (x == 0) return 1; - return sin(x)/x; -} - -/*! @abstract Spherical lerp between q0 and q1. - * - * @discussion This function may interpolate along either the longer or - * shorter path between q0 and q1; it is used as an implementation detail - * in `simd_slerp` and `simd_slerp_longest`; you should use those functions - * instead of calling this directly. */ -static SIMD_NOINLINE simd_quatd _simd_slerp_internal(simd_quatd q0, simd_quatd q1, double t) { - double s = 1 - t; - double a = _simd_angle(q0, q1); - double r = simd_recip(_simd_sinc(a)); - return simd_normalize(simd_quaternion(_simd_sinc(s*a)*r*s*q0.vector + _simd_sinc(t*a)*r*t*q1.vector)); -} - -static SIMD_NOINLINE simd_quatd simd_slerp(simd_quatd q0, simd_quatd q1, double t) { - if (simd_dot(q0, q1) >= 0) - return _simd_slerp_internal(q0, q1, t); - return _simd_slerp_internal(q0, simd_negate(q1), t); -} - -static SIMD_NOINLINE simd_quatd simd_slerp_longest(simd_quatd q0, simd_quatd q1, double t) { - if (simd_dot(q0, q1) >= 0) - return _simd_slerp_internal(q0, simd_negate(q1), t); - return _simd_slerp_internal(q0, q1, t); -} - -/*! @discussion This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static SIMD_NOINLINE simd_quatd _simd_intermediate(simd_quatd q0, simd_quatd q1, simd_quatd q2) { - simd_quatd p0 = __tg_log(simd_mul(q0, simd_inverse(q1))); - simd_quatd p2 = __tg_log(simd_mul(q2, simd_inverse(q1))); - return simd_normalize(simd_mul(q1, __tg_exp(simd_mul(-0.25, simd_add(p0,p2))))); -} - -/*! @discussion This function is an implementation detail and you should not - * call it directly. It may be removed or modified in future versions of the - * simd module. */ -static SIMD_NOINLINE simd_quatd _simd_squad(simd_quatd q0, simd_quatd qa, simd_quatd qb, simd_quatd q1, double t) { - simd_quatd r0 = _simd_slerp_internal(q0, q1, t); - simd_quatd r1 = _simd_slerp_internal(qa, qb, t); - return _simd_slerp_internal(r0, r1, 2*t*(1 - t)); -} - -static SIMD_NOINLINE simd_quatd simd_spline(simd_quatd q0, simd_quatd q1, simd_quatd q2, simd_quatd q3, double t) { - simd_quatd qa = _simd_intermediate(q0, q1, q2); - simd_quatd qb = _simd_intermediate(q1, q2, q3); - return _simd_squad(q1, qa, qb, q2, t); -} - -static SIMD_NOINLINE simd_quatd simd_bezier(simd_quatd q0, simd_quatd q1, simd_quatd q2, simd_quatd q3, double t) { - simd_quatd q01 = _simd_slerp_internal(q0, q1, t); - simd_quatd q12 = _simd_slerp_internal(q1, q2, t); - simd_quatd q23 = _simd_slerp_internal(q2, q3, t); - simd_quatd q012 = _simd_slerp_internal(q01, q12, t); - simd_quatd q123 = _simd_slerp_internal(q12, q23, t); - return _simd_slerp_internal(q012, q123, t); -} - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* __cplusplus */ -#endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */ -#endif /* SIMD_QUATERNIONS */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/simd/vector_make.h b/lib/libc/include/x86_64-macos.10-none/simd/vector_make.h deleted file mode 100644 index b8e2323944af9dbd4922d1ff33b8950593b494bd..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/simd/vector_make.h +++ /dev/null @@ -1,6768 +0,0 @@ -/*! @header - * This header defines functions for constructing, extending, and truncating - * simd vector types. - * - * For each vector type `simd_typeN` supported by , the following - * constructors are provided: - * - * ~~~ - * simd_typeN simd_make_typeN(type other); - * simd_typeN simd_make_typeN(simd_typeM other); - * ~~~ - * For the scalar-input version, or if M < N, these functions zero-extend - * `other` to produce a wider vector. If M == N, `other` is passed through - * unmodified. If `M > N`, `other` is truncated to form the result. - * - * ~~~ - * simd_typeN simd_make_typeN_undef(type other); - * simd_typeN simd_make_typeN_undef(simd_typeM other); - * ~~~ - * These functions are only available for M < N and for scalar inputs. They - * extend `other` to produce a wider vector where the contents of the newly- - * formed lanes are undefined. - * - * In addition, if N is 2, 3, or 4, the following constructors are available: - * ~~~ - * simd_make_typeN(parts ...) - * ~~~ - * where parts is a list of scalars and smaller vectors such that the sum of - * the number of lanes in the arguments is equal to N. For example, a - * `simd_float3` can be constructed from three `floats`, or a `float` and a - * `simd_float2` in any order: - * ~~~ - * simd_float2 ab = { 1, 2 }; - * simd_float3 vector = simd_make_float3(ab, 3); - * ~~~ - * - * @copyright 2014-2016 Apple, Inc. All rights reserved. - * @unsorted */ - -#ifndef SIMD_VECTOR_CONSTRUCTORS -#define SIMD_VECTOR_CONSTRUCTORS - -#include -#if SIMD_COMPILER_HAS_REQUIRED_FEATURES - -#ifdef __cplusplus -extern "C" { -#endif - -/*! @abstract Concatenates `x` and `y` to form a vector of two 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(char x, char y) { - simd_char2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(char other) { - simd_char2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2_undef(char other) { - simd_char2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(simd_char2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(simd_char3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(simd_char4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(simd_char8 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(simd_char16 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(simd_char32 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char2 simd_make_char2(simd_char64 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(char x, char y, char z) { - simd_char3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(char x, simd_char2 yz) { - simd_char3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(simd_char2 xy, char z) { - simd_char3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(char other) { - simd_char3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3_undef(char other) { - simd_char3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(simd_char2 other) { - simd_char3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3_undef(simd_char2 other) { - simd_char3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(simd_char3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(simd_char4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(simd_char8 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(simd_char16 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(simd_char32 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char3 simd_make_char3(simd_char64 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 8-bit signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(char x, char y, char z, char w) { - simd_char4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(char x, char y, simd_char2 zw) { - simd_char4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(char x, simd_char2 yz, char w) { - simd_char4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char2 xy, char z, char w) { - simd_char4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(char x, simd_char3 yzw) { - simd_char4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char2 xy, simd_char2 zw) { - simd_char4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char3 xyz, char w) { - simd_char4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(char other) { - simd_char4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4_undef(char other) { - simd_char4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char2 other) { - simd_char4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4_undef(simd_char2 other) { - simd_char4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char3 other) { - simd_char4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4_undef(simd_char3 other) { - simd_char4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char8 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char16 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char32 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 8-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_char4 simd_make_char4(simd_char64 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(simd_char4 lo, simd_char4 hi) { - simd_char8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(char other) { - simd_char8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8_undef(char other) { - simd_char8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(simd_char2 other) { - simd_char8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8_undef(simd_char2 other) { - simd_char8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(simd_char3 other) { - simd_char8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8_undef(simd_char3 other) { - simd_char8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(simd_char4 other) { - simd_char8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8_undef(simd_char4 other) { - simd_char8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(simd_char8 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of eight 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(simd_char16 other) { - return simd_make_char8(other.lo); -} - -/*! @abstract Truncates `other` to form a vector of eight 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(simd_char32 other) { - return simd_make_char8(other.lo); -} - -/*! @abstract Truncates `other` to form a vector of eight 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char8 simd_make_char8(simd_char64 other) { - return simd_make_char8(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(simd_char8 lo, simd_char8 hi) { - simd_char16 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(char other) { - simd_char16 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16_undef(char other) { - simd_char16 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(simd_char2 other) { - simd_char16 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16_undef(simd_char2 other) { - simd_char16 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(simd_char3 other) { - simd_char16 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16_undef(simd_char3 other) { - simd_char16 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(simd_char4 other) { - simd_char16 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16_undef(simd_char4 other) { - simd_char16 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(simd_char8 other) { - simd_char16 result = 0; - result.lo = simd_make_char8(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16_undef(simd_char8 other) { - simd_char16 result; - result.lo = simd_make_char8(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(simd_char16 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(simd_char32 other) { - return simd_make_char16(other.lo); -} - -/*! @abstract Truncates `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char16 simd_make_char16(simd_char64 other) { - return simd_make_char16(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of thirty-two - * 8-bit signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(simd_char16 lo, simd_char16 hi) { - simd_char32 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(char other) { - simd_char32 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32_undef(char other) { - simd_char32 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(simd_char2 other) { - simd_char32 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32_undef(simd_char2 other) { - simd_char32 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(simd_char3 other) { - simd_char32 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32_undef(simd_char3 other) { - simd_char32 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(simd_char4 other) { - simd_char32 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32_undef(simd_char4 other) { - simd_char32 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(simd_char8 other) { - simd_char32 result = 0; - result.lo = simd_make_char16(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32_undef(simd_char8 other) { - simd_char32 result; - result.lo = simd_make_char16(other); - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(simd_char16 other) { - simd_char32 result = 0; - result.lo = simd_make_char16(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32_undef(simd_char16 other) { - simd_char32 result; - result.lo = simd_make_char16(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(simd_char32 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of thirty-two 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char32 simd_make_char32(simd_char64 other) { - return simd_make_char32(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixty-four - * 8-bit signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(simd_char32 lo, simd_char32 hi) { - simd_char64 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(char other) { - simd_char64 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64_undef(char other) { - simd_char64 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(simd_char2 other) { - simd_char64 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64_undef(simd_char2 other) { - simd_char64 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(simd_char3 other) { - simd_char64 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64_undef(simd_char3 other) { - simd_char64 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(simd_char4 other) { - simd_char64 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64_undef(simd_char4 other) { - simd_char64 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(simd_char8 other) { - simd_char64 result = 0; - result.lo = simd_make_char32(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64_undef(simd_char8 other) { - simd_char64 result; - result.lo = simd_make_char32(other); - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(simd_char16 other) { - simd_char64 result = 0; - result.lo = simd_make_char32(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64_undef(simd_char16 other) { - simd_char64 result; - result.lo = simd_make_char32(other); - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(simd_char32 other) { - simd_char64 result = 0; - result.lo = simd_make_char32(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64_undef(simd_char32 other) { - simd_char64 result; - result.lo = simd_make_char32(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_char64 simd_make_char64(simd_char64 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(unsigned char x, unsigned char y) { - simd_uchar2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(unsigned char other) { - simd_uchar2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2_undef(unsigned char other) { - simd_uchar2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(simd_uchar2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(simd_uchar3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(simd_uchar4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(simd_uchar8 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(simd_uchar16 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(simd_uchar32 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar2 simd_make_uchar2(simd_uchar64 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(unsigned char x, unsigned char y, unsigned char z) { - simd_uchar3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(unsigned char x, simd_uchar2 yz) { - simd_uchar3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(simd_uchar2 xy, unsigned char z) { - simd_uchar3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(unsigned char other) { - simd_uchar3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3_undef(unsigned char other) { - simd_uchar3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(simd_uchar2 other) { - simd_uchar3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3_undef(simd_uchar2 other) { - simd_uchar3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(simd_uchar3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(simd_uchar4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(simd_uchar8 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(simd_uchar16 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(simd_uchar32 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar3 simd_make_uchar3(simd_uchar64 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 8-bit unsigned integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) { - simd_uchar4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(unsigned char x, unsigned char y, simd_uchar2 zw) { - simd_uchar4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(unsigned char x, simd_uchar2 yz, unsigned char w) { - simd_uchar4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar2 xy, unsigned char z, unsigned char w) { - simd_uchar4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(unsigned char x, simd_uchar3 yzw) { - simd_uchar4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar2 xy, simd_uchar2 zw) { - simd_uchar4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar3 xyz, unsigned char w) { - simd_uchar4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(unsigned char other) { - simd_uchar4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4_undef(unsigned char other) { - simd_uchar4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar2 other) { - simd_uchar4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4_undef(simd_uchar2 other) { - simd_uchar4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar3 other) { - simd_uchar4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4_undef(simd_uchar3 other) { - simd_uchar4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar8 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar16 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar32 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar4 simd_make_uchar4(simd_uchar64 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(simd_uchar4 lo, simd_uchar4 hi) { - simd_uchar8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(unsigned char other) { - simd_uchar8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8_undef(unsigned char other) { - simd_uchar8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(simd_uchar2 other) { - simd_uchar8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8_undef(simd_uchar2 other) { - simd_uchar8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(simd_uchar3 other) { - simd_uchar8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8_undef(simd_uchar3 other) { - simd_uchar8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(simd_uchar4 other) { - simd_uchar8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8_undef(simd_uchar4 other) { - simd_uchar8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(simd_uchar8 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of eight 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(simd_uchar16 other) { - return simd_make_uchar8(other.lo); -} - -/*! @abstract Truncates `other` to form a vector of eight 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(simd_uchar32 other) { - return simd_make_uchar8(other.lo); -} - -/*! @abstract Truncates `other` to form a vector of eight 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar8 simd_make_uchar8(simd_uchar64 other) { - return simd_make_uchar8(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(simd_uchar8 lo, simd_uchar8 hi) { - simd_uchar16 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(unsigned char other) { - simd_uchar16 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16_undef(unsigned char other) { - simd_uchar16 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(simd_uchar2 other) { - simd_uchar16 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16_undef(simd_uchar2 other) { - simd_uchar16 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(simd_uchar3 other) { - simd_uchar16 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16_undef(simd_uchar3 other) { - simd_uchar16 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(simd_uchar4 other) { - simd_uchar16 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16_undef(simd_uchar4 other) { - simd_uchar16 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(simd_uchar8 other) { - simd_uchar16 result = 0; - result.lo = simd_make_uchar8(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16_undef(simd_uchar8 other) { - simd_uchar16 result; - result.lo = simd_make_uchar8(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(simd_uchar16 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of sixteen 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(simd_uchar32 other) { - return simd_make_uchar16(other.lo); -} - -/*! @abstract Truncates `other` to form a vector of sixteen 8-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uchar16 simd_make_uchar16(simd_uchar64 other) { - return simd_make_uchar16(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of thirty-two - * 8-bit unsigned integers. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(simd_uchar16 lo, simd_uchar16 hi) { - simd_uchar32 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(unsigned char other) { - simd_uchar32 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32_undef(unsigned char other) { - simd_uchar32 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(simd_uchar2 other) { - simd_uchar32 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32_undef(simd_uchar2 other) { - simd_uchar32 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(simd_uchar3 other) { - simd_uchar32 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32_undef(simd_uchar3 other) { - simd_uchar32 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(simd_uchar4 other) { - simd_uchar32 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32_undef(simd_uchar4 other) { - simd_uchar32 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(simd_uchar8 other) { - simd_uchar32 result = 0; - result.lo = simd_make_uchar16(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32_undef(simd_uchar8 other) { - simd_uchar32 result; - result.lo = simd_make_uchar16(other); - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(simd_uchar16 other) { - simd_uchar32 result = 0; - result.lo = simd_make_uchar16(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32_undef(simd_uchar16 other) { - simd_uchar32 result; - result.lo = simd_make_uchar16(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(simd_uchar32 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of thirty-two 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar32 simd_make_uchar32(simd_uchar64 other) { - return simd_make_uchar32(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixty-four - * 8-bit unsigned integers. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(simd_uchar32 lo, simd_uchar32 hi) { - simd_uchar64 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(unsigned char other) { - simd_uchar64 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64_undef(unsigned char other) { - simd_uchar64 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(simd_uchar2 other) { - simd_uchar64 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64_undef(simd_uchar2 other) { - simd_uchar64 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(simd_uchar3 other) { - simd_uchar64 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64_undef(simd_uchar3 other) { - simd_uchar64 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(simd_uchar4 other) { - simd_uchar64 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64_undef(simd_uchar4 other) { - simd_uchar64 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(simd_uchar8 other) { - simd_uchar64 result = 0; - result.lo = simd_make_uchar32(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64_undef(simd_uchar8 other) { - simd_uchar64 result; - result.lo = simd_make_uchar32(other); - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(simd_uchar16 other) { - simd_uchar64 result = 0; - result.lo = simd_make_uchar32(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64_undef(simd_uchar16 other) { - simd_uchar64 result; - result.lo = simd_make_uchar32(other); - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixty-four 8-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(simd_uchar32 other) { - simd_uchar64 result = 0; - result.lo = simd_make_uchar32(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64_undef(simd_uchar32 other) { - simd_uchar64 result; - result.lo = simd_make_uchar32(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uchar64 simd_make_uchar64(simd_uchar64 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2(short x, short y) { - simd_short2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2(short other) { - simd_short2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2_undef(short other) { - simd_short2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2(simd_short2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2(simd_short3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2(simd_short4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2(simd_short8 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2(simd_short16 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_short2 simd_make_short2(simd_short32 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(short x, short y, short z) { - simd_short3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(short x, simd_short2 yz) { - simd_short3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(simd_short2 xy, short z) { - simd_short3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(short other) { - simd_short3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3_undef(short other) { - simd_short3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(simd_short2 other) { - simd_short3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3_undef(simd_short2 other) { - simd_short3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(simd_short3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(simd_short4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(simd_short8 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(simd_short16 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short3 simd_make_short3(simd_short32 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 16-bit signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(short x, short y, short z, short w) { - simd_short4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(short x, short y, simd_short2 zw) { - simd_short4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(short x, simd_short2 yz, short w) { - simd_short4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short2 xy, short z, short w) { - simd_short4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(short x, simd_short3 yzw) { - simd_short4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short2 xy, simd_short2 zw) { - simd_short4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short3 xyz, short w) { - simd_short4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(short other) { - simd_short4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4_undef(short other) { - simd_short4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short2 other) { - simd_short4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4_undef(simd_short2 other) { - simd_short4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short3 other) { - simd_short4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4_undef(simd_short3 other) { - simd_short4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short8 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short16 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short4 simd_make_short4(simd_short32 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8(simd_short4 lo, simd_short4 hi) { - simd_short8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8(short other) { - simd_short8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8_undef(short other) { - simd_short8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8(simd_short2 other) { - simd_short8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8_undef(simd_short2 other) { - simd_short8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8(simd_short3 other) { - simd_short8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8_undef(simd_short3 other) { - simd_short8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8(simd_short4 other) { - simd_short8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8_undef(simd_short4 other) { - simd_short8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8(simd_short8 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of eight 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8(simd_short16 other) { - return simd_make_short8(other.lo); -} - -/*! @abstract Truncates `other` to form a vector of eight 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short8 simd_make_short8(simd_short32 other) { - return simd_make_short8(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16(simd_short8 lo, simd_short8 hi) { - simd_short16 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16(short other) { - simd_short16 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16_undef(short other) { - simd_short16 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16(simd_short2 other) { - simd_short16 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16_undef(simd_short2 other) { - simd_short16 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16(simd_short3 other) { - simd_short16 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16_undef(simd_short3 other) { - simd_short16 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16(simd_short4 other) { - simd_short16 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16_undef(simd_short4 other) { - simd_short16 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16(simd_short8 other) { - simd_short16 result = 0; - result.lo = simd_make_short8(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16_undef(simd_short8 other) { - simd_short16 result; - result.lo = simd_make_short8(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16(simd_short16 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short16 simd_make_short16(simd_short32 other) { - return simd_make_short16(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of thirty-two - * 16-bit signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32(simd_short16 lo, simd_short16 hi) { - simd_short32 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32(short other) { - simd_short32 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32_undef(short other) { - simd_short32 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32(simd_short2 other) { - simd_short32 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32_undef(simd_short2 other) { - simd_short32 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32(simd_short3 other) { - simd_short32 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32_undef(simd_short3 other) { - simd_short32 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32(simd_short4 other) { - simd_short32 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32_undef(simd_short4 other) { - simd_short32 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32(simd_short8 other) { - simd_short32 result = 0; - result.lo = simd_make_short16(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32_undef(simd_short8 other) { - simd_short32 result; - result.lo = simd_make_short16(other); - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32(simd_short16 other) { - simd_short32 result = 0; - result.lo = simd_make_short16(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32_undef(simd_short16 other) { - simd_short32 result; - result.lo = simd_make_short16(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_short32 simd_make_short32(simd_short32 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2(unsigned short x, unsigned short y) { - simd_ushort2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2(unsigned short other) { - simd_ushort2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2_undef(unsigned short other) { - simd_ushort2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2(simd_ushort2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2(simd_ushort3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2(simd_ushort4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2(simd_ushort8 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2(simd_ushort16 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort2 simd_make_ushort2(simd_ushort32 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(unsigned short x, unsigned short y, unsigned short z) { - simd_ushort3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(unsigned short x, simd_ushort2 yz) { - simd_ushort3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(simd_ushort2 xy, unsigned short z) { - simd_ushort3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(unsigned short other) { - simd_ushort3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3_undef(unsigned short other) { - simd_ushort3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(simd_ushort2 other) { - simd_ushort3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3_undef(simd_ushort2 other) { - simd_ushort3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(simd_ushort3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(simd_ushort4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(simd_ushort8 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(simd_ushort16 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort3 simd_make_ushort3(simd_ushort32 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 16-bit unsigned integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) { - simd_ushort4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(unsigned short x, unsigned short y, simd_ushort2 zw) { - simd_ushort4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(unsigned short x, simd_ushort2 yz, unsigned short w) { - simd_ushort4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort2 xy, unsigned short z, unsigned short w) { - simd_ushort4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(unsigned short x, simd_ushort3 yzw) { - simd_ushort4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort2 xy, simd_ushort2 zw) { - simd_ushort4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort3 xyz, unsigned short w) { - simd_ushort4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(unsigned short other) { - simd_ushort4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4_undef(unsigned short other) { - simd_ushort4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort2 other) { - simd_ushort4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4_undef(simd_ushort2 other) { - simd_ushort4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort3 other) { - simd_ushort4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4_undef(simd_ushort3 other) { - simd_ushort4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort8 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort16 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort4 simd_make_ushort4(simd_ushort32 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8(simd_ushort4 lo, simd_ushort4 hi) { - simd_ushort8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8(unsigned short other) { - simd_ushort8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8_undef(unsigned short other) { - simd_ushort8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8(simd_ushort2 other) { - simd_ushort8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8_undef(simd_ushort2 other) { - simd_ushort8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8(simd_ushort3 other) { - simd_ushort8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8_undef(simd_ushort3 other) { - simd_ushort8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8(simd_ushort4 other) { - simd_ushort8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8_undef(simd_ushort4 other) { - simd_ushort8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8(simd_ushort8 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of eight 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8(simd_ushort16 other) { - return simd_make_ushort8(other.lo); -} - -/*! @abstract Truncates `other` to form a vector of eight 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort8 simd_make_ushort8(simd_ushort32 other) { - return simd_make_ushort8(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16(simd_ushort8 lo, simd_ushort8 hi) { - simd_ushort16 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16(unsigned short other) { - simd_ushort16 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16_undef(unsigned short other) { - simd_ushort16 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16(simd_ushort2 other) { - simd_ushort16 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16_undef(simd_ushort2 other) { - simd_ushort16 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16(simd_ushort3 other) { - simd_ushort16 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16_undef(simd_ushort3 other) { - simd_ushort16 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16(simd_ushort4 other) { - simd_ushort16 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16_undef(simd_ushort4 other) { - simd_ushort16 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16(simd_ushort8 other) { - simd_ushort16 result = 0; - result.lo = simd_make_ushort8(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16_undef(simd_ushort8 other) { - simd_ushort16 result; - result.lo = simd_make_ushort8(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16(simd_ushort16 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of sixteen 16-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ushort16 simd_make_ushort16(simd_ushort32 other) { - return simd_make_ushort16(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of thirty-two - * 16-bit unsigned integers. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32(simd_ushort16 lo, simd_ushort16 hi) { - simd_ushort32 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32(unsigned short other) { - simd_ushort32 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32_undef(unsigned short other) { - simd_ushort32 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32(simd_ushort2 other) { - simd_ushort32 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32_undef(simd_ushort2 other) { - simd_ushort32 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32(simd_ushort3 other) { - simd_ushort32 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32_undef(simd_ushort3 other) { - simd_ushort32 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32(simd_ushort4 other) { - simd_ushort32 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32_undef(simd_ushort4 other) { - simd_ushort32 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32(simd_ushort8 other) { - simd_ushort32 result = 0; - result.lo = simd_make_ushort16(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32_undef(simd_ushort8 other) { - simd_ushort32 result; - result.lo = simd_make_ushort16(other); - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of thirty-two 16-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32(simd_ushort16 other) { - simd_ushort32 result = 0; - result.lo = simd_make_ushort16(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32_undef(simd_ushort16 other) { - simd_ushort32 result; - result.lo = simd_make_ushort16(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ushort32 simd_make_ushort32(simd_ushort32 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int2 simd_make_int2(int x, int y) { - simd_int2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int2 simd_make_int2(int other) { - simd_int2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int2 simd_make_int2_undef(int other) { - simd_int2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_int2 simd_make_int2(simd_int2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_int2 simd_make_int2(simd_int3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_int2 simd_make_int2(simd_int4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_int2 simd_make_int2(simd_int8 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_int2 simd_make_int2(simd_int16 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(int x, int y, int z) { - simd_int3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(int x, simd_int2 yz) { - simd_int3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(simd_int2 xy, int z) { - simd_int3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(int other) { - simd_int3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3_undef(int other) { - simd_int3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(simd_int2 other) { - simd_int3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3_undef(simd_int2 other) { - simd_int3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(simd_int3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(simd_int4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(simd_int8 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int3 simd_make_int3(simd_int16 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 32-bit signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(int x, int y, int z, int w) { - simd_int4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(int x, int y, simd_int2 zw) { - simd_int4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(int x, simd_int2 yz, int w) { - simd_int4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(simd_int2 xy, int z, int w) { - simd_int4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(int x, simd_int3 yzw) { - simd_int4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(simd_int2 xy, simd_int2 zw) { - simd_int4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(simd_int3 xyz, int w) { - simd_int4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(int other) { - simd_int4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4_undef(int other) { - simd_int4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(simd_int2 other) { - simd_int4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4_undef(simd_int2 other) { - simd_int4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(simd_int3 other) { - simd_int4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4_undef(simd_int3 other) { - simd_int4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(simd_int4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(simd_int8 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int4 simd_make_int4(simd_int16 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8(simd_int4 lo, simd_int4 hi) { - simd_int8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8(int other) { - simd_int8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8_undef(int other) { - simd_int8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8(simd_int2 other) { - simd_int8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8_undef(simd_int2 other) { - simd_int8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8(simd_int3 other) { - simd_int8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8_undef(simd_int3 other) { - simd_int8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8(simd_int4 other) { - simd_int8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8_undef(simd_int4 other) { - simd_int8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8(simd_int8 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of eight 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int8 simd_make_int8(simd_int16 other) { - return simd_make_int8(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16(simd_int8 lo, simd_int8 hi) { - simd_int16 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16(int other) { - simd_int16 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16_undef(int other) { - simd_int16 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16(simd_int2 other) { - simd_int16 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16_undef(simd_int2 other) { - simd_int16 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16(simd_int3 other) { - simd_int16 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16_undef(simd_int3 other) { - simd_int16 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16(simd_int4 other) { - simd_int16 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16_undef(simd_int4 other) { - simd_int16 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16(simd_int8 other) { - simd_int16 result = 0; - result.lo = simd_make_int8(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16_undef(simd_int8 other) { - simd_int16 result; - result.lo = simd_make_int8(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_int16 simd_make_int16(simd_int16 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint2 simd_make_uint2(unsigned int x, unsigned int y) { - simd_uint2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint2 simd_make_uint2(unsigned int other) { - simd_uint2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint2 simd_make_uint2_undef(unsigned int other) { - simd_uint2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uint2 simd_make_uint2(simd_uint2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint2 simd_make_uint2(simd_uint3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint2 simd_make_uint2(simd_uint4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint2 simd_make_uint2(simd_uint8 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint2 simd_make_uint2(simd_uint16 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(unsigned int x, unsigned int y, unsigned int z) { - simd_uint3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(unsigned int x, simd_uint2 yz) { - simd_uint3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(simd_uint2 xy, unsigned int z) { - simd_uint3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(unsigned int other) { - simd_uint3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3_undef(unsigned int other) { - simd_uint3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(simd_uint2 other) { - simd_uint3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3_undef(simd_uint2 other) { - simd_uint3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(simd_uint3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(simd_uint4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(simd_uint8 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint3 simd_make_uint3(simd_uint16 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 32-bit unsigned integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w) { - simd_uint4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(unsigned int x, unsigned int y, simd_uint2 zw) { - simd_uint4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(unsigned int x, simd_uint2 yz, unsigned int w) { - simd_uint4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(simd_uint2 xy, unsigned int z, unsigned int w) { - simd_uint4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(unsigned int x, simd_uint3 yzw) { - simd_uint4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(simd_uint2 xy, simd_uint2 zw) { - simd_uint4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(simd_uint3 xyz, unsigned int w) { - simd_uint4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(unsigned int other) { - simd_uint4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4_undef(unsigned int other) { - simd_uint4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(simd_uint2 other) { - simd_uint4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4_undef(simd_uint2 other) { - simd_uint4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(simd_uint3 other) { - simd_uint4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4_undef(simd_uint3 other) { - simd_uint4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(simd_uint4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(simd_uint8 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint4 simd_make_uint4(simd_uint16 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8(simd_uint4 lo, simd_uint4 hi) { - simd_uint8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8(unsigned int other) { - simd_uint8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8_undef(unsigned int other) { - simd_uint8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8(simd_uint2 other) { - simd_uint8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8_undef(simd_uint2 other) { - simd_uint8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8(simd_uint3 other) { - simd_uint8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8_undef(simd_uint3 other) { - simd_uint8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8(simd_uint4 other) { - simd_uint8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8_undef(simd_uint4 other) { - simd_uint8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8(simd_uint8 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of eight 32-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_uint8 simd_make_uint8(simd_uint16 other) { - return simd_make_uint8(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16(simd_uint8 lo, simd_uint8 hi) { - simd_uint16 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16(unsigned int other) { - simd_uint16 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16_undef(unsigned int other) { - simd_uint16 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16(simd_uint2 other) { - simd_uint16 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16_undef(simd_uint2 other) { - simd_uint16 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16(simd_uint3 other) { - simd_uint16 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16_undef(simd_uint3 other) { - simd_uint16 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16(simd_uint4 other) { - simd_uint16 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16_undef(simd_uint4 other) { - simd_uint16 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16(simd_uint8 other) { - simd_uint16 result = 0; - result.lo = simd_make_uint8(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16_undef(simd_uint8 other) { - simd_uint16 result; - result.lo = simd_make_uint8(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_uint16 simd_make_uint16(simd_uint16 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float2 simd_make_float2(float x, float y) { - simd_float2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float2 simd_make_float2(float other) { - simd_float2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 32-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -static inline SIMD_CFUNC simd_float2 simd_make_float2_undef(float other) { - simd_float2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_float2 simd_make_float2(simd_float2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float2 simd_make_float2(simd_float3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float2 simd_make_float2(simd_float4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float2 simd_make_float2(simd_float8 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float2 simd_make_float2(simd_float16 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(float x, float y, float z) { - simd_float3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(float x, simd_float2 yz) { - simd_float3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(simd_float2 xy, float z) { - simd_float3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(float other) { - simd_float3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3_undef(float other) { - simd_float3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(simd_float2 other) { - simd_float3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3_undef(simd_float2 other) { - simd_float3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(simd_float3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(simd_float4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(simd_float8 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float3 simd_make_float3(simd_float16 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 32-bit floating-point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(float x, float y, float z, float w) { - simd_float4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(float x, float y, simd_float2 zw) { - simd_float4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(float x, simd_float2 yz, float w) { - simd_float4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(simd_float2 xy, float z, float w) { - simd_float4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(float x, simd_float3 yzw) { - simd_float4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(simd_float2 xy, simd_float2 zw) { - simd_float4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(simd_float3 xyz, float w) { - simd_float4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(float other) { - simd_float4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4_undef(float other) { - simd_float4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(simd_float2 other) { - simd_float4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4_undef(simd_float2 other) { - simd_float4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(simd_float3 other) { - simd_float4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 32-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4_undef(simd_float3 other) { - simd_float4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(simd_float4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(simd_float8 other) { - return other.xyzw; -} - -/*! @abstract Truncates `other` to form a vector of four 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float4 simd_make_float4(simd_float16 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8(simd_float4 lo, simd_float4 hi) { - simd_float8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8(float other) { - simd_float8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8_undef(float other) { - simd_float8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8(simd_float2 other) { - simd_float8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8_undef(simd_float2 other) { - simd_float8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8(simd_float3 other) { - simd_float8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8_undef(simd_float3 other) { - simd_float8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8(simd_float4 other) { - simd_float8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8_undef(simd_float4 other) { - simd_float8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8(simd_float8 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of eight 32-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_float8 simd_make_float8(simd_float16 other) { - return simd_make_float8(other.lo); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16(simd_float8 lo, simd_float8 hi) { - simd_float16 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16(float other) { - simd_float16 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16_undef(float other) { - simd_float16 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16(simd_float2 other) { - simd_float16 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16_undef(simd_float2 other) { - simd_float16 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16(simd_float3 other) { - simd_float16 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16_undef(simd_float3 other) { - simd_float16 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16(simd_float4 other) { - simd_float16 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16_undef(simd_float4 other) { - simd_float16 result; - result.xyzw = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of sixteen 32-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16(simd_float8 other) { - simd_float16 result = 0; - result.lo = simd_make_float8(other); - return result; -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16_undef(simd_float8 other) { - simd_float16 result; - result.lo = simd_make_float8(other); - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_float16 simd_make_float16(simd_float16 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long2 simd_make_long2(simd_long1 x, simd_long1 y) { - simd_long2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long2 simd_make_long2(simd_long1 other) { - simd_long2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long2 simd_make_long2_undef(simd_long1 other) { - simd_long2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_long2 simd_make_long2(simd_long2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_long2 simd_make_long2(simd_long3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_long2 simd_make_long2(simd_long4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit signed (twos- - * complement) integers. */ -static inline SIMD_CFUNC simd_long2 simd_make_long2(simd_long8 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3(simd_long1 x, simd_long1 y, simd_long1 z) { - simd_long3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3(simd_long1 x, simd_long2 yz) { - simd_long3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3(simd_long2 xy, simd_long1 z) { - simd_long3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3(simd_long1 other) { - simd_long3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3_undef(simd_long1 other) { - simd_long3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3(simd_long2 other) { - simd_long3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3_undef(simd_long2 other) { - simd_long3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3(simd_long3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3(simd_long4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long3 simd_make_long3(simd_long8 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 64-bit signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long1 x, simd_long1 y, simd_long1 z, simd_long1 w) { - simd_long4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long1 x, simd_long1 y, simd_long2 zw) { - simd_long4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long1 x, simd_long2 yz, simd_long1 w) { - simd_long4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long2 xy, simd_long1 z, simd_long1 w) { - simd_long4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long1 x, simd_long3 yzw) { - simd_long4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long2 xy, simd_long2 zw) { - simd_long4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long3 xyz, simd_long1 w) { - simd_long4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long1 other) { - simd_long4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4_undef(simd_long1 other) { - simd_long4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long2 other) { - simd_long4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4_undef(simd_long2 other) { - simd_long4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long3 other) { - simd_long4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4_undef(simd_long3 other) { - simd_long4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long4 simd_make_long4(simd_long8 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8(simd_long4 lo, simd_long4 hi) { - simd_long8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8(simd_long1 other) { - simd_long8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8_undef(simd_long1 other) { - simd_long8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8(simd_long2 other) { - simd_long8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8_undef(simd_long2 other) { - simd_long8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8(simd_long3 other) { - simd_long8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8_undef(simd_long3 other) { - simd_long8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8(simd_long4 other) { - simd_long8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8_undef(simd_long4 other) { - simd_long8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_long8 simd_make_long8(simd_long8 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong2 simd_make_ulong2(simd_ulong1 x, simd_ulong1 y) { - simd_ulong2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong2 simd_make_ulong2(simd_ulong1 other) { - simd_ulong2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong2 simd_make_ulong2_undef(simd_ulong1 other) { - simd_ulong2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ulong2 simd_make_ulong2(simd_ulong2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong2 simd_make_ulong2(simd_ulong3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong2 simd_make_ulong2(simd_ulong4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong2 simd_make_ulong2(simd_ulong8 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3(simd_ulong1 x, simd_ulong1 y, simd_ulong1 z) { - simd_ulong3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3(simd_ulong1 x, simd_ulong2 yz) { - simd_ulong3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3(simd_ulong2 xy, simd_ulong1 z) { - simd_ulong3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3(simd_ulong1 other) { - simd_ulong3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3_undef(simd_ulong1 other) { - simd_ulong3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3(simd_ulong2 other) { - simd_ulong3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3_undef(simd_ulong2 other) { - simd_ulong3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3(simd_ulong3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3(simd_ulong4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong3 simd_make_ulong3(simd_ulong8 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 64-bit unsigned integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong1 x, simd_ulong1 y, simd_ulong1 z, simd_ulong1 w) { - simd_ulong4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong1 x, simd_ulong1 y, simd_ulong2 zw) { - simd_ulong4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong1 x, simd_ulong2 yz, simd_ulong1 w) { - simd_ulong4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong2 xy, simd_ulong1 z, simd_ulong1 w) { - simd_ulong4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong1 x, simd_ulong3 yzw) { - simd_ulong4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong2 xy, simd_ulong2 zw) { - simd_ulong4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong3 xyz, simd_ulong1 w) { - simd_ulong4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong1 other) { - simd_ulong4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4_undef(simd_ulong1 other) { - simd_ulong4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong2 other) { - simd_ulong4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4_undef(simd_ulong2 other) { - simd_ulong4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong3 other) { - simd_ulong4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4_undef(simd_ulong3 other) { - simd_ulong4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong4 simd_make_ulong4(simd_ulong8 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 64-bit - * unsigned integers. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8(simd_ulong4 lo, simd_ulong4 hi) { - simd_ulong8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8(simd_ulong1 other) { - simd_ulong8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8_undef(simd_ulong1 other) { - simd_ulong8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8(simd_ulong2 other) { - simd_ulong8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8_undef(simd_ulong2 other) { - simd_ulong8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8(simd_ulong3 other) { - simd_ulong8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8_undef(simd_ulong3 other) { - simd_ulong8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit unsigned - * integers. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8(simd_ulong4 other) { - simd_ulong8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8_undef(simd_ulong4 other) { - simd_ulong8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_ulong8 simd_make_ulong8(simd_ulong8 other) { - return other; -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double2 simd_make_double2(double x, double y) { - simd_double2 result; - result.x = x; - result.y = y; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of two 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double2 simd_make_double2(double other) { - simd_double2 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of two 64-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -static inline SIMD_CFUNC simd_double2 simd_make_double2_undef(double other) { - simd_double2 result; - result.x = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_double2 simd_make_double2(simd_double2 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double2 simd_make_double2(simd_double3 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double2 simd_make_double2(simd_double4 other) { - return other.xy; -} - -/*! @abstract Truncates `other` to form a vector of two 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double2 simd_make_double2(simd_double8 other) { - return other.xy; -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3(double x, double y, double z) { - simd_double3 result; - result.x = x; - result.y = y; - result.z = z; - return result; -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3(double x, simd_double2 yz) { - simd_double3 result; - result.x = x; - result.yz = yz; - return result; -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3(simd_double2 xy, double z) { - simd_double3 result; - result.xy = xy; - result.z = z; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3(double other) { - simd_double3 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 64-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3_undef(double other) { - simd_double3 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of three 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3(simd_double2 other) { - simd_double3 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of three 64-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3_undef(simd_double2 other) { - simd_double3 result; - result.xy = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3(simd_double3 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of three 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3(simd_double4 other) { - return other.xyz; -} - -/*! @abstract Truncates `other` to form a vector of three 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double3 simd_make_double3(simd_double8 other) { - return other.xyz; -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 64-bit floating-point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(double x, double y, double z, double w) { - simd_double4 result; - result.x = x; - result.y = y; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(double x, double y, simd_double2 zw) { - simd_double4 result; - result.x = x; - result.y = y; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(double x, simd_double2 yz, double w) { - simd_double4 result; - result.x = x; - result.yz = yz; - result.w = w; - return result; -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(simd_double2 xy, double z, double w) { - simd_double4 result; - result.xy = xy; - result.z = z; - result.w = w; - return result; -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(double x, simd_double3 yzw) { - simd_double4 result; - result.x = x; - result.yzw = yzw; - return result; -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(simd_double2 xy, simd_double2 zw) { - simd_double4 result; - result.xy = xy; - result.zw = zw; - return result; -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(simd_double3 xyz, double w) { - simd_double4 result; - result.xyz = xyz; - result.w = w; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(double other) { - simd_double4 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4_undef(double other) { - simd_double4 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(simd_double2 other) { - simd_double4 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4_undef(simd_double2 other) { - simd_double4 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of four 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(simd_double3 other) { - simd_double4 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of four 64-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4_undef(simd_double3 other) { - simd_double4 result; - result.xyz = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(simd_double4 other) { - return other; -} - -/*! @abstract Truncates `other` to form a vector of four 64-bit floating- - * point numbers. */ -static inline SIMD_CFUNC simd_double4 simd_make_double4(simd_double8 other) { - return other.xyzw; -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8(simd_double4 lo, simd_double4 hi) { - simd_double8 result; - result.lo = lo; - result.hi = hi; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8(double other) { - simd_double8 result = 0; - result.x = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8_undef(double other) { - simd_double8 result; - result.x = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8(simd_double2 other) { - simd_double8 result = 0; - result.xy = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8_undef(simd_double2 other) { - simd_double8 result; - result.xy = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8(simd_double3 other) { - simd_double8 result = 0; - result.xyz = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8_undef(simd_double3 other) { - simd_double8 result; - result.xyz = other; - return result; -} - -/*! @abstract Zero-extends `other` to form a vector of eight 64-bit - * floating-point numbers. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8(simd_double4 other) { - simd_double8 result = 0; - result.xyzw = other; - return result; -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8_undef(simd_double4 other) { - simd_double8 result; - result.xyzw = other; - return result; -} - -/*! @abstract Returns `other` unmodified. This function is a convenience for - * templated and autogenerated code. */ -static inline SIMD_CFUNC simd_double8 simd_make_double8(simd_double8 other) { - return other; -} - -#ifdef __cplusplus -} /* extern "C" */ - -namespace simd { -/*! @abstract Concatenates `x` and `y` to form a vector of two 8-bit signed - * (twos-complement) integers. */ -static inline SIMD_CPPFUNC char2 make_char2(char x, char y) { - return ::simd_make_char2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 8-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC char2 make_char2(typeN other) { - return ::simd_make_char2(other); -} - -/*! @abstract Extends `other` to form a vector of two 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC char2 make_char2_undef(typeN other) { - return ::simd_make_char2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char3 make_char3(char x, char y, char z) { - return ::simd_make_char3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char3 make_char3(char x, char2 yz) { - return ::simd_make_char3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char3 make_char3(char2 xy, char z) { - return ::simd_make_char3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 8-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC char3 make_char3(typeN other) { - return ::simd_make_char3(other); -} - -/*! @abstract Extends `other` to form a vector of three 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC char3 make_char3_undef(typeN other) { - return ::simd_make_char3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 8-bit signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char4 make_char4(char x, char y, char z, char w) { - return ::simd_make_char4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char4 make_char4(char x, char y, char2 zw) { - return ::simd_make_char4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char4 make_char4(char x, char2 yz, char w) { - return ::simd_make_char4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char4 make_char4(char2 xy, char z, char w) { - return ::simd_make_char4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char4 make_char4(char x, char3 yzw) { - return ::simd_make_char4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char4 make_char4(char2 xy, char2 zw) { - return ::simd_make_char4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char4 make_char4(char3 xyz, char w) { - return ::simd_make_char4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 8-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC char4 make_char4(typeN other) { - return ::simd_make_char4(other); -} - -/*! @abstract Extends `other` to form a vector of four 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC char4 make_char4_undef(typeN other) { - return ::simd_make_char4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char8 make_char8(char4 lo, char4 hi) { - return ::simd_make_char8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 8-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC char8 make_char8(typeN other) { - return ::simd_make_char8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC char8 make_char8_undef(typeN other) { - return ::simd_make_char8_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 8-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char16 make_char16(char8 lo, char8 hi) { - return ::simd_make_char16(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixteen - * 8-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC char16 make_char16(typeN other) { - return ::simd_make_char16(other); -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -template static SIMD_CPPFUNC char16 make_char16_undef(typeN other) { - return ::simd_make_char16_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of thirty-two - * 8-bit signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char32 make_char32(char16 lo, char16 hi) { - return ::simd_make_char32(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of thirty- - * two 8-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC char32 make_char32(typeN other) { - return ::simd_make_char32(other); -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -template static SIMD_CPPFUNC char32 make_char32_undef(typeN other) { - return ::simd_make_char32_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixty-four - * 8-bit signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC char64 make_char64(char32 lo, char32 hi) { - return ::simd_make_char64(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixty- - * four 8-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC char64 make_char64(typeN other) { - return ::simd_make_char64(other); -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -template static SIMD_CPPFUNC char64 make_char64_undef(typeN other) { - return ::simd_make_char64_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar2 make_uchar2(unsigned char x, unsigned char y) { - return ::simd_make_uchar2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 8-bit unsigned integers. */ -template static SIMD_CPPFUNC uchar2 make_uchar2(typeN other) { - return ::simd_make_uchar2(other); -} - -/*! @abstract Extends `other` to form a vector of two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uchar2 make_uchar2_undef(typeN other) { - return ::simd_make_uchar2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) { - return ::simd_make_uchar3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar3 make_uchar3(unsigned char x, uchar2 yz) { - return ::simd_make_uchar3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar3 make_uchar3(uchar2 xy, unsigned char z) { - return ::simd_make_uchar3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 8-bit unsigned integers. */ -template static SIMD_CPPFUNC uchar3 make_uchar3(typeN other) { - return ::simd_make_uchar3(other); -} - -/*! @abstract Extends `other` to form a vector of three 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uchar3 make_uchar3_undef(typeN other) { - return ::simd_make_uchar3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 8-bit unsigned integers. */ -static inline SIMD_CPPFUNC uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) { - return ::simd_make_uchar4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar4 make_uchar4(unsigned char x, unsigned char y, uchar2 zw) { - return ::simd_make_uchar4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar4 make_uchar4(unsigned char x, uchar2 yz, unsigned char w) { - return ::simd_make_uchar4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar4 make_uchar4(uchar2 xy, unsigned char z, unsigned char w) { - return ::simd_make_uchar4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar4 make_uchar4(unsigned char x, uchar3 yzw) { - return ::simd_make_uchar4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar4 make_uchar4(uchar2 xy, uchar2 zw) { - return ::simd_make_uchar4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar4 make_uchar4(uchar3 xyz, unsigned char w) { - return ::simd_make_uchar4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 8-bit unsigned integers. */ -template static SIMD_CPPFUNC uchar4 make_uchar4(typeN other) { - return ::simd_make_uchar4(other); -} - -/*! @abstract Extends `other` to form a vector of four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uchar4 make_uchar4_undef(typeN other) { - return ::simd_make_uchar4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar8 make_uchar8(uchar4 lo, uchar4 hi) { - return ::simd_make_uchar8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 8-bit unsigned integers. */ -template static SIMD_CPPFUNC uchar8 make_uchar8(typeN other) { - return ::simd_make_uchar8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uchar8 make_uchar8_undef(typeN other) { - return ::simd_make_uchar8_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 8-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uchar16 make_uchar16(uchar8 lo, uchar8 hi) { - return ::simd_make_uchar16(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixteen - * 8-bit unsigned integers. */ -template static SIMD_CPPFUNC uchar16 make_uchar16(typeN other) { - return ::simd_make_uchar16(other); -} - -/*! @abstract Extends `other` to form a vector of sixteen 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uchar16 make_uchar16_undef(typeN other) { - return ::simd_make_uchar16_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of thirty-two - * 8-bit unsigned integers. */ -static inline SIMD_CPPFUNC uchar32 make_uchar32(uchar16 lo, uchar16 hi) { - return ::simd_make_uchar32(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of thirty- - * two 8-bit unsigned integers. */ -template static SIMD_CPPFUNC uchar32 make_uchar32(typeN other) { - return ::simd_make_uchar32(other); -} - -/*! @abstract Extends `other` to form a vector of thirty-two 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uchar32 make_uchar32_undef(typeN other) { - return ::simd_make_uchar32_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixty-four - * 8-bit unsigned integers. */ -static inline SIMD_CPPFUNC uchar64 make_uchar64(uchar32 lo, uchar32 hi) { - return ::simd_make_uchar64(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixty- - * four 8-bit unsigned integers. */ -template static SIMD_CPPFUNC uchar64 make_uchar64(typeN other) { - return ::simd_make_uchar64(other); -} - -/*! @abstract Extends `other` to form a vector of sixty-four 8-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uchar64 make_uchar64_undef(typeN other) { - return ::simd_make_uchar64_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 16-bit signed - * (twos-complement) integers. */ -static inline SIMD_CPPFUNC short2 make_short2(short x, short y) { - return ::simd_make_short2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 16-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC short2 make_short2(typeN other) { - return ::simd_make_short2(other); -} - -/*! @abstract Extends `other` to form a vector of two 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC short2 make_short2_undef(typeN other) { - return ::simd_make_short2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short3 make_short3(short x, short y, short z) { - return ::simd_make_short3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short3 make_short3(short x, short2 yz) { - return ::simd_make_short3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short3 make_short3(short2 xy, short z) { - return ::simd_make_short3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 16-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC short3 make_short3(typeN other) { - return ::simd_make_short3(other); -} - -/*! @abstract Extends `other` to form a vector of three 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC short3 make_short3_undef(typeN other) { - return ::simd_make_short3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 16-bit signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short4 make_short4(short x, short y, short z, short w) { - return ::simd_make_short4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short4 make_short4(short x, short y, short2 zw) { - return ::simd_make_short4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short4 make_short4(short x, short2 yz, short w) { - return ::simd_make_short4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short4 make_short4(short2 xy, short z, short w) { - return ::simd_make_short4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short4 make_short4(short x, short3 yzw) { - return ::simd_make_short4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short4 make_short4(short2 xy, short2 zw) { - return ::simd_make_short4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short4 make_short4(short3 xyz, short w) { - return ::simd_make_short4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 16-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC short4 make_short4(typeN other) { - return ::simd_make_short4(other); -} - -/*! @abstract Extends `other` to form a vector of four 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC short4 make_short4_undef(typeN other) { - return ::simd_make_short4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short8 make_short8(short4 lo, short4 hi) { - return ::simd_make_short8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 16-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC short8 make_short8(typeN other) { - return ::simd_make_short8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC short8 make_short8_undef(typeN other) { - return ::simd_make_short8_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 16-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short16 make_short16(short8 lo, short8 hi) { - return ::simd_make_short16(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixteen - * 16-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC short16 make_short16(typeN other) { - return ::simd_make_short16(other); -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -template static SIMD_CPPFUNC short16 make_short16_undef(typeN other) { - return ::simd_make_short16_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of thirty-two - * 16-bit signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC short32 make_short32(short16 lo, short16 hi) { - return ::simd_make_short32(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of thirty- - * two 16-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC short32 make_short32(typeN other) { - return ::simd_make_short32(other); -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -template static SIMD_CPPFUNC short32 make_short32_undef(typeN other) { - return ::simd_make_short32_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort2 make_ushort2(unsigned short x, unsigned short y) { - return ::simd_make_ushort2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 16-bit unsigned integers. */ -template static SIMD_CPPFUNC ushort2 make_ushort2(typeN other) { - return ::simd_make_ushort2(other); -} - -/*! @abstract Extends `other` to form a vector of two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ushort2 make_ushort2_undef(typeN other) { - return ::simd_make_ushort2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) { - return ::simd_make_ushort3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort3 make_ushort3(unsigned short x, ushort2 yz) { - return ::simd_make_ushort3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort3 make_ushort3(ushort2 xy, unsigned short z) { - return ::simd_make_ushort3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 16-bit unsigned integers. */ -template static SIMD_CPPFUNC ushort3 make_ushort3(typeN other) { - return ::simd_make_ushort3(other); -} - -/*! @abstract Extends `other` to form a vector of three 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ushort3 make_ushort3_undef(typeN other) { - return ::simd_make_ushort3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 16-bit unsigned integers. */ -static inline SIMD_CPPFUNC ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) { - return ::simd_make_ushort4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort4 make_ushort4(unsigned short x, unsigned short y, ushort2 zw) { - return ::simd_make_ushort4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort4 make_ushort4(unsigned short x, ushort2 yz, unsigned short w) { - return ::simd_make_ushort4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort4 make_ushort4(ushort2 xy, unsigned short z, unsigned short w) { - return ::simd_make_ushort4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort4 make_ushort4(unsigned short x, ushort3 yzw) { - return ::simd_make_ushort4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort4 make_ushort4(ushort2 xy, ushort2 zw) { - return ::simd_make_ushort4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort4 make_ushort4(ushort3 xyz, unsigned short w) { - return ::simd_make_ushort4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 16-bit unsigned integers. */ -template static SIMD_CPPFUNC ushort4 make_ushort4(typeN other) { - return ::simd_make_ushort4(other); -} - -/*! @abstract Extends `other` to form a vector of four 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ushort4 make_ushort4_undef(typeN other) { - return ::simd_make_ushort4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort8 make_ushort8(ushort4 lo, ushort4 hi) { - return ::simd_make_ushort8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 16-bit unsigned integers. */ -template static SIMD_CPPFUNC ushort8 make_ushort8(typeN other) { - return ::simd_make_ushort8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ushort8 make_ushort8_undef(typeN other) { - return ::simd_make_ushort8_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 16-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ushort16 make_ushort16(ushort8 lo, ushort8 hi) { - return ::simd_make_ushort16(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixteen - * 16-bit unsigned integers. */ -template static SIMD_CPPFUNC ushort16 make_ushort16(typeN other) { - return ::simd_make_ushort16(other); -} - -/*! @abstract Extends `other` to form a vector of sixteen 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ushort16 make_ushort16_undef(typeN other) { - return ::simd_make_ushort16_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of thirty-two - * 16-bit unsigned integers. */ -static inline SIMD_CPPFUNC ushort32 make_ushort32(ushort16 lo, ushort16 hi) { - return ::simd_make_ushort32(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of thirty- - * two 16-bit unsigned integers. */ -template static SIMD_CPPFUNC ushort32 make_ushort32(typeN other) { - return ::simd_make_ushort32(other); -} - -/*! @abstract Extends `other` to form a vector of thirty-two 16-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ushort32 make_ushort32_undef(typeN other) { - return ::simd_make_ushort32_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 32-bit signed - * (twos-complement) integers. */ -static inline SIMD_CPPFUNC int2 make_int2(int x, int y) { - return ::simd_make_int2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 32-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC int2 make_int2(typeN other) { - return ::simd_make_int2(other); -} - -/*! @abstract Extends `other` to form a vector of two 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC int2 make_int2_undef(typeN other) { - return ::simd_make_int2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int3 make_int3(int x, int y, int z) { - return ::simd_make_int3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int3 make_int3(int x, int2 yz) { - return ::simd_make_int3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int3 make_int3(int2 xy, int z) { - return ::simd_make_int3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 32-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC int3 make_int3(typeN other) { - return ::simd_make_int3(other); -} - -/*! @abstract Extends `other` to form a vector of three 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC int3 make_int3_undef(typeN other) { - return ::simd_make_int3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 32-bit signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int4 make_int4(int x, int y, int z, int w) { - return ::simd_make_int4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int4 make_int4(int x, int y, int2 zw) { - return ::simd_make_int4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int4 make_int4(int x, int2 yz, int w) { - return ::simd_make_int4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int4 make_int4(int2 xy, int z, int w) { - return ::simd_make_int4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int4 make_int4(int x, int3 yzw) { - return ::simd_make_int4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int4 make_int4(int2 xy, int2 zw) { - return ::simd_make_int4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int4 make_int4(int3 xyz, int w) { - return ::simd_make_int4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 32-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC int4 make_int4(typeN other) { - return ::simd_make_int4(other); -} - -/*! @abstract Extends `other` to form a vector of four 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC int4 make_int4_undef(typeN other) { - return ::simd_make_int4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int8 make_int8(int4 lo, int4 hi) { - return ::simd_make_int8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 32-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC int8 make_int8(typeN other) { - return ::simd_make_int8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC int8 make_int8_undef(typeN other) { - return ::simd_make_int8_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 32-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC int16 make_int16(int8 lo, int8 hi) { - return ::simd_make_int16(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixteen - * 32-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC int16 make_int16(typeN other) { - return ::simd_make_int16(other); -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit signed - * (twos-complement) integers. The contents of the newly-created vector - * lanes are unspecified. */ -template static SIMD_CPPFUNC int16 make_int16_undef(typeN other) { - return ::simd_make_int16_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint2 make_uint2(unsigned int x, unsigned int y) { - return ::simd_make_uint2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 32-bit unsigned integers. */ -template static SIMD_CPPFUNC uint2 make_uint2(typeN other) { - return ::simd_make_uint2(other); -} - -/*! @abstract Extends `other` to form a vector of two 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uint2 make_uint2_undef(typeN other) { - return ::simd_make_uint2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z) { - return ::simd_make_uint3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint3 make_uint3(unsigned int x, uint2 yz) { - return ::simd_make_uint3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint3 make_uint3(uint2 xy, unsigned int z) { - return ::simd_make_uint3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 32-bit unsigned integers. */ -template static SIMD_CPPFUNC uint3 make_uint3(typeN other) { - return ::simd_make_uint3(other); -} - -/*! @abstract Extends `other` to form a vector of three 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uint3 make_uint3_undef(typeN other) { - return ::simd_make_uint3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 32-bit unsigned integers. */ -static inline SIMD_CPPFUNC uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w) { - return ::simd_make_uint4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint4 make_uint4(unsigned int x, unsigned int y, uint2 zw) { - return ::simd_make_uint4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint4 make_uint4(unsigned int x, uint2 yz, unsigned int w) { - return ::simd_make_uint4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint4 make_uint4(uint2 xy, unsigned int z, unsigned int w) { - return ::simd_make_uint4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint4 make_uint4(unsigned int x, uint3 yzw) { - return ::simd_make_uint4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint4 make_uint4(uint2 xy, uint2 zw) { - return ::simd_make_uint4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint4 make_uint4(uint3 xyz, unsigned int w) { - return ::simd_make_uint4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 32-bit unsigned integers. */ -template static SIMD_CPPFUNC uint4 make_uint4(typeN other) { - return ::simd_make_uint4(other); -} - -/*! @abstract Extends `other` to form a vector of four 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uint4 make_uint4_undef(typeN other) { - return ::simd_make_uint4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint8 make_uint8(uint4 lo, uint4 hi) { - return ::simd_make_uint8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 32-bit unsigned integers. */ -template static SIMD_CPPFUNC uint8 make_uint8(typeN other) { - return ::simd_make_uint8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uint8 make_uint8_undef(typeN other) { - return ::simd_make_uint8_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 32-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC uint16 make_uint16(uint8 lo, uint8 hi) { - return ::simd_make_uint16(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixteen - * 32-bit unsigned integers. */ -template static SIMD_CPPFUNC uint16 make_uint16(typeN other) { - return ::simd_make_uint16(other); -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC uint16 make_uint16_undef(typeN other) { - return ::simd_make_uint16_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float2 make_float2(float x, float y) { - return ::simd_make_float2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 32-bit floating-point numbers. */ -template static SIMD_CPPFUNC float2 make_float2(typeN other) { - return ::simd_make_float2(other); -} - -/*! @abstract Extends `other` to form a vector of two 32-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -template static SIMD_CPPFUNC float2 make_float2_undef(typeN other) { - return ::simd_make_float2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float3 make_float3(float x, float y, float z) { - return ::simd_make_float3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float3 make_float3(float x, float2 yz) { - return ::simd_make_float3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float3 make_float3(float2 xy, float z) { - return ::simd_make_float3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 32-bit floating-point numbers. */ -template static SIMD_CPPFUNC float3 make_float3(typeN other) { - return ::simd_make_float3(other); -} - -/*! @abstract Extends `other` to form a vector of three 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC float3 make_float3_undef(typeN other) { - return ::simd_make_float3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 32-bit floating-point numbers. */ -static inline SIMD_CPPFUNC float4 make_float4(float x, float y, float z, float w) { - return ::simd_make_float4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float4 make_float4(float x, float y, float2 zw) { - return ::simd_make_float4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float4 make_float4(float x, float2 yz, float w) { - return ::simd_make_float4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float4 make_float4(float2 xy, float z, float w) { - return ::simd_make_float4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float4 make_float4(float x, float3 yzw) { - return ::simd_make_float4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float4 make_float4(float2 xy, float2 zw) { - return ::simd_make_float4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float4 make_float4(float3 xyz, float w) { - return ::simd_make_float4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 32-bit floating-point numbers. */ -template static SIMD_CPPFUNC float4 make_float4(typeN other) { - return ::simd_make_float4(other); -} - -/*! @abstract Extends `other` to form a vector of four 32-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -template static SIMD_CPPFUNC float4 make_float4_undef(typeN other) { - return ::simd_make_float4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float8 make_float8(float4 lo, float4 hi) { - return ::simd_make_float8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 32-bit floating-point numbers. */ -template static SIMD_CPPFUNC float8 make_float8(typeN other) { - return ::simd_make_float8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC float8 make_float8_undef(typeN other) { - return ::simd_make_float8_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of sixteen 32-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC float16 make_float16(float8 lo, float8 hi) { - return ::simd_make_float16(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of sixteen - * 32-bit floating-point numbers. */ -template static SIMD_CPPFUNC float16 make_float16(typeN other) { - return ::simd_make_float16(other); -} - -/*! @abstract Extends `other` to form a vector of sixteen 32-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC float16 make_float16_undef(typeN other) { - return ::simd_make_float16_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 64-bit signed - * (twos-complement) integers. */ -static inline SIMD_CPPFUNC long2 make_long2(long1 x, long1 y) { - return ::simd_make_long2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 64-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC long2 make_long2(typeN other) { - return ::simd_make_long2(other); -} - -/*! @abstract Extends `other` to form a vector of two 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC long2 make_long2_undef(typeN other) { - return ::simd_make_long2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long3 make_long3(long1 x, long1 y, long1 z) { - return ::simd_make_long3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long3 make_long3(long1 x, long2 yz) { - return ::simd_make_long3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long3 make_long3(long2 xy, long1 z) { - return ::simd_make_long3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 64-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC long3 make_long3(typeN other) { - return ::simd_make_long3(other); -} - -/*! @abstract Extends `other` to form a vector of three 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC long3 make_long3_undef(typeN other) { - return ::simd_make_long3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 64-bit signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long4 make_long4(long1 x, long1 y, long1 z, long1 w) { - return ::simd_make_long4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long4 make_long4(long1 x, long1 y, long2 zw) { - return ::simd_make_long4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long4 make_long4(long1 x, long2 yz, long1 w) { - return ::simd_make_long4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long4 make_long4(long2 xy, long1 z, long1 w) { - return ::simd_make_long4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long4 make_long4(long1 x, long3 yzw) { - return ::simd_make_long4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long4 make_long4(long2 xy, long2 zw) { - return ::simd_make_long4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long4 make_long4(long3 xyz, long1 w) { - return ::simd_make_long4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 64-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC long4 make_long4(typeN other) { - return ::simd_make_long4(other); -} - -/*! @abstract Extends `other` to form a vector of four 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC long4 make_long4_undef(typeN other) { - return ::simd_make_long4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 64-bit - * signed (twos-complement) integers. */ -static inline SIMD_CPPFUNC long8 make_long8(long4 lo, long4 hi) { - return ::simd_make_long8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 64-bit signed (twos-complement) integers. */ -template static SIMD_CPPFUNC long8 make_long8(typeN other) { - return ::simd_make_long8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit signed (twos- - * complement) integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC long8 make_long8_undef(typeN other) { - return ::simd_make_long8_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong2 make_ulong2(ulong1 x, ulong1 y) { - return ::simd_make_ulong2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 64-bit unsigned integers. */ -template static SIMD_CPPFUNC ulong2 make_ulong2(typeN other) { - return ::simd_make_ulong2(other); -} - -/*! @abstract Extends `other` to form a vector of two 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ulong2 make_ulong2_undef(typeN other) { - return ::simd_make_ulong2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong3 make_ulong3(ulong1 x, ulong1 y, ulong1 z) { - return ::simd_make_ulong3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong3 make_ulong3(ulong1 x, ulong2 yz) { - return ::simd_make_ulong3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong3 make_ulong3(ulong2 xy, ulong1 z) { - return ::simd_make_ulong3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 64-bit unsigned integers. */ -template static SIMD_CPPFUNC ulong3 make_ulong3(typeN other) { - return ::simd_make_ulong3(other); -} - -/*! @abstract Extends `other` to form a vector of three 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ulong3 make_ulong3_undef(typeN other) { - return ::simd_make_ulong3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 64-bit unsigned integers. */ -static inline SIMD_CPPFUNC ulong4 make_ulong4(ulong1 x, ulong1 y, ulong1 z, ulong1 w) { - return ::simd_make_ulong4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong4 make_ulong4(ulong1 x, ulong1 y, ulong2 zw) { - return ::simd_make_ulong4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong4 make_ulong4(ulong1 x, ulong2 yz, ulong1 w) { - return ::simd_make_ulong4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong4 make_ulong4(ulong2 xy, ulong1 z, ulong1 w) { - return ::simd_make_ulong4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong4 make_ulong4(ulong1 x, ulong3 yzw) { - return ::simd_make_ulong4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong4 make_ulong4(ulong2 xy, ulong2 zw) { - return ::simd_make_ulong4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong4 make_ulong4(ulong3 xyz, ulong1 w) { - return ::simd_make_ulong4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 64-bit unsigned integers. */ -template static SIMD_CPPFUNC ulong4 make_ulong4(typeN other) { - return ::simd_make_ulong4(other); -} - -/*! @abstract Extends `other` to form a vector of four 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ulong4 make_ulong4_undef(typeN other) { - return ::simd_make_ulong4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 64-bit - * unsigned integers. */ -static inline SIMD_CPPFUNC ulong8 make_ulong8(ulong4 lo, ulong4 hi) { - return ::simd_make_ulong8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 64-bit unsigned integers. */ -template static SIMD_CPPFUNC ulong8 make_ulong8(typeN other) { - return ::simd_make_ulong8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit unsigned - * integers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC ulong8 make_ulong8_undef(typeN other) { - return ::simd_make_ulong8_undef(other); -} - -/*! @abstract Concatenates `x` and `y` to form a vector of two 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double2 make_double2(double x, double y) { - return ::simd_make_double2(x, y); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of two - * 64-bit floating-point numbers. */ -template static SIMD_CPPFUNC double2 make_double2(typeN other) { - return ::simd_make_double2(other); -} - -/*! @abstract Extends `other` to form a vector of two 64-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -template static SIMD_CPPFUNC double2 make_double2_undef(typeN other) { - return ::simd_make_double2_undef(other); -} - -/*! @abstract Concatenates `x`, `y` and `z` to form a vector of three 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double3 make_double3(double x, double y, double z) { - return ::simd_make_double3(x, y, z); -} - -/*! @abstract Concatenates `x` and `yz` to form a vector of three 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double3 make_double3(double x, double2 yz) { - return ::simd_make_double3(x, yz); -} - -/*! @abstract Concatenates `xy` and `z` to form a vector of three 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double3 make_double3(double2 xy, double z) { - return ::simd_make_double3(xy, z); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of three - * 64-bit floating-point numbers. */ -template static SIMD_CPPFUNC double3 make_double3(typeN other) { - return ::simd_make_double3(other); -} - -/*! @abstract Extends `other` to form a vector of three 64-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC double3 make_double3_undef(typeN other) { - return ::simd_make_double3_undef(other); -} - -/*! @abstract Concatenates `x`, `y`, `z` and `w` to form a vector of four - * 64-bit floating-point numbers. */ -static inline SIMD_CPPFUNC double4 make_double4(double x, double y, double z, double w) { - return ::simd_make_double4(x, y, z, w); -} - -/*! @abstract Concatenates `x`, `y` and `zw` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double4 make_double4(double x, double y, double2 zw) { - return ::simd_make_double4(x, y, zw); -} - -/*! @abstract Concatenates `x`, `yz` and `w` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double4 make_double4(double x, double2 yz, double w) { - return ::simd_make_double4(x, yz, w); -} - -/*! @abstract Concatenates `xy`, `z` and `w` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double4 make_double4(double2 xy, double z, double w) { - return ::simd_make_double4(xy, z, w); -} - -/*! @abstract Concatenates `x` and `yzw` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double4 make_double4(double x, double3 yzw) { - return ::simd_make_double4(x, yzw); -} - -/*! @abstract Concatenates `xy` and `zw` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double4 make_double4(double2 xy, double2 zw) { - return ::simd_make_double4(xy, zw); -} - -/*! @abstract Concatenates `xyz` and `w` to form a vector of four 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double4 make_double4(double3 xyz, double w) { - return ::simd_make_double4(xyz, w); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of four - * 64-bit floating-point numbers. */ -template static SIMD_CPPFUNC double4 make_double4(typeN other) { - return ::simd_make_double4(other); -} - -/*! @abstract Extends `other` to form a vector of four 64-bit floating-point - * numbers. The contents of the newly-created vector lanes are unspecified. */ -template static SIMD_CPPFUNC double4 make_double4_undef(typeN other) { - return ::simd_make_double4_undef(other); -} - -/*! @abstract Concatenates `lo` and `hi` to form a vector of eight 64-bit - * floating-point numbers. */ -static inline SIMD_CPPFUNC double8 make_double8(double4 lo, double4 hi) { - return ::simd_make_double8(lo, hi); -} - -/*! @abstract Truncates or zero-extends `other` to form a vector of eight - * 64-bit floating-point numbers. */ -template static SIMD_CPPFUNC double8 make_double8(typeN other) { - return ::simd_make_double8(other); -} - -/*! @abstract Extends `other` to form a vector of eight 64-bit floating- - * point numbers. The contents of the newly-created vector lanes are - * unspecified. */ -template static SIMD_CPPFUNC double8 make_double8_undef(typeN other) { - return ::simd_make_double8_undef(other); -} - -} /* namespace simd */ -#endif /* __cplusplus */ -#endif /* SIMD_COMPILER_HAS_REQUIRED_FEATURES */ -#endif /* SIMD_VECTOR_CONSTRUCTORS */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/spawn.h b/lib/libc/include/x86_64-macos.10-none/spawn.h deleted file mode 100644 index 8441df3abe711cc257ce6bd0a4aac8000678b37d..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/spawn.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (c) 2006, 2010 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@ - */ - - -#ifndef _SPAWN_H_ -#define _SPAWN_H_ - -/* - * [SPN] Support for _POSIX_SPAWN - */ - -#include -#include <_types.h> -#include /* shared types */ - -#include - -/* - * [SPN] Inclusion of the header may make visible symbols defined - * in the , , and headers. - */ -#include -#include -#include - -/* - * Opaque types for use with posix_spawn() family functions. Internals are - * not defined, and should not be accessed directly. Types are defined as - * mandated by POSIX. - */ -typedef void *posix_spawnattr_t; -typedef void *posix_spawn_file_actions_t; - -__BEGIN_DECLS -/* - * gcc under c99 mode won't compile "[ __restrict]" by itself. As a workaround, - * a dummy argument name is added. - */ - -int posix_spawn(pid_t * __restrict, const char * __restrict, - const posix_spawn_file_actions_t *, - const posix_spawnattr_t * __restrict, - char *const __argv[__restrict], - char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnp(pid_t * __restrict, const char * __restrict, - const posix_spawn_file_actions_t *, - const posix_spawnattr_t * __restrict, - char *const __argv[__restrict], - char *const __envp[__restrict]) __API_AVAILABLE(macos(10.5), ios(2.0)); - -int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int, - int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawn_file_actions_addopen( - posix_spawn_file_actions_t * __restrict, int, - const char * __restrict, int, mode_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawn_file_actions_init(posix_spawn_file_actions_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_destroy(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_getsigdefault(const posix_spawnattr_t * __restrict, - sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_getflags(const posix_spawnattr_t * __restrict, - short * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_getpgroup(const posix_spawnattr_t * __restrict, - pid_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_getsigmask(const posix_spawnattr_t * __restrict, - sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_init(posix_spawnattr_t *) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_setsigdefault(posix_spawnattr_t * __restrict, - const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_setflags(posix_spawnattr_t *, short) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_setsigmask(posix_spawnattr_t * __restrict, - const sigset_t * __restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -#if 0 /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */ -int posix_spawnattr_setschedparam(posix_spawnattr_t * __restrict, - const struct sched_param * __restrict); -int posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int); -int posix_spawnattr_getschedparam(const posix_spawnattr_t * __restrict, - struct sched_param * __restrict); -int posix_spawnattr_getschedpolicy(const posix_spawnattr_t * __restrict, - int * __restrict); -#endif /* 0 */ - -__END_DECLS - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* - * Darwin-specific extensions below - */ -#include -#include -#include - -#include - -__BEGIN_DECLS - -int posix_spawnattr_getbinpref_np(const posix_spawnattr_t * __restrict, - size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_setauditsessionport_np(posix_spawnattr_t * __restrict, - mach_port_t) __API_AVAILABLE(macos(10.6), ios(3.2)); - -int posix_spawnattr_setbinpref_np(posix_spawnattr_t * __restrict, - size_t, cpu_type_t *__restrict, size_t *__restrict) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_setexceptionports_np(posix_spawnattr_t * __restrict, - exception_mask_t, mach_port_t, - exception_behavior_t, thread_state_flavor_t) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_setspecialport_np(posix_spawnattr_t * __restrict, - mach_port_t, int) __API_AVAILABLE(macos(10.5), ios(2.0)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawnattr_setsuidcredport_np(posix_spawnattr_t * __restrict, mach_port_t) __API_UNAVAILABLE(ios, macos); - -int posix_spawn_file_actions_addinherit_np(posix_spawn_file_actions_t *, - int) __API_AVAILABLE(macos(10.7), ios(4.3)) __API_UNAVAILABLE(watchos, tvos); - -int posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *, - const char * __restrict) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos); - -int posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *, - int) __API_AVAILABLE(macos(10.15)) __API_UNAVAILABLE(ios, tvos, watchos); - -__END_DECLS - -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -#endif /* _SPAWN_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/stdio.h b/lib/libc/include/x86_64-macos.10-none/stdio.h deleted file mode 100644 index 0a756d415df04604585bb26e698e83f6b01ccf00..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/stdio.h +++ /dev/null @@ -1,410 +0,0 @@ -/* - * Copyright (c) 2000, 2005, 2007, 2009, 2010 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) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * 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. - * - * @(#)stdio.h 8.5 (Berkeley) 4/29/95 - */ - -#ifndef _STDIO_H_ -#define _STDIO_H_ - -#include <_stdio.h> - -__BEGIN_DECLS -extern FILE *__stdinp; -extern FILE *__stdoutp; -extern FILE *__stderrp; -__END_DECLS - -#define __SLBF 0x0001 /* line buffered */ -#define __SNBF 0x0002 /* unbuffered */ -#define __SRD 0x0004 /* OK to read */ -#define __SWR 0x0008 /* OK to write */ - /* RD and WR are never simultaneously asserted */ -#define __SRW 0x0010 /* open for reading & writing */ -#define __SEOF 0x0020 /* found EOF */ -#define __SERR 0x0040 /* found error */ -#define __SMBF 0x0080 /* _buf is from malloc */ -#define __SAPP 0x0100 /* fdopen()ed in append mode */ -#define __SSTR 0x0200 /* this is an sprintf/snprintf string */ -#define __SOPT 0x0400 /* do fseek() optimisation */ -#define __SNPT 0x0800 /* do not do fseek() optimisation */ -#define __SOFF 0x1000 /* set iff _offset is in fact correct */ -#define __SMOD 0x2000 /* true => fgetln modified _p text */ -#define __SALC 0x4000 /* allocate string space dynamically */ -#define __SIGN 0x8000 /* ignore this file in _fwalk */ - -/* - * The following three definitions are for ANSI C, which took them - * from System V, which brilliantly took internal interface macros and - * made them official arguments to setvbuf(), without renaming them. - * Hence, these ugly _IOxxx names are *supposed* to appear in user code. - * - * Although numbered as their counterparts above, the implementation - * does not rely on this. - */ -#define _IOFBF 0 /* setvbuf should set fully buffered */ -#define _IOLBF 1 /* setvbuf should set line buffered */ -#define _IONBF 2 /* setvbuf should set unbuffered */ - -#define BUFSIZ 1024 /* size of buffer used by setbuf */ -#define EOF (-1) - - /* must be == _POSIX_STREAM_MAX */ -#define FOPEN_MAX 20 /* must be <= OPEN_MAX */ -#define FILENAME_MAX 1024 /* must be <= PATH_MAX */ - -/* System V/ANSI C; this is the wrong way to do this, do *not* use these. */ -#ifndef _ANSI_SOURCE -#define P_tmpdir "/var/tmp/" -#endif -#define L_tmpnam 1024 /* XXX must be == PATH_MAX */ -#define TMP_MAX 308915776 - -#ifndef SEEK_SET -#define SEEK_SET 0 /* set file offset to offset */ -#endif -#ifndef SEEK_CUR -#define SEEK_CUR 1 /* set file offset to current plus offset */ -#endif -#ifndef SEEK_END -#define SEEK_END 2 /* set file offset to EOF plus offset */ -#endif - -#define stdin __stdinp -#define stdout __stdoutp -#define stderr __stderrp - -#ifdef _DARWIN_UNLIMITED_STREAMS -#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2 -#error "_DARWIN_UNLIMITED_STREAMS 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_STREAMS specified, but -mmacosx-version-min version does not support it." -#endif -#endif - -/* ANSI-C */ - -__BEGIN_DECLS -void clearerr(FILE *); -int fclose(FILE *); -int feof(FILE *); -int ferror(FILE *); -int fflush(FILE *); -int fgetc(FILE *); -int fgetpos(FILE * __restrict, fpos_t *); -char *fgets(char * __restrict, int, FILE *); -#if defined(_DARWIN_UNLIMITED_STREAMS) || defined(_DARWIN_C_SOURCE) -FILE *fopen(const char * __restrict __filename, const char * __restrict __mode) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(fopen)); -#else /* !_DARWIN_UNLIMITED_STREAMS && !_DARWIN_C_SOURCE */ -FILE *fopen(const char * __restrict __filename, const char * __restrict __mode) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fopen)); -#endif /* (DARWIN_UNLIMITED_STREAMS || _DARWIN_C_SOURCE) */ -int fprintf(FILE * __restrict, const char * __restrict, ...) __printflike(2, 3); -int fputc(int, FILE *); -int fputs(const char * __restrict, FILE * __restrict) __DARWIN_ALIAS(fputs); -size_t fread(void * __restrict __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream); -FILE *freopen(const char * __restrict, const char * __restrict, - FILE * __restrict) __DARWIN_ALIAS(freopen); -int fscanf(FILE * __restrict, const char * __restrict, ...) __scanflike(2, 3); -int fseek(FILE *, long, int); -int fsetpos(FILE *, const fpos_t *); -long ftell(FILE *); -size_t fwrite(const void * __restrict __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream) __DARWIN_ALIAS(fwrite); -int getc(FILE *); -int getchar(void); -char *gets(char *); -void perror(const char *) __cold; -int printf(const char * __restrict, ...) __printflike(1, 2); -int putc(int, FILE *); -int putchar(int); -int puts(const char *); -int remove(const char *); -int rename (const char *__old, const char *__new); -void rewind(FILE *); -int scanf(const char * __restrict, ...) __scanflike(1, 2); -void setbuf(FILE * __restrict, char * __restrict); -int setvbuf(FILE * __restrict, char * __restrict, int, size_t); -int sprintf(char * __restrict, const char * __restrict, ...) __printflike(2, 3) __swift_unavailable("Use snprintf instead."); -int sscanf(const char * __restrict, const char * __restrict, ...) __scanflike(2, 3); -FILE *tmpfile(void); - -__swift_unavailable("Use mkstemp(3) instead.") -#if !defined(_POSIX_C_SOURCE) -__deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tmpnam(3), it is highly recommended that you use mkstemp(3) instead.") -#endif -char *tmpnam(char *); -int ungetc(int, FILE *); -int vfprintf(FILE * __restrict, const char * __restrict, va_list) __printflike(2, 0); -int vprintf(const char * __restrict, va_list) __printflike(1, 0); -int vsprintf(char * __restrict, const char * __restrict, va_list) __printflike(2, 0) __swift_unavailable("Use vsnprintf instead."); -__END_DECLS - - - -/* Additional functionality provided by: - * POSIX.1-1988 - */ - -#if __DARWIN_C_LEVEL >= 198808L -#define L_ctermid 1024 /* size for ctermid(); PATH_MAX */ - -__BEGIN_DECLS -#include <_ctermid.h> - -#if defined(_DARWIN_UNLIMITED_STREAMS) || defined(_DARWIN_C_SOURCE) -FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(fdopen)); -#else /* !_DARWIN_UNLIMITED_STREAMS && !_DARWIN_C_SOURCE */ -FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen)); -#endif /* (DARWIN_UNLIMITED_STREAMS || _DARWIN_C_SOURCE) */ -int fileno(FILE *); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 198808L */ - - -/* Additional functionality provided by: - * POSIX.2-1992 C Language Binding Option - */ -#if TARGET_OS_EMBEDDED -#define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(ios_msg) -#else -#define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(osx_msg) -#endif - -#if __DARWIN_C_LEVEL >= 199209L -__BEGIN_DECLS -int pclose(FILE *) __swift_unavailable_on("Use posix_spawn APIs or NSTask instead.", "Process spawning is unavailable."); -#if defined(_DARWIN_UNLIMITED_STREAMS) || defined(_DARWIN_C_SOURCE) -FILE *popen(const char *, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(popen)) __swift_unavailable_on("Use posix_spawn APIs or NSTask instead.", "Process spawning is unavailable."); -#else /* !_DARWIN_UNLIMITED_STREAMS && !_DARWIN_C_SOURCE */ -FILE *popen(const char *, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(popen)) __swift_unavailable_on("Use posix_spawn APIs or NSTask instead.", "Process spawning is unavailable."); -#endif /* (DARWIN_UNLIMITED_STREAMS || _DARWIN_C_SOURCE) */ -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 199209L */ - -#undef __swift_unavailable_on - -/* Additional functionality provided by: - * POSIX.1c-1995, - * POSIX.1i-1995, - * and the omnibus ISO/IEC 9945-1: 1996 - */ - -#if __DARWIN_C_LEVEL >= 199506L - -/* Functions internal to the implementation. */ -__BEGIN_DECLS -int __srget(FILE *); -int __svfscanf(FILE *, const char *, va_list) __scanflike(2, 0); -int __swbuf(int, FILE *); -__END_DECLS - -/* - * The __sfoo macros are here so that we can - * define function versions in the C library. - */ -#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++)) -#if defined(__GNUC__) && defined(__STDC__) -__header_always_inline int __sputc(int _c, FILE *_p) { - if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) - return (*_p->_p++ = _c); - else - return (__swbuf(_c, _p)); -} -#else -/* - * This has been tuned to generate reasonable code on the vax using pcc. - */ -#define __sputc(c, p) \ - (--(p)->_w < 0 ? \ - (p)->_w >= (p)->_lbfsize ? \ - (*(p)->_p = (c)), *(p)->_p != '\n' ? \ - (int)*(p)->_p++ : \ - __swbuf('\n', p) : \ - __swbuf((int)(c), p) : \ - (*(p)->_p = (c), (int)*(p)->_p++)) -#endif - -#define __sfeof(p) (((p)->_flags & __SEOF) != 0) -#define __sferror(p) (((p)->_flags & __SERR) != 0) -#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) -#define __sfileno(p) ((p)->_file) - -__BEGIN_DECLS -void flockfile(FILE *); -int ftrylockfile(FILE *); -void funlockfile(FILE *); -int getc_unlocked(FILE *); -int getchar_unlocked(void); -int putc_unlocked(int, FILE *); -int putchar_unlocked(int); - -/* Removed in Issue 6 */ -#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L -int getw(FILE *); -int putw(int, FILE *); -#endif - -__swift_unavailable("Use mkstemp(3) instead.") -#if !defined(_POSIX_C_SOURCE) -__deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tempnam(3), it is highly recommended that you use mkstemp(3) instead.") -#endif -char *tempnam(const char *__dir, const char *__prefix) __DARWIN_ALIAS(tempnam); -__END_DECLS - -#ifndef lint -#define getc_unlocked(fp) __sgetc(fp) -#define putc_unlocked(x, fp) __sputc(x, fp) -#endif /* lint */ - -#define getchar_unlocked() getc_unlocked(stdin) -#define putchar_unlocked(x) putc_unlocked(x, stdout) -#endif /* __DARWIN_C_LEVEL >= 199506L */ - - - -/* Additional functionality provided by: - * POSIX.1-2001 - * ISO C99 - */ - -#if __DARWIN_C_LEVEL >= 200112L -#include - -__BEGIN_DECLS -int fseeko(FILE * __stream, off_t __offset, int __whence); -off_t ftello(FILE * __stream); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 200112L */ - -#if __DARWIN_C_LEVEL >= 200112L || defined(_C99_SOURCE) || defined(__cplusplus) -__BEGIN_DECLS -int snprintf(char * __restrict __str, size_t __size, const char * __restrict __format, ...) __printflike(3, 4); -int vfscanf(FILE * __restrict __stream, const char * __restrict __format, va_list) __scanflike(2, 0); -int vscanf(const char * __restrict __format, va_list) __scanflike(1, 0); -int vsnprintf(char * __restrict __str, size_t __size, const char * __restrict __format, va_list) __printflike(3, 0); -int vsscanf(const char * __restrict __str, const char * __restrict __format, va_list) __scanflike(2, 0); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 200112L || defined(_C99_SOURCE) || defined(__cplusplus) */ - - - -/* Additional functionality provided by: - * POSIX.1-2008 - */ - -#if __DARWIN_C_LEVEL >= 200809L -#include - -__BEGIN_DECLS -int dprintf(int, const char * __restrict, ...) __printflike(2, 3) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -int vdprintf(int, const char * __restrict, va_list) __printflike(2, 0) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -ssize_t getdelim(char ** __restrict __linep, size_t * __restrict __linecapp, int __delimiter, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -ssize_t getline(char ** __restrict __linep, size_t * __restrict __linecapp, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -FILE *fmemopen(void * __restrict __buf, size_t __size, const char * __restrict __mode) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)); -FILE *open_memstream(char **__bufp, size_t *__sizep) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 200809L */ - - - -/* Darwin extensions */ - -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -__BEGIN_DECLS -extern __const int sys_nerr; /* perror(3) external variables */ -extern __const char *__const sys_errlist[]; - -int asprintf(char ** __restrict, const char * __restrict, ...) __printflike(2, 3); -char *ctermid_r(char *); -char *fgetln(FILE *, size_t *); -__const char *fmtcheck(const char *, const char *); -int fpurge(FILE *); -void setbuffer(FILE *, char *, int); -int setlinebuf(FILE *); -int vasprintf(char ** __restrict, const char * __restrict, va_list) __printflike(2, 0); -FILE *zopen(const char *, const char *, int); - - -/* - * Stdio function-access interface. - */ -FILE *funopen(const void *, - int (* _Nullable)(void *, char *, int), - int (* _Nullable)(void *, const char *, int), - fpos_t (* _Nullable)(void *, fpos_t, int), - int (* _Nullable)(void *)); -__END_DECLS -#define fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0) -#define fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0) - -#define feof_unlocked(p) __sfeof(p) -#define ferror_unlocked(p) __sferror(p) -#define clearerr_unlocked(p) __sclearerr(p) -#define fileno_unlocked(p) __sfileno(p) - -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - - -#ifdef _USE_EXTENDED_LOCALES_ -#include -#endif /* _USE_EXTENDED_LOCALES_ */ - -#if defined (__GNUC__) && _FORTIFY_SOURCE > 0 && !defined (__cplusplus) -/* Security checking functions. */ -#include -#endif - -#endif /* _STDIO_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/stdlib.h b/lib/libc/include/x86_64-macos.10-none/stdlib.h deleted file mode 100644 index a5b61930fddea6cdae1f159e819804e6f0de479d..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/stdlib.h +++ /dev/null @@ -1,370 +0,0 @@ -/* - * Copyright (c) 2000, 2002 - 2008 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) 1990, 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. - * - * @(#)stdlib.h 8.5 (Berkeley) 5/19/95 - */ - -#ifndef _STDLIB_H_ -#define _STDLIB_H_ - -#include -#include - -#include <_types.h> -#if !defined(_ANSI_SOURCE) -#include -#if (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) -#include -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -#endif /* !_ANSI_SOURCE */ - -/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see: - * _GCC_SIZE_T */ -#include - -#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) -#include -#include -#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -#include - -typedef struct { - int quot; /* quotient */ - int rem; /* remainder */ -} div_t; - -typedef struct { - long quot; /* quotient */ - long rem; /* remainder */ -} ldiv_t; - -#if !__DARWIN_NO_LONG_LONG -typedef struct { - long long quot; - long long rem; -} lldiv_t; -#endif /* !__DARWIN_NO_LONG_LONG */ - -#include - -#define EXIT_FAILURE 1 -#define EXIT_SUCCESS 0 - -#define RAND_MAX 0x7fffffff - -#ifdef _USE_EXTENDED_LOCALES_ -#include <_xlocale.h> -#endif /* _USE_EXTENDED_LOCALES_ */ - -#ifndef MB_CUR_MAX -#ifdef _USE_EXTENDED_LOCALES_ -#define MB_CUR_MAX (___mb_cur_max()) -#ifndef MB_CUR_MAX_L -#define MB_CUR_MAX_L(x) (___mb_cur_max_l(x)) -#endif /* !MB_CUR_MAX_L */ -#else /* !_USE_EXTENDED_LOCALES_ */ -extern int __mb_cur_max; -#define MB_CUR_MAX __mb_cur_max -#endif /* _USE_EXTENDED_LOCALES_ */ -#endif /* MB_CUR_MAX */ - -#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) \ - && defined(_USE_EXTENDED_LOCALES_) && !defined(MB_CUR_MAX_L) -#define MB_CUR_MAX_L(x) (___mb_cur_max_l(x)) -#endif - -#include - -__BEGIN_DECLS -void abort(void) __cold __dead2; -int abs(int) __pure2; -int atexit(void (* _Nonnull)(void)); -double atof(const char *); -int atoi(const char *); -long atol(const char *); -#if !__DARWIN_NO_LONG_LONG -long long - atoll(const char *); -#endif /* !__DARWIN_NO_LONG_LONG */ -void *bsearch(const void *__key, const void *__base, size_t __nel, - size_t __width, int (* _Nonnull __compar)(const void *, const void *)); -/* calloc is now declared in _malloc.h */ -div_t div(int, int) __pure2; -void exit(int) __dead2; -/* free is now declared in _malloc.h */ -char *getenv(const char *); -long labs(long) __pure2; -ldiv_t ldiv(long, long) __pure2; -#if !__DARWIN_NO_LONG_LONG -long long - llabs(long long); -lldiv_t lldiv(long long, long long); -#endif /* !__DARWIN_NO_LONG_LONG */ -/* malloc is now declared in _malloc.h */ -int mblen(const char *__s, size_t __n); -size_t mbstowcs(wchar_t * __restrict , const char * __restrict, size_t); -int mbtowc(wchar_t * __restrict, const char * __restrict, size_t); -/* posix_memalign is now declared in _malloc.h */ -void qsort(void *__base, size_t __nel, size_t __width, - int (* _Nonnull __compar)(const void *, const void *)); -int rand(void) __swift_unavailable("Use arc4random instead."); -/* realloc is now declared in _malloc.h */ -void srand(unsigned) __swift_unavailable("Use arc4random instead."); -double strtod(const char *, char **) __DARWIN_ALIAS(strtod); -float strtof(const char *, char **) __DARWIN_ALIAS(strtof); -long strtol(const char *__str, char **__endptr, int __base); -long double - strtold(const char *, char **); -#if !__DARWIN_NO_LONG_LONG -long long - strtoll(const char *__str, char **__endptr, int __base); -#endif /* !__DARWIN_NO_LONG_LONG */ -unsigned long - strtoul(const char *__str, char **__endptr, int __base); -#if !__DARWIN_NO_LONG_LONG -unsigned long long - strtoull(const char *__str, char **__endptr, int __base); -#endif /* !__DARWIN_NO_LONG_LONG */ - -#if TARGET_OS_EMBEDDED -#define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(ios_msg) -#else -#define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(osx_msg) -#endif - -__swift_unavailable_on("Use posix_spawn APIs or NSTask instead.", "Process spawning is unavailable") -__API_AVAILABLE(macos(10.0)) __IOS_PROHIBITED -__WATCHOS_PROHIBITED __TVOS_PROHIBITED -int system(const char *) __DARWIN_ALIAS_C(system); - -#undef __swift_unavailable_on - -size_t wcstombs(char * __restrict, const wchar_t * __restrict, size_t); -int wctomb(char *, wchar_t); - -#ifndef _ANSI_SOURCE -void _Exit(int) __dead2; -long a64l(const char *); -double drand48(void); -char *ecvt(double, int, int *__restrict, int *__restrict); /* LEGACY */ -double erand48(unsigned short[3]); -char *fcvt(double, int, int *__restrict, int *__restrict); /* LEGACY */ -char *gcvt(double, int, char *); /* LEGACY */ -int getsubopt(char **, char * const *, char **); -int grantpt(int); -#if __DARWIN_UNIX03 -char *initstate(unsigned, char *, size_t); /* no __DARWIN_ALIAS needed */ -#else /* !__DARWIN_UNIX03 */ -char *initstate(unsigned long, char *, long); -#endif /* __DARWIN_UNIX03 */ -long jrand48(unsigned short[3]) __swift_unavailable("Use arc4random instead."); -char *l64a(long); -void lcong48(unsigned short[7]); -long lrand48(void) __swift_unavailable("Use arc4random instead."); -char *mktemp(char *); -int mkstemp(char *); -long mrand48(void) __swift_unavailable("Use arc4random instead."); -long nrand48(unsigned short[3]) __swift_unavailable("Use arc4random instead."); -int posix_openpt(int); -char *ptsname(int); - -#if (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) -int ptsname_r(int fildes, char *buffer, size_t buflen) __API_AVAILABLE(macos(10.13.4), ios(11.3), tvos(11.3), watchos(4.3)); -#endif - -int putenv(char *) __DARWIN_ALIAS(putenv); -long random(void) __swift_unavailable("Use arc4random instead."); -int rand_r(unsigned *) __swift_unavailable("Use arc4random instead."); -#if (__DARWIN_UNIX03 && !defined(_POSIX_C_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(_DARWIN_BETTER_REALPATH) -char *realpath(const char * __restrict, char * __restrict) __DARWIN_EXTSN(realpath); -#else /* (!__DARWIN_UNIX03 || _POSIX_C_SOURCE) && !_DARWIN_C_SOURCE && !_DARWIN_BETTER_REALPATH */ -char *realpath(const char * __restrict, char * __restrict) __DARWIN_ALIAS(realpath); -#endif /* (__DARWIN_UNIX03 && _POSIX_C_SOURCE) || _DARWIN_C_SOURCE || _DARWIN_BETTER_REALPATH */ -unsigned short - *seed48(unsigned short[3]); -int setenv(const char * __name, const char * __value, int __overwrite) __DARWIN_ALIAS(setenv); -#if __DARWIN_UNIX03 -void setkey(const char *) __DARWIN_ALIAS(setkey); -#else /* !__DARWIN_UNIX03 */ -int setkey(const char *); -#endif /* __DARWIN_UNIX03 */ -char *setstate(const char *); -void srand48(long); -#if __DARWIN_UNIX03 -void srandom(unsigned); -#else /* !__DARWIN_UNIX03 */ -void srandom(unsigned long); -#endif /* __DARWIN_UNIX03 */ -int unlockpt(int); -#if __DARWIN_UNIX03 -int unsetenv(const char *) __DARWIN_ALIAS(unsetenv); -#else /* !__DARWIN_UNIX03 */ -void unsetenv(const char *); -#endif /* __DARWIN_UNIX03 */ -#endif /* !_ANSI_SOURCE */ - -#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) -#include -#include -#include -#include <_types/_uint32_t.h> - -uint32_t arc4random(void); -void arc4random_addrandom(unsigned char * /*dat*/, int /*datlen*/) - __OSX_DEPRECATED(10.0, 10.12, "use arc4random_stir") - __IOS_DEPRECATED(2.0, 10.0, "use arc4random_stir") - __TVOS_DEPRECATED(2.0, 10.0, "use arc4random_stir") - __WATCHOS_DEPRECATED(1.0, 3.0, "use arc4random_stir"); -void arc4random_buf(void * __buf, size_t __nbytes) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -void arc4random_stir(void); -uint32_t - arc4random_uniform(uint32_t __upper_bound) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -#ifdef __BLOCKS__ -int atexit_b(void (^ _Nonnull)(void)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -void *bsearch_b(const void *__key, const void *__base, size_t __nel, - size_t __width, int (^ _Nonnull __compar)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -#endif /* __BLOCKS__ */ - - /* getcap(3) functions */ -char *cgetcap(char *, const char *, int); -int cgetclose(void); -int cgetent(char **, char **, const char *); -int cgetfirst(char **, char **); -int cgetmatch(const char *, const char *); -int cgetnext(char **, char **); -int cgetnum(char *, const char *, long *); -int cgetset(const char *); -int cgetstr(char *, const char *, char **); -int cgetustr(char *, const char *, char **); - -int daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0, "Use posix_spawn APIs instead.") __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -char *devname(dev_t, mode_t); -char *devname_r(dev_t, mode_t, char *buf, int len); -char *getbsize(int *, long *); -int getloadavg(double [], int); -const char - *getprogname(void); -void setprogname(const char *); - -#ifdef __BLOCKS__ -#if __has_attribute(noescape) -#define __sort_noescape __attribute__((__noescape__)) -#else -#define __sort_noescape -#endif -#endif /* __BLOCKS__ */ - -int heapsort(void *__base, size_t __nel, size_t __width, - int (* _Nonnull __compar)(const void *, const void *)); -#ifdef __BLOCKS__ -int heapsort_b(void *__base, size_t __nel, size_t __width, - int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -#endif /* __BLOCKS__ */ -int mergesort(void *__base, size_t __nel, size_t __width, - int (* _Nonnull __compar)(const void *, const void *)); -#ifdef __BLOCKS__ -int mergesort_b(void *__base, size_t __nel, size_t __width, - int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -#endif /* __BLOCKS__ */ -void psort(void *__base, size_t __nel, size_t __width, - int (* _Nonnull __compar)(const void *, const void *)) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -#ifdef __BLOCKS__ -void psort_b(void *__base, size_t __nel, size_t __width, - int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -#endif /* __BLOCKS__ */ -void psort_r(void *__base, size_t __nel, size_t __width, void *, - int (* _Nonnull __compar)(void *, const void *, const void *)) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -#ifdef __BLOCKS__ -void qsort_b(void *__base, size_t __nel, size_t __width, - int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -#endif /* __BLOCKS__ */ -void qsort_r(void *__base, size_t __nel, size_t __width, void *, - int (* _Nonnull __compar)(void *, const void *, const void *)); -int radixsort(const unsigned char **__base, int __nel, const unsigned char *__table, - unsigned __endbyte); -int rpmatch(const char *) - __API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0)); -int sradixsort(const unsigned char **__base, int __nel, const unsigned char *__table, - unsigned __endbyte); -void sranddev(void); -void srandomdev(void); -void *reallocf(void *__ptr, size_t __size) __alloc_size(2); -#if !__DARWIN_NO_LONG_LONG -long long - strtoq(const char *__str, char **__endptr, int __base); -unsigned long long - strtouq(const char *__str, char **__endptr, int __base); -#endif /* !__DARWIN_NO_LONG_LONG */ -extern char *suboptarg; /* getsubopt(3) external variable */ -/* valloc is now declared in _malloc.h */ -#endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ - -/* Poison the following routines if -fshort-wchar is set */ -#if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU -#pragma GCC poison mbstowcs mbtowc wcstombs wctomb -#endif -__END_DECLS - -#ifdef _USE_EXTENDED_LOCALES_ -#include -#endif /* _USE_EXTENDED_LOCALES_ */ - -#endif /* _STDLIB_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/string.h b/lib/libc/include/x86_64-macos.10-none/string.h deleted file mode 100644 index bca8f8c881aaa51217042489a7f214553fc392f4..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/string.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright (c) 2000, 2007, 2010 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) 1990, 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. - * - * @(#)string.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _STRING_H_ -#define _STRING_H_ - -#include <_types.h> -#include -#include -#include -#include - -/* ANSI-C */ - -__BEGIN_DECLS -void *memchr(const void *__s, int __c, size_t __n); -int memcmp(const void *__s1, const void *__s2, size_t __n); -void *memcpy(void *__dst, const void *__src, size_t __n); -void *memmove(void *__dst, const void *__src, size_t __len); -void *memset(void *__b, int __c, size_t __len); -char *strcat(char *__s1, const char *__s2); -char *strchr(const char *__s, int __c); -int strcmp(const char *__s1, const char *__s2); -int strcoll(const char *__s1, const char *__s2); -char *strcpy(char *__dst, const char *__src); -size_t strcspn(const char *__s, const char *__charset); -char *strerror(int __errnum) __DARWIN_ALIAS(strerror); -size_t strlen(const char *__s); -char *strncat(char *__s1, const char *__s2, size_t __n); -int strncmp(const char *__s1, const char *__s2, size_t __n); -char *strncpy(char *__dst, const char *__src, size_t __n); -char *strpbrk(const char *__s, const char *__charset); -char *strrchr(const char *__s, int __c); -size_t strspn(const char *__s, const char *__charset); -char *strstr(const char *__big, const char *__little); -char *strtok(char *__str, const char *__sep); -size_t strxfrm(char *__s1, const char *__s2, size_t __n); -__END_DECLS - - - -/* Additional functionality provided by: - * POSIX.1c-1995, - * POSIX.1i-1995, - * and the omnibus ISO/IEC 9945-1: 1996 - */ - -#if __DARWIN_C_LEVEL >= 199506L -__BEGIN_DECLS -char *strtok_r(char *__str, const char *__sep, char **__lasts); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 199506L */ - - - -/* Additional functionality provided by: - * POSIX.1-2001 - */ - -#if __DARWIN_C_LEVEL >= 200112L -__BEGIN_DECLS -int strerror_r(int __errnum, char *__strerrbuf, size_t __buflen); -char *strdup(const char *__s1); -void *memccpy(void *__dst, const void *__src, int __c, size_t __n); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 200112L */ - - - -/* Additional functionality provided by: - * POSIX.1-2008 - */ - -#if __DARWIN_C_LEVEL >= 200809L -__BEGIN_DECLS -char *stpcpy(char *__dst, const char *__src); -char *stpncpy(char *__dst, const char *__src, size_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -char *strndup(const char *__s1, size_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -size_t strnlen(const char *__s1, size_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -char *strsignal(int __sig); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 200809L */ - -/* C11 Annex K */ - -#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 -#include -#include - -__BEGIN_DECLS -errno_t memset_s(void *__s, rsize_t __smax, int __c, rsize_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); -__END_DECLS -#endif - -/* Darwin extensions */ - -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -#include - -__BEGIN_DECLS -void *memmem(const void *__big, size_t __big_len, const void *__little, size_t __little_len) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -void memset_pattern4(void *__b, const void *__pattern4, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); -void memset_pattern8(void *__b, const void *__pattern8, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); -void memset_pattern16(void *__b, const void *__pattern16, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); - -char *strcasestr(const char *__big, const char *__little); -char *strnstr(const char *__big, const char *__little, size_t __len); -size_t strlcat(char *__dst, const char *__source, size_t __size); -size_t strlcpy(char *__dst, const char *__source, size_t __size); -void strmode(int __mode, char *__bp); -char *strsep(char **__stringp, const char *__delim); - -/* SUS places swab() in unistd.h. It is listed here for source compatibility */ -void swab(const void * __restrict, void * __restrict, ssize_t); - -__OSX_AVAILABLE(10.12.1) __IOS_AVAILABLE(10.1) -__TVOS_AVAILABLE(10.0.1) __WATCHOS_AVAILABLE(3.1) -int timingsafe_bcmp(const void *__b1, const void *__b2, size_t __len); -__END_DECLS - -/* Some functions historically defined in string.h were placed in strings.h - * by SUS. We are using "strings.h" instead of to avoid an issue - * where /Developer/Headers/FlatCarbon/Strings.h could be included instead on - * case-insensitive file systems. - */ -#include "strings.h" -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - - -#ifdef _USE_EXTENDED_LOCALES_ -#include -#endif /* _USE_EXTENDED_LOCALES_ */ - -#if defined (__GNUC__) && _FORTIFY_SOURCE > 0 && !defined (__cplusplus) -/* Security checking functions. */ -#include -#endif - -#endif /* _STRING_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_attr_t.h b/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_attr_t.h deleted file mode 100644 index a71842cb99179eb089afedacd2b587bb5752d0df..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_attr_t.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _PTHREAD_ATTR_T -#define _PTHREAD_ATTR_T -#include /* __darwin_pthread_attr_t */ -typedef __darwin_pthread_attr_t pthread_attr_t; -#endif /* _PTHREAD_ATTR_T */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_cond_t.h b/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_cond_t.h deleted file mode 100644 index 3eceff6274013a38b41938fc2373ba937d985e18..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_cond_t.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _PTHREAD_COND_T -#define _PTHREAD_COND_T -#include /* __darwin_pthread_cond_t */ -typedef __darwin_pthread_cond_t pthread_cond_t; -#endif /* _PTHREAD_COND_T */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_condattr_t.h b/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_condattr_t.h deleted file mode 100644 index 7fd62badd7ef6c3a467f10782a212e96c7d58000..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_condattr_t.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _PTHREAD_CONDATTR_T -#define _PTHREAD_CONDATTR_T -#include /* __darwin_pthread_condattr_t */ -typedef __darwin_pthread_condattr_t pthread_condattr_t; -#endif /* _PTHREAD_CONDATTR_T */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_rwlock_t.h b/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_rwlock_t.h deleted file mode 100644 index dc1f013f3b12e11ed96f8c668c863fc8d2d04337..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_rwlock_t.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _PTHREAD_RWLOCK_T -#define _PTHREAD_RWLOCK_T -#include /* __darwin_pthread_rwlock_t */ -typedef __darwin_pthread_rwlock_t pthread_rwlock_t; -#endif /* _PTHREAD_RWLOCK_T */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_rwlockattr_t.h b/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_rwlockattr_t.h deleted file mode 100644 index 99fda712f421c3d342ee100d6ae090c8ac0adae5..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_rwlockattr_t.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _PTHREAD_RWLOCKATTR_T -#define _PTHREAD_RWLOCKATTR_T -#include /* __darwin_pthread_rwlockattr_t */ -typedef __darwin_pthread_rwlockattr_t pthread_rwlockattr_t; -#endif /* _PTHREAD_RWLOCKATTR_T */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_t.h b/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_t.h deleted file mode 100644 index 87f42ee9aaa635a935d44b24519d6fd1baa1d07f..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_t.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _PTHREAD_T -#define _PTHREAD_T -#include /* __darwin_pthread_t */ -typedef __darwin_pthread_t pthread_t; -#endif /* _PTHREAD_T */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_types.h b/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_types.h deleted file mode 100644 index 7aa42bdff16cc5132e83047c6f70d52d9f1873c2..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_pthread/_pthread_types.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2003-2013 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 _SYS__PTHREAD_TYPES_H_ -#define _SYS__PTHREAD_TYPES_H_ - -#include - -// pthread opaque structures -#if defined(__LP64__) -#define __PTHREAD_SIZE__ 8176 -#define __PTHREAD_ATTR_SIZE__ 56 -#define __PTHREAD_MUTEXATTR_SIZE__ 8 -#define __PTHREAD_MUTEX_SIZE__ 56 -#define __PTHREAD_CONDATTR_SIZE__ 8 -#define __PTHREAD_COND_SIZE__ 40 -#define __PTHREAD_ONCE_SIZE__ 8 -#define __PTHREAD_RWLOCK_SIZE__ 192 -#define __PTHREAD_RWLOCKATTR_SIZE__ 16 -#else // !__LP64__ -#define __PTHREAD_SIZE__ 4088 -#define __PTHREAD_ATTR_SIZE__ 36 -#define __PTHREAD_MUTEXATTR_SIZE__ 8 -#define __PTHREAD_MUTEX_SIZE__ 40 -#define __PTHREAD_CONDATTR_SIZE__ 4 -#define __PTHREAD_COND_SIZE__ 24 -#define __PTHREAD_ONCE_SIZE__ 4 -#define __PTHREAD_RWLOCK_SIZE__ 124 -#define __PTHREAD_RWLOCKATTR_SIZE__ 12 -#endif // !__LP64__ - -struct __darwin_pthread_handler_rec { - void (*__routine)(void *); // Routine to call - void *__arg; // Argument to pass - struct __darwin_pthread_handler_rec *__next; -}; - -struct _opaque_pthread_attr_t { - long __sig; - char __opaque[__PTHREAD_ATTR_SIZE__]; -}; - -struct _opaque_pthread_cond_t { - long __sig; - char __opaque[__PTHREAD_COND_SIZE__]; -}; - -struct _opaque_pthread_condattr_t { - long __sig; - char __opaque[__PTHREAD_CONDATTR_SIZE__]; -}; - -struct _opaque_pthread_mutex_t { - long __sig; - char __opaque[__PTHREAD_MUTEX_SIZE__]; -}; - -struct _opaque_pthread_mutexattr_t { - long __sig; - char __opaque[__PTHREAD_MUTEXATTR_SIZE__]; -}; - -struct _opaque_pthread_once_t { - long __sig; - char __opaque[__PTHREAD_ONCE_SIZE__]; -}; - -struct _opaque_pthread_rwlock_t { - long __sig; - char __opaque[__PTHREAD_RWLOCK_SIZE__]; -}; - -struct _opaque_pthread_rwlockattr_t { - long __sig; - char __opaque[__PTHREAD_RWLOCKATTR_SIZE__]; -}; - -struct _opaque_pthread_t { - long __sig; - struct __darwin_pthread_handler_rec *__cleanup_stack; - char __opaque[__PTHREAD_SIZE__]; -}; - -typedef struct _opaque_pthread_attr_t __darwin_pthread_attr_t; -typedef struct _opaque_pthread_cond_t __darwin_pthread_cond_t; -typedef struct _opaque_pthread_condattr_t __darwin_pthread_condattr_t; -typedef unsigned long __darwin_pthread_key_t; -typedef struct _opaque_pthread_mutex_t __darwin_pthread_mutex_t; -typedef struct _opaque_pthread_mutexattr_t __darwin_pthread_mutexattr_t; -typedef struct _opaque_pthread_once_t __darwin_pthread_once_t; -typedef struct _opaque_pthread_rwlock_t __darwin_pthread_rwlock_t; -typedef struct _opaque_pthread_rwlockattr_t __darwin_pthread_rwlockattr_t; -typedef struct _opaque_pthread_t *__darwin_pthread_t; - -#endif // _SYS__PTHREAD_TYPES_H_ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_select.h b/lib/libc/include/x86_64-macos.10-none/sys/_select.h deleted file mode 100644 index 70842ca2f5b60a52f46b536962b27030287b1324..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_select.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2005, 2007 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@ - */ - -/* - * This is called from sys/select.h and sys/time.h for the common prototype - * of select(). Setting _DARWIN_C_SOURCE or _DARWIN_UNLIMITED_SELECT uses - * the version of select() that does not place a limit on the first argument - * (nfds). In the UNIX conformance case, values of nfds greater than - * FD_SETSIZE will return an error of EINVAL. - */ -#ifndef _SYS__SELECT_H_ -#define _SYS__SELECT_H_ - -int select(int, fd_set * __restrict, fd_set * __restrict, - fd_set * __restrict, struct timeval * __restrict) -#if defined(_DARWIN_C_SOURCE) || defined(_DARWIN_UNLIMITED_SELECT) -__DARWIN_EXTSN_C(select) -#else /* !_DARWIN_C_SOURCE && !_DARWIN_UNLIMITED_SELECT */ -# if defined(__LP64__) && !__DARWIN_NON_CANCELABLE -__DARWIN_1050(select) -# else /* !__LP64__ || __DARWIN_NON_CANCELABLE */ -__DARWIN_ALIAS_C(select) -# endif /* __LP64__ && !__DARWIN_NON_CANCELABLE */ -#endif /* _DARWIN_C_SOURCE || _DARWIN_UNLIMITED_SELECT */ -; - -#endif /* !_SYS__SELECT_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_symbol_aliasing.h b/lib/libc/include/x86_64-macos.10-none/sys/_symbol_aliasing.h deleted file mode 100644 index 17b4d6fe379c69ae2620579cf908c62aa946d3c7..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_symbol_aliasing.h +++ /dev/null @@ -1,498 +0,0 @@ -/* Copyright (c) 2010 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 _CDEFS_H_ -# error "Never use directly. Use instead." -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40300 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 50000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 50100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 70000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 70100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80300 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_3(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80400 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_4(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 90300 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_9_3(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 100300 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_10_3(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110300 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_3(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 110400 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_11_4(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120300 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_3(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120400 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_12_4(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130000 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_0(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_0(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130100 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_1(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130200 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_2(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130300 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_3(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130400 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_4(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130500 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_5(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_5(x) -#endif - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130600 -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_6(x) x -#else -#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_13_6(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 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1010 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1020 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1030 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1040 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1080 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101000 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101002 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_2(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101003 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10_3(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101100 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101102 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_2(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101103 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_3(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_3(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101104 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11_4(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101200 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101201 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_1(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101202 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_2(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101204 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12_4(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101300 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101301 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_1(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101302 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_2(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_2(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101304 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13_4(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101401 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_1(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101404 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_4(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_4(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101405 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_5(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_5(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101406 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_6(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14_6(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101500 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x) -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101501 -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_1(x) x -#else -#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15_1(x) -#endif \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_types/_fd_def.h b/lib/libc/include/x86_64-macos.10-none/sys/_types/_fd_def.h deleted file mode 100644 index ec0bad42893c99d1549d35ce6c1bb0c10323a69b..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_types/_fd_def.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _FD_SET -#define _FD_SET - -#include /* __int32_t and uintptr_t */ -#include - -/* - * Select uses bit masks of file descriptors in longs. These macros - * manipulate such bit fields (the filesystem macros use chars). The - * extra protection here is to permit application redefinition above - * the default size. - */ -#ifdef FD_SETSIZE -#define __DARWIN_FD_SETSIZE FD_SETSIZE -#else /* !FD_SETSIZE */ -#define __DARWIN_FD_SETSIZE 1024 -#endif /* FD_SETSIZE */ -#define __DARWIN_NBBY 8 /* bits in a byte */ -#define __DARWIN_NFDBITS (sizeof(__int32_t) * __DARWIN_NBBY) /* bits per mask */ -#define __DARWIN_howmany(x, y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) /* # y's == x bits? */ - -__BEGIN_DECLS -typedef struct fd_set { - __int32_t fds_bits[__DARWIN_howmany(__DARWIN_FD_SETSIZE, __DARWIN_NFDBITS)]; -} fd_set; - -int __darwin_check_fd_set_overflow(int, const void *, int) __attribute__((__weak_import__)); -__END_DECLS - -__header_always_inline int -__darwin_check_fd_set(int _a, const void *_b) -{ - if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) { -#if defined(_DARWIN_UNLIMITED_SELECT) || defined(_DARWIN_C_SOURCE) - return __darwin_check_fd_set_overflow(_a, _b, 1); -#else - return __darwin_check_fd_set_overflow(_a, _b, 0); -#endif - } else { - return 1; - } -} - -/* This inline avoids argument side-effect issues with FD_ISSET() */ -__header_always_inline int -__darwin_fd_isset(int _fd, const struct fd_set *_p) -{ - if (__darwin_check_fd_set(_fd, (const void *) _p)) { - return _p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] & ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS))); - } - - return 0; -} - -__header_always_inline void -__darwin_fd_set(int _fd, struct fd_set *const _p) -{ - if (__darwin_check_fd_set(_fd, (const void *) _p)) { - (_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] |= ((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS)))); - } -} - -__header_always_inline void -__darwin_fd_clr(int _fd, struct fd_set *const _p) -{ - if (__darwin_check_fd_set(_fd, (const void *) _p)) { - (_p->fds_bits[(unsigned long)_fd / __DARWIN_NFDBITS] &= ~((__int32_t)(((unsigned long)1) << ((unsigned long)_fd % __DARWIN_NFDBITS)))); - } -} - - -#define __DARWIN_FD_SET(n, p) __darwin_fd_set((n), (p)) -#define __DARWIN_FD_CLR(n, p) __darwin_fd_clr((n), (p)) -#define __DARWIN_FD_ISSET(n, p) __darwin_fd_isset((n), (p)) - -#if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3 -/* - * Use the built-in bzero function instead of the library version so that - * we do not pollute the namespace or introduce prototype warnings. - */ -#define __DARWIN_FD_ZERO(p) __builtin_bzero(p, sizeof(*(p))) -#else -#define __DARWIN_FD_ZERO(p) bzero(p, sizeof(*(p))) -#endif - -#define __DARWIN_FD_COPY(f, t) bcopy(f, t, sizeof(*(f))) -#endif /* _FD_SET */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_types/_int8_t.h b/lib/libc/include/x86_64-macos.10-none/sys/_types/_int8_t.h deleted file mode 100644 index 15b281d5334c6cf47063a30431c60651817464a8..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_types/_int8_t.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2012 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 _INT8_T -#define _INT8_T -typedef __signed char int8_t; -#endif /* _INT8_T */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_types/_ucontext.h b/lib/libc/include/x86_64-macos.10-none/sys/_types/_ucontext.h deleted file mode 100644 index 1e563f4581577f738500d9c222fc51a0dc7c43a0..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_types/_ucontext.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _STRUCT_UCONTEXT - -#include /* __DARWIN_UNIX03 */ - -#if __DARWIN_UNIX03 -#define _STRUCT_UCONTEXT struct __darwin_ucontext -#else /* !__DARWIN_UNIX03 */ -#define _STRUCT_UCONTEXT struct ucontext -#endif /* __DARWIN_UNIX03 */ - -#include /* __darwin_size_t */ -#include /* _STRUCT_MCONTEXT */ -#include /* __darwin_sigset_t */ - -_STRUCT_UCONTEXT -{ - int uc_onstack; - __darwin_sigset_t uc_sigmask; /* signal mask used by this context */ - _STRUCT_SIGALTSTACK uc_stack; /* stack used by this context */ - _STRUCT_UCONTEXT *uc_link; /* pointer to resuming context */ - __darwin_size_t uc_mcsize; /* size of the machine context passed in */ - _STRUCT_MCONTEXT *uc_mcontext; /* pointer to machine specific context */ -#ifdef _XOPEN_SOURCE - _STRUCT_MCONTEXT __mcontext_data; -#endif /* _XOPEN_SOURCE */ -}; - -/* user context */ -typedef _STRUCT_UCONTEXT ucontext_t; /* [???] user context */ - -#endif /* _STRUCT_UCONTEXT */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/_types/_uintptr_t.h b/lib/libc/include/x86_64-macos.10-none/sys/_types/_uintptr_t.h deleted file mode 100644 index 7971dbc86a7a17a07fc5f5927370822e6df97596..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/_types/_uintptr_t.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2003-2012 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 _UINTPTR_T -#define _UINTPTR_T -typedef unsigned long uintptr_t; -#endif /* _UINTPTR_T */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/acl.h b/lib/libc/include/x86_64-macos.10-none/sys/acl.h deleted file mode 100644 index dc134613d1ee2376289af1f32ecf1cde2099951f..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/acl.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright (c) 2004, 2010 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 _SYS_ACL_H -#define _SYS_ACL_H - -#include -#include - -#define __DARWIN_ACL_READ_DATA (1<<1) -#define __DARWIN_ACL_LIST_DIRECTORY __DARWIN_ACL_READ_DATA -#define __DARWIN_ACL_WRITE_DATA (1<<2) -#define __DARWIN_ACL_ADD_FILE __DARWIN_ACL_WRITE_DATA -#define __DARWIN_ACL_EXECUTE (1<<3) -#define __DARWIN_ACL_SEARCH __DARWIN_ACL_EXECUTE -#define __DARWIN_ACL_DELETE (1<<4) -#define __DARWIN_ACL_APPEND_DATA (1<<5) -#define __DARWIN_ACL_ADD_SUBDIRECTORY __DARWIN_ACL_APPEND_DATA -#define __DARWIN_ACL_DELETE_CHILD (1<<6) -#define __DARWIN_ACL_READ_ATTRIBUTES (1<<7) -#define __DARWIN_ACL_WRITE_ATTRIBUTES (1<<8) -#define __DARWIN_ACL_READ_EXTATTRIBUTES (1<<9) -#define __DARWIN_ACL_WRITE_EXTATTRIBUTES (1<<10) -#define __DARWIN_ACL_READ_SECURITY (1<<11) -#define __DARWIN_ACL_WRITE_SECURITY (1<<12) -#define __DARWIN_ACL_CHANGE_OWNER (1<<13) -#define __DARWIN_ACL_SYNCHRONIZE (1<<20) - -#define __DARWIN_ACL_EXTENDED_ALLOW 1 -#define __DARWIN_ACL_EXTENDED_DENY 2 - -#define __DARWIN_ACL_ENTRY_INHERITED (1<<4) -#define __DARWIN_ACL_ENTRY_FILE_INHERIT (1<<5) -#define __DARWIN_ACL_ENTRY_DIRECTORY_INHERIT (1<<6) -#define __DARWIN_ACL_ENTRY_LIMIT_INHERIT (1<<7) -#define __DARWIN_ACL_ENTRY_ONLY_INHERIT (1<<8) -#define __DARWIN_ACL_FLAG_NO_INHERIT (1<<17) - -/* - * Implementation constants. - * - * The ACL_TYPE_EXTENDED binary format permits 169 entries plus - * the ACL header in a page. Give ourselves some room to grow; - * this limit is arbitrary. - */ -#define ACL_MAX_ENTRIES 128 - -/* 23.2.2 Individual object access permissions - nonstandard */ -typedef enum { - ACL_READ_DATA = __DARWIN_ACL_READ_DATA, - ACL_LIST_DIRECTORY = __DARWIN_ACL_LIST_DIRECTORY, - ACL_WRITE_DATA = __DARWIN_ACL_WRITE_DATA, - ACL_ADD_FILE = __DARWIN_ACL_ADD_FILE, - ACL_EXECUTE = __DARWIN_ACL_EXECUTE, - ACL_SEARCH = __DARWIN_ACL_SEARCH, - ACL_DELETE = __DARWIN_ACL_DELETE, - ACL_APPEND_DATA = __DARWIN_ACL_APPEND_DATA, - ACL_ADD_SUBDIRECTORY = __DARWIN_ACL_ADD_SUBDIRECTORY, - ACL_DELETE_CHILD = __DARWIN_ACL_DELETE_CHILD, - ACL_READ_ATTRIBUTES = __DARWIN_ACL_READ_ATTRIBUTES, - ACL_WRITE_ATTRIBUTES = __DARWIN_ACL_WRITE_ATTRIBUTES, - ACL_READ_EXTATTRIBUTES = __DARWIN_ACL_READ_EXTATTRIBUTES, - ACL_WRITE_EXTATTRIBUTES = __DARWIN_ACL_WRITE_EXTATTRIBUTES, - ACL_READ_SECURITY = __DARWIN_ACL_READ_SECURITY, - ACL_WRITE_SECURITY = __DARWIN_ACL_WRITE_SECURITY, - ACL_CHANGE_OWNER = __DARWIN_ACL_CHANGE_OWNER, - ACL_SYNCHRONIZE = __DARWIN_ACL_SYNCHRONIZE, -} acl_perm_t; - -/* 23.2.5 ACL entry tag type bits - nonstandard */ -typedef enum { - ACL_UNDEFINED_TAG = 0, - ACL_EXTENDED_ALLOW = __DARWIN_ACL_EXTENDED_ALLOW, - ACL_EXTENDED_DENY = __DARWIN_ACL_EXTENDED_DENY -} acl_tag_t; - -/* 23.2.6 Individual ACL types */ -typedef enum { - ACL_TYPE_EXTENDED = 0x00000100, -/* Posix 1003.1e types - not supported */ - ACL_TYPE_ACCESS = 0x00000000, - ACL_TYPE_DEFAULT = 0x00000001, -/* The following types are defined on FreeBSD/Linux - not supported */ - ACL_TYPE_AFS = 0x00000002, - ACL_TYPE_CODA = 0x00000003, - ACL_TYPE_NTFS = 0x00000004, - ACL_TYPE_NWFS = 0x00000005 -} acl_type_t; - -/* 23.2.7 ACL qualifier constants */ - -#define ACL_UNDEFINED_ID NULL /* XXX ? */ - -/* 23.2.8 ACL Entry Constants */ -typedef enum { - ACL_FIRST_ENTRY = 0, - ACL_NEXT_ENTRY = -1, - ACL_LAST_ENTRY = -2 -} acl_entry_id_t; - -/* nonstandard ACL / entry flags */ -typedef enum { - ACL_FLAG_DEFER_INHERIT = (1 << 0), /* tentative */ - ACL_FLAG_NO_INHERIT = __DARWIN_ACL_FLAG_NO_INHERIT, - ACL_ENTRY_INHERITED = __DARWIN_ACL_ENTRY_INHERITED, - ACL_ENTRY_FILE_INHERIT = __DARWIN_ACL_ENTRY_FILE_INHERIT, - ACL_ENTRY_DIRECTORY_INHERIT = __DARWIN_ACL_ENTRY_DIRECTORY_INHERIT, - ACL_ENTRY_LIMIT_INHERIT = __DARWIN_ACL_ENTRY_LIMIT_INHERIT, - ACL_ENTRY_ONLY_INHERIT = __DARWIN_ACL_ENTRY_ONLY_INHERIT -} acl_flag_t; - -/* "External" ACL types */ - -struct _acl; -struct _acl_entry; -struct _acl_permset; -struct _acl_flagset; - -typedef struct _acl *acl_t; -typedef struct _acl_entry *acl_entry_t; -typedef struct _acl_permset *acl_permset_t; -typedef struct _acl_flagset *acl_flagset_t; - -typedef u_int64_t acl_permset_mask_t; - -__BEGIN_DECLS -/* 23.1.6.1 ACL Storage Management */ -extern acl_t acl_dup(acl_t acl); -extern int acl_free(void *obj_p); -extern acl_t acl_init(int count); - -/* 23.1.6.2 (1) ACL Entry manipulation */ -extern int acl_copy_entry(acl_entry_t dest_d, acl_entry_t src_d); -extern int acl_create_entry(acl_t *acl_p, acl_entry_t *entry_p); -extern int acl_create_entry_np(acl_t *acl_p, acl_entry_t *entry_p, int entry_index); -extern int acl_delete_entry(acl_t acl, acl_entry_t entry_d); -extern int acl_get_entry(acl_t acl, int entry_id, acl_entry_t *entry_p); -extern int acl_valid(acl_t acl); -extern int acl_valid_fd_np(int fd, acl_type_t type, acl_t acl); -extern int acl_valid_file_np(const char *path, acl_type_t type, acl_t acl); -extern int acl_valid_link_np(const char *path, acl_type_t type, acl_t acl); - -/* 23.1.6.2 (2) Manipulate permissions within an ACL entry */ -extern int acl_add_perm(acl_permset_t permset_d, acl_perm_t perm); -extern int acl_calc_mask(acl_t *acl_p); /* not supported */ -extern int acl_clear_perms(acl_permset_t permset_d); -extern int acl_delete_perm(acl_permset_t permset_d, acl_perm_t perm); -extern int acl_get_perm_np(acl_permset_t permset_d, acl_perm_t perm); -extern int acl_get_permset(acl_entry_t entry_d, acl_permset_t *permset_p); -extern int acl_set_permset(acl_entry_t entry_d, acl_permset_t permset_d); - -/* nonstandard - manipulate permissions within an ACL entry using bitmasks */ -extern int acl_maximal_permset_mask_np(acl_permset_mask_t * mask_p) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -extern int acl_get_permset_mask_np(acl_entry_t entry_d, acl_permset_mask_t * mask_p) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -extern int acl_set_permset_mask_np(acl_entry_t entry_d, acl_permset_mask_t mask) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); - -/* nonstandard - manipulate flags on ACLs and entries */ -extern int acl_add_flag_np(acl_flagset_t flagset_d, acl_flag_t flag); -extern int acl_clear_flags_np(acl_flagset_t flagset_d); -extern int acl_delete_flag_np(acl_flagset_t flagset_d, acl_flag_t flag); -extern int acl_get_flag_np(acl_flagset_t flagset_d, acl_flag_t flag); -extern int acl_get_flagset_np(void *obj_p, acl_flagset_t *flagset_p); -extern int acl_set_flagset_np(void *obj_p, acl_flagset_t flagset_d); - -/* 23.1.6.2 (3) Manipulate ACL entry tag type and qualifier */ -extern void *acl_get_qualifier(acl_entry_t entry_d); -extern int acl_get_tag_type(acl_entry_t entry_d, acl_tag_t *tag_type_p); -extern int acl_set_qualifier(acl_entry_t entry_d, const void *tag_qualifier_p); -extern int acl_set_tag_type(acl_entry_t entry_d, acl_tag_t tag_type); - -/* 23.1.6.3 ACL manipulation on an Object */ -extern int acl_delete_def_file(const char *path_p); /* not supported */ -extern acl_t acl_get_fd(int fd); -extern acl_t acl_get_fd_np(int fd, acl_type_t type); -extern acl_t acl_get_file(const char *path_p, acl_type_t type); -extern acl_t acl_get_link_np(const char *path_p, acl_type_t type); -extern int acl_set_fd(int fd, acl_t acl); -extern int acl_set_fd_np(int fd, acl_t acl, acl_type_t acl_type); -extern int acl_set_file(const char *path_p, acl_type_t type, acl_t acl); -extern int acl_set_link_np(const char *path_p, acl_type_t type, acl_t acl); - -/* 23.1.6.4 ACL Format translation */ -extern ssize_t acl_copy_ext(void *buf_p, acl_t acl, ssize_t size); -extern ssize_t acl_copy_ext_native(void *buf_p, acl_t acl, ssize_t size); -extern acl_t acl_copy_int(const void *buf_p); -extern acl_t acl_copy_int_native(const void *buf_p); -extern acl_t acl_from_text(const char *buf_p); -extern ssize_t acl_size(acl_t acl); -extern char *acl_to_text(acl_t acl, ssize_t *len_p); -__END_DECLS - -#endif /* _SYS_ACL_H */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/attr.h b/lib/libc/include/x86_64-macos.10-none/sys/attr.h deleted file mode 100644 index 7de047ec5b06c511427ba552eabbc230190e91b9..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/attr.h +++ /dev/null @@ -1,579 +0,0 @@ -/* - * 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 - -#ifdef __APPLE_API_UNSTABLE -#include -#include -#include -#include - -#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 - -/* 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 /* 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; - -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. - */ -#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 - -/* - * 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 .) - * - * 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_QUOTA_SIZE 0x10000000 -#define ATTR_VOL_RESERVED_SIZE 0x20000000 -#define ATTR_VOL_ATTRIBUTES 0x40000000 -#define ATTR_VOL_INFO 0x80000000 - -#define ATTR_VOL_VALIDMASK 0xF007FFFF - -/* - * 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_VALIDMASK 0x000003fc -#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 diff --git a/lib/libc/include/x86_64-macos.10-none/sys/cdefs.h b/lib/libc/include/x86_64-macos.10-none/sys/cdefs.h deleted file mode 100644 index b2b091e28eb8280a90bf6f9695b2b0f98aef2879..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/cdefs.h +++ /dev/null @@ -1,855 +0,0 @@ -/* - * Copyright (c) 2000-2018 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@ - */ -/* Copyright 1995 NeXT Computer, Inc. All rights reserved. */ -/* - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Berkeley Software Design, Inc. - * - * 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. - * - * @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - */ - -#ifndef _CDEFS_H_ -#define _CDEFS_H_ - -#if defined(__cplusplus) -#define __BEGIN_DECLS extern "C" { -#define __END_DECLS } -#else -#define __BEGIN_DECLS -#define __END_DECLS -#endif - -/* This SDK is designed to work with clang and specific versions of - * gcc >= 4.0 with Apple's patch sets */ -#if !defined(__GNUC__) || __GNUC__ < 4 -#warning "Unsupported compiler detected" -#endif - -/* - * Compatibility with compilers and environments that don't support compiler - * feature checking function-like macros. - */ -#ifndef __has_builtin -#define __has_builtin(x) 0 -#endif -#ifndef __has_include -#define __has_include(x) 0 -#endif -#ifndef __has_feature -#define __has_feature(x) 0 -#endif -#ifndef __has_attribute -#define __has_attribute(x) 0 -#endif -#ifndef __has_extension -#define __has_extension(x) 0 -#endif - -/* - * The __CONCAT macro is used to concatenate parts of symbol names, e.g. - * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. - * The __CONCAT macro is a bit tricky -- make sure you don't put spaces - * in between its arguments. __CONCAT can also concatenate double-quoted - * strings produced by the __STRING macro, but this only works with ANSI C. - */ -#if defined(__STDC__) || defined(__cplusplus) -#define __P(protos) protos /* full-blown ANSI C */ -#define __CONCAT(x, y) x ## y -#define __STRING(x) #x - -#define __const const /* define reserved names to standard */ -#define __signed signed -#define __volatile volatile -#if defined(__cplusplus) -#define __inline inline /* convert to C++ keyword */ -#else -#ifndef __GNUC__ -#define __inline /* delete GCC keyword */ -#endif /* !__GNUC__ */ -#endif /* !__cplusplus */ - -#else /* !(__STDC__ || __cplusplus) */ -#define __P(protos) () /* traditional C preprocessor */ -#define __CONCAT(x, y) x /**/ y -#define __STRING(x) "x" - -#ifndef __GNUC__ -#define __const /* delete pseudo-ANSI C keywords */ -#define __inline -#define __signed -#define __volatile -#endif /* !__GNUC__ */ - -/* - * In non-ANSI C environments, new programs will want ANSI-only C keywords - * deleted from the program and old programs will want them left alone. - * When using a compiler other than gcc, programs using the ANSI C keywords - * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. - * When using "gcc -traditional", we assume that this is the intent; if - * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. - */ -#ifndef NO_ANSI_KEYWORDS -#define const __const /* convert ANSI C keywords */ -#define inline __inline -#define signed __signed -#define volatile __volatile -#endif /* !NO_ANSI_KEYWORDS */ -#endif /* !(__STDC__ || __cplusplus) */ - -#define __dead2 __attribute__((__noreturn__)) -#define __pure2 __attribute__((__const__)) - -/* __unused denotes variables and functions that may not be used, preventing - * the compiler from warning about it if not used. - */ -#define __unused __attribute__((__unused__)) - -/* __used forces variables and functions to be included even if it appears - * to the compiler that they are not used (and would thust be discarded). - */ -#define __used __attribute__((__used__)) - -/* __cold marks code used for debugging or that is rarely taken - * and tells the compiler to optimize for size and outline code. - */ -#if __has_attribute(cold) -#define __cold __attribute__((__cold__)) -#else -#define __cold -#endif - -/* __deprecated causes the compiler to produce a warning when encountering - * code using the deprecated functionality. - * __deprecated_msg() does the same, and compilers that support it will print - * a message along with the deprecation warning. - * This may require turning on such warning with the -Wdeprecated flag. - * __deprecated_enum_msg() should be used on enums, and compilers that support - * it will print the deprecation warning. - * __kpi_deprecated() specifically indicates deprecation of kernel programming - * interfaces in Kernel.framework used by KEXTs. - */ -#define __deprecated __attribute__((__deprecated__)) - -#if __has_extension(attribute_deprecated_with_message) || \ - (defined(__GNUC__) && ((__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)))) - #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg))) -#else - #define __deprecated_msg(_msg) __attribute__((__deprecated__)) -#endif - -#if __has_extension(enumerator_attributes) - #define __deprecated_enum_msg(_msg) __deprecated_msg(_msg) -#else - #define __deprecated_enum_msg(_msg) -#endif - -#define __kpi_deprecated(_msg) - -/* __unavailable causes the compiler to error out when encountering - * code using the tagged function of variable. - */ -#define __unavailable __attribute__((__unavailable__)) - -/* Delete pseudo-keywords wherever they are not available or needed. */ -#ifndef __dead -#define __dead -#define __pure -#endif - -/* - * We use `__restrict' as a way to define the `restrict' type qualifier - * without disturbing older software that is unaware of C99 keywords. - */ -#if __STDC_VERSION__ < 199901 -#define __restrict -#else -#define __restrict restrict -#endif - -/* Compatibility with compilers and environments that don't support the - * nullability feature. - */ - -#if !__has_feature(nullability) -#ifndef __nullable -#define __nullable -#endif -#ifndef __nonnull -#define __nonnull -#endif -#ifndef __null_unspecified -#define __null_unspecified -#endif -#ifndef _Nullable -#define _Nullable -#endif -#ifndef _Nonnull -#define _Nonnull -#endif -#ifndef _Null_unspecified -#define _Null_unspecified -#endif -#endif - -/* - * __disable_tail_calls causes the compiler to not perform tail call - * optimization inside the marked function. - */ -#if __has_attribute(disable_tail_calls) -#define __disable_tail_calls __attribute__((__disable_tail_calls__)) -#else -#define __disable_tail_calls -#endif - -/* - * __not_tail_called causes the compiler to prevent tail call optimization - * on statically bound calls to the function. It has no effect on indirect - * calls. Virtual functions, objective-c methods, and functions marked as - * "always_inline" cannot be marked as __not_tail_called. - */ -#if __has_attribute(not_tail_called) -#define __not_tail_called __attribute__((__not_tail_called__)) -#else -#define __not_tail_called -#endif - -/* - * __result_use_check warns callers of a function that not using the function - * return value is a bug, i.e. dismissing malloc() return value results in a - * memory leak. - */ -#if __has_attribute(warn_unused_result) -#define __result_use_check __attribute__((__warn_unused_result__)) -#else -#define __result_use_check -#endif - -/* - * __swift_unavailable causes the compiler to mark a symbol as specifically - * unavailable in Swift, regardless of any other availability in C. - */ -#if __has_feature(attribute_availability_swift) -#define __swift_unavailable(_msg) __attribute__((__availability__(swift, unavailable, message=_msg))) -#else -#define __swift_unavailable(_msg) -#endif - -/* - * __abortlike is the attribute to put on functions like abort() that are - * typically used to mark assertions. These optimize the codegen - * for outlining while still maintaining debugability. - */ -#ifndef __abortlike -#define __abortlike __dead2 __cold __not_tail_called -#endif - -/* Declaring inline functions within headers is error-prone due to differences - * across various versions of the C language and extensions. __header_inline - * can be used to declare inline functions within system headers. In cases - * where you want to force inlining instead of letting the compiler make - * the decision, you can use __header_always_inline. - * - * Be aware that using inline for functions which compilers may also provide - * builtins can behave differently under various compilers. If you intend to - * provide an inline version of such a function, you may want to use a macro - * instead. - * - * The check for !__GNUC__ || __clang__ is because gcc doesn't correctly - * support c99 inline in some cases: - * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55965 - */ - -#if defined(__cplusplus) || \ - (__STDC_VERSION__ >= 199901L && \ - !defined(__GNUC_GNU_INLINE__) && \ - (!defined(__GNUC__) || defined(__clang__))) -# define __header_inline inline -#elif defined(__GNUC__) && defined(__GNUC_STDC_INLINE__) -# define __header_inline extern __inline __attribute__((__gnu_inline__)) -#elif defined(__GNUC__) -# define __header_inline extern __inline -#else -/* If we land here, we've encountered an unsupported compiler, - * so hopefully it understands static __inline as a fallback. - */ -# define __header_inline static __inline -#endif - -#ifdef __GNUC__ -# define __header_always_inline __header_inline __attribute__ ((__always_inline__)) -#else -/* Unfortunately, we're using a compiler that we don't know how to force to - * inline. Oh well. - */ -# define __header_always_inline __header_inline -#endif - -/* - * Compiler-dependent macros that bracket portions of code where the - * "-Wunreachable-code" warning should be ignored. Please use sparingly. - */ -#if defined(__clang__) -# define __unreachable_ok_push \ - _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Wunreachable-code\"") -# define __unreachable_ok_pop \ - _Pragma("clang diagnostic pop") -#elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -# define __unreachable_ok_push \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wunreachable-code\"") -# define __unreachable_ok_pop \ - _Pragma("GCC diagnostic pop") -#else -# define __unreachable_ok_push -# define __unreachable_ok_pop -#endif - -/* - * Compiler-dependent macros to declare that functions take printf-like - * or scanf-like arguments. They are null except for versions of gcc - * that are known to support the features properly. Functions declared - * with these attributes will cause compilation warnings if there is a - * mismatch between the format string and subsequent function parameter - * types. - */ -#define __printflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf__, fmtarg, firstvararg))) -#define __printf0like(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf0__, fmtarg, firstvararg))) -#define __scanflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__scanf__, fmtarg, firstvararg))) - -#define __IDSTRING(name, string) static const char name[] __used = string - -#ifndef __COPYRIGHT -#define __COPYRIGHT(s) __IDSTRING(copyright,s) -#endif - -#ifndef __RCSID -#define __RCSID(s) __IDSTRING(rcsid,s) -#endif - -#ifndef __SCCSID -#define __SCCSID(s) __IDSTRING(sccsid,s) -#endif - -#ifndef __PROJECT_VERSION -#define __PROJECT_VERSION(s) __IDSTRING(project_version,s) -#endif - -/* Source compatibility only, ID string not emitted in object file */ -#ifndef __FBSDID -#define __FBSDID(s) -#endif - -#ifndef __DECONST -#define __DECONST(type, var) __CAST_AWAY_QUALIFIER(var, const, type) -#endif - -#ifndef __DEVOLATILE -#define __DEVOLATILE(type, var) __CAST_AWAY_QUALIFIER(var, volatile, type) -#endif - -#ifndef __DEQUALIFY -#define __DEQUALIFY(type, var) __CAST_AWAY_QUALIFIER(var, const volatile, type) -#endif - -/* - * __alloc_size can be used to label function arguments that represent the - * size of memory that the function allocates and returns. The one-argument - * form labels a single argument that gives the allocation size (where the - * arguments are numbered from 1): - * - * void *malloc(size_t __size) __alloc_size(1); - * - * The two-argument form handles the case where the size is calculated as the - * product of two arguments: - * - * void *calloc(size_t __count, size_t __size) __alloc_size(1,2); - */ -#ifndef __alloc_size -#if __has_attribute(alloc_size) -#define __alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) -#else -#define __alloc_size(...) -#endif -#endif // __alloc_size - -/* - * COMPILATION ENVIRONMENTS -- see compat(5) for additional detail - * - * DEFAULT By default newly complied code will get POSIX APIs plus - * Apple API extensions in scope. - * - * Most users will use this compilation environment to avoid - * behavioral differences between 32 and 64 bit code. - * - * LEGACY Defining _NONSTD_SOURCE will get pre-POSIX APIs plus Apple - * API extensions in scope. - * - * This is generally equivalent to the Tiger release compilation - * environment, except that it cannot be applied to 64 bit code; - * its use is discouraged. - * - * We expect this environment to be deprecated in the future. - * - * STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the - * available APIs to exactly the set of APIs defined by the - * corresponding standard, based on the value defined. - * - * A correct, portable definition for _POSIX_C_SOURCE is 200112L. - * A correct, portable definition for _XOPEN_SOURCE is 600L. - * - * Apple API extensions are not visible in this environment, - * which can cause Apple specific code to fail to compile, - * or behave incorrectly if prototypes are not in scope or - * warnings about missing prototypes are not enabled or ignored. - * - * In any compilation environment, for correct symbol resolution to occur, - * function prototypes must be in scope. It is recommended that all Apple - * tools users add either the "-Wall" or "-Wimplicit-function-declaration" - * compiler flags to their projects to be warned when a function is being - * used without a prototype in scope. - */ - -/* These settings are particular to each product. */ -/* Platform: MacOSX */ -#define __DARWIN_ONLY_64_BIT_INO_T 0 -/* #undef __DARWIN_ONLY_UNIX_CONFORMANCE (automatically set for 64-bit) */ -#define __DARWIN_ONLY_VERS_1050 0 - -/* - * The __DARWIN_ALIAS macros are used to do symbol renaming; they allow - * legacy code to use the old symbol, thus maintaining binary compatibility - * while new code can use a standards compliant version of the same function. - * - * __DARWIN_ALIAS is used by itself if the function signature has not - * changed, it is used along with a #ifdef check for __DARWIN_UNIX03 - * if the signature has changed. Because the __LP64__ environment - * only supports UNIX03 semantics it causes __DARWIN_UNIX03 to be - * defined, but causes __DARWIN_ALIAS to do no symbol mangling. - * - * As a special case, when XCode is used to target a specific version of the - * OS, the manifest constant __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - * will be defined by the compiler, with the digits representing major version - * time 100 + minor version times 10 (e.g. 10.5 := 1050). If we are targeting - * pre-10.5, and it is the default compilation environment, revert the - * compilation environment to pre-__DARWIN_UNIX03. - */ -#if !defined(__DARWIN_ONLY_UNIX_CONFORMANCE) -# if defined(__LP64__) -# define __DARWIN_ONLY_UNIX_CONFORMANCE 1 -# else /* !__LP64__ */ -# define __DARWIN_ONLY_UNIX_CONFORMANCE 0 -# endif /* __LP64__ */ -#endif /* !__DARWIN_ONLY_UNIX_CONFORMANCE */ - -#if !defined(__DARWIN_UNIX03) -# if __DARWIN_ONLY_UNIX_CONFORMANCE -# if defined(_NONSTD_SOURCE) -# error "Can't define _NONSTD_SOURCE when only UNIX conformance is available." -# endif /* _NONSTD_SOURCE */ -# define __DARWIN_UNIX03 1 -# elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1040) -# define __DARWIN_UNIX03 0 -# elif defined(_DARWIN_C_SOURCE) || defined(_XOPEN_SOURCE) || defined(_POSIX_C_SOURCE) -# if defined(_NONSTD_SOURCE) -# error "Can't define both _NONSTD_SOURCE and any of _DARWIN_C_SOURCE, _XOPEN_SOURCE or _POSIX_C_SOURCE." -# endif /* _NONSTD_SOURCE */ -# define __DARWIN_UNIX03 1 -# elif defined(_NONSTD_SOURCE) -# define __DARWIN_UNIX03 0 -# else /* default */ -# if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1050) -# define __DARWIN_UNIX03 0 -# else /* __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 */ -# define __DARWIN_UNIX03 1 -# endif /* __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 */ -# endif /* _DARWIN_C_SOURCE || _XOPEN_SOURCE || _POSIX_C_SOURCE || __LP64__ */ -#endif /* !__DARWIN_UNIX03 */ - -#if !defined(__DARWIN_64_BIT_INO_T) -# if defined(_DARWIN_USE_64_BIT_INODE) -# if defined(_DARWIN_NO_64_BIT_INODE) -# error "Can't define both _DARWIN_USE_64_BIT_INODE and _DARWIN_NO_64_BIT_INODE." -# endif /* _DARWIN_NO_64_BIT_INODE */ -# define __DARWIN_64_BIT_INO_T 1 -# elif defined(_DARWIN_NO_64_BIT_INODE) -# if __DARWIN_ONLY_64_BIT_INO_T -# error "Can't define _DARWIN_NO_64_BIT_INODE when only 64-bit inodes are available." -# endif /* __DARWIN_ONLY_64_BIT_INO_T */ -# define __DARWIN_64_BIT_INO_T 0 -# else /* default */ -# if __DARWIN_ONLY_64_BIT_INO_T -# define __DARWIN_64_BIT_INO_T 1 -# elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1060) || __DARWIN_UNIX03 == 0 -# define __DARWIN_64_BIT_INO_T 0 -# else /* default */ -# define __DARWIN_64_BIT_INO_T 1 -# endif /* __DARWIN_ONLY_64_BIT_INO_T */ -# endif -#endif /* !__DARWIN_64_BIT_INO_T */ - -#if !defined(__DARWIN_VERS_1050) -# if __DARWIN_ONLY_VERS_1050 -# define __DARWIN_VERS_1050 1 -# elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - 0) < 1050) || __DARWIN_UNIX03 == 0 -# define __DARWIN_VERS_1050 0 -# else /* default */ -# define __DARWIN_VERS_1050 1 -# endif -#endif /* !__DARWIN_VERS_1050 */ - -#if !defined(__DARWIN_NON_CANCELABLE) -# define __DARWIN_NON_CANCELABLE 0 -#endif /* !__DARWIN_NON_CANCELABLE */ - -/* - * symbol suffixes used for symbol versioning - */ -#if __DARWIN_UNIX03 -# if __DARWIN_ONLY_UNIX_CONFORMANCE -# define __DARWIN_SUF_UNIX03 /* nothing */ -# else /* !__DARWIN_ONLY_UNIX_CONFORMANCE */ -# define __DARWIN_SUF_UNIX03 "$UNIX2003" -# endif /* __DARWIN_ONLY_UNIX_CONFORMANCE */ - -# if __DARWIN_64_BIT_INO_T -# if __DARWIN_ONLY_64_BIT_INO_T -# define __DARWIN_SUF_64_BIT_INO_T /* nothing */ -# else /* !__DARWIN_ONLY_64_BIT_INO_T */ -# define __DARWIN_SUF_64_BIT_INO_T "$INODE64" -# endif /* __DARWIN_ONLY_64_BIT_INO_T */ -# else /* !__DARWIN_64_BIT_INO_T */ -# define __DARWIN_SUF_64_BIT_INO_T /* nothing */ -# endif /* __DARWIN_64_BIT_INO_T */ - -# if __DARWIN_VERS_1050 -# if __DARWIN_ONLY_VERS_1050 -# define __DARWIN_SUF_1050 /* nothing */ -# else /* !__DARWIN_ONLY_VERS_1050 */ -# define __DARWIN_SUF_1050 "$1050" -# endif /* __DARWIN_ONLY_VERS_1050 */ -# else /* !__DARWIN_VERS_1050 */ -# define __DARWIN_SUF_1050 /* nothing */ -# endif /* __DARWIN_VERS_1050 */ - -# if __DARWIN_NON_CANCELABLE -# define __DARWIN_SUF_NON_CANCELABLE "$NOCANCEL" -# else /* !__DARWIN_NON_CANCELABLE */ -# define __DARWIN_SUF_NON_CANCELABLE /* nothing */ -# endif /* __DARWIN_NON_CANCELABLE */ - -#else /* !__DARWIN_UNIX03 */ -# define __DARWIN_SUF_UNIX03 /* nothing */ -# define __DARWIN_SUF_64_BIT_INO_T /* nothing */ -# define __DARWIN_SUF_NON_CANCELABLE /* nothing */ -# define __DARWIN_SUF_1050 /* nothing */ -#endif /* __DARWIN_UNIX03 */ - -#define __DARWIN_SUF_EXTSN "$DARWIN_EXTSN" - -/* - * symbol versioning macros - */ -#define __DARWIN_ALIAS(sym) __asm("_" __STRING(sym) __DARWIN_SUF_UNIX03) -#define __DARWIN_ALIAS_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03) -#define __DARWIN_ALIAS_I(sym) __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03) -#define __DARWIN_NOCANCEL(sym) __asm("_" __STRING(sym) __DARWIN_SUF_NON_CANCELABLE) -#define __DARWIN_INODE64(sym) __asm("_" __STRING(sym) __DARWIN_SUF_64_BIT_INO_T) - -#define __DARWIN_1050(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050) -#define __DARWIN_1050ALIAS(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_UNIX03) -#define __DARWIN_1050ALIAS_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_NON_CANCELABLE __DARWIN_SUF_UNIX03) -#define __DARWIN_1050ALIAS_I(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T __DARWIN_SUF_UNIX03) -#define __DARWIN_1050INODE64(sym) __asm("_" __STRING(sym) __DARWIN_SUF_1050 __DARWIN_SUF_64_BIT_INO_T) - -#define __DARWIN_EXTSN(sym) __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN) -#define __DARWIN_EXTSN_C(sym) __asm("_" __STRING(sym) __DARWIN_SUF_EXTSN __DARWIN_SUF_NON_CANCELABLE) - -/* - * symbol release macros - */ -#include - -#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) -#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x) __DARWIN_ALIAS_STARTING_IPHONE_##_iphone(x) -#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) -#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x) __DARWIN_ALIAS_STARTING_MAC_##_mac(x) -#else -#define __DARWIN_ALIAS_STARTING(_mac, _iphone, x) x -#endif - - -/* - * POSIX.1 requires that the macros we test be defined before any standard - * header file is included. This permits us to convert values for feature - * testing, as necessary, using only _POSIX_C_SOURCE. - * - * Here's a quick run-down of the versions: - * defined(_POSIX_SOURCE) 1003.1-1988 - * _POSIX_C_SOURCE == 1L 1003.1-1990 - * _POSIX_C_SOURCE == 2L 1003.2-1992 C Language Binding Option - * _POSIX_C_SOURCE == 199309L 1003.1b-1993 - * _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, - * and the omnibus ISO/IEC 9945-1: 1996 - * _POSIX_C_SOURCE == 200112L 1003.1-2001 - * _POSIX_C_SOURCE == 200809L 1003.1-2008 - * - * In addition, the X/Open Portability Guide, which is now the Single UNIX - * Specification, defines a feature-test macro which indicates the version of - * that specification, and which subsumes _POSIX_C_SOURCE. - */ - -/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1L. */ -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1L -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 199009L -#endif - -/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2L. */ -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2L -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 199209L -#endif - -/* Deal with various X/Open Portability Guides and Single UNIX Spec. */ -#ifdef _XOPEN_SOURCE -#if _XOPEN_SOURCE - 0L >= 700L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 200809L) -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#elif _XOPEN_SOURCE - 0L >= 600L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 200112L) -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200112L -#elif _XOPEN_SOURCE - 0L >= 500L && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE - 0L < 199506L) -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 199506L -#endif -#endif - -/* - * Deal with all versions of POSIX. The ordering relative to the tests above is - * important. - */ -#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) -#define _POSIX_C_SOURCE 198808L -#endif - -/* POSIX C deprecation macros */ -#include - -#define __POSIX_C_DEPRECATED(ver) ___POSIX_C_DEPRECATED_STARTING_##ver - -/* - * Set a single macro which will always be defined and can be used to determine - * the appropriate namespace. For POSIX, these values will correspond to - * _POSIX_C_SOURCE value. Currently there are two additional levels corresponding - * to ANSI (_ANSI_SOURCE) and Darwin extensions (_DARWIN_C_SOURCE) - */ -#define __DARWIN_C_ANSI 010000L -#define __DARWIN_C_FULL 900000L - -#if defined(_ANSI_SOURCE) -#define __DARWIN_C_LEVEL __DARWIN_C_ANSI -#elif defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE) && !defined(_NONSTD_SOURCE) -#define __DARWIN_C_LEVEL _POSIX_C_SOURCE -#else -#define __DARWIN_C_LEVEL __DARWIN_C_FULL -#endif - -/* If the developer has neither requested a strict language mode nor a version - * of POSIX, turn on functionality provided by __STDC_WANT_LIB_EXT1__ as part - * of __DARWIN_C_FULL. - */ -#if !defined(__STDC_WANT_LIB_EXT1__) && !defined(__STRICT_ANSI__) && __DARWIN_C_LEVEL >= __DARWIN_C_FULL -#define __STDC_WANT_LIB_EXT1__ 1 -#endif - -/* - * long long is not supported in c89 (__STRICT_ANSI__), but g++ -ansi and - * c99 still want long longs. While not perfect, we allow long longs for - * g++. - */ -#if (defined(__STRICT_ANSI__) && (__STDC_VERSION__ - 0 < 199901L) && !defined(__GNUG__)) -#define __DARWIN_NO_LONG_LONG 1 -#else -#define __DARWIN_NO_LONG_LONG 0 -#endif - -/***************************************** -* Public darwin-specific feature macros -*****************************************/ - -/* - * _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and - * structures modified for 64-bit inodes (like struct stat) will be used. - */ -#if __DARWIN_64_BIT_INO_T -#define _DARWIN_FEATURE_64_BIT_INODE 1 -#endif - -/* - * _DARWIN_FEATURE_64_ONLY_BIT_INODE indicates that the ino_t type may only - * be 64-bit; there is no support for 32-bit ino_t when this macro is defined - * (and non-zero). There is no struct stat64 either, as the regular - * struct stat will already be the 64-bit version. - */ -#if __DARWIN_ONLY_64_BIT_INO_T -#define _DARWIN_FEATURE_ONLY_64_BIT_INODE 1 -#endif - -/* - * _DARWIN_FEATURE_ONLY_VERS_1050 indicates that only those APIs updated - * in 10.5 exists; no pre-10.5 variants are available. - */ -#if __DARWIN_ONLY_VERS_1050 -#define _DARWIN_FEATURE_ONLY_VERS_1050 1 -#endif - -/* - * _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE indicates only UNIX conforming API - * are available (the legacy BSD APIs are not available) - */ -#if __DARWIN_ONLY_UNIX_CONFORMANCE -#define _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE 1 -#endif - -/* - * _DARWIN_FEATURE_UNIX_CONFORMANCE indicates whether UNIX conformance is on, - * and specifies the conformance level (3 is SUSv3) - */ -#if __DARWIN_UNIX03 -#define _DARWIN_FEATURE_UNIX_CONFORMANCE 3 -#endif - - -/* - * This macro casts away the qualifier from the variable - * - * Note: use at your own risk, removing qualifiers can result in - * catastrophic run-time failures. - */ -#ifndef __CAST_AWAY_QUALIFIER -#define __CAST_AWAY_QUALIFIER(variable, qualifier, type) (type) (long)(variable) -#endif - -/* - * __XNU_PRIVATE_EXTERN is a linkage decoration indicating that a symbol can be - * used from other compilation units, but not other libraries or executables. - */ -#ifndef __XNU_PRIVATE_EXTERN -#define __XNU_PRIVATE_EXTERN __attribute__((visibility("hidden"))) -#endif - -/* - * Architecture validation for current SDK - */ -#if !defined(__sys_cdefs_arch_unknown__) && defined(__i386__) -#elif !defined(__sys_cdefs_arch_unknown__) && defined(__x86_64__) -#else -#error Unsupported architecture -#endif - - - -#define __compiler_barrier() __asm__ __volatile__("" ::: "memory") - -#if __has_attribute(enum_extensibility) -#define __enum_open __attribute__((__enum_extensibility__(open))) -#define __enum_closed __attribute__((__enum_extensibility__(closed))) -#else -#define __enum_open -#define __enum_closed -#endif // __has_attribute(enum_extensibility) - -#if __has_attribute(flag_enum) -#define __enum_options __attribute__((__flag_enum__)) -#else -#define __enum_options -#endif - -/* - * Similar to OS_ENUM/OS_CLOSED_ENUM/OS_OPTIONS/OS_CLOSED_OPTIONS - * - * This provides more advanced type checking on compilers supporting - * the proper extensions, even in C. - */ -#if __has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum) || \ - __has_extension(cxx_strong_enums) -#define __enum_decl(_name, _type, ...) \ - typedef enum : _type __VA_ARGS__ __enum_open _name -#define __enum_closed_decl(_name, _type, ...) \ - typedef enum : _type __VA_ARGS__ __enum_closed _name -#define __options_decl(_name, _type, ...) \ - typedef enum : _type __VA_ARGS__ __enum_open __enum_options _name -#define __options_closed_decl(_name, _type, ...) \ - typedef enum : _type __VA_ARGS__ __enum_closed __enum_options _name -#else -#define __enum_decl(_name, _type, ...) \ - typedef _type _name; enum __VA_ARGS__ __enum_open -#define __enum_closed_decl(_name, _type, ...) \ - typedef _type _name; enum __VA_ARGS__ __enum_closed -#define __options_decl(_name, _type, ...) \ - typedef _type _name; enum __VA_ARGS__ __enum_open __enum_options -#define __options_closed_decl(_name, _type, ...) \ - typedef _type _name; enum __VA_ARGS__ __enum_closed __enum_options -#endif - -#endif /* !_CDEFS_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/event.h b/lib/libc/include/x86_64-macos.10-none/sys/event.h deleted file mode 100644 index 1fbce9a75c4bad034c1921b05f6dbc61b03560c7..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/event.h +++ /dev/null @@ -1,396 +0,0 @@ -/* - * Copyright (c) 2003-2019 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@ - */ -/*- - * Copyright (c) 1999,2000,2001 Jonathan Lemon - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - * - * $FreeBSD: src/sys/sys/event.h,v 1.5.2.5 2001/12/14 19:21:22 jlemon Exp $ - */ - -#ifndef _SYS_EVENT_H_ -#define _SYS_EVENT_H_ - -#include -#include -#include - -/* - * Filter types - */ -#define EVFILT_READ (-1) -#define EVFILT_WRITE (-2) -#define EVFILT_AIO (-3) /* attached to aio requests */ -#define EVFILT_VNODE (-4) /* attached to vnodes */ -#define EVFILT_PROC (-5) /* attached to struct proc */ -#define EVFILT_SIGNAL (-6) /* attached to struct proc */ -#define EVFILT_TIMER (-7) /* timers */ -#define EVFILT_MACHPORT (-8) /* Mach portsets */ -#define EVFILT_FS (-9) /* Filesystem events */ -#define EVFILT_USER (-10) /* User events */ -#define EVFILT_VM (-12) /* Virtual memory events */ -#define EVFILT_EXCEPT (-15) /* Exception events */ - -#define EVFILT_SYSCOUNT 17 -#define EVFILT_THREADMARKER EVFILT_SYSCOUNT /* Internal use only */ - -#pragma pack(4) - -struct kevent { - uintptr_t ident; /* identifier for this event */ - int16_t filter; /* filter for event */ - uint16_t flags; /* general flags */ - uint32_t fflags; /* filter-specific flags */ - intptr_t data; /* filter-specific data */ - void *udata; /* opaque user data identifier */ -}; - - -#pragma pack() - -struct kevent64_s { - uint64_t ident; /* identifier for this event */ - int16_t filter; /* filter for event */ - uint16_t flags; /* general flags */ - uint32_t fflags; /* filter-specific flags */ - int64_t data; /* filter-specific data */ - uint64_t udata; /* opaque user data identifier */ - uint64_t ext[2]; /* filter-specific extensions */ -}; - - -#define EV_SET(kevp, a, b, c, d, e, f) do { \ - struct kevent *__kevp__ = (kevp); \ - __kevp__->ident = (a); \ - __kevp__->filter = (b); \ - __kevp__->flags = (c); \ - __kevp__->fflags = (d); \ - __kevp__->data = (e); \ - __kevp__->udata = (f); \ -} while(0) - -#define EV_SET64(kevp, a, b, c, d, e, f, g, h) do { \ - struct kevent64_s *__kevp__ = (kevp); \ - __kevp__->ident = (a); \ - __kevp__->filter = (b); \ - __kevp__->flags = (c); \ - __kevp__->fflags = (d); \ - __kevp__->data = (e); \ - __kevp__->udata = (f); \ - __kevp__->ext[0] = (g); \ - __kevp__->ext[1] = (h); \ -} while(0) - - -/* kevent system call flags */ -#define KEVENT_FLAG_NONE 0x000000 /* no flag value */ -#define KEVENT_FLAG_IMMEDIATE 0x000001 /* immediate timeout */ -#define KEVENT_FLAG_ERROR_EVENTS 0x000002 /* output events only include change errors */ - - -/* actions */ -#define EV_ADD 0x0001 /* add event to kq (implies enable) */ -#define EV_DELETE 0x0002 /* delete event from kq */ -#define EV_ENABLE 0x0004 /* enable event */ -#define EV_DISABLE 0x0008 /* disable event (not reported) */ - -/* flags */ -#define EV_ONESHOT 0x0010 /* only report one occurrence */ -#define EV_CLEAR 0x0020 /* clear event state after reporting */ -#define EV_RECEIPT 0x0040 /* force immediate event output */ - /* ... with or without EV_ERROR */ - /* ... use KEVENT_FLAG_ERROR_EVENTS */ - /* on syscalls supporting flags */ - -#define EV_DISPATCH 0x0080 /* disable event after reporting */ -#define EV_UDATA_SPECIFIC 0x0100 /* unique kevent per udata value */ - -#define EV_DISPATCH2 (EV_DISPATCH | EV_UDATA_SPECIFIC) -/* ... in combination with EV_DELETE */ -/* will defer delete until udata-specific */ -/* event enabled. EINPROGRESS will be */ -/* returned to indicate the deferral */ - -#define EV_VANISHED 0x0200 /* report that source has vanished */ - /* ... only valid with EV_DISPATCH2 */ - -#define EV_SYSFLAGS 0xF000 /* reserved by system */ -#define EV_FLAG0 0x1000 /* filter-specific flag */ -#define EV_FLAG1 0x2000 /* filter-specific flag */ - -/* returned values */ -#define EV_EOF 0x8000 /* EOF detected */ -#define EV_ERROR 0x4000 /* error, data contains errno */ - -/* - * Filter specific flags for EVFILT_READ - * - * The default behavior for EVFILT_READ is to make the "read" determination - * relative to the current file descriptor read pointer. - * - * The EV_POLL flag indicates the determination should be made via poll(2) - * semantics. These semantics dictate always returning true for regular files, - * regardless of the amount of unread data in the file. - * - * On input, EV_OOBAND specifies that filter should actively return in the - * presence of OOB on the descriptor. It implies that filter will return - * if there is OOB data available to read OR when any other condition - * for the read are met (for example number of bytes regular data becomes >= - * low-watermark). - * If EV_OOBAND is not set on input, it implies that the filter should not actively - * return for out of band data on the descriptor. The filter will then only return - * when some other condition for read is met (ex: when number of regular data bytes - * >=low-watermark OR when socket can't receive more data (SS_CANTRCVMORE)). - * - * On output, EV_OOBAND indicates the presence of OOB data on the descriptor. - * If it was not specified as an input parameter, then the data count is the - * number of bytes before the current OOB marker, else data count is the number - * of bytes beyond OOB marker. - */ -#define EV_POLL EV_FLAG0 -#define EV_OOBAND EV_FLAG1 - -/* - * data/hint fflags for EVFILT_USER, shared with userspace - */ - -/* - * On input, NOTE_TRIGGER causes the event to be triggered for output. - */ -#define NOTE_TRIGGER 0x01000000 - -/* - * On input, the top two bits of fflags specifies how the lower twenty four - * bits should be applied to the stored value of fflags. - * - * On output, the top two bits will always be set to NOTE_FFNOP and the - * remaining twenty four bits will contain the stored fflags value. - */ -#define NOTE_FFNOP 0x00000000 /* ignore input fflags */ -#define NOTE_FFAND 0x40000000 /* and fflags */ -#define NOTE_FFOR 0x80000000 /* or fflags */ -#define NOTE_FFCOPY 0xc0000000 /* copy fflags */ -#define NOTE_FFCTRLMASK 0xc0000000 /* mask for operations */ -#define NOTE_FFLAGSMASK 0x00ffffff - - -/* - * data/hint fflags for EVFILT_{READ|WRITE}, shared with userspace - * - * The default behavior for EVFILT_READ is to make the determination - * realtive to the current file descriptor read pointer. - */ -#define NOTE_LOWAT 0x00000001 /* low water mark */ - -/* data/hint flags for EVFILT_EXCEPT, shared with userspace */ -#define NOTE_OOB 0x00000002 /* OOB data */ - -/* - * data/hint fflags for EVFILT_VNODE, shared with userspace - */ -#define NOTE_DELETE 0x00000001 /* vnode was removed */ -#define NOTE_WRITE 0x00000002 /* data contents changed */ -#define NOTE_EXTEND 0x00000004 /* size increased */ -#define NOTE_ATTRIB 0x00000008 /* attributes changed */ -#define NOTE_LINK 0x00000010 /* link count changed */ -#define NOTE_RENAME 0x00000020 /* vnode was renamed */ -#define NOTE_REVOKE 0x00000040 /* vnode access was revoked */ -#define NOTE_NONE 0x00000080 /* No specific vnode event: to test for EVFILT_READ activation*/ -#define NOTE_FUNLOCK 0x00000100 /* vnode was unlocked by flock(2) */ - -/* - * data/hint fflags for EVFILT_PROC, shared with userspace - * - * Please note that EVFILT_PROC and EVFILT_SIGNAL share the same knote list - * that hangs off the proc structure. They also both play games with the hint - * passed to KNOTE(). If NOTE_SIGNAL is passed as a hint, then the lower bits - * of the hint contain the signal. IF NOTE_FORK is passed, then the lower bits - * contain the PID of the child (but the pid does not get passed through in - * the actual kevent). - */ -enum { - eNoteReapDeprecated __deprecated_enum_msg("This kqueue(2) EVFILT_PROC flag is deprecated") = 0x10000000 -}; - -#define NOTE_EXIT 0x80000000 /* process exited */ -#define NOTE_FORK 0x40000000 /* process forked */ -#define NOTE_EXEC 0x20000000 /* process exec'd */ -#define NOTE_REAP ((unsigned int)eNoteReapDeprecated /* 0x10000000 */ ) /* process reaped */ -#define NOTE_SIGNAL 0x08000000 /* shared with EVFILT_SIGNAL */ -#define NOTE_EXITSTATUS 0x04000000 /* exit status to be returned, valid for child process only */ -#define NOTE_EXIT_DETAIL 0x02000000 /* provide details on reasons for exit */ - -#define NOTE_PDATAMASK 0x000fffff /* mask for signal & exit status */ -#define NOTE_PCTRLMASK (~NOTE_PDATAMASK) - -/* - * If NOTE_EXITSTATUS is present, provide additional info about exiting process. - */ -enum { - eNoteExitReparentedDeprecated __deprecated_enum_msg("This kqueue(2) EVFILT_PROC flag is no longer sent") = 0x00080000 -}; -#define NOTE_EXIT_REPARENTED ((unsigned int)eNoteExitReparentedDeprecated) /* exited while reparented */ - -/* - * If NOTE_EXIT_DETAIL is present, these bits indicate specific reasons for exiting. - */ -#define NOTE_EXIT_DETAIL_MASK 0x00070000 -#define NOTE_EXIT_DECRYPTFAIL 0x00010000 -#define NOTE_EXIT_MEMORY 0x00020000 -#define NOTE_EXIT_CSERROR 0x00040000 - - -/* - * data/hint fflags for EVFILT_VM, shared with userspace. - */ -#define NOTE_VM_PRESSURE 0x80000000 /* will react on memory pressure */ -#define NOTE_VM_PRESSURE_TERMINATE 0x40000000 /* will quit on memory pressure, possibly after cleaning up dirty state */ -#define NOTE_VM_PRESSURE_SUDDEN_TERMINATE 0x20000000 /* will quit immediately on memory pressure */ -#define NOTE_VM_ERROR 0x10000000 /* there was an error */ - - -/* - * data/hint fflags for EVFILT_TIMER, shared with userspace. - * The default is a (repeating) interval timer with the data - * specifying the timeout interval in milliseconds. - * - * All timeouts are implicitly EV_CLEAR events. - */ -#define NOTE_SECONDS 0x00000001 /* data is seconds */ -#define NOTE_USECONDS 0x00000002 /* data is microseconds */ -#define NOTE_NSECONDS 0x00000004 /* data is nanoseconds */ -#define NOTE_ABSOLUTE 0x00000008 /* absolute timeout */ -/* ... implicit EV_ONESHOT, timeout uses the gettimeofday epoch */ -#define NOTE_LEEWAY 0x00000010 /* ext[1] holds leeway for power aware timers */ -#define NOTE_CRITICAL 0x00000020 /* system does minimal timer coalescing */ -#define NOTE_BACKGROUND 0x00000040 /* system does maximum timer coalescing */ -#define NOTE_MACH_CONTINUOUS_TIME 0x00000080 -/* - * NOTE_MACH_CONTINUOUS_TIME: - * with NOTE_ABSOLUTE: causes the timer to continue to tick across sleep, - * still uses gettimeofday epoch - * with NOTE_MACHTIME and NOTE_ABSOLUTE: uses mach continuous time epoch - * without NOTE_ABSOLUTE (interval timer mode): continues to tick across sleep - */ -#define NOTE_MACHTIME 0x00000100 /* data is mach absolute time units */ -/* timeout uses the mach absolute time epoch */ - - -/* - * data/hint fflags for EVFILT_MACHPORT, shared with userspace. - * - * Only portsets are supported at this time. - * - * The fflags field can optionally contain the MACH_RCV_MSG, MACH_RCV_LARGE, - * and related trailer receive options as defined in . - * The presence of these flags directs the kevent64() call to attempt to receive - * the message during kevent delivery, rather than just indicate that a message exists. - * On setup, The ext[0] field contains the receive buffer pointer and ext[1] contains - * the receive buffer length. Upon event delivery, the actual received message size - * is returned in ext[1]. As with mach_msg(), the buffer must be large enough to - * receive the message and the requested (or default) message trailers. In addition, - * the fflags field contains the return code normally returned by mach_msg(). - * - * If MACH_RCV_MSG is specified, and the ext[1] field specifies a zero length, the - * system call argument specifying an ouput area (kevent_qos) will be consulted. If - * the system call specified an output data area, the user-space address - * of the received message is carved from that provided output data area (if enough - * space remains there). The address and length of each received message is - * returned in the ext[0] and ext[1] fields (respectively) of the corresponding kevent. - * - * IF_MACH_RCV_VOUCHER_CONTENT is specified, the contents of the message voucher is - * extracted (as specified in the xflags field) and stored in ext[2] up to ext[3] - * length. If the input length is zero, and the system call provided a data area, - * the space for the voucher content is carved from the provided space and its - * address and length is returned in ext[2] and ext[3] respectively. - * - * If no message receipt options were provided in the fflags field on setup, no - * message is received by this call. Instead, on output, the data field simply - * contains the name of the actual port detected with a message waiting. - */ - -/* - * DEPRECATED!!!!!!!!! - * NOTE_TRACK, NOTE_TRACKERR, and NOTE_CHILD are no longer supported as of 10.5 - */ -/* additional flags for EVFILT_PROC */ -#define NOTE_TRACK 0x00000001 /* follow across forks */ -#define NOTE_TRACKERR 0x00000002 /* could not track child */ -#define NOTE_CHILD 0x00000004 /* am a child process */ - - - -/* Temporay solution for BootX to use inode.h till kqueue moves to vfs layer */ -#include -struct knote; -SLIST_HEAD(klist, knote); - - -#include - -struct timespec; - -__BEGIN_DECLS -int kqueue(void); -int kevent(int kq, - const struct kevent *changelist, int nchanges, - struct kevent *eventlist, int nevents, - const struct timespec *timeout); -int kevent64(int kq, - const struct kevent64_s *changelist, int nchanges, - struct kevent64_s *eventlist, int nevents, - unsigned int flags, - const struct timespec *timeout); - - -__END_DECLS - - - - -#endif /* !_SYS_EVENT_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/fcntl.h b/lib/libc/include/x86_64-macos.10-none/sys/fcntl.h deleted file mode 100644 index 9326ed0dab3a9ae4b98256d1753d57eb640366e0..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/fcntl.h +++ /dev/null @@ -1,557 +0,0 @@ -/* - * Copyright (c) 2000-2013 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@ - */ -/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ -/*- - * Copyright (c) 1983, 1990, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * 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. - * - * @(#)fcntl.h 8.3 (Berkeley) 1/21/94 - */ - - -#ifndef _SYS_FCNTL_H_ -#define _SYS_FCNTL_H_ - -/* - * This file includes the definitions for open and fcntl - * described by POSIX for ; it also includes - * related kernel definitions. - */ -#include -#include -#include - -/* We should not be exporting size_t here. Temporary for gcc bootstrapping. */ -#include -#include -#include -#include - -/* - * File status flags: these are used by open(2), fcntl(2). - * They are also used (indirectly) in the kernel file structure f_flags, - * which is a superset of the open/fcntl flags. Open flags and f_flags - * are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags). - * Open/fcntl flags begin with O_; kernel-internal flags begin with F. - */ -/* open-only flags */ -#define O_RDONLY 0x0000 /* open for reading only */ -#define O_WRONLY 0x0001 /* open for writing only */ -#define O_RDWR 0x0002 /* open for reading and writing */ -#define O_ACCMODE 0x0003 /* mask for above modes */ - -/* - * Kernel encoding of open mode; separate read and write bits that are - * independently testable: 1 greater than the above. - * - * XXX - * FREAD and FWRITE are excluded from the #ifdef KERNEL so that TIOCFLUSH, - * which was documented to use FREAD/FWRITE, continues to work. - */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define FREAD 0x0001 -#define FWRITE 0x0002 -#endif -#define O_NONBLOCK 0x0004 /* no delay */ -#define O_APPEND 0x0008 /* set append mode */ - -#include - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define O_SHLOCK 0x0010 /* open with shared file lock */ -#define O_EXLOCK 0x0020 /* open with exclusive file lock */ -#define O_ASYNC 0x0040 /* signal pgrp when data ready */ -#define O_FSYNC O_SYNC /* source compatibility: do not use */ -#define O_NOFOLLOW 0x0100 /* don't follow symlinks */ -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ -#define O_CREAT 0x0200 /* create if nonexistant */ -#define O_TRUNC 0x0400 /* truncate to zero length */ -#define O_EXCL 0x0800 /* error if already exists */ - -#if __DARWIN_C_LEVEL >= 200809L -/* - * Descriptor value for the current working directory - */ -#define AT_FDCWD -2 - -/* - * Flags for the at functions - */ -#define AT_EACCESS 0x0010 /* Use effective ids in access check */ -#define AT_SYMLINK_NOFOLLOW 0x0020 /* Act on the symlink itself not the target */ -#define AT_SYMLINK_FOLLOW 0x0040 /* Act on target of symlink */ -#define AT_REMOVEDIR 0x0080 /* Path refers to directory */ -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -#define AT_REALDEV 0x0200 /* Return real device inodes resides on for fstatat(2) */ -#define AT_FDONLY 0x0400 /* Use only the fd and Ignore the path for fstatat(2) */ -#endif -#endif - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define O_EVTONLY 0x8000 /* descriptor requested for event notifications only */ -#endif - - -#define O_NOCTTY 0x20000 /* don't assign controlling terminal */ - - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define O_DIRECTORY 0x100000 -#define O_SYMLINK 0x200000 /* allow open of a symlink */ -#endif - -#include - - -#if __DARWIN_C_LEVEL >= 200809L -#define O_CLOEXEC 0x1000000 /* implicitly set FD_CLOEXEC */ -#endif - - - - - -/* Data Protection Flags */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define O_DP_GETRAWENCRYPTED 0x0001 -#define O_DP_GETRAWUNENCRYPTED 0x0002 -#endif - - - -/* - * The O_* flags used to have only F* names, which were used in the kernel - * and by fcntl. We retain the F* names for the kernel f_flags field - * and for backward compatibility for fcntl. - */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define FAPPEND O_APPEND /* kernel/compat */ -#define FASYNC O_ASYNC /* kernel/compat */ -#define FFSYNC O_FSYNC /* kernel */ -#define FFDSYNC O_DSYNC /* kernel */ -#define FNONBLOCK O_NONBLOCK /* kernel */ -#define FNDELAY O_NONBLOCK /* compat */ -#define O_NDELAY O_NONBLOCK /* compat */ -#endif - -/* - * Flags used for copyfile(2) - */ - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define CPF_OVERWRITE 0x0001 -#define CPF_IGNORE_MODE 0x0002 -#define CPF_MASK (CPF_OVERWRITE|CPF_IGNORE_MODE) -#endif - -/* - * Constants used for fcntl(2) - */ - -/* command values */ -#define F_DUPFD 0 /* duplicate file descriptor */ -#define F_GETFD 1 /* get file descriptor flags */ -#define F_SETFD 2 /* set file descriptor flags */ -#define F_GETFL 3 /* get file status flags */ -#define F_SETFL 4 /* set file status flags */ -#define F_GETOWN 5 /* get SIGIO/SIGURG proc/pgrp */ -#define F_SETOWN 6 /* set SIGIO/SIGURG proc/pgrp */ -#define F_GETLK 7 /* get record locking information */ -#define F_SETLK 8 /* set record locking information */ -#define F_SETLKW 9 /* F_SETLK; wait if blocked */ -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -#define F_SETLKWTIMEOUT 10 /* F_SETLK; wait if blocked, return on timeout */ -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define F_FLUSH_DATA 40 -#define F_CHKCLEAN 41 /* Used for regression test */ -#define F_PREALLOCATE 42 /* Preallocate storage */ -#define F_SETSIZE 43 /* Truncate a file without zeroing space */ -#define F_RDADVISE 44 /* Issue an advisory read async with no copy to user */ -#define F_RDAHEAD 45 /* turn read ahead off/on for this fd */ -/* - * 46,47 used to be F_READBOOTSTRAP and F_WRITEBOOTSTRAP - */ -#define F_NOCACHE 48 /* turn data caching off/on for this fd */ -#define F_LOG2PHYS 49 /* file offset to device offset */ -#define F_GETPATH 50 /* return the full path of the fd */ -#define F_FULLFSYNC 51 /* fsync + ask the drive to flush to the media */ -#define F_PATHPKG_CHECK 52 /* find which component (if any) is a package */ -#define F_FREEZE_FS 53 /* "freeze" all fs operations */ -#define F_THAW_FS 54 /* "thaw" all fs operations */ -#define F_GLOBAL_NOCACHE 55 /* turn data caching off/on (globally) for this file */ - - -#define F_ADDSIGS 59 /* add detached signatures */ - - -#define F_ADDFILESIGS 61 /* add signature from same file (used by dyld for shared libs) */ - -#define F_NODIRECT 62 /* used in conjunction with F_NOCACHE to indicate that DIRECT, synchonous writes */ - /* should not be used (i.e. its ok to temporaily create cached pages) */ - -#define F_GETPROTECTIONCLASS 63 /* Get the protection class of a file from the EA, returns int */ -#define F_SETPROTECTIONCLASS 64 /* Set the protection class of a file for the EA, requires int */ - -#define F_LOG2PHYS_EXT 65 /* file offset to device offset, extended */ - -#define F_GETLKPID 66 /* get record locking information, per-process */ - -/* See F_DUPFD_CLOEXEC below for 67 */ - - -#define F_SETBACKINGSTORE 70 /* Mark the file as being the backing store for another filesystem */ -#define F_GETPATH_MTMINFO 71 /* return the full path of the FD, but error in specific mtmd circumstances */ - -#define F_GETCODEDIR 72 /* Returns the code directory, with associated hashes, to the caller */ - -#define F_SETNOSIGPIPE 73 /* No SIGPIPE generated on EPIPE */ -#define F_GETNOSIGPIPE 74 /* Status of SIGPIPE for this fd */ - -#define F_TRANSCODEKEY 75 /* For some cases, we need to rewrap the key for AKS/MKB */ - -#define F_SINGLE_WRITER 76 /* file being written to a by single writer... if throttling enabled, writes */ - /* may be broken into smaller chunks with throttling in between */ - -#define F_GETPROTECTIONLEVEL 77 /* Get the protection version number for this filesystem */ - -#define F_FINDSIGS 78 /* Add detached code signatures (used by dyld for shared libs) */ - - -#define F_ADDFILESIGS_FOR_DYLD_SIM 83 /* Add signature from same file, only if it is signed by Apple (used by dyld for simulator) */ - - -#define F_BARRIERFSYNC 85 /* fsync + issue barrier to drive */ - - -#define F_ADDFILESIGS_RETURN 97 /* Add signature from same file, return end offset in structure on success */ -#define F_CHECK_LV 98 /* Check if Library Validation allows this Mach-O file to be mapped into the calling process */ - -#define F_PUNCHHOLE 99 /* Deallocate a range of the file */ - -#define F_TRIM_ACTIVE_FILE 100 /* Trim an active file */ - -#define F_SPECULATIVE_READ 101 /* Synchronous advisory read fcntl for regular and compressed file */ - -#define F_GETPATH_NOFIRMLINK 102 /* return the full path without firmlinks of the fd */ - -// FS-specific fcntl()'s numbers begin at 0x00010000 and go up -#define FCNTL_FS_SPECIFIC_BASE 0x00010000 - -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ - -#if __DARWIN_C_LEVEL >= 200809L -#define F_DUPFD_CLOEXEC 67 /* mark the dup with FD_CLOEXEC */ -#endif - -/* file descriptor flags (F_GETFD, F_SETFD) */ -#define FD_CLOEXEC 1 /* close-on-exec flag */ - -/* record locking flags (F_GETLK, F_SETLK, F_SETLKW) */ -#define F_RDLCK 1 /* shared or read lock */ -#define F_UNLCK 2 /* unlock */ -#define F_WRLCK 3 /* exclusive or write lock */ - - -/* - * [XSI] The values used for l_whence shall be defined as described - * in - */ -#include - -/* - * [XSI] The symbolic names for file modes for use as values of mode_t - * shall be defined as described in - */ -#include - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* allocate flags (F_PREALLOCATE) */ - -#define F_ALLOCATECONTIG 0x00000002 /* allocate contigious space */ -#define F_ALLOCATEALL 0x00000004 /* allocate all requested space or no space at all */ - -/* Position Modes (fst_posmode) for F_PREALLOCATE */ - -#define F_PEOFPOSMODE 3 /* Make it past all of the SEEK pos modes so that */ - /* we can keep them in sync should we desire */ -#define F_VOLPOSMODE 4 /* specify volume starting postion */ -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ - -/* - * Advisory file segment locking data type - - * information passed to system by user - */ -struct flock { - off_t l_start; /* starting offset */ - off_t l_len; /* len = 0 means until end of file */ - pid_t l_pid; /* lock owner */ - short l_type; /* lock type: read/write, etc. */ - short l_whence; /* type of l_start */ -}; - -#include - -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -/* - * Advisory file segment locking with time out - - * Information passed to system by user for F_SETLKWTIMEOUT - */ -struct flocktimeout { - struct flock fl; /* flock passed for file locking */ - struct timespec timeout; /* timespec struct for timeout */ -}; -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* - * advisory file read data type - - * information passed by user to system - */ - - -struct radvisory { - off_t ra_offset; - int ra_count; -}; - - -/** Information the user passes in to get the codeblobs out of the kernel */ -typedef struct fcodeblobs { - void *f_cd_hash; - size_t f_hash_size; - void *f_cd_buffer; - size_t f_cd_size; - unsigned int *f_out_size; - int f_arch; - int __padding; -} fcodeblobs_t; - - -/* - * detached code signatures data type - - * information passed by user to system used by F_ADDSIGS and F_ADDFILESIGS. - * F_ADDFILESIGS is a shortcut for files that contain their own signature and - * doesn't require mapping of the file in order to load the signature. - */ -typedef struct fsignatures { - off_t fs_file_start; - void *fs_blob_start; - size_t fs_blob_size; -} fsignatures_t; - -/* - * DYLD needs to check if the object is allowed to be combined - * into the main binary. This is done between the code signature - * is loaded and dyld is doing all the work to process the LOAD commands. - * - * While this could be done in F_ADDFILESIGS.* family the hook into - * the MAC module doesn't say no when LV isn't enabled and then that - * is cached on the vnode, and the MAC module never gets change once - * a process that library validation enabled. - */ -typedef struct fchecklv { - off_t lv_file_start; - size_t lv_error_message_size; - void *lv_error_message; -} fchecklv_t; - - - -/* lock operations for flock(2) */ -#define LOCK_SH 0x01 /* shared file lock */ -#define LOCK_EX 0x02 /* exclusive file lock */ -#define LOCK_NB 0x04 /* don't block when locking */ -#define LOCK_UN 0x08 /* unlock file */ - -/* fstore_t type used by F_PREALLOCATE command */ - -typedef struct fstore { - unsigned int fst_flags; /* IN: flags word */ - int fst_posmode; /* IN: indicates use of offset field */ - off_t fst_offset; /* IN: start of the region */ - off_t fst_length; /* IN: size of the region */ - off_t fst_bytesalloc; /* OUT: number of bytes allocated */ -} fstore_t; - -/* fpunchhole_t used by F_PUNCHHOLE */ -typedef struct fpunchhole { - unsigned int fp_flags; /* unused */ - unsigned int reserved; /* (to maintain 8-byte alignment) */ - off_t fp_offset; /* IN: start of the region */ - off_t fp_length; /* IN: size of the region */ -} fpunchhole_t; - -/* factive_file_trim_t used by F_TRIM_ACTIVE_FILE */ -typedef struct ftrimactivefile { - off_t fta_offset; /* IN: start of the region */ - off_t fta_length; /* IN: size of the region */ -} ftrimactivefile_t; - -/* fspecread_t used by F_SPECULATIVE_READ */ -typedef struct fspecread { - unsigned int fsr_flags; /* IN: flags word */ - unsigned int reserved; /* to maintain 8-byte alignment */ - off_t fsr_offset; /* IN: start of the region */ - off_t fsr_length; /* IN: size of the region */ -} fspecread_t; - -/* fbootstraptransfer_t used by F_READBOOTSTRAP and F_WRITEBOOTSTRAP commands */ - -typedef struct fbootstraptransfer { - off_t fbt_offset; /* IN: offset to start read/write */ - size_t fbt_length; /* IN: number of bytes to transfer */ - void *fbt_buffer; /* IN: buffer to be read/written */ -} fbootstraptransfer_t; - - -/* - * For F_LOG2PHYS this information is passed back to user - * Currently only devoffset is returned - that is the VOP_BMAP - * result - the disk device address corresponding to the - * current file offset (likely set with an lseek). - * - * The flags could hold an indication of whether the # of - * contiguous bytes reflects the true extent length on disk, - * or is an advisory value that indicates there is at least that - * many bytes contiguous. For some filesystems it might be too - * inefficient to provide anything beyond the advisory value. - * Flags and contiguous bytes return values are not yet implemented. - * For them the fcntl will nedd to switch from using BMAP to CMAP - * and a per filesystem type flag will be needed to interpret the - * contiguous bytes count result from CMAP. - * - * F_LOG2PHYS_EXT is a variant of F_LOG2PHYS that uses a passed in - * file offset and length instead of the current file offset. - * F_LOG2PHYS_EXT operates on the same structure as F_LOG2PHYS, but - * treats it as an in/out. - */ -#pragma pack(4) - -struct log2phys { - unsigned int l2p_flags; /* unused so far */ - off_t l2p_contigbytes; /* F_LOG2PHYS: unused so far */ - /* F_LOG2PHYS_EXT: IN: number of bytes to be queried */ - /* OUT: number of contiguous bytes at this position */ - off_t l2p_devoffset; /* F_LOG2PHYS: OUT: bytes into device */ - /* F_LOG2PHYS_EXT: IN: bytes into file */ - /* OUT: bytes into device */ -}; - -#pragma pack() - -#define O_POPUP 0x80000000 /* force window to popup on open */ -#define O_ALERT 0x20000000 /* small, clean popup window */ - - -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ - - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) - -#include - -typedef enum { - FILESEC_OWNER = 1, - FILESEC_GROUP = 2, - FILESEC_UUID = 3, - FILESEC_MODE = 4, - FILESEC_ACL = 5, - FILESEC_GRPUUID = 6, - -/* XXX these are private to the implementation */ - FILESEC_ACL_RAW = 100, - FILESEC_ACL_ALLOCSIZE = 101 -} filesec_property_t; - -/* XXX backwards compatibility */ -#define FILESEC_GUID FILESEC_UUID -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ - -__BEGIN_DECLS -int open(const char *, int, ...) __DARWIN_ALIAS_C(open); -#if __DARWIN_C_LEVEL >= 200809L -int openat(int, const char *, int, ...) __DARWIN_NOCANCEL(openat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); -#endif -int creat(const char *, mode_t) __DARWIN_ALIAS_C(creat); -int fcntl(int, int, ...) __DARWIN_ALIAS_C(fcntl); -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) - -int openx_np(const char *, int, filesec_t); -/* - * data-protected non-portable open(2) : - * int open_dprotected_np(user_addr_t path, int flags, int class, int dpflags, int mode) - */ -int open_dprotected_np( const char *, int, int, int, ...); -int flock(int, int); -filesec_t filesec_init(void); -filesec_t filesec_dup(filesec_t); -void filesec_free(filesec_t); -int filesec_get_property(filesec_t, filesec_property_t, void *); -int filesec_query_property(filesec_t, filesec_property_t, int *); -int filesec_set_property(filesec_t, filesec_property_t, const void *); -int filesec_unset_property(filesec_t, filesec_property_t) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -#define _FILESEC_UNSET_PROPERTY ((void *)0) -#define _FILESEC_REMOVE_ACL ((void *)1) -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -__END_DECLS - -#endif /* !_SYS_FCNTL_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/ioccom.h b/lib/libc/include/x86_64-macos.10-none/sys/ioccom.h deleted file mode 100644 index 39c6964568a1e8a31783dae2548499d7ed11e2a5..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/ioccom.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2000 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, 1990, 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. - * - * @(#)ioccom.h 8.2 (Berkeley) 3/28/94 - */ - -#ifndef _SYS_IOCCOM_H_ -#define _SYS_IOCCOM_H_ - -#include - -/* - * Ioctl's have the command encoded in the lower word, and the size of - * any in or out parameters in the upper word. The high 3 bits of the - * upper word are used to encode the in/out status of the parameter. - */ -#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */ -#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK) -#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16)) -#define IOCGROUP(x) (((x) >> 8) & 0xff) - -#define IOCPARM_MAX (IOCPARM_MASK + 1) /* max size of ioctl args */ -/* no parameters */ -#define IOC_VOID (__uint32_t)0x20000000 -/* copy parameters out */ -#define IOC_OUT (__uint32_t)0x40000000 -/* copy parameters in */ -#define IOC_IN (__uint32_t)0x80000000 -/* copy paramters in and out */ -#define IOC_INOUT (IOC_IN|IOC_OUT) -/* mask for IN/OUT/VOID */ -#define IOC_DIRMASK (__uint32_t)0xe0000000 - -#define _IOC(inout, group, num, len) \ - (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num)) -#define _IO(g, n) _IOC(IOC_VOID, (g), (n), 0) -#define _IOR(g, n, t) _IOC(IOC_OUT, (g), (n), sizeof(t)) -#define _IOW(g, n, t) _IOC(IOC_IN, (g), (n), sizeof(t)) -/* this should be _IORW, but stdio got there first */ -#define _IOWR(g, n, t) _IOC(IOC_INOUT, (g), (n), sizeof(t)) - -#endif /* !_SYS_IOCCOM_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/ioctl.h b/lib/libc/include/x86_64-macos.10-none/sys/ioctl.h deleted file mode 100644 index bb84842dd26d10768ba0113a8f3390f458403201..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/ioctl.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2000 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, 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * 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. - * - * @(#)ioctl.h 8.6 (Berkeley) 3/28/94 - */ - -#ifndef _SYS_IOCTL_H_ -#define _SYS_IOCTL_H_ - -#include - -/* - * Pun for SunOS prior to 3.2. SunOS 3.2 and later support TIOCGWINSZ - * and TIOCSWINSZ (yes, even 3.2-3.5, the fact that it wasn't documented - * nonwithstanding). - */ -struct ttysize { - unsigned short ts_lines; - unsigned short ts_cols; - unsigned short ts_xxx; - unsigned short ts_yyy; -}; -#define TIOCGSIZE TIOCGWINSZ -#define TIOCSSIZE TIOCSWINSZ - -#include - -#include -#include - - -#include - -__BEGIN_DECLS -int ioctl(int, unsigned long, ...); -__END_DECLS -#endif /* !_SYS_IOCTL_H_ */ - -/* - * Keep outside _SYS_IOCTL_H_ - * Compatability with old terminal driver - * - * Source level -> #define USE_OLD_TTY - * Kernel level -> always on - */ -#if defined(USE_OLD_TTY) || defined(BSD_KERNEL_PRIVATE) -#include -#endif /* !_SYS_IOCTL_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/kauth.h b/lib/libc/include/x86_64-macos.10-none/sys/kauth.h deleted file mode 100644 index 99784e35c8fbc3503b82918ea414672d928e597f..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/kauth.h +++ /dev/null @@ -1,407 +0,0 @@ -/* - * Copyright (c) 2004-2010 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@ - */ -/* - * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce - * support for mandatory and extensible security protections. This notice - * is included in support of clause 2.2 (b) of the Apple Public License, - * Version 2.0. - */ - -#ifndef _SYS_KAUTH_H -#define _SYS_KAUTH_H - -#include -#include -#include -#include /* __offsetof() */ -#include /* NGROUPS_MAX */ - -#ifdef __APPLE_API_EVOLVING - -/* - * Identities. - */ - -#define KAUTH_UID_NONE (~(uid_t)0 - 100) /* not a valid UID */ -#define KAUTH_GID_NONE (~(gid_t)0 - 100) /* not a valid GID */ - -#include - -/* NT Security Identifier, structure as defined by Microsoft */ -#pragma pack(1) /* push packing of 1 byte */ -typedef struct { - u_int8_t sid_kind; - u_int8_t sid_authcount; - u_int8_t sid_authority[6]; -#define KAUTH_NTSID_MAX_AUTHORITIES 16 - u_int32_t sid_authorities[KAUTH_NTSID_MAX_AUTHORITIES]; -} ntsid_t; -#pragma pack() /* pop packing to previous packing level */ -#define _NTSID_T - -/* valid byte count inside a SID structure */ -#define KAUTH_NTSID_HDRSIZE (8) -#define KAUTH_NTSID_SIZE(_s) (KAUTH_NTSID_HDRSIZE + ((_s)->sid_authcount * sizeof(u_int32_t))) - -/* - * External lookup message payload; this structure is shared between the - * kernel group membership resolver, and the user space group membership - * resolver daemon, and is use to communicate resolution requests from the - * kernel to user space, and the result of that request from user space to - * the kernel. - */ -struct kauth_identity_extlookup { - u_int32_t el_seqno; /* request sequence number */ - u_int32_t el_result; /* lookup result */ -#define KAUTH_EXTLOOKUP_SUCCESS 0 /* results here are good */ -#define KAUTH_EXTLOOKUP_BADRQ 1 /* request badly formatted */ -#define KAUTH_EXTLOOKUP_FAILURE 2 /* transient failure during lookup */ -#define KAUTH_EXTLOOKUP_FATAL 3 /* permanent failure during lookup */ -#define KAUTH_EXTLOOKUP_INPROG 100 /* request in progress */ - u_int32_t el_flags; -#define KAUTH_EXTLOOKUP_VALID_UID (1<<0) -#define KAUTH_EXTLOOKUP_VALID_UGUID (1<<1) -#define KAUTH_EXTLOOKUP_VALID_USID (1<<2) -#define KAUTH_EXTLOOKUP_VALID_GID (1<<3) -#define KAUTH_EXTLOOKUP_VALID_GGUID (1<<4) -#define KAUTH_EXTLOOKUP_VALID_GSID (1<<5) -#define KAUTH_EXTLOOKUP_WANT_UID (1<<6) -#define KAUTH_EXTLOOKUP_WANT_UGUID (1<<7) -#define KAUTH_EXTLOOKUP_WANT_USID (1<<8) -#define KAUTH_EXTLOOKUP_WANT_GID (1<<9) -#define KAUTH_EXTLOOKUP_WANT_GGUID (1<<10) -#define KAUTH_EXTLOOKUP_WANT_GSID (1<<11) -#define KAUTH_EXTLOOKUP_WANT_MEMBERSHIP (1<<12) -#define KAUTH_EXTLOOKUP_VALID_MEMBERSHIP (1<<13) -#define KAUTH_EXTLOOKUP_ISMEMBER (1<<14) -#define KAUTH_EXTLOOKUP_VALID_PWNAM (1<<15) -#define KAUTH_EXTLOOKUP_WANT_PWNAM (1<<16) -#define KAUTH_EXTLOOKUP_VALID_GRNAM (1<<17) -#define KAUTH_EXTLOOKUP_WANT_GRNAM (1<<18) -#define KAUTH_EXTLOOKUP_VALID_SUPGRPS (1<<19) -#define KAUTH_EXTLOOKUP_WANT_SUPGRPS (1<<20) - - __darwin_pid_t el_info_pid; /* request on behalf of PID */ - u_int64_t el_extend; /* extension field */ - u_int32_t el_info_reserved_1; /* reserved (APPLE) */ - - uid_t el_uid; /* user ID */ - guid_t el_uguid; /* user GUID */ - u_int32_t el_uguid_valid; /* TTL on translation result (seconds) */ - ntsid_t el_usid; /* user NT SID */ - u_int32_t el_usid_valid; /* TTL on translation result (seconds) */ - gid_t el_gid; /* group ID */ - guid_t el_gguid; /* group GUID */ - u_int32_t el_gguid_valid; /* TTL on translation result (seconds) */ - ntsid_t el_gsid; /* group SID */ - u_int32_t el_gsid_valid; /* TTL on translation result (seconds) */ - u_int32_t el_member_valid; /* TTL on group lookup result */ - u_int32_t el_sup_grp_cnt; /* count of supplemental groups up to NGROUPS */ - gid_t el_sup_groups[NGROUPS_MAX]; /* supplemental group list */ -}; - -struct kauth_cache_sizes { - u_int32_t kcs_group_size; - u_int32_t kcs_id_size; -}; - -#define KAUTH_EXTLOOKUP_REGISTER (0) -#define KAUTH_EXTLOOKUP_RESULT (1<<0) -#define KAUTH_EXTLOOKUP_WORKER (1<<1) -#define KAUTH_EXTLOOKUP_DEREGISTER (1<<2) -#define KAUTH_GET_CACHE_SIZES (1<<3) -#define KAUTH_SET_CACHE_SIZES (1<<4) -#define KAUTH_CLEAR_CACHES (1<<5) - -#define IDENTITYSVC_ENTITLEMENT "com.apple.private.identitysvc" - - - -/* - * Generic Access Control Lists. - */ -#if defined(KERNEL) || defined (_SYS_ACL_H) - -typedef u_int32_t kauth_ace_rights_t; - -/* Access Control List Entry (ACE) */ -struct kauth_ace { - guid_t ace_applicable; - u_int32_t ace_flags; -#define KAUTH_ACE_KINDMASK 0xf -#define KAUTH_ACE_PERMIT 1 -#define KAUTH_ACE_DENY 2 -#define KAUTH_ACE_AUDIT 3 /* not implemented */ -#define KAUTH_ACE_ALARM 4 /* not implemented */ -#define KAUTH_ACE_INHERITED (1<<4) -#define KAUTH_ACE_FILE_INHERIT (1<<5) -#define KAUTH_ACE_DIRECTORY_INHERIT (1<<6) -#define KAUTH_ACE_LIMIT_INHERIT (1<<7) -#define KAUTH_ACE_ONLY_INHERIT (1<<8) -#define KAUTH_ACE_SUCCESS (1<<9) /* not implemented (AUDIT/ALARM) */ -#define KAUTH_ACE_FAILURE (1<<10) /* not implemented (AUDIT/ALARM) */ -/* All flag bits controlling ACE inheritance */ -#define KAUTH_ACE_INHERIT_CONTROL_FLAGS \ - (KAUTH_ACE_FILE_INHERIT | \ - KAUTH_ACE_DIRECTORY_INHERIT | \ - KAUTH_ACE_LIMIT_INHERIT | \ - KAUTH_ACE_ONLY_INHERIT) - kauth_ace_rights_t ace_rights; /* scope specific */ - /* These rights are never tested, but may be present in an ACL */ -#define KAUTH_ACE_GENERIC_ALL (1<<21) -#define KAUTH_ACE_GENERIC_EXECUTE (1<<22) -#define KAUTH_ACE_GENERIC_WRITE (1<<23) -#define KAUTH_ACE_GENERIC_READ (1<<24) -}; - -#ifndef _KAUTH_ACE -#define _KAUTH_ACE -typedef struct kauth_ace *kauth_ace_t; -#endif - - -/* Access Control List */ -struct kauth_acl { - u_int32_t acl_entrycount; - u_int32_t acl_flags; - - struct kauth_ace acl_ace[1]; -}; - -/* - * XXX this value needs to be raised - 3893388 - */ -#define KAUTH_ACL_MAX_ENTRIES 128 - -/* - * The low 16 bits of the flags field are reserved for filesystem - * internal use and must be preserved by all APIs. This includes - * round-tripping flags through user-space interfaces. - */ -#define KAUTH_ACL_FLAGS_PRIVATE (0xffff) - -/* - * The high 16 bits of the flags are used to store attributes and - * to request specific handling of the ACL. - */ - -/* inheritance will be deferred until the first rename operation */ -#define KAUTH_ACL_DEFER_INHERIT (1<<16) -/* this ACL must not be overwritten as part of an inheritance operation */ -#define KAUTH_ACL_NO_INHERIT (1<<17) - -/* acl_entrycount that tells us the ACL is not valid */ -#define KAUTH_FILESEC_NOACL ((u_int32_t)(-1)) - -/* - * If the acl_entrycount field is KAUTH_FILESEC_NOACL, then the size is the - * same as a kauth_acl structure; the intent is to put an actual entrycount of - * KAUTH_FILESEC_NOACL on disk to distinguish a kauth_filesec_t with an empty - * entry (Windows treats this as "deny all") from one that merely indicates a - * file group and/or owner guid values. - */ -#define KAUTH_ACL_SIZE(c) (__offsetof(struct kauth_acl, acl_ace) + ((u_int32_t)(c) != KAUTH_FILESEC_NOACL ? ((c) * sizeof(struct kauth_ace)) : 0)) -#define KAUTH_ACL_COPYSIZE(p) KAUTH_ACL_SIZE((p)->acl_entrycount) - - -#ifndef _KAUTH_ACL -#define _KAUTH_ACL -typedef struct kauth_acl *kauth_acl_t; -#endif - - - -/* - * Extended File Security. - */ - -/* File Security information */ -struct kauth_filesec { - u_int32_t fsec_magic; -#define KAUTH_FILESEC_MAGIC 0x012cc16d - guid_t fsec_owner; - guid_t fsec_group; - - struct kauth_acl fsec_acl; -}; - -/* backwards compatibility */ -#define fsec_entrycount fsec_acl.acl_entrycount -#define fsec_flags fsec_acl.acl_flags -#define fsec_ace fsec_acl.acl_ace -#define KAUTH_FILESEC_FLAGS_PRIVATE KAUTH_ACL_FLAGS_PRIVATE -#define KAUTH_FILESEC_DEFER_INHERIT KAUTH_ACL_DEFER_INHERIT -#define KAUTH_FILESEC_NO_INHERIT KAUTH_ACL_NO_INHERIT -#define KAUTH_FILESEC_NONE ((kauth_filesec_t)0) -#define KAUTH_FILESEC_WANTED ((kauth_filesec_t)1) - -#ifndef _KAUTH_FILESEC -#define _KAUTH_FILESEC -typedef struct kauth_filesec *kauth_filesec_t; -#endif - -#define KAUTH_FILESEC_SIZE(c) (__offsetof(struct kauth_filesec, fsec_acl) + __offsetof(struct kauth_acl, acl_ace) + (c) * sizeof(struct kauth_ace)) -#define KAUTH_FILESEC_COPYSIZE(p) KAUTH_FILESEC_SIZE(((p)->fsec_entrycount == KAUTH_FILESEC_NOACL) ? 0 : (p)->fsec_entrycount) -#define KAUTH_FILESEC_COUNT(s) (((s) - KAUTH_FILESEC_SIZE(0)) / sizeof(struct kauth_ace)) -#define KAUTH_FILESEC_VALID(s) ((s) >= KAUTH_FILESEC_SIZE(0) && (((s) - KAUTH_FILESEC_SIZE(0)) % sizeof(struct kauth_ace)) == 0) - -#define KAUTH_FILESEC_XATTR "com.apple.system.Security" - -/* Allowable first arguments to kauth_filesec_acl_setendian() */ -#define KAUTH_ENDIAN_HOST 0x00000001 /* set host endianness */ -#define KAUTH_ENDIAN_DISK 0x00000002 /* set disk endianness */ - -#endif /* KERNEL || */ - - - -/* Actions, also rights bits in an ACE */ - -#if defined(KERNEL) || defined (_SYS_ACL_H) -#define KAUTH_VNODE_READ_DATA (1U<<1) -#define KAUTH_VNODE_LIST_DIRECTORY KAUTH_VNODE_READ_DATA -#define KAUTH_VNODE_WRITE_DATA (1U<<2) -#define KAUTH_VNODE_ADD_FILE KAUTH_VNODE_WRITE_DATA -#define KAUTH_VNODE_EXECUTE (1U<<3) -#define KAUTH_VNODE_SEARCH KAUTH_VNODE_EXECUTE -#define KAUTH_VNODE_DELETE (1U<<4) -#define KAUTH_VNODE_APPEND_DATA (1U<<5) -#define KAUTH_VNODE_ADD_SUBDIRECTORY KAUTH_VNODE_APPEND_DATA -#define KAUTH_VNODE_DELETE_CHILD (1U<<6) -#define KAUTH_VNODE_READ_ATTRIBUTES (1U<<7) -#define KAUTH_VNODE_WRITE_ATTRIBUTES (1U<<8) -#define KAUTH_VNODE_READ_EXTATTRIBUTES (1U<<9) -#define KAUTH_VNODE_WRITE_EXTATTRIBUTES (1U<<10) -#define KAUTH_VNODE_READ_SECURITY (1U<<11) -#define KAUTH_VNODE_WRITE_SECURITY (1U<<12) -#define KAUTH_VNODE_TAKE_OWNERSHIP (1U<<13) - -/* backwards compatibility only */ -#define KAUTH_VNODE_CHANGE_OWNER KAUTH_VNODE_TAKE_OWNERSHIP - -/* For Windows interoperability only */ -#define KAUTH_VNODE_SYNCHRONIZE (1U<<20) - -/* (1<<21) - (1<<24) are reserved for generic rights bits */ - -/* Actions not expressed as rights bits */ -/* - * Authorizes the vnode as the target of a hard link. - */ -#define KAUTH_VNODE_LINKTARGET (1U<<25) - -/* - * Indicates that other steps have been taken to authorise the action, - * but authorisation should be denied for immutable objects. - */ -#define KAUTH_VNODE_CHECKIMMUTABLE (1U<<26) - -/* Action modifiers */ -/* - * The KAUTH_VNODE_ACCESS bit is passed to the callback if the authorisation - * request in progress is advisory, rather than authoritative. Listeners - * performing consequential work (i.e. not strictly checking authorisation) - * may test this flag to avoid performing unnecessary work. - * - * This bit will never be present in an ACE. - */ -#define KAUTH_VNODE_ACCESS (1U<<31) - -/* - * The KAUTH_VNODE_NOIMMUTABLE bit is passed to the callback along with the - * KAUTH_VNODE_WRITE_SECURITY bit (and no others) to indicate that the - * caller wishes to change one or more of the immutable flags, and the - * state of these flags should not be considered when authorizing the request. - * The system immutable flags are only ignored when the system securelevel - * is low enough to allow their removal. - */ -#define KAUTH_VNODE_NOIMMUTABLE (1U<<30) - - -/* - * fake right that is composed by the following... - * vnode must have search for owner, group and world allowed - * plus there must be no deny modes present for SEARCH... this fake - * right is used by the fast lookup path to avoid checking - * for an exact match on the last credential to lookup - * the component being acted on - */ -#define KAUTH_VNODE_SEARCHBYANYONE (1U<<29) - - -/* - * when passed as an 'action' to "vnode_uncache_authorized_actions" - * it indicates that all of the cached authorizations for that - * vnode should be invalidated - */ -#define KAUTH_INVALIDATE_CACHED_RIGHTS ((kauth_action_t)~0) - - - -/* The expansions of the GENERIC bits at evaluation time */ -#define KAUTH_VNODE_GENERIC_READ_BITS (KAUTH_VNODE_READ_DATA | \ - KAUTH_VNODE_READ_ATTRIBUTES | \ - KAUTH_VNODE_READ_EXTATTRIBUTES | \ - KAUTH_VNODE_READ_SECURITY) - -#define KAUTH_VNODE_GENERIC_WRITE_BITS (KAUTH_VNODE_WRITE_DATA | \ - KAUTH_VNODE_APPEND_DATA | \ - KAUTH_VNODE_DELETE | \ - KAUTH_VNODE_DELETE_CHILD | \ - KAUTH_VNODE_WRITE_ATTRIBUTES | \ - KAUTH_VNODE_WRITE_EXTATTRIBUTES | \ - KAUTH_VNODE_WRITE_SECURITY) - -#define KAUTH_VNODE_GENERIC_EXECUTE_BITS (KAUTH_VNODE_EXECUTE) - -#define KAUTH_VNODE_GENERIC_ALL_BITS (KAUTH_VNODE_GENERIC_READ_BITS | \ - KAUTH_VNODE_GENERIC_WRITE_BITS | \ - KAUTH_VNODE_GENERIC_EXECUTE_BITS) - -/* - * Some sets of bits, defined here for convenience. - */ -#define KAUTH_VNODE_WRITE_RIGHTS (KAUTH_VNODE_ADD_FILE | \ - KAUTH_VNODE_ADD_SUBDIRECTORY | \ - KAUTH_VNODE_DELETE_CHILD | \ - KAUTH_VNODE_WRITE_DATA | \ - KAUTH_VNODE_APPEND_DATA | \ - KAUTH_VNODE_DELETE | \ - KAUTH_VNODE_WRITE_ATTRIBUTES | \ - KAUTH_VNODE_WRITE_EXTATTRIBUTES | \ - KAUTH_VNODE_WRITE_SECURITY | \ - KAUTH_VNODE_TAKE_OWNERSHIP | \ - KAUTH_VNODE_LINKTARGET | \ - KAUTH_VNODE_CHECKIMMUTABLE) - - -#endif /* KERNEL || */ - - -#endif /* __APPLE_API_EVOLVING */ -#endif /* _SYS_KAUTH_H */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/mman.h b/lib/libc/include/x86_64-macos.10-none/sys/mman.h deleted file mode 100644 index fec1caac718da9b75743dbf2ce9817d470002aa6..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/mman.h +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (c) 2000-2019 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 -#include - -#include - -/* - * [various] The mode_t, off_t, and size_t types shall be defined as - * described in - */ -#include -#include -#include - -/* - * 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(CONFIG_EMBEDDED) -#define MAP_32BIT 0x8000 /* Return virtual addresses <4G only: Requires entitlement */ -#endif /* !defined(CONFIG_EMBEDDED) */ - -#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 diff --git a/lib/libc/include/x86_64-macos.10-none/sys/mount.h b/lib/libc/include/x86_64-macos.10-none/sys/mount.h deleted file mode 100644 index 0a77b455a64ea623d6b53c2f65f5badfe4b94f46..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/mount.h +++ /dev/null @@ -1,423 +0,0 @@ -/* - * Copyright (c) 2000-2018 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@ - */ -/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ -/* - * Copyright (c) 1989, 1991, 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. - * - * @(#)mount.h 8.21 (Berkeley) 5/20/95 - */ -/* - * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce - * support for mandatory and extensible security protections. This notice - * is included in support of clause 2.2 (b) of the Apple Public License, - * Version 2.0. - */ - - -#ifndef _SYS_MOUNT_H_ -#define _SYS_MOUNT_H_ - -#include -#include -#include /* needed for vol_capabilities_attr_t */ -#include - -#include -#include -#include /* XXX needed for user builds */ -#include - -#include /* file system id type */ - -/* - * file system statistics - */ - -#define MFSNAMELEN 15 /* length of fs type name, not inc. null */ -#define MFSTYPENAMELEN 16 /* length of fs type name including null */ - -#if __DARWIN_64_BIT_INO_T -#define MNAMELEN MAXPATHLEN /* length of buffer for returned name */ -#else /* ! __DARWIN_64_BIT_INO_T */ -#define MNAMELEN 90 /* length of buffer for returned name */ -#endif /* __DARWIN_64_BIT_INO_T */ - -#define MNT_EXT_ROOT_DATA_VOL 0x00000001 /* Data volume of root volume group */ - -#define __DARWIN_STRUCT_STATFS64 { \ - uint32_t f_bsize; /* fundamental file system block size */ \ - int32_t f_iosize; /* optimal transfer block size */ \ - uint64_t f_blocks; /* total data blocks in file system */ \ - uint64_t f_bfree; /* free blocks in fs */ \ - uint64_t f_bavail; /* free blocks avail to non-superuser */ \ - uint64_t f_files; /* total file nodes in file system */ \ - uint64_t f_ffree; /* free file nodes in fs */ \ - fsid_t f_fsid; /* file system id */ \ - uid_t f_owner; /* user that mounted the filesystem */ \ - uint32_t f_type; /* type of filesystem */ \ - uint32_t f_flags; /* copy of mount exported flags */ \ - uint32_t f_fssubtype; /* fs sub-type (flavor) */ \ - char f_fstypename[MFSTYPENAMELEN]; /* fs type name */ \ - char f_mntonname[MAXPATHLEN]; /* directory on which mounted */ \ - char f_mntfromname[MAXPATHLEN]; /* mounted filesystem */ \ - uint32_t f_flags_ext; /* extended flags */ \ - uint32_t f_reserved[7]; /* For future use */ \ -} - -#if !__DARWIN_ONLY_64_BIT_INO_T - -struct statfs64 __DARWIN_STRUCT_STATFS64; - -#endif /* !__DARWIN_ONLY_64_BIT_INO_T */ - -#if __DARWIN_64_BIT_INO_T - -struct statfs __DARWIN_STRUCT_STATFS64; - -#else /* !__DARWIN_64_BIT_INO_T */ - -/* - * LP64 - WARNING - must be kept in sync with struct user_statfs in mount_internal.h. - */ -struct statfs { - short f_otype; /* TEMPORARY SHADOW COPY OF f_type */ - short f_oflags; /* TEMPORARY SHADOW COPY OF f_flags */ - long f_bsize; /* fundamental file system block size */ - long f_iosize; /* optimal transfer block size */ - long f_blocks; /* total data blocks in file system */ - long f_bfree; /* free blocks in fs */ - long f_bavail; /* free blocks avail to non-superuser */ - long f_files; /* total file nodes in file system */ - long f_ffree; /* free file nodes in fs */ - fsid_t f_fsid; /* file system id */ - uid_t f_owner; /* user that mounted the filesystem */ - short f_reserved1; /* spare for later */ - short f_type; /* type of filesystem */ - long f_flags; /* copy of mount exported flags */ - long f_reserved2[2]; /* reserved for future use */ - char f_fstypename[MFSNAMELEN]; /* fs type name */ - char f_mntonname[MNAMELEN]; /* directory on which mounted */ - char f_mntfromname[MNAMELEN];/* mounted filesystem */ - char f_reserved3; /* For alignment */ - long f_reserved4[4]; /* For future use */ -}; - -#endif /* __DARWIN_64_BIT_INO_T */ - -#pragma pack(4) - -struct vfsstatfs { - uint32_t f_bsize; /* fundamental file system block size */ - size_t f_iosize; /* optimal transfer block size */ - uint64_t f_blocks; /* total data blocks in file system */ - uint64_t f_bfree; /* free blocks in fs */ - uint64_t f_bavail; /* free blocks avail to non-superuser */ - uint64_t f_bused; /* free blocks avail to non-superuser */ - uint64_t f_files; /* total file nodes in file system */ - uint64_t f_ffree; /* free file nodes in fs */ - fsid_t f_fsid; /* file system id */ - uid_t f_owner; /* user that mounted the filesystem */ - uint64_t f_flags; /* copy of mount exported flags */ - char f_fstypename[MFSTYPENAMELEN];/* fs type name inclus */ - char f_mntonname[MAXPATHLEN];/* directory on which mounted */ - char f_mntfromname[MAXPATHLEN];/* mounted filesystem */ - uint32_t f_fssubtype; /* fs sub-type (flavor) */ - void *f_reserved[2]; /* For future use == 0 */ -}; - -#pragma pack() - - -/* - * User specifiable flags. - * - * Unmount uses MNT_FORCE flag. - */ -#define MNT_RDONLY 0x00000001 /* read only filesystem */ -#define MNT_SYNCHRONOUS 0x00000002 /* file system written synchronously */ -#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */ -#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */ -#define MNT_NODEV 0x00000010 /* don't interpret special files */ -#define MNT_UNION 0x00000020 /* union with underlying filesystem */ -#define MNT_ASYNC 0x00000040 /* file system written asynchronously */ -#define MNT_CPROTECT 0x00000080 /* file system supports content protection */ - -/* - * NFS export related mount flags. - */ -#define MNT_EXPORTED 0x00000100 /* file system is exported */ - -/* - * Denotes storage which can be removed from the system by the user. - */ - -#define MNT_REMOVABLE 0x00000200 - -/* - * MAC labeled / "quarantined" flag - */ -#define MNT_QUARANTINE 0x00000400 /* file system is quarantined */ - -/* - * Flags set by internal operations. - */ -#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */ -#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */ -#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */ -#define MNT_DOVOLFS 0x00008000 /* FS supports volfs (deprecated flag in Mac OS X 10.5) */ - - -#define MNT_DONTBROWSE 0x00100000 /* file system is not appropriate path to user data */ -#define MNT_IGNORE_OWNERSHIP 0x00200000 /* VFS will ignore ownership information on filesystem objects */ -#define MNT_AUTOMOUNTED 0x00400000 /* filesystem was mounted by automounter */ -#define MNT_JOURNALED 0x00800000 /* filesystem is journaled */ -#define MNT_NOUSERXATTR 0x01000000 /* Don't allow user extended attributes */ -#define MNT_DEFWRITE 0x02000000 /* filesystem should defer writes */ -#define MNT_MULTILABEL 0x04000000 /* MAC support for individual labels */ -#define MNT_NOATIME 0x10000000 /* disable update of file access time */ -#define MNT_SNAPSHOT 0x40000000 /* The mount is a snapshot */ -#define MNT_STRICTATIME 0x80000000 /* enable strict update of file access time */ - -/* backwards compatibility only */ -#define MNT_UNKNOWNPERMISSIONS MNT_IGNORE_OWNERSHIP - - -/* - * XXX I think that this could now become (~(MNT_CMDFLAGS)) - * but the 'mount' program may need changing to handle this. - */ -#define MNT_VISFLAGMASK (MNT_RDONLY | MNT_SYNCHRONOUS | MNT_NOEXEC | \ - MNT_NOSUID | MNT_NODEV | MNT_UNION | \ - MNT_ASYNC | MNT_EXPORTED | MNT_QUARANTINE | \ - MNT_LOCAL | MNT_QUOTA | MNT_REMOVABLE | \ - MNT_ROOTFS | MNT_DOVOLFS | MNT_DONTBROWSE | \ - MNT_IGNORE_OWNERSHIP | MNT_AUTOMOUNTED | MNT_JOURNALED | \ - MNT_NOUSERXATTR | MNT_DEFWRITE | MNT_MULTILABEL | \ - MNT_NOATIME | MNT_STRICTATIME | MNT_SNAPSHOT | MNT_CPROTECT) -/* - * External filesystem command modifier flags. - * Unmount can use the MNT_FORCE flag. - * XXX These are not STATES and really should be somewhere else. - * External filesystem control flags. - */ -#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */ -#define MNT_NOBLOCK 0x00020000 /* don't block unmount if not responding */ -#define MNT_RELOAD 0x00040000 /* reload filesystem data */ -#define MNT_FORCE 0x00080000 /* force unmount or readonly change */ -#define MNT_CMDFLAGS (MNT_UPDATE|MNT_NOBLOCK|MNT_RELOAD|MNT_FORCE) - - - -/* - * Sysctl CTL_VFS definitions. - * - * Second level identifier specifies which filesystem. Second level - * identifier VFS_GENERIC returns information about all filesystems. - */ -#define VFS_GENERIC 0 /* generic filesystem information */ -#define VFS_NUMMNTOPS 1 /* int: total num of vfs mount/unmount operations */ -/* - * Third level identifiers for VFS_GENERIC are given below; third - * level identifiers for specific filesystems are given in their - * mount specific header files. - */ -#define VFS_MAXTYPENUM 1 /* int: highest defined filesystem type */ -#define VFS_CONF 2 /* struct: vfsconf for filesystem given - * as next argument */ - -/* - * Flags for various system call interfaces. - * - * waitfor flags to vfs_sync() and getfsstat() - */ -#define MNT_WAIT 1 /* synchronized I/O file integrity completion */ -#define MNT_NOWAIT 2 /* start all I/O, but do not wait for it */ -#define MNT_DWAIT 4 /* synchronized I/O data integrity completion */ - - -#if !defined(KERNEL) && !defined(_KERN_SYS_KERNELTYPES_H_) /* also defined in kernel_types.h */ -struct mount; -typedef struct mount * mount_t; -struct vnode; -typedef struct vnode * vnode_t; -#endif - -/* Reserved fields preserve binary compatibility */ -struct vfsconf { - uint32_t vfc_reserved1; /* opaque */ - char vfc_name[MFSNAMELEN]; /* filesystem type name */ - int vfc_typenum; /* historic filesystem type number */ - int vfc_refcount; /* number mounted of this type */ - int vfc_flags; /* permanent flags */ - uint32_t vfc_reserved2; /* opaque */ - uint32_t vfc_reserved3; /* opaque */ -}; - -struct vfsidctl { - int vc_vers; /* should be VFSIDCTL_VERS1 (below) */ - fsid_t vc_fsid; /* fsid to operate on. */ - void *vc_ptr; /* pointer to data structure. */ - size_t vc_len; /* sizeof said structure. */ - u_int32_t vc_spare[12]; /* spare (must be zero). */ -}; - - -/* vfsidctl API version. */ -#define VFS_CTL_VERS1 0x01 - - -/* - * New style VFS sysctls, do not reuse/conflict with the namespace for - * private sysctls. - */ -#define VFS_CTL_STATFS 0x00010001 /* statfs */ -#define VFS_CTL_UMOUNT 0x00010002 /* unmount */ -#define VFS_CTL_QUERY 0x00010003 /* anything wrong? (vfsquery) */ -#define VFS_CTL_NEWADDR 0x00010004 /* reconnect to new address */ -#define VFS_CTL_TIMEO 0x00010005 /* set timeout for vfs notification */ -#define VFS_CTL_NOLOCKS 0x00010006 /* disable file locking */ -#define VFS_CTL_SADDR 0x00010007 /* get server address */ -#define VFS_CTL_DISC 0x00010008 /* server disconnected */ -#define VFS_CTL_SERVERINFO 0x00010009 /* information about fs server */ -#define VFS_CTL_NSTATUS 0x0001000A /* netfs mount status */ - -struct vfsquery { - u_int32_t vq_flags; - u_int32_t vq_spare[31]; -}; - -struct vfs_server { - int32_t vs_minutes; /* minutes until server goes down. */ - u_int8_t vs_server_name[MAXHOSTNAMELEN * 3]; /* UTF8 server name to display (null terminated) */ -}; - -/* - * NetFS mount status - returned by VFS_CTL_NSTATUS - */ -struct netfs_status { - u_int32_t ns_status; // Current status of mount (vfsquery flags) - char ns_mountopts[512]; // Significant mount options - uint32_t ns_waittime; // Time waiting for reply (sec) - uint32_t ns_threadcount; // Number of threads blocked on network calls - uint64_t ns_threadids[0]; // Thread IDs of those blocked threads -}; - -/* vfsquery flags */ -#define VQ_NOTRESP 0x0001 /* server down */ -#define VQ_NEEDAUTH 0x0002 /* server bad auth */ -#define VQ_LOWDISK 0x0004 /* we're low on space */ -#define VQ_MOUNT 0x0008 /* new filesystem arrived */ -#define VQ_UNMOUNT 0x0010 /* filesystem has left */ -#define VQ_DEAD 0x0020 /* filesystem is dead, needs force unmount */ -#define VQ_ASSIST 0x0040 /* filesystem needs assistance from external program */ -#define VQ_NOTRESPLOCK 0x0080 /* server lockd down */ -#define VQ_UPDATE 0x0100 /* filesystem information has changed */ -#define VQ_VERYLOWDISK 0x0200 /* file system has *very* little disk space left */ -#define VQ_SYNCEVENT 0x0400 /* a sync just happened (not set by kernel starting Mac OS X 10.9) */ -#define VQ_SERVEREVENT 0x0800 /* server issued notification/warning */ -#define VQ_QUOTA 0x1000 /* a user quota has been hit */ -#define VQ_NEARLOWDISK 0x2000 /* Above lowdisk and below desired disk space */ -#define VQ_DESIRED_DISK 0x4000 /* the desired disk space */ -#define VQ_FREE_SPACE_CHANGE 0x8000 /* free disk space has significantly changed */ -#define VQ_FLAG10000 0x10000 /* placeholder */ - - - - -/* - * Generic file handle - */ -#define NFS_MAX_FH_SIZE NFSV4_MAX_FH_SIZE -#define NFSV4_MAX_FH_SIZE 128 -#define NFSV3_MAX_FH_SIZE 64 -#define NFSV2_MAX_FH_SIZE 32 -struct fhandle { - unsigned int fh_len; /* length of file handle */ - unsigned char fh_data[NFS_MAX_FH_SIZE]; /* file handle value */ -}; -typedef struct fhandle fhandle_t; - - -__BEGIN_DECLS -int fhopen(const struct fhandle *, int); -int fstatfs(int, struct statfs *) __DARWIN_INODE64(fstatfs); -#if !__DARWIN_ONLY_64_BIT_INO_T -int fstatfs64(int, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -#endif /* !__DARWIN_ONLY_64_BIT_INO_T */ -int getfh(const char *, fhandle_t *); -int getfsstat(struct statfs *, int, int) __DARWIN_INODE64(getfsstat); -#if !__DARWIN_ONLY_64_BIT_INO_T -int getfsstat64(struct statfs64 *, int, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -#endif /* !__DARWIN_ONLY_64_BIT_INO_T */ -int getmntinfo(struct statfs **, int) __DARWIN_INODE64(getmntinfo); -int getmntinfo_r_np(struct statfs **, int) __DARWIN_INODE64(getmntinfo_r_np) -__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) -__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0); -#if !__DARWIN_ONLY_64_BIT_INO_T -int getmntinfo64(struct statfs64 **, int) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -#endif /* !__DARWIN_ONLY_64_BIT_INO_T */ -int mount(const char *, const char *, int, void *); -int fmount(const char *, int, int, void *) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0); -int statfs(const char *, struct statfs *) __DARWIN_INODE64(statfs); -#if !__DARWIN_ONLY_64_BIT_INO_T -int statfs64(const char *, struct statfs64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -#endif /* !__DARWIN_ONLY_64_BIT_INO_T */ -int unmount(const char *, int); -int getvfsbyname(const char *, struct vfsconf *); -__END_DECLS - -#endif /* !_SYS_MOUNT_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/param.h b/lib/libc/include/x86_64-macos.10-none/sys/param.h deleted file mode 100644 index 88330ebbe759a98506ce57acdd2a1f87f7a0a414..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/param.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (c) 2000 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, 1997 Apple Computer, Inc. All Rights Reserved */ -/*- - * Copyright (c) 1982, 1986, 1989, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * 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. - * - * @(#)param.h 8.3 (Berkeley) 4/4/95 - */ - -#ifndef _SYS_PARAM_H_ -#define _SYS_PARAM_H_ - -#define BSD 199506 /* System version (year & month). */ -#define BSD4_3 1 -#define BSD4_4 1 - -#define NeXTBSD 1995064 /* NeXTBSD version (year, month, release) */ -#define NeXTBSD4_0 0 /* NeXTBSD 4.0 */ - -#include -#include - -#ifndef LOCORE -#include -#endif - -/* - * Machine-independent constants (some used in following include files). - * Redefined constants are from POSIX 1003.1 limits file. - * - * MAXCOMLEN should be >= sizeof(ac_comm) (see ) - * MAXLOGNAME should be >= UT_NAMESIZE (see ) - */ -#include - -#define MAXCOMLEN 16 /* max command name remembered */ -#define MAXINTERP 64 /* max interpreter file name length */ -#define MAXLOGNAME 255 /* max login name length */ -#define MAXUPRC CHILD_MAX /* max simultaneous processes */ -#define NCARGS ARG_MAX /* max bytes for an exec function */ -#define NGROUPS NGROUPS_MAX /* max number groups */ -#define NOFILE 256 /* default max open files per process */ -#define NOGROUP 65535 /* marker for empty group set member */ -#define MAXHOSTNAMELEN 256 /* max hostname size */ -#define MAXDOMNAMELEN 256 /* maximum domain name length */ - -/* Machine type dependent parameters. */ -#include - -/* More types and definitions used throughout the kernel. */ -#include - -/* Signals. */ -#include - -/* - * Priorities. Note that with 32 run queues, differences less than 4 are - * insignificant. - */ -#define PSWP 0 -#define PVM 4 -#define PINOD 8 -#define PRIBIO 16 -#define PVFS 20 -#define PZERO 22 /* No longer magic, shouldn't be here. XXX */ -#define PSOCK 24 -#define PWAIT 32 -#define PLOCK 36 -#define PPAUSE 40 -#define PUSER 50 -#define MAXPRI 127 /* Priorities range from 0 through MAXPRI. */ - -#define PRIMASK 0x0ff -#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */ -#define PTTYBLOCK 0x200 /* for tty SIGTTOU and SIGTTIN blocking */ -#define PDROP 0x400 /* OR'd with pri to stop re-aquistion of mutex upon wakeup */ -#define PSPIN 0x800 /* OR'd with pri to require mutex in spin mode upon wakeup */ - -#define NBPW sizeof(int) /* number of bytes per word (integer) */ - -#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */ -#define NODEV (dev_t)(-1) /* non-existent device */ - -/* - * Clustering of hardware pages on machines with ridiculously small - * page sizes is done here. The paging subsystem deals with units of - * CLSIZE pte's describing NBPG (from machine/param.h) pages each. - */ -#define CLBYTES (CLSIZE*NBPG) -#define CLOFSET (CLSIZE*NBPG-1) /* for clusters, like PGOFSET */ -#define claligned(x) ((((int)(x))&CLOFSET)==0) -#define CLOFF CLOFSET -#define CLSHIFT (PGSHIFT+CLSIZELOG2) - -#if CLSIZE == 1 -#define clbase(i) (i) -#define clrnd(i) (i) -#else -/* Give the base virtual address (first of CLSIZE). */ -#define clbase(i) ((i) &~ (CLSIZE-1)) -/* Round a number of clicks up to a whole cluster. */ -#define clrnd(i) (((i) + (CLSIZE-1)) &~ (CLSIZE-1)) -#endif - -#define CBLOCK 64 /* Clist block size, must be a power of 2. */ -#define CBQSIZE (CBLOCK/NBBY) /* Quote bytes/cblock - can do better. */ - /* Data chars/clist. */ -#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE) -#define CROUND (CBLOCK - 1) /* Clist rounding. */ - -/* - * File system parameters and macros. - * - * The file system is made out of blocks of at most MAXPHYS units, with - * smaller units (fragments) only in the last direct block. MAXBSIZE - * primarily determines the size of buffers in the buffer pool. It may be - * made larger than MAXPHYS without any effect on existing file systems; - * however making it smaller may make some file systems unmountable. - * We set this to track the value of MAX_UPL_TRANSFER_BYTES from - * osfmk/mach/memory_object_types.h to bound it at the maximum UPL size. - */ -#define MAXBSIZE (256 * 4096) -#define MAXPHYSIO MAXPHYS -#define MAXFRAG 8 - -#define MAXPHYSIO_WIRED (16 * 1024 * 1024) - -/* - * MAXPATHLEN defines the longest permissable path length after expanding - * symbolic links. It is used to allocate a temporary buffer from the buffer - * pool in which to do the name expansion, hence should be a power of two, - * and must be less than or equal to MAXBSIZE. MAXSYMLINKS defines the - * maximum number of symbolic links that may be expanded in a path name. - * It should be set high enough to allow all legitimate uses, but halt - * infinite loops reasonably quickly. - */ -#define MAXPATHLEN PATH_MAX -#define MAXSYMLINKS 32 - -/* Bit map related macros. */ -#define setbit(a, i) (((char *)(a))[(i)/NBBY] |= 1<<((i)%NBBY)) -#define clrbit(a, i) (((char *)(a))[(i)/NBBY] &= ~(1<<((i)%NBBY))) -#define isset(a, i) (((char *)(a))[(i)/NBBY] & (1<<((i)%NBBY))) -#define isclr(a, i) ((((char *)(a))[(i)/NBBY] & (1<<((i)%NBBY))) == 0) - -/* Macros for counting and rounding. */ -#ifndef howmany -#define howmany(x, y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) -#endif -#define roundup(x, y) ((((x) % (y)) == 0) ? \ - (x) : ((x) + ((y) - ((x) % (y))))) -#define powerof2(x) ((((x)-1)&(x))==0) - -/* Macros for min/max. */ -#ifndef MIN -#define MIN(a, b) (((a)<(b))?(a):(b)) -#endif /* MIN */ -#ifndef MAX -#define MAX(a, b) (((a)>(b))?(a):(b)) -#endif /* MAX */ - -/* - * Constants for setting the parameters of the kernel memory allocator. - * - * 2 ** MINBUCKET is the smallest unit of memory that will be - * allocated. It must be at least large enough to hold a pointer. - * - * Units of memory less or equal to MAXALLOCSAVE will permanently - * allocate physical memory; requests for these size pieces of - * memory are quite fast. Allocations greater than MAXALLOCSAVE must - * always allocate and free physical memory; requests for these - * size allocations should be done infrequently as they will be slow. - * - * Constraints: CLBYTES <= MAXALLOCSAVE <= 2 ** (MINBUCKET + 14), and - * MAXALLOCSIZE must be a power of two. - */ -#define MINBUCKET 4 /* 4 => min allocation of 16 bytes */ -#define MAXALLOCSAVE (2 * CLBYTES) - -/* - * Scale factor for scaled integers used to count %cpu time and load avgs. - * - * The number of CPU `tick's that map to a unique `%age' can be expressed - * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that - * can be calculated (assuming 32 bits) can be closely approximated using - * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT < 15). - * - * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age', - * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024. - */ -#define FSHIFT 11 /* bits to right of fixed binary point */ -#define FSCALE (1< -#include -#include /* For struct selinfo. */ -#include -#include -#include -#include -#include -#include - - - -struct session; -struct pgrp; -struct proc; - -/* Exported fields for kern sysctls */ -struct extern_proc { - union { - struct { - struct proc *__p_forw; /* Doubly-linked run/sleep queue. */ - struct proc *__p_back; - } p_st1; - struct timeval __p_starttime; /* process start time */ - } p_un; -#define p_forw p_un.p_st1.__p_forw -#define p_back p_un.p_st1.__p_back -#define p_starttime p_un.__p_starttime - struct vmspace *p_vmspace; /* Address space. */ - struct sigacts *p_sigacts; /* Signal actions, state (PROC ONLY). */ - int p_flag; /* P_* flags. */ - char p_stat; /* S* process status. */ - pid_t p_pid; /* Process identifier. */ - pid_t p_oppid; /* Save parent pid during ptrace. XXX */ - int p_dupfd; /* Sideways return value from fdopen. XXX */ - /* Mach related */ - caddr_t user_stack; /* where user stack was allocated */ - void *exit_thread; /* XXX Which thread is exiting? */ - int p_debugger; /* allow to debug */ - boolean_t sigwait; /* indication to suspend */ - /* scheduling */ - u_int p_estcpu; /* Time averaged value of p_cpticks. */ - int p_cpticks; /* Ticks of cpu time. */ - fixpt_t p_pctcpu; /* %cpu for this process during p_swtime */ - void *p_wchan; /* Sleep address. */ - char *p_wmesg; /* Reason for sleep. */ - u_int p_swtime; /* Time swapped in or out. */ - u_int p_slptime; /* Time since last blocked. */ - struct itimerval p_realtimer; /* Alarm timer. */ - struct timeval p_rtime; /* Real time. */ - u_quad_t p_uticks; /* Statclock hits in user mode. */ - u_quad_t p_sticks; /* Statclock hits in system mode. */ - u_quad_t p_iticks; /* Statclock hits processing intr. */ - int p_traceflag; /* Kernel trace points. */ - struct vnode *p_tracep; /* Trace to vnode. */ - int p_siglist; /* DEPRECATED. */ - struct vnode *p_textvp; /* Vnode of executable. */ - int p_holdcnt; /* If non-zero, don't swap. */ - sigset_t p_sigmask; /* DEPRECATED. */ - sigset_t p_sigignore; /* Signals being ignored. */ - sigset_t p_sigcatch; /* Signals being caught by user. */ - u_char p_priority; /* Process priority. */ - u_char p_usrpri; /* User-priority based on p_cpu and p_nice. */ - char p_nice; /* Process "nice" value. */ - char p_comm[MAXCOMLEN + 1]; - struct pgrp *p_pgrp; /* Pointer to process group. */ - struct user *p_addr; /* Kernel virtual addr of u-area (PROC ONLY). */ - u_short p_xstat; /* Exit status for wait; also stop signal. */ - u_short p_acflag; /* Accounting flags. */ - struct rusage *p_ru; /* Exit information. XXX */ -}; - - -/* Status values. */ -#define SIDL 1 /* Process being created by fork. */ -#define SRUN 2 /* Currently runnable. */ -#define SSLEEP 3 /* Sleeping on an address. */ -#define SSTOP 4 /* Process debugging or suspension. */ -#define SZOMB 5 /* Awaiting collection by parent. */ - -/* These flags are kept in extern_proc.p_flag. */ -#define P_ADVLOCK 0x00000001 /* Process may hold POSIX adv. lock */ -#define P_CONTROLT 0x00000002 /* Has a controlling terminal */ -#define P_LP64 0x00000004 /* Process is LP64 */ -#define P_NOCLDSTOP 0x00000008 /* No SIGCHLD when children stop */ - -#define P_PPWAIT 0x00000010 /* Parent waiting for chld exec/exit */ -#define P_PROFIL 0x00000020 /* Has started profiling */ -#define P_SELECT 0x00000040 /* Selecting; wakeup/waiting danger */ -#define P_CONTINUED 0x00000080 /* Process was stopped and continued */ - -#define P_SUGID 0x00000100 /* Has set privileges since last exec */ -#define P_SYSTEM 0x00000200 /* Sys proc: no sigs, stats or swap */ -#define P_TIMEOUT 0x00000400 /* Timing out during sleep */ -#define P_TRACED 0x00000800 /* Debugged process being traced */ - -#define P_DISABLE_ASLR 0x00001000 /* Disable address space layout randomization */ -#define P_WEXIT 0x00002000 /* Working on exiting */ -#define P_EXEC 0x00004000 /* Process called exec. */ - -/* Should be moved to machine-dependent areas. */ -#define P_OWEUPC 0x00008000 /* Owe process an addupc() call at next ast. */ - -#define P_AFFINITY 0x00010000 /* xxx */ -#define P_TRANSLATED 0x00020000 /* xxx */ -#define P_CLASSIC P_TRANSLATED /* xxx */ - -#define P_DELAYIDLESLEEP 0x00040000 /* Process is marked to delay idle sleep on disk IO */ -#define P_CHECKOPENEVT 0x00080000 /* check if a vnode has the OPENEVT flag set on open */ - -#define P_DEPENDENCY_CAPABLE 0x00100000 /* process is ok to call vfs_markdependency() */ -#define P_REBOOT 0x00200000 /* Process called reboot() */ -#define P_RESV6 0x00400000 /* used to be P_TBE */ -#define P_RESV7 0x00800000 /* (P_SIGEXC)signal exceptions */ - -#define P_THCWD 0x01000000 /* process has thread cwd */ -#define P_RESV9 0x02000000 /* (P_VFORK)process has vfork children */ -#define P_ADOPTPERSONA 0x04000000 /* process adopted a persona (used to be P_NOATTACH) */ -#define P_RESV11 0x08000000 /* (P_INVFORK) proc in vfork */ - -#define P_NOSHLIB 0x10000000 /* no shared libs are in use for proc */ - /* flag set on exec */ -#define P_FORCEQUOTA 0x20000000 /* Force quota for root */ -#define P_NOCLDWAIT 0x40000000 /* No zombies when chil procs exit */ -#define P_NOREMOTEHANG 0x80000000 /* Don't hang on remote FS ops */ - -#define P_INMEM 0 /* Obsolete: retained for compilation */ -#define P_NOSWAP 0 /* Obsolete: retained for compilation */ -#define P_PHYSIO 0 /* Obsolete: retained for compilation */ -#define P_FSTRACE 0 /* Obsolete: retained for compilation */ -#define P_SSTEP 0 /* Obsolete: retained for compilation */ - -#define P_DIRTY_TRACK 0x00000001 /* track dirty state */ -#define P_DIRTY_ALLOW_IDLE_EXIT 0x00000002 /* process can be idle-exited when clean */ -#define P_DIRTY_DEFER 0x00000004 /* defer initial opt-in to idle-exit */ -#define P_DIRTY 0x00000008 /* process is dirty */ -#define P_DIRTY_SHUTDOWN 0x00000010 /* process is dirty during shutdown */ -#define P_DIRTY_TERMINATED 0x00000020 /* process has been marked for termination */ -#define P_DIRTY_BUSY 0x00000040 /* serialization flag */ -#define P_DIRTY_MARKED 0x00000080 /* marked dirty previously */ -#define P_DIRTY_AGING_IN_PROGRESS 0x00000100 /* aging in one of the 'aging bands' */ -#define P_DIRTY_LAUNCH_IN_PROGRESS 0x00000200 /* launch is in progress */ -#define P_DIRTY_DEFER_ALWAYS 0x00000400 /* defer going to idle-exit after every dirty->clean transition. - * For legacy jetsam policy only. This is the default with the other policies.*/ - -#define P_DIRTY_IS_DIRTY (P_DIRTY | P_DIRTY_SHUTDOWN) -#define P_DIRTY_IDLE_EXIT_ENABLED (P_DIRTY_TRACK|P_DIRTY_ALLOW_IDLE_EXIT) - - - - -#endif /* !_SYS_PROC_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/proc_info.h b/lib/libc/include/x86_64-macos.10-none/sys/proc_info.h deleted file mode 100644 index 90850710b9deacc8ebba2164d8b6c585ddb4eefa..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/proc_info.h +++ /dev/null @@ -1,785 +0,0 @@ -/* - * Copyright (c) 2005-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_PROC_INFO_H -#define _SYS_PROC_INFO_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -__BEGIN_DECLS - - -#define PROC_ALL_PIDS 1 -#define PROC_PGRP_ONLY 2 -#define PROC_TTY_ONLY 3 -#define PROC_UID_ONLY 4 -#define PROC_RUID_ONLY 5 -#define PROC_PPID_ONLY 6 -#define PROC_KDBG_ONLY 7 - -struct proc_bsdinfo { - uint32_t pbi_flags; /* 64bit; emulated etc */ - uint32_t pbi_status; - uint32_t pbi_xstatus; - uint32_t pbi_pid; - uint32_t pbi_ppid; - uid_t pbi_uid; - gid_t pbi_gid; - uid_t pbi_ruid; - gid_t pbi_rgid; - uid_t pbi_svuid; - gid_t pbi_svgid; - uint32_t rfu_1; /* reserved */ - char pbi_comm[MAXCOMLEN]; - char pbi_name[2 * MAXCOMLEN]; /* empty if no name is registered */ - uint32_t pbi_nfiles; - uint32_t pbi_pgid; - uint32_t pbi_pjobc; - uint32_t e_tdev; /* controlling tty dev */ - uint32_t e_tpgid; /* tty process group id */ - int32_t pbi_nice; - uint64_t pbi_start_tvsec; - uint64_t pbi_start_tvusec; -}; - - -struct proc_bsdshortinfo { - uint32_t pbsi_pid; /* process id */ - uint32_t pbsi_ppid; /* process parent id */ - uint32_t pbsi_pgid; /* process perp id */ - uint32_t pbsi_status; /* p_stat value, SZOMB, SRUN, etc */ - char pbsi_comm[MAXCOMLEN]; /* upto 16 characters of process name */ - uint32_t pbsi_flags; /* 64bit; emulated etc */ - uid_t pbsi_uid; /* current uid on process */ - gid_t pbsi_gid; /* current gid on process */ - uid_t pbsi_ruid; /* current ruid on process */ - gid_t pbsi_rgid; /* current tgid on process */ - uid_t pbsi_svuid; /* current svuid on process */ - gid_t pbsi_svgid; /* current svgid on process */ - uint32_t pbsi_rfu; /* reserved for future use*/ -}; - - - - -/* pbi_flags values */ -#define PROC_FLAG_SYSTEM 1 /* System process */ -#define PROC_FLAG_TRACED 2 /* process currently being traced, possibly by gdb */ -#define PROC_FLAG_INEXIT 4 /* process is working its way in exit() */ -#define PROC_FLAG_PPWAIT 8 -#define PROC_FLAG_LP64 0x10 /* 64bit process */ -#define PROC_FLAG_SLEADER 0x20 /* The process is the session leader */ -#define PROC_FLAG_CTTY 0x40 /* process has a control tty */ -#define PROC_FLAG_CONTROLT 0x80 /* Has a controlling terminal */ -#define PROC_FLAG_THCWD 0x100 /* process has a thread with cwd */ -/* process control bits for resource starvation */ -#define PROC_FLAG_PC_THROTTLE 0x200 /* In resource starvation situations, this process is to be throttled */ -#define PROC_FLAG_PC_SUSP 0x400 /* In resource starvation situations, this process is to be suspended */ -#define PROC_FLAG_PC_KILL 0x600 /* In resource starvation situations, this process is to be terminated */ -#define PROC_FLAG_PC_MASK 0x600 -/* process action bits for resource starvation */ -#define PROC_FLAG_PA_THROTTLE 0x800 /* The process is currently throttled due to resource starvation */ -#define PROC_FLAG_PA_SUSP 0x1000 /* The process is currently suspended due to resource starvation */ -#define PROC_FLAG_PSUGID 0x2000 /* process has set privileges since last exec */ -#define PROC_FLAG_EXEC 0x4000 /* process has called exec */ - - -struct proc_taskinfo { - uint64_t pti_virtual_size; /* virtual memory size (bytes) */ - uint64_t pti_resident_size; /* resident memory size (bytes) */ - uint64_t pti_total_user; /* total time */ - uint64_t pti_total_system; - uint64_t pti_threads_user; /* existing threads only */ - uint64_t pti_threads_system; - int32_t pti_policy; /* default policy for new threads */ - int32_t pti_faults; /* number of page faults */ - int32_t pti_pageins; /* number of actual pageins */ - int32_t pti_cow_faults; /* number of copy-on-write faults */ - int32_t pti_messages_sent; /* number of messages sent */ - int32_t pti_messages_received; /* number of messages received */ - int32_t pti_syscalls_mach; /* number of mach system calls */ - int32_t pti_syscalls_unix; /* number of unix system calls */ - int32_t pti_csw; /* number of context switches */ - int32_t pti_threadnum; /* number of threads in the task */ - int32_t pti_numrunning; /* number of running threads */ - int32_t pti_priority; /* task priority*/ -}; - -struct proc_taskallinfo { - struct proc_bsdinfo pbsd; - struct proc_taskinfo ptinfo; -}; - -#define MAXTHREADNAMESIZE 64 - -struct proc_threadinfo { - uint64_t pth_user_time; /* user run time */ - uint64_t pth_system_time; /* system run time */ - int32_t pth_cpu_usage; /* scaled cpu usage percentage */ - int32_t pth_policy; /* scheduling policy in effect */ - int32_t pth_run_state; /* run state (see below) */ - int32_t pth_flags; /* various flags (see below) */ - int32_t pth_sleep_time; /* number of seconds that thread */ - int32_t pth_curpri; /* cur priority*/ - int32_t pth_priority; /* priority*/ - int32_t pth_maxpriority; /* max priority*/ - char pth_name[MAXTHREADNAMESIZE]; /* thread name, if any */ -}; - -struct proc_regioninfo { - uint32_t pri_protection; - uint32_t pri_max_protection; - uint32_t pri_inheritance; - uint32_t pri_flags; /* shared, external pager, is submap */ - uint64_t pri_offset; - uint32_t pri_behavior; - uint32_t pri_user_wired_count; - uint32_t pri_user_tag; - uint32_t pri_pages_resident; - uint32_t pri_pages_shared_now_private; - uint32_t pri_pages_swapped_out; - uint32_t pri_pages_dirtied; - uint32_t pri_ref_count; - uint32_t pri_shadow_depth; - uint32_t pri_share_mode; - uint32_t pri_private_pages_resident; - uint32_t pri_shared_pages_resident; - uint32_t pri_obj_id; - uint32_t pri_depth; - uint64_t pri_address; - uint64_t pri_size; -}; - -#define PROC_REGION_SUBMAP 1 -#define PROC_REGION_SHARED 2 - -#define SM_COW 1 -#define SM_PRIVATE 2 -#define SM_EMPTY 3 -#define SM_SHARED 4 -#define SM_TRUESHARED 5 -#define SM_PRIVATE_ALIASED 6 -#define SM_SHARED_ALIASED 7 -#define SM_LARGE_PAGE 8 - - -/* - * Thread run states (state field). - */ - -#define TH_STATE_RUNNING 1 /* thread is running normally */ -#define TH_STATE_STOPPED 2 /* thread is stopped */ -#define TH_STATE_WAITING 3 /* thread is waiting normally */ -#define TH_STATE_UNINTERRUPTIBLE 4 /* thread is in an uninterruptible - * wait */ -#define TH_STATE_HALTED 5 /* thread is halted at a - * clean point */ - -/* - * Thread flags (flags field). - */ -#define TH_FLAGS_SWAPPED 0x1 /* thread is swapped out */ -#define TH_FLAGS_IDLE 0x2 /* thread is an idle thread */ - - -struct proc_workqueueinfo { - uint32_t pwq_nthreads; /* total number of workqueue threads */ - uint32_t pwq_runthreads; /* total number of running workqueue threads */ - uint32_t pwq_blockedthreads; /* total number of blocked workqueue threads */ - uint32_t pwq_state; -}; - -/* - * workqueue state (pwq_state field) - */ -#define WQ_EXCEEDED_CONSTRAINED_THREAD_LIMIT 0x1 -#define WQ_EXCEEDED_TOTAL_THREAD_LIMIT 0x2 -#define WQ_FLAGS_AVAILABLE 0x4 - -struct proc_fileinfo { - uint32_t fi_openflags; - uint32_t fi_status; - off_t fi_offset; - int32_t fi_type; - uint32_t fi_guardflags; -}; - -/* stats flags in proc_fileinfo */ -#define PROC_FP_SHARED 1 /* shared by more than one fd */ -#define PROC_FP_CLEXEC 2 /* close on exec */ -#define PROC_FP_GUARDED 4 /* guarded fd */ -#define PROC_FP_CLFORK 8 /* close on fork */ - -#define PROC_FI_GUARD_CLOSE (1u << 0) -#define PROC_FI_GUARD_DUP (1u << 1) -#define PROC_FI_GUARD_SOCKET_IPC (1u << 2) -#define PROC_FI_GUARD_FILEPORT (1u << 3) - -struct proc_exitreasonbasicinfo { - uint32_t beri_namespace; - uint64_t beri_code; - uint64_t beri_flags; - uint32_t beri_reason_buf_size; -} __attribute__((packed)); - -struct proc_exitreasoninfo { - uint32_t eri_namespace; - uint64_t eri_code; - uint64_t eri_flags; - uint32_t eri_reason_buf_size; - uint64_t eri_kcd_buf; -} __attribute__((packed)); - -/* - * A copy of stat64 with static sized fields. - */ -struct vinfo_stat { - uint32_t vst_dev; /* [XSI] ID of device containing file */ - uint16_t vst_mode; /* [XSI] Mode of file (see below) */ - uint16_t vst_nlink; /* [XSI] Number of hard links */ - uint64_t vst_ino; /* [XSI] File serial number */ - uid_t vst_uid; /* [XSI] User ID of the file */ - gid_t vst_gid; /* [XSI] Group ID of the file */ - int64_t vst_atime; /* [XSI] Time of last access */ - int64_t vst_atimensec; /* nsec of last access */ - int64_t vst_mtime; /* [XSI] Last data modification time */ - int64_t vst_mtimensec; /* last data modification nsec */ - int64_t vst_ctime; /* [XSI] Time of last status change */ - int64_t vst_ctimensec; /* nsec of last status change */ - int64_t vst_birthtime; /* File creation time(birth) */ - int64_t vst_birthtimensec; /* nsec of File creation time */ - off_t vst_size; /* [XSI] file size, in bytes */ - int64_t vst_blocks; /* [XSI] blocks allocated for file */ - int32_t vst_blksize; /* [XSI] optimal blocksize for I/O */ - uint32_t vst_flags; /* user defined flags for file */ - uint32_t vst_gen; /* file generation number */ - uint32_t vst_rdev; /* [XSI] Device ID */ - int64_t vst_qspare[2]; /* RESERVED: DO NOT USE! */ -}; - -struct vnode_info { - struct vinfo_stat vi_stat; - int vi_type; - int vi_pad; - fsid_t vi_fsid; -}; - -struct vnode_info_path { - struct vnode_info vip_vi; - char vip_path[MAXPATHLEN]; /* tail end of it */ -}; - -struct vnode_fdinfo { - struct proc_fileinfo pfi; - struct vnode_info pvi; -}; - -struct vnode_fdinfowithpath { - struct proc_fileinfo pfi; - struct vnode_info_path pvip; -}; - -struct proc_regionwithpathinfo { - struct proc_regioninfo prp_prinfo; - struct vnode_info_path prp_vip; -}; - -struct proc_regionpath { - uint64_t prpo_addr; - uint64_t prpo_regionlength; - char prpo_path[MAXPATHLEN]; -}; - -struct proc_vnodepathinfo { - struct vnode_info_path pvi_cdir; - struct vnode_info_path pvi_rdir; -}; - -struct proc_threadwithpathinfo { - struct proc_threadinfo pt; - struct vnode_info_path pvip; -}; - -/* - * Socket - */ - - -/* - * IPv4 and IPv6 Sockets - */ - -#define INI_IPV4 0x1 -#define INI_IPV6 0x2 - -struct in4in6_addr { - u_int32_t i46a_pad32[3]; - struct in_addr i46a_addr4; -}; - -struct in_sockinfo { - int insi_fport; /* foreign port */ - int insi_lport; /* local port */ - uint64_t insi_gencnt; /* generation count of this instance */ - uint32_t insi_flags; /* generic IP/datagram flags */ - uint32_t insi_flow; - - uint8_t insi_vflag; /* ini_IPV4 or ini_IPV6 */ - uint8_t insi_ip_ttl; /* time to live proto */ - uint32_t rfu_1; /* reserved */ - /* protocol dependent part */ - union { - struct in4in6_addr ina_46; - struct in6_addr ina_6; - } insi_faddr; /* foreign host table entry */ - union { - struct in4in6_addr ina_46; - struct in6_addr ina_6; - } insi_laddr; /* local host table entry */ - struct { - u_char in4_tos; /* type of service */ - } insi_v4; - struct { - uint8_t in6_hlim; - int in6_cksum; - u_short in6_ifindex; - short in6_hops; - } insi_v6; -}; - -/* - * TCP Sockets - */ - -#define TSI_T_REXMT 0 /* retransmit */ -#define TSI_T_PERSIST 1 /* retransmit persistence */ -#define TSI_T_KEEP 2 /* keep alive */ -#define TSI_T_2MSL 3 /* 2*msl quiet time timer */ -#define TSI_T_NTIMERS 4 - -#define TSI_S_CLOSED 0 /* closed */ -#define TSI_S_LISTEN 1 /* listening for connection */ -#define TSI_S_SYN_SENT 2 /* active, have sent syn */ -#define TSI_S_SYN_RECEIVED 3 /* have send and received syn */ -#define TSI_S_ESTABLISHED 4 /* established */ -#define TSI_S__CLOSE_WAIT 5 /* rcvd fin, waiting for close */ -#define TSI_S_FIN_WAIT_1 6 /* have closed, sent fin */ -#define TSI_S_CLOSING 7 /* closed xchd FIN; await FIN ACK */ -#define TSI_S_LAST_ACK 8 /* had fin and close; await FIN ACK */ -#define TSI_S_FIN_WAIT_2 9 /* have closed, fin is acked */ -#define TSI_S_TIME_WAIT 10 /* in 2*msl quiet wait after close */ -#define TSI_S_RESERVED 11 /* pseudo state: reserved */ - -struct tcp_sockinfo { - struct in_sockinfo tcpsi_ini; - int tcpsi_state; - int tcpsi_timer[TSI_T_NTIMERS]; - int tcpsi_mss; - uint32_t tcpsi_flags; - uint32_t rfu_1; /* reserved */ - uint64_t tcpsi_tp; /* opaque handle of TCP protocol control block */ -}; - -/* - * Unix Domain Sockets - */ - - -struct un_sockinfo { - uint64_t unsi_conn_so; /* opaque handle of connected socket */ - uint64_t unsi_conn_pcb; /* opaque handle of connected protocol control block */ - union { - struct sockaddr_un ua_sun; - char ua_dummy[SOCK_MAXADDRLEN]; - } unsi_addr; /* bound address */ - union { - struct sockaddr_un ua_sun; - char ua_dummy[SOCK_MAXADDRLEN]; - } unsi_caddr; /* address of socket connected to */ -}; - -/* - * PF_NDRV Sockets - */ - -struct ndrv_info { - uint32_t ndrvsi_if_family; - uint32_t ndrvsi_if_unit; - char ndrvsi_if_name[IF_NAMESIZE]; -}; - -/* - * Kernel Event Sockets - */ - -struct kern_event_info { - uint32_t kesi_vendor_code_filter; - uint32_t kesi_class_filter; - uint32_t kesi_subclass_filter; -}; - -/* - * Kernel Control Sockets - */ - -struct kern_ctl_info { - uint32_t kcsi_id; - uint32_t kcsi_reg_unit; - uint32_t kcsi_flags; /* support flags */ - uint32_t kcsi_recvbufsize; /* request more than the default buffer size */ - uint32_t kcsi_sendbufsize; /* request more than the default buffer size */ - uint32_t kcsi_unit; - char kcsi_name[MAX_KCTL_NAME]; /* unique nke identifier, provided by DTS */ -}; - -/* soi_state */ - -#define SOI_S_NOFDREF 0x0001 /* no file table ref any more */ -#define SOI_S_ISCONNECTED 0x0002 /* socket connected to a peer */ -#define SOI_S_ISCONNECTING 0x0004 /* in process of connecting to peer */ -#define SOI_S_ISDISCONNECTING 0x0008 /* in process of disconnecting */ -#define SOI_S_CANTSENDMORE 0x0010 /* can't send more data to peer */ -#define SOI_S_CANTRCVMORE 0x0020 /* can't receive more data from peer */ -#define SOI_S_RCVATMARK 0x0040 /* at mark on input */ -#define SOI_S_PRIV 0x0080 /* privileged for broadcast, raw... */ -#define SOI_S_NBIO 0x0100 /* non-blocking ops */ -#define SOI_S_ASYNC 0x0200 /* async i/o notify */ -#define SOI_S_INCOMP 0x0800 /* Unaccepted, incomplete connection */ -#define SOI_S_COMP 0x1000 /* unaccepted, complete connection */ -#define SOI_S_ISDISCONNECTED 0x2000 /* socket disconnected from peer */ -#define SOI_S_DRAINING 0x4000 /* close waiting for blocked system calls to drain */ - -struct sockbuf_info { - uint32_t sbi_cc; - uint32_t sbi_hiwat; /* SO_RCVBUF, SO_SNDBUF */ - uint32_t sbi_mbcnt; - uint32_t sbi_mbmax; - uint32_t sbi_lowat; - short sbi_flags; - short sbi_timeo; -}; - -enum { - SOCKINFO_GENERIC = 0, - SOCKINFO_IN = 1, - SOCKINFO_TCP = 2, - SOCKINFO_UN = 3, - SOCKINFO_NDRV = 4, - SOCKINFO_KERN_EVENT = 5, - SOCKINFO_KERN_CTL = 6 -}; - -struct socket_info { - struct vinfo_stat soi_stat; - uint64_t soi_so; /* opaque handle of socket */ - uint64_t soi_pcb; /* opaque handle of protocol control block */ - int soi_type; - int soi_protocol; - int soi_family; - short soi_options; - short soi_linger; - short soi_state; - short soi_qlen; - short soi_incqlen; - short soi_qlimit; - short soi_timeo; - u_short soi_error; - uint32_t soi_oobmark; - struct sockbuf_info soi_rcv; - struct sockbuf_info soi_snd; - int soi_kind; - uint32_t rfu_1; /* reserved */ - union { - struct in_sockinfo pri_in; /* SOCKINFO_IN */ - struct tcp_sockinfo pri_tcp; /* SOCKINFO_TCP */ - struct un_sockinfo pri_un; /* SOCKINFO_UN */ - struct ndrv_info pri_ndrv; /* SOCKINFO_NDRV */ - struct kern_event_info pri_kern_event; /* SOCKINFO_KERN_EVENT */ - struct kern_ctl_info pri_kern_ctl; /* SOCKINFO_KERN_CTL */ - } soi_proto; -}; - -struct socket_fdinfo { - struct proc_fileinfo pfi; - struct socket_info psi; -}; - - - -struct psem_info { - struct vinfo_stat psem_stat; - char psem_name[MAXPATHLEN]; -}; - -struct psem_fdinfo { - struct proc_fileinfo pfi; - struct psem_info pseminfo; -}; - - - -struct pshm_info { - struct vinfo_stat pshm_stat; - uint64_t pshm_mappaddr; - char pshm_name[MAXPATHLEN]; -}; - -struct pshm_fdinfo { - struct proc_fileinfo pfi; - struct pshm_info pshminfo; -}; - - -struct pipe_info { - struct vinfo_stat pipe_stat; - uint64_t pipe_handle; - uint64_t pipe_peerhandle; - int pipe_status; - int rfu_1; /* reserved */ -}; - -struct pipe_fdinfo { - struct proc_fileinfo pfi; - struct pipe_info pipeinfo; -}; - - -struct kqueue_info { - struct vinfo_stat kq_stat; - uint32_t kq_state; - uint32_t rfu_1; /* reserved */ -}; - -struct kqueue_dyninfo { - struct kqueue_info kqdi_info; - uint64_t kqdi_servicer; - uint64_t kqdi_owner; - uint32_t kqdi_sync_waiters; - uint8_t kqdi_sync_waiter_qos; - uint8_t kqdi_async_qos; - uint16_t kqdi_request_state; - uint8_t kqdi_events_qos; - uint8_t kqdi_pri; - uint8_t kqdi_pol; - uint8_t kqdi_cpupercent; - uint8_t _kqdi_reserved0[4]; - uint64_t _kqdi_reserved1[4]; -}; - -/* keep in sync with KQ_* in sys/eventvar.h */ -#define PROC_KQUEUE_SELECT 0x01 -#define PROC_KQUEUE_SLEEP 0x02 -#define PROC_KQUEUE_32 0x08 -#define PROC_KQUEUE_64 0x10 -#define PROC_KQUEUE_QOS 0x20 - - -struct kqueue_fdinfo { - struct proc_fileinfo pfi; - struct kqueue_info kqueueinfo; -}; - -struct appletalk_info { - struct vinfo_stat atalk_stat; -}; - -struct appletalk_fdinfo { - struct proc_fileinfo pfi; - struct appletalk_info appletalkinfo; -}; - -typedef uint64_t proc_info_udata_t; - -/* defns of process file desc type */ -#define PROX_FDTYPE_ATALK 0 -#define PROX_FDTYPE_VNODE 1 -#define PROX_FDTYPE_SOCKET 2 -#define PROX_FDTYPE_PSHM 3 -#define PROX_FDTYPE_PSEM 4 -#define PROX_FDTYPE_KQUEUE 5 -#define PROX_FDTYPE_PIPE 6 -#define PROX_FDTYPE_FSEVENTS 7 -#define PROX_FDTYPE_NETPOLICY 9 - -struct proc_fdinfo { - int32_t proc_fd; - uint32_t proc_fdtype; -}; - -struct proc_fileportinfo { - uint32_t proc_fileport; - uint32_t proc_fdtype; -}; - - -/* Flavors for proc_pidinfo() */ -#define PROC_PIDLISTFDS 1 -#define PROC_PIDLISTFD_SIZE (sizeof(struct proc_fdinfo)) - -#define PROC_PIDTASKALLINFO 2 -#define PROC_PIDTASKALLINFO_SIZE (sizeof(struct proc_taskallinfo)) - -#define PROC_PIDTBSDINFO 3 -#define PROC_PIDTBSDINFO_SIZE (sizeof(struct proc_bsdinfo)) - -#define PROC_PIDTASKINFO 4 -#define PROC_PIDTASKINFO_SIZE (sizeof(struct proc_taskinfo)) - -#define PROC_PIDTHREADINFO 5 -#define PROC_PIDTHREADINFO_SIZE (sizeof(struct proc_threadinfo)) - -#define PROC_PIDLISTTHREADS 6 -#define PROC_PIDLISTTHREADS_SIZE (2* sizeof(uint32_t)) - -#define PROC_PIDREGIONINFO 7 -#define PROC_PIDREGIONINFO_SIZE (sizeof(struct proc_regioninfo)) - -#define PROC_PIDREGIONPATHINFO 8 -#define PROC_PIDREGIONPATHINFO_SIZE (sizeof(struct proc_regionwithpathinfo)) - -#define PROC_PIDVNODEPATHINFO 9 -#define PROC_PIDVNODEPATHINFO_SIZE (sizeof(struct proc_vnodepathinfo)) - -#define PROC_PIDTHREADPATHINFO 10 -#define PROC_PIDTHREADPATHINFO_SIZE (sizeof(struct proc_threadwithpathinfo)) - -#define PROC_PIDPATHINFO 11 -#define PROC_PIDPATHINFO_SIZE (MAXPATHLEN) -#define PROC_PIDPATHINFO_MAXSIZE (4*MAXPATHLEN) - -#define PROC_PIDWORKQUEUEINFO 12 -#define PROC_PIDWORKQUEUEINFO_SIZE (sizeof(struct proc_workqueueinfo)) - -#define PROC_PIDT_SHORTBSDINFO 13 -#define PROC_PIDT_SHORTBSDINFO_SIZE (sizeof(struct proc_bsdshortinfo)) - -#define PROC_PIDLISTFILEPORTS 14 -#define PROC_PIDLISTFILEPORTS_SIZE (sizeof(struct proc_fileportinfo)) - -#define PROC_PIDTHREADID64INFO 15 -#define PROC_PIDTHREADID64INFO_SIZE (sizeof(struct proc_threadinfo)) - -#define PROC_PID_RUSAGE 16 -#define PROC_PID_RUSAGE_SIZE 0 - -/* Flavors for proc_pidfdinfo */ - -#define PROC_PIDFDVNODEINFO 1 -#define PROC_PIDFDVNODEINFO_SIZE (sizeof(struct vnode_fdinfo)) - -#define PROC_PIDFDVNODEPATHINFO 2 -#define PROC_PIDFDVNODEPATHINFO_SIZE (sizeof(struct vnode_fdinfowithpath)) - -#define PROC_PIDFDSOCKETINFO 3 -#define PROC_PIDFDSOCKETINFO_SIZE (sizeof(struct socket_fdinfo)) - -#define PROC_PIDFDPSEMINFO 4 -#define PROC_PIDFDPSEMINFO_SIZE (sizeof(struct psem_fdinfo)) - -#define PROC_PIDFDPSHMINFO 5 -#define PROC_PIDFDPSHMINFO_SIZE (sizeof(struct pshm_fdinfo)) - -#define PROC_PIDFDPIPEINFO 6 -#define PROC_PIDFDPIPEINFO_SIZE (sizeof(struct pipe_fdinfo)) - -#define PROC_PIDFDKQUEUEINFO 7 -#define PROC_PIDFDKQUEUEINFO_SIZE (sizeof(struct kqueue_fdinfo)) - -#define PROC_PIDFDATALKINFO 8 -#define PROC_PIDFDATALKINFO_SIZE (sizeof(struct appletalk_fdinfo)) - - - -/* Flavors for proc_pidfileportinfo */ - -#define PROC_PIDFILEPORTVNODEPATHINFO 2 /* out: vnode_fdinfowithpath */ -#define PROC_PIDFILEPORTVNODEPATHINFO_SIZE \ - PROC_PIDFDVNODEPATHINFO_SIZE - -#define PROC_PIDFILEPORTSOCKETINFO 3 /* out: socket_fdinfo */ -#define PROC_PIDFILEPORTSOCKETINFO_SIZE PROC_PIDFDSOCKETINFO_SIZE - -#define PROC_PIDFILEPORTPSHMINFO 5 /* out: pshm_fdinfo */ -#define PROC_PIDFILEPORTPSHMINFO_SIZE PROC_PIDFDPSHMINFO_SIZE - -#define PROC_PIDFILEPORTPIPEINFO 6 /* out: pipe_fdinfo */ -#define PROC_PIDFILEPORTPIPEINFO_SIZE PROC_PIDFDPIPEINFO_SIZE - -/* used for proc_setcontrol */ -#define PROC_SELFSET_PCONTROL 1 - -#define PROC_SELFSET_THREADNAME 2 -#define PROC_SELFSET_THREADNAME_SIZE (MAXTHREADNAMESIZE -1) - -#define PROC_SELFSET_VMRSRCOWNER 3 - -#define PROC_SELFSET_DELAYIDLESLEEP 4 - -/* used for proc_dirtycontrol */ -#define PROC_DIRTYCONTROL_TRACK 1 -#define PROC_DIRTYCONTROL_SET 2 -#define PROC_DIRTYCONTROL_GET 3 -#define PROC_DIRTYCONTROL_CLEAR 4 - -/* proc_track_dirty() flags */ -#define PROC_DIRTY_TRACK 0x1 -#define PROC_DIRTY_ALLOW_IDLE_EXIT 0x2 -#define PROC_DIRTY_DEFER 0x4 -#define PROC_DIRTY_LAUNCH_IN_PROGRESS 0x8 -#define PROC_DIRTY_DEFER_ALWAYS 0x10 - -/* proc_get_dirty() flags */ -#define PROC_DIRTY_TRACKED 0x1 -#define PROC_DIRTY_ALLOWS_IDLE_EXIT 0x2 -#define PROC_DIRTY_IS_DIRTY 0x4 -#define PROC_DIRTY_LAUNCH_IS_IN_PROGRESS 0x8 - -/* Flavors for proc_udata_info */ -#define PROC_UDATA_INFO_GET 1 -#define PROC_UDATA_INFO_SET 2 - - - -__END_DECLS - -#endif /*_SYS_PROC_INFO_H */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/random.h b/lib/libc/include/x86_64-macos.10-none/sys/random.h deleted file mode 100644 index 4599da090b1e7bad8da3f279c03b2c56841398a1..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/random.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1999, 2000-2005 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_RANDOM_H__ -#define __SYS_RANDOM_H__ - -#include -#include - -__BEGIN_DECLS - __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0) -int getentropy(void* buffer, size_t size); -__END_DECLS - -#endif /* __SYS_RANDOM_H__ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/resource.h b/lib/libc/include/x86_64-macos.10-none/sys/resource.h deleted file mode 100644 index b6bf678d37ddb290d6a7988c5758e533db168752..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/resource.h +++ /dev/null @@ -1,458 +0,0 @@ -/* - * Copyright (c) 2000-2018 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@ - */ -/* 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. - * - * @(#)resource.h 8.2 (Berkeley) 1/4/94 - */ - -#ifndef _SYS_RESOURCE_H_ -#define _SYS_RESOURCE_H_ - -#include -#include -#include - -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -#include -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - -#include - -/* [XSI] The timeval structure shall be defined as described in - * - */ -#include - -/* The id_t type shall be defined as described in */ -#include - - -/* - * Resource limit type (low 63 bits, excluding the sign bit) - */ -typedef __uint64_t rlim_t; - - -/***** - * PRIORITY - */ - -/* - * Possible values of the first parameter to getpriority()/setpriority(), - * used to indicate the type of the second parameter. - */ -#define PRIO_PROCESS 0 /* Second argument is a PID */ -#define PRIO_PGRP 1 /* Second argument is a GID */ -#define PRIO_USER 2 /* Second argument is a UID */ - -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -#define PRIO_DARWIN_THREAD 3 /* Second argument is always 0 (current thread) */ -#define PRIO_DARWIN_PROCESS 4 /* Second argument is a PID */ - - -/* - * Range limitations for the value of the third parameter to setpriority(). - */ -#define PRIO_MIN -20 -#define PRIO_MAX 20 - -/* - * use PRIO_DARWIN_BG to set the current thread into "background" state - * which lowers CPU, disk IO, and networking priorites until thread terminates - * or "background" state is revoked - */ -#define PRIO_DARWIN_BG 0x1000 - -/* - * use PRIO_DARWIN_NONUI to restrict a process's ability to make calls to - * the GPU. (deprecated) - */ -#define PRIO_DARWIN_NONUI 0x1001 - -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - - - -/***** - * RESOURCE USAGE - */ - -/* - * Possible values of the first parameter to getrusage(), used to indicate - * the scope of the information to be returned. - */ -#define RUSAGE_SELF 0 /* Current process information */ -#define RUSAGE_CHILDREN -1 /* Current process' children */ - -/* - * A structure representing an accounting of resource utilization. The - * address of an instance of this structure is the second parameter to - * getrusage(). - * - * Note: All values other than ru_utime and ru_stime are implementaiton - * defined and subject to change in a future release. Their use - * is discouraged for standards compliant programs. - */ -struct rusage { - struct timeval ru_utime; /* user time used (PL) */ - struct timeval ru_stime; /* system time used (PL) */ -#if __DARWIN_C_LEVEL < __DARWIN_C_FULL - long ru_opaque[14]; /* implementation defined */ -#else - /* - * Informational aliases for source compatibility with programs - * that need more information than that provided by standards, - * and which do not mind being OS-dependent. - */ - long ru_maxrss; /* max resident set size (PL) */ -#define ru_first ru_ixrss /* internal: ruadd() range start */ - long ru_ixrss; /* integral shared memory size (NU) */ - long ru_idrss; /* integral unshared data (NU) */ - long ru_isrss; /* integral unshared stack (NU) */ - long ru_minflt; /* page reclaims (NU) */ - long ru_majflt; /* page faults (NU) */ - long ru_nswap; /* swaps (NU) */ - long ru_inblock; /* block input operations (atomic) */ - long ru_oublock; /* block output operations (atomic) */ - long ru_msgsnd; /* messages sent (atomic) */ - long ru_msgrcv; /* messages received (atomic) */ - long ru_nsignals; /* signals received (atomic) */ - long ru_nvcsw; /* voluntary context switches (atomic) */ - long ru_nivcsw; /* involuntary " */ -#define ru_last ru_nivcsw /* internal: ruadd() range end */ -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ -}; - -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -/* - * Flavors for proc_pid_rusage(). - */ -#define RUSAGE_INFO_V0 0 -#define RUSAGE_INFO_V1 1 -#define RUSAGE_INFO_V2 2 -#define RUSAGE_INFO_V3 3 -#define RUSAGE_INFO_V4 4 -#define RUSAGE_INFO_CURRENT RUSAGE_INFO_V4 - -typedef void *rusage_info_t; - -struct rusage_info_v0 { - uint8_t ri_uuid[16]; - uint64_t ri_user_time; - uint64_t ri_system_time; - uint64_t ri_pkg_idle_wkups; - uint64_t ri_interrupt_wkups; - uint64_t ri_pageins; - uint64_t ri_wired_size; - uint64_t ri_resident_size; - uint64_t ri_phys_footprint; - uint64_t ri_proc_start_abstime; - uint64_t ri_proc_exit_abstime; -}; - -struct rusage_info_v1 { - uint8_t ri_uuid[16]; - uint64_t ri_user_time; - uint64_t ri_system_time; - uint64_t ri_pkg_idle_wkups; - uint64_t ri_interrupt_wkups; - uint64_t ri_pageins; - uint64_t ri_wired_size; - uint64_t ri_resident_size; - uint64_t ri_phys_footprint; - uint64_t ri_proc_start_abstime; - uint64_t ri_proc_exit_abstime; - uint64_t ri_child_user_time; - uint64_t ri_child_system_time; - uint64_t ri_child_pkg_idle_wkups; - uint64_t ri_child_interrupt_wkups; - uint64_t ri_child_pageins; - uint64_t ri_child_elapsed_abstime; -}; - -struct rusage_info_v2 { - uint8_t ri_uuid[16]; - uint64_t ri_user_time; - uint64_t ri_system_time; - uint64_t ri_pkg_idle_wkups; - uint64_t ri_interrupt_wkups; - uint64_t ri_pageins; - uint64_t ri_wired_size; - uint64_t ri_resident_size; - uint64_t ri_phys_footprint; - uint64_t ri_proc_start_abstime; - uint64_t ri_proc_exit_abstime; - uint64_t ri_child_user_time; - uint64_t ri_child_system_time; - uint64_t ri_child_pkg_idle_wkups; - uint64_t ri_child_interrupt_wkups; - uint64_t ri_child_pageins; - uint64_t ri_child_elapsed_abstime; - uint64_t ri_diskio_bytesread; - uint64_t ri_diskio_byteswritten; -}; - -struct rusage_info_v3 { - uint8_t ri_uuid[16]; - uint64_t ri_user_time; - uint64_t ri_system_time; - uint64_t ri_pkg_idle_wkups; - uint64_t ri_interrupt_wkups; - uint64_t ri_pageins; - uint64_t ri_wired_size; - uint64_t ri_resident_size; - uint64_t ri_phys_footprint; - uint64_t ri_proc_start_abstime; - uint64_t ri_proc_exit_abstime; - uint64_t ri_child_user_time; - uint64_t ri_child_system_time; - uint64_t ri_child_pkg_idle_wkups; - uint64_t ri_child_interrupt_wkups; - uint64_t ri_child_pageins; - uint64_t ri_child_elapsed_abstime; - uint64_t ri_diskio_bytesread; - uint64_t ri_diskio_byteswritten; - uint64_t ri_cpu_time_qos_default; - uint64_t ri_cpu_time_qos_maintenance; - uint64_t ri_cpu_time_qos_background; - uint64_t ri_cpu_time_qos_utility; - uint64_t ri_cpu_time_qos_legacy; - uint64_t ri_cpu_time_qos_user_initiated; - uint64_t ri_cpu_time_qos_user_interactive; - uint64_t ri_billed_system_time; - uint64_t ri_serviced_system_time; -}; - -struct rusage_info_v4 { - uint8_t ri_uuid[16]; - uint64_t ri_user_time; - uint64_t ri_system_time; - uint64_t ri_pkg_idle_wkups; - uint64_t ri_interrupt_wkups; - uint64_t ri_pageins; - uint64_t ri_wired_size; - uint64_t ri_resident_size; - uint64_t ri_phys_footprint; - uint64_t ri_proc_start_abstime; - uint64_t ri_proc_exit_abstime; - uint64_t ri_child_user_time; - uint64_t ri_child_system_time; - uint64_t ri_child_pkg_idle_wkups; - uint64_t ri_child_interrupt_wkups; - uint64_t ri_child_pageins; - uint64_t ri_child_elapsed_abstime; - uint64_t ri_diskio_bytesread; - uint64_t ri_diskio_byteswritten; - uint64_t ri_cpu_time_qos_default; - uint64_t ri_cpu_time_qos_maintenance; - uint64_t ri_cpu_time_qos_background; - uint64_t ri_cpu_time_qos_utility; - uint64_t ri_cpu_time_qos_legacy; - uint64_t ri_cpu_time_qos_user_initiated; - uint64_t ri_cpu_time_qos_user_interactive; - uint64_t ri_billed_system_time; - uint64_t ri_serviced_system_time; - uint64_t ri_logical_writes; - uint64_t ri_lifetime_max_phys_footprint; - uint64_t ri_instructions; - uint64_t ri_cycles; - uint64_t ri_billed_energy; - uint64_t ri_serviced_energy; - uint64_t ri_interval_max_phys_footprint; - uint64_t ri_runnable_time; -}; - -typedef struct rusage_info_v4 rusage_info_current; - -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - - - -/***** - * RESOURCE LIMITS - */ - -/* - * Symbolic constants for resource limits; since all limits are representable - * as a type rlim_t, we are permitted to define RLIM_SAVED_* in terms of - * RLIM_INFINITY. - */ -#define RLIM_INFINITY (((__uint64_t)1 << 63) - 1) /* no limit */ -#define RLIM_SAVED_MAX RLIM_INFINITY /* Unrepresentable hard limit */ -#define RLIM_SAVED_CUR RLIM_INFINITY /* Unrepresentable soft limit */ - -/* - * Possible values of the first parameter to getrlimit()/setrlimit(), to - * indicate for which resource the operation is being performed. - */ -#define RLIMIT_CPU 0 /* cpu time per process */ -#define RLIMIT_FSIZE 1 /* file size */ -#define RLIMIT_DATA 2 /* data segment size */ -#define RLIMIT_STACK 3 /* stack size */ -#define RLIMIT_CORE 4 /* core file size */ -#define RLIMIT_AS 5 /* address space (resident set size) */ -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -#define RLIMIT_RSS RLIMIT_AS /* source compatibility alias */ -#define RLIMIT_MEMLOCK 6 /* locked-in-memory address space */ -#define RLIMIT_NPROC 7 /* number of processes */ -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ -#define RLIMIT_NOFILE 8 /* number of open files */ -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -#define RLIM_NLIMITS 9 /* total number of resource limits */ -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ -#define _RLIMIT_POSIX_FLAG 0x1000 /* Set bit for strict POSIX */ - -/* - * A structure representing a resource limit. The address of an instance - * of this structure is the second parameter to getrlimit()/setrlimit(). - */ -struct rlimit { - rlim_t rlim_cur; /* current (soft) limit */ - rlim_t rlim_max; /* maximum value for rlim_cur */ -}; - -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -/* - * proc_rlimit_control() - * - * Resource limit flavors - */ -#define RLIMIT_WAKEUPS_MONITOR 0x1 /* Configure the wakeups monitor. */ -#define RLIMIT_CPU_USAGE_MONITOR 0x2 /* Configure the CPU usage monitor. */ -#define RLIMIT_THREAD_CPULIMITS 0x3 /* Configure a blocking, per-thread, CPU limits. */ -#define RLIMIT_FOOTPRINT_INTERVAL 0x4 /* Configure memory footprint interval tracking */ - -/* - * Flags for wakeups monitor control. - */ -#define WAKEMON_ENABLE 0x01 -#define WAKEMON_DISABLE 0x02 -#define WAKEMON_GET_PARAMS 0x04 -#define WAKEMON_SET_DEFAULTS 0x08 -#define WAKEMON_MAKE_FATAL 0x10 /* Configure the task so that violations are fatal. */ - -/* - * Flags for CPU usage monitor control. - */ -#define CPUMON_MAKE_FATAL 0x1000 - -/* - * Flags for memory footprint interval tracking. - */ -#define FOOTPRINT_INTERVAL_RESET 0x1 /* Reset the footprint interval counter to zero */ - -struct proc_rlimit_control_wakeupmon { - uint32_t wm_flags; - int32_t wm_rate; -}; - - - -/* I/O type */ -#define IOPOL_TYPE_DISK 0 -#define IOPOL_TYPE_VFS_ATIME_UPDATES 2 -#define IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES 3 -#define IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME 4 - -/* scope */ -#define IOPOL_SCOPE_PROCESS 0 -#define IOPOL_SCOPE_THREAD 1 -#define IOPOL_SCOPE_DARWIN_BG 2 - -/* I/O Priority */ -#define IOPOL_DEFAULT 0 -#define IOPOL_IMPORTANT 1 -#define IOPOL_PASSIVE 2 -#define IOPOL_THROTTLE 3 -#define IOPOL_UTILITY 4 -#define IOPOL_STANDARD 5 - -/* compatibility with older names */ -#define IOPOL_APPLICATION IOPOL_STANDARD -#define IOPOL_NORMAL IOPOL_IMPORTANT - - -#define IOPOL_ATIME_UPDATES_DEFAULT 0 -#define IOPOL_ATIME_UPDATES_OFF 1 - -#define IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT 0 -#define IOPOL_MATERIALIZE_DATALESS_FILES_OFF 1 -#define IOPOL_MATERIALIZE_DATALESS_FILES_ON 2 - -#define IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT 0 -#define IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME 1 - -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - - -__BEGIN_DECLS -int getpriority(int, id_t); -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -int getiopolicy_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ -int getrlimit(int, struct rlimit *) __DARWIN_ALIAS(getrlimit); -int getrusage(int, struct rusage *); -int setpriority(int, id_t, int); -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -int setiopolicy_np(int, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ -int setrlimit(int, const struct rlimit *) __DARWIN_ALIAS(setrlimit); -__END_DECLS - -#endif /* !_SYS_RESOURCE_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/shm.h b/lib/libc/include/x86_64-macos.10-none/sys/shm.h deleted file mode 100644 index 0e5070a03bb51716a485a5af2b11d33678c29517..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/shm.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Copyright (c) 2000-2002 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@ - */ -/* $NetBSD: shm.h,v 1.15 1994/06/29 06:45:17 cgd Exp $ */ - -/* - * Copyright (c) 1994 Adam Glass - * 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 Adam Glass. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - */ - -/* - * As defined+described in "X/Open System Interfaces and Headers" - * Issue 4, p. XXX - */ - -#ifndef _SYS_SHM_H_ -#define _SYS_SHM_H_ - -#include -#include - -/* - * [XSI] All of the symbols from SHALL be defined - * when this header is included - */ -#include - -/* - * [XSI] The pid_t, time_t, key_t, and size_t types shall be defined as - * described in . - * - * NOTE: The definition of the key_t type is implicit from the - * inclusion of - */ -#include -#include -#include - -/* - * [XSI] The unsigned integer type used for the number of current attaches - * that MUST be able to store values at least as large as a type unsigned - * short. - */ -typedef unsigned short shmatt_t; - - -/* - * Possible flag values which may be OR'ed into the third argument to - * shmat() - */ -#define SHM_RDONLY 010000 /* [XSI] Attach read-only (else read-write) */ -#define SHM_RND 020000 /* [XSI] Round attach address to SHMLBA */ - -/* - * This value is symbolic, and generally not expected to be sed by user - * programs directly, although such ise is permitted by the standard. Its - * value in our implementation is equal to the number of bytes per page. - * - * NOTE: We DO NOT obtain this value from the appropriate system - * headers at this time, to avoid the resulting namespace - * pollution, which is why we discourages its use. - */ -#define SHMLBA 4096 /* [XSI] Segment low boundary address multiple*/ - -/* "official" access mode definitions; somewhat braindead since you have - * to specify (SHM_* >> 3) for group and (SHM_* >> 6) for world permissions */ -#define SHM_R (IPC_R) -#define SHM_W (IPC_W) - -#pragma pack(4) - -/* - * Technically, we should force all code references to the new structure - * definition, not in just the standards conformance case, and leave the - * legacy interface there for binary compatibility only. Currently, we - * are only forcing this for programs requesting standards conformance. - */ -#if __DARWIN_UNIX03 || defined(KERNEL) -/* - * Structure used internally. - * - * This structure is exposed because standards dictate that it is used as - * the third argment to shmctl(). - * - * NOTE: The field shm_internal is not meaningful in user space, - * and must not be used there. - */ -#if (defined(_POSIX_C_SOURCE) && !defined(_DARWIN_C_SOURCE)) -struct shmid_ds -#else -#define shmid_ds __shmid_ds_new -struct __shmid_ds_new -#endif -{ - struct __ipc_perm_new shm_perm; /* [XSI] Operation permission value */ - size_t shm_segsz; /* [XSI] Size of segment in bytes */ - pid_t shm_lpid; /* [XSI] PID of last shared memory op */ - pid_t shm_cpid; /* [XSI] PID of creator */ - shmatt_t shm_nattch; /* [XSI] Number of current attaches */ - time_t shm_atime; /* [XSI] Time of last shmat() */ - time_t shm_dtime; /* [XSI] Time of last shmdt() */ - time_t shm_ctime; /* [XSI] Time of last shmctl() change */ - void *shm_internal; /* reserved for kernel use */ -}; -#else /* !__DARWIN_UNIX03 */ -#define shmid_ds __shmid_ds_old -#endif /* !__DARWIN_UNIX03 */ - -#if !__DARWIN_UNIX03 -struct __shmid_ds_old { - struct __ipc_perm_old shm_perm; /* [XSI] Operation permission value */ - size_t shm_segsz; /* [XSI] Size of segment in bytes */ - pid_t shm_lpid; /* [XSI] PID of last shared memory op */ - pid_t shm_cpid; /* [XSI] PID of creator */ - shmatt_t shm_nattch; /* [XSI] Number of current attaches */ - time_t shm_atime; /* [XSI] Time of last shmat() */ - time_t shm_dtime; /* [XSI] Time of last shmdt() */ - time_t shm_ctime; /* [XSI] Time of last shmctl() change */ - void *shm_internal; /* reserved for kernel use */ -}; -#endif /* !__DARWIN_UNIX03 */ - -#pragma pack() - - -__BEGIN_DECLS -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -int shmsys(int, ...); -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -void *shmat(int, const void *, int); -int shmctl(int, int, struct shmid_ds *) __DARWIN_ALIAS(shmctl); -int shmdt(const void *); -int shmget(key_t, size_t, int); -__END_DECLS - - -#endif /* !_SYS_SHM_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/socket.h b/lib/libc/include/x86_64-macos.10-none/sys/socket.h deleted file mode 100644 index c8a0d276156a6bc41ad3cebcb98aa4e3e4cf2893..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/socket.h +++ /dev/null @@ -1,732 +0,0 @@ -/* - * Copyright (c) 2000-2019 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@ - */ -/* Copyright (c) 1998, 1999 Apple Computer, Inc. All Rights Reserved */ -/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ -/* - * Copyright (c) 1982, 1985, 1986, 1988, 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. - * - * @(#)socket.h 8.4 (Berkeley) 2/21/94 - * $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $ - */ -/* - * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce - * support for mandatory and extensible security protections. This notice - * is included in support of clause 2.2 (b) of the Apple Public License, - * Version 2.0. - */ - -#ifndef _SYS_SOCKET_H_ -#define _SYS_SOCKET_H_ - -#include -#include -#include -#include - - -#include - -/* - * Definitions related to sockets: types, address families, options. - */ - -/* - * Data types. - */ - -#include -#include -#include -#include -#include - -/* XXX Not explicitly defined by POSIX, but function return types are */ -#include - -/* XXX Not explicitly defined by POSIX, but function return types are */ -#include - -/* - * [XSI] The iovec structure shall be defined as described in . - */ -#include - -/* - * Types - */ -#define SOCK_STREAM 1 /* stream socket */ -#define SOCK_DGRAM 2 /* datagram socket */ -#define SOCK_RAW 3 /* raw-protocol interface */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define SOCK_RDM 4 /* reliably-delivered message */ -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -#define SOCK_SEQPACKET 5 /* sequenced packet stream */ - -/* - * Option flags per-socket. - */ -#define SO_DEBUG 0x0001 /* turn on debugging info recording */ -#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ -#define SO_REUSEADDR 0x0004 /* allow local address reuse */ -#define SO_KEEPALIVE 0x0008 /* keep connections alive */ -#define SO_DONTROUTE 0x0010 /* just use interface addresses */ -#define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */ -#define SO_LINGER 0x0080 /* linger on close if data present (in ticks) */ -#else -#define SO_LINGER 0x1080 /* linger on close if data present (in seconds) */ -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define SO_REUSEPORT 0x0200 /* allow local address & port reuse */ -#define SO_TIMESTAMP 0x0400 /* timestamp received dgram traffic */ -#define SO_TIMESTAMP_MONOTONIC 0x0800 /* Monotonically increasing timestamp on rcvd dgram */ -#ifndef __APPLE__ -#define SO_ACCEPTFILTER 0x1000 /* there is an accept filter */ -#else -#define SO_DONTTRUNC 0x2000 /* APPLE: Retain unread data */ - /* (ATOMIC proto) */ -#define SO_WANTMORE 0x4000 /* APPLE: Give hint when more data ready */ -#define SO_WANTOOBFLAG 0x8000 /* APPLE: Want OOB in MSG_FLAG on receive */ - - -#endif /* (!__APPLE__) */ -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* - * Additional options, not kept in so_options. - */ -#define SO_SNDBUF 0x1001 /* send buffer size */ -#define SO_RCVBUF 0x1002 /* receive buffer size */ -#define SO_SNDLOWAT 0x1003 /* send low-water mark */ -#define SO_RCVLOWAT 0x1004 /* receive low-water mark */ -#define SO_SNDTIMEO 0x1005 /* send timeout */ -#define SO_RCVTIMEO 0x1006 /* receive timeout */ -#define SO_ERROR 0x1007 /* get error status and clear */ -#define SO_TYPE 0x1008 /* get socket type */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define SO_LABEL 0x1010 /* socket's MAC label */ -#define SO_PEERLABEL 0x1011 /* socket's peer MAC label */ -#ifdef __APPLE__ -#define SO_NREAD 0x1020 /* APPLE: get 1st-packet byte count */ -#define SO_NKE 0x1021 /* APPLE: Install socket-level NKE */ -#define SO_NOSIGPIPE 0x1022 /* APPLE: No SIGPIPE on EPIPE */ -#define SO_NOADDRERR 0x1023 /* APPLE: Returns EADDRNOTAVAIL when src is not available anymore */ -#define SO_NWRITE 0x1024 /* APPLE: Get number of bytes currently in send socket buffer */ -#define SO_REUSESHAREUID 0x1025 /* APPLE: Allow reuse of port/socket by different userids */ -#ifdef __APPLE_API_PRIVATE -#define SO_NOTIFYCONFLICT 0x1026 /* APPLE: send notification if there is a bind on a port which is already in use */ -#define SO_UPCALLCLOSEWAIT 0x1027 /* APPLE: block on close until an upcall returns */ -#endif -#define SO_LINGER_SEC 0x1080 /* linger on close if data present (in seconds) */ -#define SO_RANDOMPORT 0x1082 /* APPLE: request local port randomization */ -#define SO_NP_EXTENSIONS 0x1083 /* To turn off some POSIX behavior */ -#endif - -#define SO_NUMRCVPKT 0x1112 /* number of datagrams in receive socket buffer */ -#define SO_NET_SERVICE_TYPE 0x1116 /* Network service type */ - - -#define SO_NETSVC_MARKING_LEVEL 0x1119 /* Get QoS marking in effect for socket */ - -/* - * Network Service Type for option SO_NET_SERVICE_TYPE - * - * The vast majority of sockets should use Best Effort that is the default - * Network Service Type. Other Network Service Types have to be used only if - * the traffic actually matches the description of the Network Service Type. - * - * Network Service Types do not represent priorities but rather describe - * different categories of delay, jitter and loss parameters. - * Those parameters may influence protocols from layer 4 protocols like TCP - * to layer 2 protocols like Wi-Fi. The Network Service Type can determine - * how the traffic is queued and scheduled by the host networking stack and - * by other entities on the network like switches and routers. For example - * for Wi-Fi, the Network Service Type can select the marking of the - * layer 2 packet with the appropriate WMM Access Category. - * - * There is no point in attempting to game the system and use - * a Network Service Type that does not correspond to the actual - * traffic characteristic but one that seems to have a higher precedence. - * The reason is that for service classes that have lower tolerance - * for delay and jitter, the queues size is lower than for service - * classes that are more tolerant to delay and jitter. - * - * For example using a voice service type for bulk data transfer will lead - * to disastrous results as soon as congestion happens because the voice - * queue overflows and packets get dropped. This is not only bad for the bulk - * data transfer but it is also bad for VoIP apps that legitimately are using - * the voice service type. - * - * The characteristics of the Network Service Types are based on the service - * classes defined in RFC 4594 "Configuration Guidelines for DiffServ Service - * Classes" - * - * When system detects the outgoing interface belongs to a DiffServ domain - * that follows the recommendation of the IETF draft "Guidelines for DiffServ to - * IEEE 802.11 Mapping", the packet will marked at layer 3 with a DSCP value - * that corresponds to Network Service Type. - * - * NET_SERVICE_TYPE_BE - * "Best Effort", unclassified/standard. This is the default service - * class and cover the majority of the traffic. - * - * NET_SERVICE_TYPE_BK - * "Background", high delay tolerant, loss tolerant. elastic flow, - * variable size & long-lived. E.g: non-interactive network bulk transfer - * like synching or backup. - * - * NET_SERVICE_TYPE_RD - * "Responsive Data", a notch higher than "Best Effort", medium delay - * tolerant, elastic & inelastic flow, bursty, long-lived. E.g. email, - * instant messaging, for which there is a sense of interactivity and - * urgency (user waiting for output). - * - * NET_SERVICE_TYPE_OAM - * "Operations, Administration, and Management", medium delay tolerant, - * low-medium loss tolerant, elastic & inelastic flows, variable size. - * E.g. VPN tunnels. - * - * NET_SERVICE_TYPE_AV - * "Multimedia Audio/Video Streaming", medium delay tolerant, low-medium - * loss tolerant, elastic flow, constant packet interval, variable rate - * and size. E.g. video and audio playback with buffering. - * - * NET_SERVICE_TYPE_RV - * "Responsive Multimedia Audio/Video", low delay tolerant, low-medium - * loss tolerant, elastic flow, variable packet interval, rate and size. - * E.g. screen sharing. - * - * NET_SERVICE_TYPE_VI - * "Interactive Video", low delay tolerant, low-medium loss tolerant, - * elastic flow, constant packet interval, variable rate & size. E.g. - * video telephony. - * - * NET_SERVICE_TYPE_SIG - * "Signaling", low delay tolerant, low loss tolerant, inelastic flow, - * jitter tolerant, rate is bursty but short, variable size. E.g. SIP. - * - * NET_SERVICE_TYPE_VO - * "Interactive Voice", very low delay tolerant, very low loss tolerant, - * inelastic flow, constant packet rate, somewhat fixed size. - * E.g. VoIP. - */ - -#define NET_SERVICE_TYPE_BE 0 /* Best effort */ -#define NET_SERVICE_TYPE_BK 1 /* Background system initiated */ -#define NET_SERVICE_TYPE_SIG 2 /* Signaling */ -#define NET_SERVICE_TYPE_VI 3 /* Interactive Video */ -#define NET_SERVICE_TYPE_VO 4 /* Interactive Voice */ -#define NET_SERVICE_TYPE_RV 5 /* Responsive Multimedia Audio/Video */ -#define NET_SERVICE_TYPE_AV 6 /* Multimedia Audio/Video Streaming */ -#define NET_SERVICE_TYPE_OAM 7 /* Operations, Administration, and Management */ -#define NET_SERVICE_TYPE_RD 8 /* Responsive Data */ - - -/* These are supported values for SO_NETSVC_MARKING_LEVEL */ -#define NETSVC_MRKNG_UNKNOWN 0 /* The outgoing network interface is not known */ -#define NETSVC_MRKNG_LVL_L2 1 /* Default marking at layer 2 (for example Wi-Fi WMM) */ -#define NETSVC_MRKNG_LVL_L3L2_ALL 2 /* Layer 3 DSCP marking and layer 2 marking for all Network Service Types */ -#define NETSVC_MRKNG_LVL_L3L2_BK 3 /* The system policy limits layer 3 DSCP marking and layer 2 marking - * to background Network Service Types */ - - -typedef __uint32_t sae_associd_t; -#define SAE_ASSOCID_ANY 0 -#define SAE_ASSOCID_ALL ((sae_associd_t)(-1ULL)) - -typedef __uint32_t sae_connid_t; -#define SAE_CONNID_ANY 0 -#define SAE_CONNID_ALL ((sae_connid_t)(-1ULL)) - -/* connectx() flag parameters */ -#define CONNECT_RESUME_ON_READ_WRITE 0x1 /* resume connect() on read/write */ -#define CONNECT_DATA_IDEMPOTENT 0x2 /* data is idempotent */ -#define CONNECT_DATA_AUTHENTICATED 0x4 /* data includes security that replaces the TFO-cookie */ - -/* sockaddr endpoints */ -typedef struct sa_endpoints { - unsigned int sae_srcif; /* optional source interface */ - const struct sockaddr *sae_srcaddr; /* optional source address */ - socklen_t sae_srcaddrlen; /* size of source address */ - const struct sockaddr *sae_dstaddr; /* destination address */ - socklen_t sae_dstaddrlen; /* size of destination address */ -} sa_endpoints_t; -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* - * Structure used for manipulating linger option. - */ -struct linger { - int l_onoff; /* option on/off */ - int l_linger; /* linger time */ -}; - -#ifndef __APPLE__ -struct accept_filter_arg { - char af_name[16]; - char af_arg[256 - 16]; -}; -#endif - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#ifdef __APPLE__ - -/* - * Structure to control non-portable Sockets extension to POSIX - */ -struct so_np_extensions { - u_int32_t npx_flags; - u_int32_t npx_mask; -}; - -#define SONPX_SETOPTSHUT 0x000000001 /* flag for allowing setsockopt after shutdown */ - - - -#endif -#endif - -/* - * Level number for (get/set)sockopt() to apply to socket itself. - */ -#define SOL_SOCKET 0xffff /* options for socket level */ - - -/* - * Address families. - */ -#define AF_UNSPEC 0 /* unspecified */ -#define AF_UNIX 1 /* local to host (pipes) */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define AF_LOCAL AF_UNIX /* backward compatibility */ -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -#define AF_INET 2 /* internetwork: UDP, TCP, etc. */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define AF_IMPLINK 3 /* arpanet imp addresses */ -#define AF_PUP 4 /* pup protocols: e.g. BSP */ -#define AF_CHAOS 5 /* mit CHAOS protocols */ -#define AF_NS 6 /* XEROX NS protocols */ -#define AF_ISO 7 /* ISO protocols */ -#define AF_OSI AF_ISO -#define AF_ECMA 8 /* European computer manufacturers */ -#define AF_DATAKIT 9 /* datakit protocols */ -#define AF_CCITT 10 /* CCITT protocols, X.25 etc */ -#define AF_SNA 11 /* IBM SNA */ -#define AF_DECnet 12 /* DECnet */ -#define AF_DLI 13 /* DEC Direct data link interface */ -#define AF_LAT 14 /* LAT */ -#define AF_HYLINK 15 /* NSC Hyperchannel */ -#define AF_APPLETALK 16 /* Apple Talk */ -#define AF_ROUTE 17 /* Internal Routing Protocol */ -#define AF_LINK 18 /* Link layer interface */ -#define pseudo_AF_XTP 19 /* eXpress Transfer Protocol (no AF) */ -#define AF_COIP 20 /* connection-oriented IP, aka ST II */ -#define AF_CNT 21 /* Computer Network Technology */ -#define pseudo_AF_RTIP 22 /* Help Identify RTIP packets */ -#define AF_IPX 23 /* Novell Internet Protocol */ -#define AF_SIP 24 /* Simple Internet Protocol */ -#define pseudo_AF_PIP 25 /* Help Identify PIP packets */ -#define AF_NDRV 27 /* Network Driver 'raw' access */ -#define AF_ISDN 28 /* Integrated Services Digital Network */ -#define AF_E164 AF_ISDN /* CCITT E.164 recommendation */ -#define pseudo_AF_KEY 29 /* Internal key-management function */ -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -#define AF_INET6 30 /* IPv6 */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define AF_NATM 31 /* native ATM access */ -#define AF_SYSTEM 32 /* Kernel event messages */ -#define AF_NETBIOS 33 /* NetBIOS */ -#define AF_PPP 34 /* PPP communication protocol */ -#define pseudo_AF_HDRCMPLT 35 /* Used by BPF to not rewrite headers - * in interface output routine */ -#define AF_RESERVED_36 36 /* Reserved for internal usage */ -#define AF_IEEE80211 37 /* IEEE 802.11 protocol */ -#define AF_UTUN 38 -#define AF_MAX 40 -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* - * [XSI] Structure used by kernel to store most addresses. - */ -struct sockaddr { - __uint8_t sa_len; /* total length */ - sa_family_t sa_family; /* [XSI] address family */ - char sa_data[14]; /* [XSI] addr value (actually larger) */ -}; - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define SOCK_MAXADDRLEN 255 /* longest possible addresses */ - -/* - * Structure used by kernel to pass protocol - * information in raw sockets. - */ -struct sockproto { - __uint16_t sp_family; /* address family */ - __uint16_t sp_protocol; /* protocol */ -}; -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* - * RFC 2553: protocol-independent placeholder for socket addresses - */ -#define _SS_MAXSIZE 128 -#define _SS_ALIGNSIZE (sizeof(__int64_t)) -#define _SS_PAD1SIZE \ - (_SS_ALIGNSIZE - sizeof(__uint8_t) - sizeof(sa_family_t)) -#define _SS_PAD2SIZE \ - (_SS_MAXSIZE - sizeof(__uint8_t) - sizeof(sa_family_t) - \ - _SS_PAD1SIZE - _SS_ALIGNSIZE) - -/* - * [XSI] sockaddr_storage - */ -struct sockaddr_storage { - __uint8_t ss_len; /* address length */ - sa_family_t ss_family; /* [XSI] address family */ - char __ss_pad1[_SS_PAD1SIZE]; - __int64_t __ss_align; /* force structure storage alignment */ - char __ss_pad2[_SS_PAD2SIZE]; -}; - -/* - * Protocol families, same as address families for now. - */ -#define PF_UNSPEC AF_UNSPEC -#define PF_LOCAL AF_LOCAL -#define PF_UNIX PF_LOCAL /* backward compatibility */ -#define PF_INET AF_INET -#define PF_IMPLINK AF_IMPLINK -#define PF_PUP AF_PUP -#define PF_CHAOS AF_CHAOS -#define PF_NS AF_NS -#define PF_ISO AF_ISO -#define PF_OSI AF_ISO -#define PF_ECMA AF_ECMA -#define PF_DATAKIT AF_DATAKIT -#define PF_CCITT AF_CCITT -#define PF_SNA AF_SNA -#define PF_DECnet AF_DECnet -#define PF_DLI AF_DLI -#define PF_LAT AF_LAT -#define PF_HYLINK AF_HYLINK -#define PF_APPLETALK AF_APPLETALK -#define PF_ROUTE AF_ROUTE -#define PF_LINK AF_LINK -#define PF_XTP pseudo_AF_XTP /* really just proto family, no AF */ -#define PF_COIP AF_COIP -#define PF_CNT AF_CNT -#define PF_SIP AF_SIP -#define PF_IPX AF_IPX /* same format as AF_NS */ -#define PF_RTIP pseudo_AF_RTIP /* same format as AF_INET */ -#define PF_PIP pseudo_AF_PIP -#define PF_NDRV AF_NDRV -#define PF_ISDN AF_ISDN -#define PF_KEY pseudo_AF_KEY -#define PF_INET6 AF_INET6 -#define PF_NATM AF_NATM -#define PF_SYSTEM AF_SYSTEM -#define PF_NETBIOS AF_NETBIOS -#define PF_PPP AF_PPP -#define PF_RESERVED_36 AF_RESERVED_36 -#define PF_UTUN AF_UTUN -#define PF_MAX AF_MAX - -/* - * These do not have socket-layer support: - */ -#define PF_VLAN ((uint32_t)0x766c616e) /* 'vlan' */ -#define PF_BOND ((uint32_t)0x626f6e64) /* 'bond' */ - -/* - * Definitions for network related sysctl, CTL_NET. - * - * Second level is protocol family. - * Third level is protocol number. - * - * Further levels are defined by the individual families below. - */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define NET_MAXID AF_MAX -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ - - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* - * PF_ROUTE - Routing table - * - * Three additional levels are defined: - * Fourth: address family, 0 is wildcard - * Fifth: type of info, defined below - * Sixth: flag(s) to mask with for NET_RT_FLAGS - */ -#define NET_RT_DUMP 1 /* dump; may limit to a.f. */ -#define NET_RT_FLAGS 2 /* by flags, e.g. RESOLVING */ -#define NET_RT_IFLIST 3 /* survey interface list */ -#define NET_RT_STAT 4 /* routing statistics */ -#define NET_RT_TRASH 5 /* routes not in table but not freed */ -#define NET_RT_IFLIST2 6 /* interface list with addresses */ -#define NET_RT_DUMP2 7 /* dump; may limit to a.f. */ -/* - * Allows read access non-local host's MAC address - * if the process has neighbor cache entitlement. - */ -#define NET_RT_FLAGS_PRIV 10 -#define NET_RT_MAXID 11 -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ - - - - -/* - * Maximum queue length specifiable by listen. - */ -#define SOMAXCONN 128 - -/* - * [XSI] Message header for recvmsg and sendmsg calls. - * Used value-result for recvmsg, value only for sendmsg. - */ -struct msghdr { - void *msg_name; /* [XSI] optional address */ - socklen_t msg_namelen; /* [XSI] size of address */ - struct iovec *msg_iov; /* [XSI] scatter/gather array */ - int msg_iovlen; /* [XSI] # elements in msg_iov */ - void *msg_control; /* [XSI] ancillary data, see below */ - socklen_t msg_controllen; /* [XSI] ancillary data buffer len */ - int msg_flags; /* [XSI] flags on received message */ -}; - - - -#define MSG_OOB 0x1 /* process out-of-band data */ -#define MSG_PEEK 0x2 /* peek at incoming message */ -#define MSG_DONTROUTE 0x4 /* send without using routing tables */ -#define MSG_EOR 0x8 /* data completes record */ -#define MSG_TRUNC 0x10 /* data discarded before delivery */ -#define MSG_CTRUNC 0x20 /* control data lost before delivery */ -#define MSG_WAITALL 0x40 /* wait for full request or error */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define MSG_DONTWAIT 0x80 /* this message should be nonblocking */ -#define MSG_EOF 0x100 /* data completes connection */ -#ifdef __APPLE__ -#ifdef __APPLE_API_OBSOLETE -#define MSG_WAITSTREAM 0x200 /* wait up to full request.. may return partial */ -#endif -#define MSG_FLUSH 0x400 /* Start of 'hold' seq; dump so_temp, deprecated */ -#define MSG_HOLD 0x800 /* Hold frag in so_temp, deprecated */ -#define MSG_SEND 0x1000 /* Send the packet in so_temp, deprecated */ -#define MSG_HAVEMORE 0x2000 /* Data ready to be read */ -#define MSG_RCVMORE 0x4000 /* Data remains in current pkt */ -#endif -#define MSG_NEEDSA 0x10000 /* Fail receive if socket address cannot be allocated */ -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* - * Header for ancillary data objects in msg_control buffer. - * Used for additional information with/about a datagram - * not expressible by flags. The format is a sequence - * of message elements headed by cmsghdr structures. - */ -struct cmsghdr { - socklen_t cmsg_len; /* [XSI] data byte count, including hdr */ - int cmsg_level; /* [XSI] originating protocol */ - int cmsg_type; /* [XSI] protocol-specific type */ -/* followed by unsigned char cmsg_data[]; */ -}; - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#ifndef __APPLE__ -/* - * While we may have more groups than this, the cmsgcred struct must - * be able to fit in an mbuf, and NGROUPS_MAX is too large to allow - * this. - */ -#define CMGROUP_MAX 16 - -/* - * Credentials structure, used to verify the identity of a peer - * process that has sent us a message. This is allocated by the - * peer process but filled in by the kernel. This prevents the - * peer from lying about its identity. (Note that cmcred_groups[0] - * is the effective GID.) - */ -struct cmsgcred { - pid_t cmcred_pid; /* PID of sending process */ - uid_t cmcred_uid; /* real UID of sending process */ - uid_t cmcred_euid; /* effective UID of sending process */ - gid_t cmcred_gid; /* real GID of sending process */ - short cmcred_ngroups; /* number or groups */ - gid_t cmcred_groups[CMGROUP_MAX]; /* groups */ -}; -#endif -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* given pointer to struct cmsghdr, return pointer to data */ -#define CMSG_DATA(cmsg) ((unsigned char *)(cmsg) + \ - __DARWIN_ALIGN32(sizeof(struct cmsghdr))) - -/* - * RFC 2292 requires to check msg_controllen, in case that the kernel returns - * an empty list for some reasons. - */ -#define CMSG_FIRSTHDR(mhdr) \ - ((mhdr)->msg_controllen >= sizeof(struct cmsghdr) ? \ - (struct cmsghdr *)(mhdr)->msg_control : \ - (struct cmsghdr *)0L) - - -/* - * Given pointer to struct cmsghdr, return pointer to next cmsghdr - * RFC 2292 says that CMSG_NXTHDR(mhdr, NULL) is equivalent to CMSG_FIRSTHDR(mhdr) - */ -#define CMSG_NXTHDR(mhdr, cmsg) \ - ((char *)(cmsg) == (char *)0L ? CMSG_FIRSTHDR(mhdr) : \ - ((((unsigned char *)(cmsg) + \ - __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len) + \ - __DARWIN_ALIGN32(sizeof(struct cmsghdr))) > \ - ((unsigned char *)(mhdr)->msg_control + \ - (mhdr)->msg_controllen)) ? \ - (struct cmsghdr *)0L /* NULL */ : \ - (struct cmsghdr *)(void *)((unsigned char *)(cmsg) + \ - __DARWIN_ALIGN32((__uint32_t)(cmsg)->cmsg_len)))) - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* RFC 2292 additions */ -#define CMSG_SPACE(l) (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + __DARWIN_ALIGN32(l)) -#define CMSG_LEN(l) (__DARWIN_ALIGN32(sizeof(struct cmsghdr)) + (l)) - -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* "Socket"-level control message types: */ -#define SCM_RIGHTS 0x01 /* access rights (array of int) */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define SCM_TIMESTAMP 0x02 /* timestamp (struct timeval) */ -#define SCM_CREDS 0x03 /* process creds (struct cmsgcred) */ -#define SCM_TIMESTAMP_MONOTONIC 0x04 /* timestamp (uint64_t) */ - - -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* - * howto arguments for shutdown(2), specified by Posix.1g. - */ -#define SHUT_RD 0 /* shut down the reading side */ -#define SHUT_WR 1 /* shut down the writing side */ -#define SHUT_RDWR 2 /* shut down both sides */ - -#if !defined(_POSIX_C_SOURCE) -/* - * sendfile(2) header/trailer struct - */ -struct sf_hdtr { - struct iovec *headers; /* pointer to an array of header struct iovec's */ - int hdr_cnt; /* number of header iovec's */ - struct iovec *trailers; /* pointer to an array of trailer struct iovec's */ - int trl_cnt; /* number of trailer iovec's */ -}; - - -#endif /* !_POSIX_C_SOURCE */ - - -__BEGIN_DECLS - -int accept(int, struct sockaddr * __restrict, socklen_t * __restrict) -__DARWIN_ALIAS_C(accept); -int bind(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS(bind); -int connect(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(connect); -int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict) -__DARWIN_ALIAS(getpeername); -int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict) -__DARWIN_ALIAS(getsockname); -int getsockopt(int, int, int, void * __restrict, socklen_t * __restrict); -int listen(int, int) __DARWIN_ALIAS(listen); -ssize_t recv(int, void *, size_t, int) __DARWIN_ALIAS_C(recv); -ssize_t recvfrom(int, void *, size_t, int, struct sockaddr * __restrict, - socklen_t * __restrict) __DARWIN_ALIAS_C(recvfrom); -ssize_t recvmsg(int, struct msghdr *, int) __DARWIN_ALIAS_C(recvmsg); -ssize_t send(int, const void *, size_t, int) __DARWIN_ALIAS_C(send); -ssize_t sendmsg(int, const struct msghdr *, int) __DARWIN_ALIAS_C(sendmsg); -ssize_t sendto(int, const void *, size_t, - int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(sendto); -int setsockopt(int, int, int, const void *, socklen_t); -int shutdown(int, int); -int sockatmark(int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); -int socket(int, int, int); -int socketpair(int, int, int, int *) __DARWIN_ALIAS(socketpair); - -#if !defined(_POSIX_C_SOURCE) -int sendfile(int, int, off_t, off_t *, struct sf_hdtr *, int); -#endif /* !_POSIX_C_SOURCE */ - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -void pfctlinput(int, struct sockaddr *); - -__API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0)) -int connectx(int, const sa_endpoints_t *, sae_associd_t, unsigned int, - const struct iovec *, unsigned int, size_t *, sae_connid_t *); - -__API_AVAILABLE(macosx(10.11), ios(9.0), tvos(9.0), watchos(2.0)) -int disconnectx(int, sae_associd_t, sae_connid_t); -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ -__END_DECLS - - -#endif /* !_SYS_SOCKET_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/sockio.h b/lib/libc/include/x86_64-macos.10-none/sys/sockio.h deleted file mode 100644 index c18d55b522b38e73f16d9ee7395856065d263c53..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/sockio.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright (c) 2000-2019 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@ - */ -/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ -/*- - * Copyright (c) 1982, 1986, 1990, 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. - * - * @(#)sockio.h 8.1 (Berkeley) 3/28/94 - */ - -#ifndef _SYS_SOCKIO_H_ -#define _SYS_SOCKIO_H_ - -#include - -#include - -/* Socket ioctl's. */ -#define SIOCSHIWAT _IOW('s', 0, int) /* set high watermark */ -#define SIOCGHIWAT _IOR('s', 1, int) /* get high watermark */ -#define SIOCSLOWAT _IOW('s', 2, int) /* set low watermark */ -#define SIOCGLOWAT _IOR('s', 3, int) /* get low watermark */ -#define SIOCATMARK _IOR('s', 7, int) /* at oob mark? */ -#define SIOCSPGRP _IOW('s', 8, int) /* set process group */ -#define SIOCGPGRP _IOR('s', 9, int) /* get process group */ - -/* - * OSIOCGIF* ioctls are deprecated; they are kept for binary compatibility. - */ -#define SIOCSIFADDR _IOW('i', 12, struct ifreq) /* set ifnet address */ -#define SIOCSIFDSTADDR _IOW('i', 14, struct ifreq) /* set p-p address */ -#define SIOCSIFFLAGS _IOW('i', 16, struct ifreq) /* set ifnet flags */ -#define SIOCGIFFLAGS _IOWR('i', 17, struct ifreq) /* get ifnet flags */ -#define SIOCSIFBRDADDR _IOW('i', 19, struct ifreq) /* set broadcast addr */ -#define SIOCSIFNETMASK _IOW('i', 22, struct ifreq) /* set net addr mask */ -#define SIOCGIFMETRIC _IOWR('i', 23, struct ifreq) /* get IF metric */ -#define SIOCSIFMETRIC _IOW('i', 24, struct ifreq) /* set IF metric */ -#define SIOCDIFADDR _IOW('i', 25, struct ifreq) /* delete IF addr */ -#define SIOCAIFADDR _IOW('i', 26, struct ifaliasreq)/* add/chg IF alias */ - -#define SIOCGIFADDR _IOWR('i', 33, struct ifreq) /* get ifnet address */ -#define SIOCGIFDSTADDR _IOWR('i', 34, struct ifreq) /* get p-p address */ -#define SIOCGIFBRDADDR _IOWR('i', 35, struct ifreq) /* get broadcast addr */ -#define SIOCGIFCONF _IOWR('i', 36, struct ifconf) /* get ifnet list */ -#define SIOCGIFNETMASK _IOWR('i', 37, struct ifreq) /* get net addr mask */ -#define SIOCAUTOADDR _IOWR('i', 38, struct ifreq) /* autoconf address */ -#define SIOCAUTONETMASK _IOW('i', 39, struct ifreq) /* autoconf netmask */ -#define SIOCARPIPLL _IOWR('i', 40, struct ifreq) /* arp for IPv4LL address */ - -#define SIOCADDMULTI _IOW('i', 49, struct ifreq) /* add m'cast addr */ -#define SIOCDELMULTI _IOW('i', 50, struct ifreq) /* del m'cast addr */ -#define SIOCGIFMTU _IOWR('i', 51, struct ifreq) /* get IF mtu */ -#define SIOCSIFMTU _IOW('i', 52, struct ifreq) /* set IF mtu */ -#define SIOCGIFPHYS _IOWR('i', 53, struct ifreq) /* get IF wire */ -#define SIOCSIFPHYS _IOW('i', 54, struct ifreq) /* set IF wire */ -#define SIOCSIFMEDIA _IOWR('i', 55, struct ifreq) /* set net media */ - -/* - * The command SIOCGIFMEDIA does not allow a process to access the extended - * media subtype and extended subtype values are returned as IFM_OTHER. - */ -#define SIOCGIFMEDIA _IOWR('i', 56, struct ifmediareq) /* get compatible net media */ - -#define SIOCSIFGENERIC _IOW('i', 57, struct ifreq) /* generic IF set op */ -#define SIOCGIFGENERIC _IOWR('i', 58, struct ifreq) /* generic IF get op */ -#define SIOCRSLVMULTI _IOWR('i', 59, struct rslvmulti_req) - -#define SIOCSIFLLADDR _IOW('i', 60, struct ifreq) /* set link level addr */ -#define SIOCGIFSTATUS _IOWR('i', 61, struct ifstat) /* get IF status */ -#define SIOCSIFPHYADDR _IOW('i', 62, struct ifaliasreq) /* set gif addres */ -#define SIOCGIFPSRCADDR _IOWR('i', 63, struct ifreq) /* get gif psrc addr */ -#define SIOCGIFPDSTADDR _IOWR('i', 64, struct ifreq) /* get gif pdst addr */ -#define SIOCDIFPHYADDR _IOW('i', 65, struct ifreq) /* delete gif addrs */ - -#define SIOCGIFDEVMTU _IOWR('i', 68, struct ifreq) /* get if ifdevmtu */ -#define SIOCSIFALTMTU _IOW('i', 69, struct ifreq) /* set if alternate mtu */ -#define SIOCGIFALTMTU _IOWR('i', 72, struct ifreq) /* get if alternate mtu */ -#define SIOCSIFBOND _IOW('i', 70, struct ifreq) /* set bond if config */ -#define SIOCGIFBOND _IOWR('i', 71, struct ifreq) /* get bond if config */ - -/* - * The command SIOCGIFXMEDIA is meant to be used by processes only to be able - * to access the extended media subtypes with the extended IFM_TMASK. - * - * An ifnet must not implement SIOCGIFXMEDIA as it gets the extended - * media subtypes by simply compiling with - */ -#define SIOCGIFXMEDIA _IOWR('i', 72, struct ifmediareq) /* get net extended media */ - - -#define SIOCSIFCAP _IOW('i', 90, struct ifreq) /* set IF features */ -#define SIOCGIFCAP _IOWR('i', 91, struct ifreq) /* get IF features */ - -#define SIOCIFCREATE _IOWR('i', 120, struct ifreq) /* create clone if */ -#define SIOCIFDESTROY _IOW('i', 121, struct ifreq) /* destroy clone if */ -#define SIOCIFCREATE2 _IOWR('i', 122, struct ifreq) /* create clone if with data */ - -#define SIOCSDRVSPEC _IOW('i', 123, struct ifdrv) /* set driver-specific - * parameters */ -#define SIOCGDRVSPEC _IOWR('i', 123, struct ifdrv) /* get driver-specific - * parameters */ -#define SIOCSIFVLAN _IOW('i', 126, struct ifreq) /* set VLAN config */ -#define SIOCGIFVLAN _IOWR('i', 127, struct ifreq) /* get VLAN config */ -#define SIOCSETVLAN SIOCSIFVLAN -#define SIOCGETVLAN SIOCGIFVLAN - -#define SIOCIFGCLONERS _IOWR('i', 129, struct if_clonereq) /* get cloners */ - -#define SIOCGIFASYNCMAP _IOWR('i', 124, struct ifreq) /* get ppp asyncmap */ -#define SIOCSIFASYNCMAP _IOW('i', 125, struct ifreq) /* set ppp asyncmap */ - - - -#define SIOCGIFMAC _IOWR('i', 130, struct ifreq) /* get IF MAC label */ -#define SIOCSIFMAC _IOW('i', 131, struct ifreq) /* set IF MAC label */ -#define SIOCSIFKPI _IOW('i', 134, struct ifreq) /* set interface kext param - root only */ -#define SIOCGIFKPI _IOWR('i', 135, struct ifreq) /* get interface kext param */ - -#define SIOCGIFWAKEFLAGS _IOWR('i', 136, struct ifreq) /* get interface wake property flags */ - -#define SIOCGIFFUNCTIONALTYPE _IOWR('i', 173, struct ifreq) /* get interface functional type */ - -#define SIOCSIF6LOWPAN _IOW('i', 196, struct ifreq) /* set 6LOWPAN config */ -#define SIOCGIF6LOWPAN _IOWR('i', 197, struct ifreq) /* get 6LOWPAN config */ - - -#endif /* !_SYS_SOCKIO_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/spawn.h b/lib/libc/include/x86_64-macos.10-none/sys/spawn.h deleted file mode 100644 index 483f017b694e33e5847661c6a3e3ef8c02322d55..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/spawn.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2006 Apple Computer, Inc. All rights reserved. - * - * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. The rights granted to you under the License - * may not be used to create, or enable the creation or redistribution of, - * unlawful or unlicensed copies of an Apple operating system, or to - * circumvent, violate, or enable the circumvention or violation of, any - * terms of an Apple operating system software license agreement. - * - * Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - */ - -/* - * [SPN] Support for _POSIX_SPAWN - * - * This header contains information that is shared between the user space - * and kernel versions of the posix_spawn() code. Shared elements are all - * manifest constants, at the current time. - */ - -#ifndef _SYS_SPAWN_H_ -#define _SYS_SPAWN_H_ - -/* - * Possible bit values which may be OR'ed together and provided as the second - * parameter to posix_spawnattr_setflags() or implicit returned in the value of - * the second parameter to posix_spawnattr_getflags(). - */ -#define POSIX_SPAWN_RESETIDS 0x0001 /* [SPN] R[UG]ID not E[UG]ID */ -#define POSIX_SPAWN_SETPGROUP 0x0002 /* [SPN] set non-parent PGID */ -#define POSIX_SPAWN_SETSIGDEF 0x0004 /* [SPN] reset sigset default */ -#define POSIX_SPAWN_SETSIGMASK 0x0008 /* [SPN] set signal mask */ - -#if 0 /* _POSIX_PRIORITY_SCHEDULING [PS] : not supported */ -#define POSIX_SPAWN_SETSCHEDPARAM 0x0010 -#define POSIX_SPAWN_SETSCHEDULER 0x0020 -#endif /* 0 */ - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* - * Darwin-specific flags - */ -#define POSIX_SPAWN_SETEXEC 0x0040 -#define POSIX_SPAWN_START_SUSPENDED 0x0080 -#define POSIX_SPAWN_SETSID 0x0400 -#define POSIX_SPAWN_CLOEXEC_DEFAULT 0x4000 - -/* - * Possible values to be set for the process control actions on resource starvation. - * POSIX_SPAWN_PCONTROL_THROTTLE indicates that the process is to be throttled on starvation. - * POSIX_SPAWN_PCONTROL_SUSPEND indicates that the process is to be suspended on starvation. - * POSIX_SPAWN_PCONTROL_KILL indicates that the process is to be terminated on starvation. - */ -#define POSIX_SPAWN_PCONTROL_NONE 0x0000 -#define POSIX_SPAWN_PCONTROL_THROTTLE 0x0001 -#define POSIX_SPAWN_PCONTROL_SUSPEND 0x0002 -#define POSIX_SPAWN_PCONTROL_KILL 0x0003 - -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -#endif /* _SYS_SPAWN_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/stat.h b/lib/libc/include/x86_64-macos.10-none/sys/stat.h deleted file mode 100644 index 7f2a490ee1d23e7124b5d177ce5d858480cbcfb1..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/stat.h +++ /dev/null @@ -1,430 +0,0 @@ -/* - * Copyright (c) 2000-2014 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@ - */ -/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ -/*- - * Copyright (c) 1982, 1986, 1989, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * 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. - * - * @(#)stat.h 8.9 (Berkeley) 8/17/94 - */ - - -#ifndef _SYS_STAT_H_ -#define _SYS_STAT_H_ - -#include -#include -#include - -/* [XSI] The timespec structure may be defined as described in */ -#include - -/* - * [XSI] The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t, - * gid_t, off_t, and time_t types shall be defined as described in - * . - */ -#include -#include -#include /* device number */ -#include - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#include -#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */ - -#include -#include -#include -#include -#include -#include - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* - * XXX So deprecated, it would make your head spin - * - * The old stat structure. In fact, this is not used by the kernel at all, - * and should not be used by user space, and should be removed from this - * header file entirely (along with the unused cvtstat() prototype in - * vnode_internal.h). - */ -struct ostat { - __uint16_t st_dev; /* inode's device */ - ino_t st_ino; /* inode's number */ - mode_t st_mode; /* inode protection mode */ - nlink_t st_nlink; /* number of hard links */ - __uint16_t st_uid; /* user ID of the file's owner */ - __uint16_t st_gid; /* group ID of the file's group */ - __uint16_t st_rdev; /* device type */ - __int32_t st_size; /* file size, in bytes */ - struct timespec st_atimespec; /* time of last access */ - struct timespec st_mtimespec; /* time of last data modification */ - struct timespec st_ctimespec; /* time of last file status change */ - __int32_t st_blksize; /* optimal blocksize for I/O */ - __int32_t st_blocks; /* blocks allocated for file */ - __uint32_t st_flags; /* user defined flags for file */ - __uint32_t st_gen; /* file generation number */ -}; - -#define __DARWIN_STRUCT_STAT64_TIMES \ - struct timespec st_atimespec; /* time of last access */ \ - struct timespec st_mtimespec; /* time of last data modification */ \ - struct timespec st_ctimespec; /* time of last status change */ \ - struct timespec st_birthtimespec; /* time of file creation(birth) */ - -#else /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ - -#define __DARWIN_STRUCT_STAT64_TIMES \ - time_t st_atime; /* [XSI] Time of last access */ \ - long st_atimensec; /* nsec of last access */ \ - time_t st_mtime; /* [XSI] Last data modification time */ \ - long st_mtimensec; /* last data modification nsec */ \ - time_t st_ctime; /* [XSI] Time of last status change */ \ - long st_ctimensec; /* nsec of last status change */ \ - time_t st_birthtime; /* File creation time(birth) */ \ - long st_birthtimensec; /* nsec of File creation time */ - -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* - * This structure is used as the second parameter to the fstat64(), - * lstat64(), and stat64() functions, and for struct stat when - * __DARWIN_64_BIT_INO_T is set. __DARWIN_STRUCT_STAT64 is defined - * above, depending on whether we use struct timespec or the direct - * components. - * - * This is simillar to stat except for 64bit inode number - * number instead of 32bit ino_t and the addition of create(birth) time. - */ -#define __DARWIN_STRUCT_STAT64 { \ - dev_t st_dev; /* [XSI] ID of device containing file */ \ - mode_t st_mode; /* [XSI] Mode of file (see below) */ \ - nlink_t st_nlink; /* [XSI] Number of hard links */ \ - __darwin_ino64_t st_ino; /* [XSI] File serial number */ \ - uid_t st_uid; /* [XSI] User ID of the file */ \ - gid_t st_gid; /* [XSI] Group ID of the file */ \ - dev_t st_rdev; /* [XSI] Device ID */ \ - __DARWIN_STRUCT_STAT64_TIMES \ - off_t st_size; /* [XSI] file size, in bytes */ \ - blkcnt_t st_blocks; /* [XSI] blocks allocated for file */ \ - blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */ \ - __uint32_t st_flags; /* user defined flags for file */ \ - __uint32_t st_gen; /* file generation number */ \ - __int32_t st_lspare; /* RESERVED: DO NOT USE! */ \ - __int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */ \ -} - -/* - * [XSI] This structure is used as the second parameter to the fstat(), - * lstat(), and stat() functions. - */ -#if __DARWIN_64_BIT_INO_T - -struct stat __DARWIN_STRUCT_STAT64; - -#else /* !__DARWIN_64_BIT_INO_T */ - -struct stat { - dev_t st_dev; /* [XSI] ID of device containing file */ - ino_t st_ino; /* [XSI] File serial number */ - mode_t st_mode; /* [XSI] Mode of file (see below) */ - nlink_t st_nlink; /* [XSI] Number of hard links */ - uid_t st_uid; /* [XSI] User ID of the file */ - gid_t st_gid; /* [XSI] Group ID of the file */ - dev_t st_rdev; /* [XSI] Device ID */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) - struct timespec st_atimespec; /* time of last access */ - struct timespec st_mtimespec; /* time of last data modification */ - struct timespec st_ctimespec; /* time of last status change */ -#else - time_t st_atime; /* [XSI] Time of last access */ - long st_atimensec; /* nsec of last access */ - time_t st_mtime; /* [XSI] Last data modification time */ - long st_mtimensec; /* last data modification nsec */ - time_t st_ctime; /* [XSI] Time of last status change */ - long st_ctimensec; /* nsec of last status change */ -#endif - off_t st_size; /* [XSI] file size, in bytes */ - blkcnt_t st_blocks; /* [XSI] blocks allocated for file */ - blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */ - __uint32_t st_flags; /* user defined flags for file */ - __uint32_t st_gen; /* file generation number */ - __int32_t st_lspare; /* RESERVED: DO NOT USE! */ - __int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */ -}; - -#endif /* __DARWIN_64_BIT_INO_T */ - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) - -#if !__DARWIN_ONLY_64_BIT_INO_T - -struct stat64 __DARWIN_STRUCT_STAT64; - -#endif /* !__DARWIN_ONLY_64_BIT_INO_T */ - -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - - - - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define st_atime st_atimespec.tv_sec -#define st_mtime st_mtimespec.tv_sec -#define st_ctime st_ctimespec.tv_sec -#define st_birthtime st_birthtimespec.tv_sec -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -/* - * [XSI] The following are symbolic names for the values of type mode_t. They - * are bitmap values. - */ -#include - -/* - * [XSI] The following macros shall be provided to test whether a file is - * of the specified type. The value m supplied to the macros is the value - * of st_mode from a stat structure. The macro shall evaluate to a non-zero - * value if the test is true; 0 if the test is false. - */ -#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) /* block special */ -#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) /* char special */ -#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) /* directory */ -#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) /* fifo or socket */ -#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) /* regular file */ -#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) /* symbolic link */ -#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) /* socket */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define S_ISWHT(m) (((m) & S_IFMT) == S_IFWHT) /* OBSOLETE: whiteout */ -#endif - -/* - * [XSI] The implementation may implement message queues, semaphores, or - * shared memory objects as distinct file types. The following macros - * shall be provided to test whether a file is of the specified type. - * The value of the buf argument supplied to the macros is a pointer to - * a stat structure. The macro shall evaluate to a non-zero value if - * the specified object is implemented as a distinct file type and the - * specified file type is contained in the stat structure referenced by - * buf. Otherwise, the macro shall evaluate to zero. - * - * NOTE: The current implementation does not do this, although - * this may change in future revisions, and co currently only - * provides these macros to ensure source compatability with - * implementations which do. - */ -#define S_TYPEISMQ(buf) (0) /* Test for a message queue */ -#define S_TYPEISSEM(buf) (0) /* Test for a semaphore */ -#define S_TYPEISSHM(buf) (0) /* Test for a shared memory object */ - -/* - * [TYM] The implementation may implement typed memory objects as distinct - * file types, and the following macro shall test whether a file is of the - * specified type. The value of the buf argument supplied to the macros is - * a pointer to a stat structure. The macro shall evaluate to a non-zero - * value if the specified object is implemented as a distinct file type and - * the specified file type is contained in the stat structure referenced by - * buf. Otherwise, the macro shall evaluate to zero. - * - * NOTE: The current implementation does not do this, although - * this may change in future revisions, and co currently only - * provides this macro to ensure source compatability with - * implementations which do. - */ -#define S_TYPEISTMO(buf) (0) /* Test for a typed memory object */ - - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ - /* 7777 */ -#define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO) -/* 0666 */ -#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) - -#define S_BLKSIZE 512 /* block size used in the stat struct */ - -/* - * Definitions of flags stored in file flags word. - * - * Super-user and owner changeable flags. - */ -#define UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */ -#define UF_NODUMP 0x00000001 /* do not dump file */ -#define UF_IMMUTABLE 0x00000002 /* file may not be changed */ -#define UF_APPEND 0x00000004 /* writes to file may only append */ -#define UF_OPAQUE 0x00000008 /* directory is opaque wrt. union */ -/* - * The following bit is reserved for FreeBSD. It is not implemented - * in Mac OS X. - */ -/* #define UF_NOUNLINK 0x00000010 */ /* file may not be removed or renamed */ -#define UF_COMPRESSED 0x00000020 /* file is compressed (some file-systems) */ - -/* UF_TRACKED is used for dealing with document IDs. We no longer issue - * notifications for deletes or renames for files which have UF_TRACKED set. */ -#define UF_TRACKED 0x00000040 - -#define UF_DATAVAULT 0x00000080 /* entitlement required for reading */ - /* and writing */ - -/* Bits 0x0100 through 0x4000 are currently undefined. */ -#define UF_HIDDEN 0x00008000 /* hint that this item should not be */ - /* displayed in a GUI */ -/* - * Super-user changeable flags. - */ -#define SF_SUPPORTED 0x009f0000 /* mask of superuser supported flags */ -#define SF_SETTABLE 0x3fff0000 /* mask of superuser changeable flags */ -#define SF_SYNTHETIC 0xc0000000 /* mask of system read-only synthetic flags */ -#define SF_ARCHIVED 0x00010000 /* file is archived */ -#define SF_IMMUTABLE 0x00020000 /* file may not be changed */ -#define SF_APPEND 0x00040000 /* writes to file may only append */ -#define SF_RESTRICTED 0x00080000 /* entitlement required for writing */ -#define SF_NOUNLINK 0x00100000 /* Item may not be removed, renamed or mounted on */ - -/* - * The following two bits are reserved for FreeBSD. They are not - * implemented in Mac OS X. - */ -/* #define SF_SNAPSHOT 0x00200000 */ /* snapshot inode */ -/* NOTE: There is no SF_HIDDEN bit. */ - -#define SF_FIRMLINK 0x00800000 /* file is a firmlink */ - -/* - * Synthetic flags. - * - * These are read-only. We keep them out of SF_SUPPORTED so that - * attempts to set them will fail. - */ -#define SF_DATALESS 0x40000000 /* file is dataless object */ - - -#endif - -/* - * Extended flags ("EF") returned by ATTR_CMNEXT_EXT_FLAGS from getattrlist/getattrlistbulk - */ -#define EF_MAY_SHARE_BLOCKS 0x00000001 /* file may share blocks with another file */ -#define EF_NO_XATTRS 0x00000002 /* file has no xattrs at all */ -#define EF_IS_SYNC_ROOT 0x00000004 /* file is a sync root for iCloud */ -#define EF_IS_PURGEABLE 0x00000008 /* file is purgeable */ -#define EF_IS_SPARSE 0x00000010 /* file has at least one sparse region */ - - - - -__BEGIN_DECLS -/* [XSI] */ -int chmod(const char *, mode_t) __DARWIN_ALIAS(chmod); -int fchmod(int, mode_t) __DARWIN_ALIAS(fchmod); -int fstat(int, struct stat *) __DARWIN_INODE64(fstat); -int lstat(const char *, struct stat *) __DARWIN_INODE64(lstat); -int mkdir(const char *, mode_t); -int mkfifo(const char *, mode_t); -int stat(const char *, struct stat *) __DARWIN_INODE64(stat); -int mknod(const char *, mode_t, dev_t); -mode_t umask(mode_t); - -#if __DARWIN_C_LEVEL >= 200809L -int fchmodat(int, const char *, mode_t, int) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); -int fstatat(int, const char *, struct stat *, int) __DARWIN_INODE64(fstatat) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); -int mkdirat(int, const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); - -#define UTIME_NOW -1 -#define UTIME_OMIT -2 - -int futimens(int __fd, const struct timespec __times[2]) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0)); -int utimensat(int __fd, const char *__path, const struct timespec __times[2], - int __flag) __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0)); -#endif - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) - -#include - -int chflags(const char *, __uint32_t); -int chmodx_np(const char *, filesec_t); -int fchflags(int, __uint32_t); -int fchmodx_np(int, filesec_t); -int fstatx_np(int, struct stat *, filesec_t) __DARWIN_INODE64(fstatx_np); -int lchflags(const char *, __uint32_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); -int lchmod(const char *, mode_t) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); -int lstatx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(lstatx_np); -int mkdirx_np(const char *, filesec_t); -int mkfifox_np(const char *, filesec_t); -int statx_np(const char *, struct stat *, filesec_t) __DARWIN_INODE64(statx_np); -int umaskx_np(filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); - -#if !__DARWIN_ONLY_64_BIT_INO_T -/* The following deprecated routines are simillar to stat and friends except provide struct stat64 instead of struct stat */ -int fstatx64_np(int, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -int lstatx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -int statx64_np(const char *, struct stat64 *, filesec_t) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -int fstat64(int, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -int lstat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -int stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA); -#endif /* !__DARWIN_ONLY_64_BIT_INO_T */ -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - -__END_DECLS -#endif /* !_SYS_STAT_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/sysctl.h b/lib/libc/include/x86_64-macos.10-none/sys/sysctl.h deleted file mode 100644 index 9e3d84e04c133c5d60b243bf976120fa12985f1c..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/sysctl.h +++ /dev/null @@ -1,775 +0,0 @@ -/* - * Copyright (c) 2000-2019 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@ - */ -/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Karels at Berkeley Software Design, Inc. - * - * 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. - * - * @(#)sysctl.h 8.1 (Berkeley) 6/2/93 - */ -/* - * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce - * support for mandatory and extensible security protections. This notice - * is included in support of clause 2.2 (b) of the Apple Public License, - * Version 2.0. - */ - -#ifndef _SYS_SYSCTL_H_ -#define _SYS_SYSCTL_H_ - -/* - * These are for the eproc structure defined below. - */ -#include - -#include -#include -#include -#include -#include - - -/* - * Definitions for sysctl call. The sysctl call uses a hierarchical name - * for objects that can be examined or modified. The name is expressed as - * a sequence of integers. Like a file path name, the meaning of each - * component depends on its place in the hierarchy. The top-level and kern - * identifiers are defined here, and other identifiers are defined in the - * respective subsystem header files. - */ - -#define CTL_MAXNAME 12 /* largest number of components supported */ - -/* - * Each subsystem defined by sysctl defines a list of variables - * for that subsystem. Each name is either a node with further - * levels defined below it, or it is a leaf of some particular - * type given below. Each sysctl level defines a set of name/type - * pairs to be used by sysctl(1) in manipulating the subsystem. - * - * When declaring new sysctl names, use the CTLFLAG_LOCKED flag in the - * type to indicate that all necessary locking will be handled - * within the sysctl. - * - * Any sysctl defined without CTLFLAG_LOCKED is considered legacy - * and will be protected by a global mutex. - * - * Note: This is not optimal, so it is best to handle locking - * yourself, if you are able to do so. A simple design - * pattern for use to avoid in a single function known - * to potentially be in the paging path ot doing a DMA - * to physical memory in a user space process is: - * - * lock - * perform operation vs. local buffer - * unlock - * SYSCTL_OUT(rey, local buffer, length) - * - * ...this assumes you are not using a deep call graph - * or are unable to pass a local buffer address as a - * parameter into your deep call graph. - * - * Note that very large user buffers can fail the wire - * if to do so would require more physical pages than - * are available (the caller will get an ENOMEM error, - * see sysctl_mem_hold() for details). - */ -struct ctlname { - char *ctl_name; /* subsystem name */ - int ctl_type; /* type of name */ -}; - -#define CTLTYPE 0xf /* Mask for the type */ -#define CTLTYPE_NODE 1 /* name is a node */ -#define CTLTYPE_INT 2 /* name describes an integer */ -#define CTLTYPE_STRING 3 /* name describes a string */ -#define CTLTYPE_QUAD 4 /* name describes a 64-bit number */ -#define CTLTYPE_OPAQUE 5 /* name describes a structure */ -#define CTLTYPE_STRUCT CTLTYPE_OPAQUE /* name describes a structure */ - -#define CTLFLAG_RD 0x80000000 /* Allow reads of variable */ -#define CTLFLAG_WR 0x40000000 /* Allow writes to the variable */ -#define CTLFLAG_RW (CTLFLAG_RD|CTLFLAG_WR) -#define CTLFLAG_NOLOCK 0x20000000 /* XXX Don't Lock */ -#define CTLFLAG_ANYBODY 0x10000000 /* All users can set this var */ -#define CTLFLAG_SECURE 0x08000000 /* Permit set only if securelevel<=0 */ -#define CTLFLAG_MASKED 0x04000000 /* deprecated variable, do not display */ -#define CTLFLAG_NOAUTO 0x02000000 /* do not auto-register */ -#define CTLFLAG_KERN 0x01000000 /* valid inside the kernel */ -#define CTLFLAG_LOCKED 0x00800000 /* node will handle locking itself */ -#define CTLFLAG_OID2 0x00400000 /* struct sysctl_oid has version info */ - -/* - * USE THIS instead of a hardwired number from the categories below - * to get dynamically assigned sysctl entries using the linker-set - * technology. This is the way nearly all new sysctl variables should - * be implemented. - * - * e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, ""); - * - * Note that linker set technology will automatically register all nodes - * declared like this on kernel initialization, UNLESS they are defined - * in I/O-Kit. In this case, you have to call sysctl_register_oid() - * manually - just like in a KEXT. - */ -#define OID_AUTO (-1) -#define OID_AUTO_START 100 /* conventional */ - - -#define SYSCTL_DEF_ENABLED - -#ifdef SYSCTL_DEF_ENABLED -/* - * Top-level identifiers - */ -#define CTL_UNSPEC 0 /* unused */ -#define CTL_KERN 1 /* "high kernel": proc, limits */ -#define CTL_VM 2 /* virtual memory */ -#define CTL_VFS 3 /* file system, mount type is next */ -#define CTL_NET 4 /* network, see socket.h */ -#define CTL_DEBUG 5 /* debugging parameters */ -#define CTL_HW 6 /* generic cpu/io */ -#define CTL_MACHDEP 7 /* machine dependent */ -#define CTL_USER 8 /* user-level */ -#define CTL_MAXID 9 /* number of valid top-level ids */ - -#define CTL_NAMES { \ - { 0, 0 }, \ - { "kern", CTLTYPE_NODE }, \ - { "vm", CTLTYPE_NODE }, \ - { "vfs", CTLTYPE_NODE }, \ - { "net", CTLTYPE_NODE }, \ - { "debug", CTLTYPE_NODE }, \ - { "hw", CTLTYPE_NODE }, \ - { "machdep", CTLTYPE_NODE }, \ - { "user", CTLTYPE_NODE }, \ -} - -/* - * CTL_KERN identifiers - */ -#define KERN_OSTYPE 1 /* string: system version */ -#define KERN_OSRELEASE 2 /* string: system release */ -#define KERN_OSREV 3 /* int: system revision */ -#define KERN_VERSION 4 /* string: compile time info */ -#define KERN_MAXVNODES 5 /* int: max vnodes */ -#define KERN_MAXPROC 6 /* int: max processes */ -#define KERN_MAXFILES 7 /* int: max open files */ -#define KERN_ARGMAX 8 /* int: max arguments to exec */ -#define KERN_SECURELVL 9 /* int: system security level */ -#define KERN_HOSTNAME 10 /* string: hostname */ -#define KERN_HOSTID 11 /* int: host identifier */ -#define KERN_CLOCKRATE 12 /* struct: struct clockrate */ -#define KERN_VNODE 13 /* struct: vnode structures */ -#define KERN_PROC 14 /* struct: process entries */ -#define KERN_FILE 15 /* struct: file entries */ -#define KERN_PROF 16 /* node: kernel profiling info */ -#define KERN_POSIX1 17 /* int: POSIX.1 version */ -#define KERN_NGROUPS 18 /* int: # of supplemental group ids */ -#define KERN_JOB_CONTROL 19 /* int: is job control available */ -#define KERN_SAVED_IDS 20 /* int: saved set-user/group-ID */ -#define KERN_BOOTTIME 21 /* struct: time kernel was booted */ -#define KERN_NISDOMAINNAME 22 /* string: YP domain name */ -#define KERN_DOMAINNAME KERN_NISDOMAINNAME -#define KERN_MAXPARTITIONS 23 /* int: number of partitions/disk */ -#define KERN_KDEBUG 24 /* int: kernel trace points */ -#define KERN_UPDATEINTERVAL 25 /* int: update process sleep time */ -#define KERN_OSRELDATE 26 /* int: OS release date */ -#define KERN_NTP_PLL 27 /* node: NTP PLL control */ -#define KERN_BOOTFILE 28 /* string: name of booted kernel */ -#define KERN_MAXFILESPERPROC 29 /* int: max open files per proc */ -#define KERN_MAXPROCPERUID 30 /* int: max processes per uid */ -#define KERN_DUMPDEV 31 /* dev_t: device to dump on */ -#define KERN_IPC 32 /* node: anything related to IPC */ -#define KERN_DUMMY 33 /* unused */ -#define KERN_PS_STRINGS 34 /* int: address of PS_STRINGS */ -#define KERN_USRSTACK32 35 /* int: address of USRSTACK */ -#define KERN_LOGSIGEXIT 36 /* int: do we log sigexit procs? */ -#define KERN_SYMFILE 37 /* string: kernel symbol filename */ -#define KERN_PROCARGS 38 -/* 39 was KERN_PCSAMPLES... now obsolete */ -#define KERN_NETBOOT 40 /* int: are we netbooted? 1=yes,0=no */ -/* 41 was KERN_PANICINFO : panic UI information (deprecated) */ -#define KERN_SYSV 42 /* node: System V IPC information */ -#define KERN_AFFINITY 43 /* xxx */ -#define KERN_TRANSLATE 44 /* xxx */ -#define KERN_CLASSIC KERN_TRANSLATE /* XXX backwards compat */ -#define KERN_EXEC 45 /* xxx */ -#define KERN_CLASSICHANDLER KERN_EXEC /* XXX backwards compatibility */ -#define KERN_AIOMAX 46 /* int: max aio requests */ -#define KERN_AIOPROCMAX 47 /* int: max aio requests per process */ -#define KERN_AIOTHREADS 48 /* int: max aio worker threads */ -#ifdef __APPLE_API_UNSTABLE -#define KERN_PROCARGS2 49 -#endif /* __APPLE_API_UNSTABLE */ -#define KERN_COREFILE 50 /* string: corefile format string */ -#define KERN_COREDUMP 51 /* int: whether to coredump at all */ -#define KERN_SUGID_COREDUMP 52 /* int: whether to dump SUGID cores */ -#define KERN_PROCDELAYTERM 53 /* int: set/reset current proc for delayed termination during shutdown */ -#define KERN_SHREG_PRIVATIZABLE 54 /* int: can shared regions be privatized ? */ -/* 55 was KERN_PROC_LOW_PRI_IO... now deprecated */ -#define KERN_LOW_PRI_WINDOW 56 /* int: set/reset throttle window - milliseconds */ -#define KERN_LOW_PRI_DELAY 57 /* int: set/reset throttle delay - milliseconds */ -#define KERN_POSIX 58 /* node: posix tunables */ -#define KERN_USRSTACK64 59 /* LP64 user stack query */ -#define KERN_NX_PROTECTION 60 /* int: whether no-execute protection is enabled */ -#define KERN_TFP 61 /* Task for pid settings */ -#define KERN_PROCNAME 62 /* setup process program name(2*MAXCOMLEN) */ -#define KERN_THALTSTACK 63 /* for compat with older x86 and does nothing */ -#define KERN_SPECULATIVE_READS 64 /* int: whether speculative reads are disabled */ -#define KERN_OSVERSION 65 /* for build number i.e. 9A127 */ -#define KERN_SAFEBOOT 66 /* are we booted safe? */ -/* 67 was KERN_LCTX (login context) */ -#define KERN_RAGEVNODE 68 -#define KERN_TTY 69 /* node: tty settings */ -#define KERN_CHECKOPENEVT 70 /* spi: check the VOPENEVT flag on vnodes at open time */ -#define KERN_THREADNAME 71 /* set/get thread name */ -#define KERN_MAXID 72 /* number of valid kern ids */ -/* - * Don't add any more sysctls like this. Instead, use the SYSCTL_*() macros - * and OID_AUTO. This will have the added benefit of not having to recompile - * sysctl(8) to pick up your changes. - */ - - -#if defined(__LP64__) -#define KERN_USRSTACK KERN_USRSTACK64 -#else -#define KERN_USRSTACK KERN_USRSTACK32 -#endif - - -/* KERN_RAGEVNODE types */ -#define KERN_RAGE_PROC 1 -#define KERN_RAGE_THREAD 2 -#define KERN_UNRAGE_PROC 3 -#define KERN_UNRAGE_THREAD 4 - -/* KERN_OPENEVT types */ -#define KERN_OPENEVT_PROC 1 -#define KERN_UNOPENEVT_PROC 2 - -/* KERN_TFP types */ -#define KERN_TFP_POLICY 1 - -/* KERN_TFP_POLICY values . All policies allow task port for self */ -#define KERN_TFP_POLICY_DENY 0 /* Deny Mode: None allowed except privileged */ -#define KERN_TFP_POLICY_DEFAULT 2 /* Default Mode: related ones allowed and upcall authentication */ - -/* KERN_KDEBUG types */ -#define KERN_KDEFLAGS 1 -#define KERN_KDDFLAGS 2 -#define KERN_KDENABLE 3 -#define KERN_KDSETBUF 4 -#define KERN_KDGETBUF 5 -#define KERN_KDSETUP 6 -#define KERN_KDREMOVE 7 -#define KERN_KDSETREG 8 -#define KERN_KDGETREG 9 -#define KERN_KDREADTR 10 -#define KERN_KDPIDTR 11 -#define KERN_KDTHRMAP 12 -/* Don't use 13 as it is overloaded with KERN_VNODE */ -#define KERN_KDPIDEX 14 -#define KERN_KDSETRTCDEC 15 /* obsolete */ -#define KERN_KDGETENTROPY 16 /* obsolete */ -#define KERN_KDWRITETR 17 -#define KERN_KDWRITEMAP 18 -#define KERN_KDTEST 19 -/* 20 unused */ -#define KERN_KDREADCURTHRMAP 21 -#define KERN_KDSET_TYPEFILTER 22 -#define KERN_KDBUFWAIT 23 -#define KERN_KDCPUMAP 24 -/* 25 - 26 unused */ -#define KERN_KDWRITEMAP_V3 27 -#define KERN_KDWRITETR_V3 28 - -#define CTL_KERN_NAMES { \ - { 0, 0 }, \ - { "ostype", CTLTYPE_STRING }, \ - { "osrelease", CTLTYPE_STRING }, \ - { "osrevision", CTLTYPE_INT }, \ - { "version", CTLTYPE_STRING }, \ - { "maxvnodes", CTLTYPE_INT }, \ - { "maxproc", CTLTYPE_INT }, \ - { "maxfiles", CTLTYPE_INT }, \ - { "argmax", CTLTYPE_INT }, \ - { "securelevel", CTLTYPE_INT }, \ - { "hostname", CTLTYPE_STRING }, \ - { "hostid", CTLTYPE_INT }, \ - { "clockrate", CTLTYPE_STRUCT }, \ - { "vnode", CTLTYPE_STRUCT }, \ - { "proc", CTLTYPE_STRUCT }, \ - { "file", CTLTYPE_STRUCT }, \ - { "profiling", CTLTYPE_NODE }, \ - { "posix1version", CTLTYPE_INT }, \ - { "ngroups", CTLTYPE_INT }, \ - { "job_control", CTLTYPE_INT }, \ - { "saved_ids", CTLTYPE_INT }, \ - { "boottime", CTLTYPE_STRUCT }, \ - { "nisdomainname", CTLTYPE_STRING }, \ - { "maxpartitions", CTLTYPE_INT }, \ - { "kdebug", CTLTYPE_INT }, \ - { "update", CTLTYPE_INT }, \ - { "osreldate", CTLTYPE_INT }, \ - { "ntp_pll", CTLTYPE_NODE }, \ - { "bootfile", CTLTYPE_STRING }, \ - { "maxfilesperproc", CTLTYPE_INT }, \ - { "maxprocperuid", CTLTYPE_INT }, \ - { "dumpdev", CTLTYPE_STRUCT }, /* we lie; don't print as int */ \ - { "ipc", CTLTYPE_NODE }, \ - { "dummy", CTLTYPE_INT }, \ - { "dummy", CTLTYPE_INT }, \ - { "usrstack", CTLTYPE_INT }, \ - { "logsigexit", CTLTYPE_INT }, \ - { "symfile",CTLTYPE_STRING },\ - { "procargs",CTLTYPE_STRUCT },\ - { "dummy", CTLTYPE_INT }, /* deprecated pcsamples */ \ - { "netboot", CTLTYPE_INT }, \ - { "dummy", CTLTYPE_INT }, /* deprecated: panicinfo */ \ - { "sysv", CTLTYPE_NODE }, \ - { "dummy", CTLTYPE_INT }, \ - { "dummy", CTLTYPE_INT }, \ - { "exec", CTLTYPE_NODE }, \ - { "aiomax", CTLTYPE_INT }, \ - { "aioprocmax", CTLTYPE_INT }, \ - { "aiothreads", CTLTYPE_INT }, \ - { "procargs2",CTLTYPE_STRUCT }, \ - { "corefile",CTLTYPE_STRING }, \ - { "coredump", CTLTYPE_INT }, \ - { "sugid_coredump", CTLTYPE_INT }, \ - { "delayterm", CTLTYPE_INT }, \ - { "shreg_private", CTLTYPE_INT }, \ - { "proc_low_pri_io", CTLTYPE_INT }, \ - { "low_pri_window", CTLTYPE_INT }, \ - { "low_pri_delay", CTLTYPE_INT }, \ - { "posix", CTLTYPE_NODE }, \ - { "usrstack64", CTLTYPE_QUAD }, \ - { "nx", CTLTYPE_INT }, \ - { "tfp", CTLTYPE_NODE }, \ - { "procname", CTLTYPE_STRING }, \ - { "threadsigaltstack", CTLTYPE_INT }, \ - { "speculative_reads_disabled", CTLTYPE_INT }, \ - { "osversion", CTLTYPE_STRING }, \ - { "safeboot", CTLTYPE_INT }, \ - { "dummy", CTLTYPE_INT }, /* deprecated: lctx */ \ - { "rage_vnode", CTLTYPE_INT }, \ - { "tty", CTLTYPE_NODE }, \ - { "check_openevt", CTLTYPE_INT }, \ - { "thread_name", CTLTYPE_STRING } \ -} - -/* - * CTL_VFS identifiers - */ -#define CTL_VFS_NAMES { \ - { "vfsconf", CTLTYPE_STRUCT } \ -} - -/* - * KERN_PROC subtypes - */ -#define KERN_PROC_ALL 0 /* everything */ -#define KERN_PROC_PID 1 /* by process id */ -#define KERN_PROC_PGRP 2 /* by process group id */ -#define KERN_PROC_SESSION 3 /* by session of pid */ -#define KERN_PROC_TTY 4 /* by controlling tty */ -#define KERN_PROC_UID 5 /* by effective uid */ -#define KERN_PROC_RUID 6 /* by real uid */ -#define KERN_PROC_LCID 7 /* by login context id */ - -/* - * KERN_VFSNSPACE subtypes - */ -#define KERN_VFSNSPACE_HANDLE_PROC 1 -#define KERN_VFSNSPACE_UNHANDLE_PROC 2 - -/* - * KERN_PROC subtype ops return arrays of augmented proc structures: - */ - -struct _pcred { - char pc_lock[72]; /* opaque content */ - struct ucred *pc_ucred; /* Current credentials. */ - uid_t p_ruid; /* Real user id. */ - uid_t p_svuid; /* Saved effective user id. */ - gid_t p_rgid; /* Real group id. */ - gid_t p_svgid; /* Saved effective group id. */ - int p_refcnt; /* Number of references. */ -}; - -struct _ucred { - int32_t cr_ref; /* reference count */ - uid_t cr_uid; /* effective user id */ - short cr_ngroups; /* number of groups */ - gid_t cr_groups[NGROUPS]; /* groups */ -}; - -struct kinfo_proc { - struct extern_proc kp_proc; /* proc structure */ - struct eproc { - struct proc *e_paddr; /* address of proc */ - struct session *e_sess; /* session pointer */ - struct _pcred e_pcred; /* process credentials */ - struct _ucred e_ucred; /* current credentials */ - struct vmspace e_vm; /* address space */ - pid_t e_ppid; /* parent process id */ - pid_t e_pgid; /* process group id */ - short e_jobc; /* job control counter */ - dev_t e_tdev; /* controlling tty dev */ - pid_t e_tpgid; /* tty process group id */ - struct session *e_tsess; /* tty session pointer */ -#define WMESGLEN 7 - char e_wmesg[WMESGLEN + 1]; /* wchan message */ - segsz_t e_xsize; /* text size */ - short e_xrssize; /* text rss */ - short e_xccount; /* text references */ - short e_xswrss; - int32_t e_flag; -#define EPROC_CTTY 0x01 /* controlling tty vnode active */ -#define EPROC_SLEADER 0x02 /* session leader */ -#define COMAPT_MAXLOGNAME 12 - char e_login[COMAPT_MAXLOGNAME]; /* short setlogin() name */ - int32_t e_spare[4]; - } kp_eproc; -}; - - - -/* - * KERN_IPC identifiers - */ -#define KIPC_MAXSOCKBUF 1 /* int: max size of a socket buffer */ -#define KIPC_SOCKBUF_WASTE 2 /* int: wastage factor in sockbuf */ -#define KIPC_SOMAXCONN 3 /* int: max length of connection q */ -#define KIPC_MAX_LINKHDR 4 /* int: max length of link header */ -#define KIPC_MAX_PROTOHDR 5 /* int: max length of network header */ -#define KIPC_MAX_HDR 6 /* int: max total length of headers */ -#define KIPC_MAX_DATALEN 7 /* int: max length of data? */ -#define KIPC_MBSTAT 8 /* struct: mbuf usage statistics */ -#define KIPC_NMBCLUSTERS 9 /* int: maximum mbuf clusters */ -#define KIPC_SOQLIMITCOMPAT 10 /* int: socket queue limit */ - -/* - * CTL_VM identifiers - */ -#define VM_METER 1 /* struct vmmeter */ -#define VM_LOADAVG 2 /* struct loadavg */ -/* - * Note: "3" was skipped sometime ago and should probably remain unused - * to avoid any new entry from being accepted by older kernels... - */ -#define VM_MACHFACTOR 4 /* struct loadavg with mach factor*/ -#define VM_SWAPUSAGE 5 /* total swap usage */ -#define VM_MAXID 6 /* number of valid vm ids */ - -#define CTL_VM_NAMES { \ - { 0, 0 }, \ - { "vmmeter", CTLTYPE_STRUCT }, \ - { "loadavg", CTLTYPE_STRUCT }, \ - { 0, 0 }, /* placeholder for "3" (see comment above) */ \ - { "dummy", CTLTYPE_INT }, \ - { "swapusage", CTLTYPE_STRUCT } \ -} - -struct xsw_usage { - u_int64_t xsu_total; - u_int64_t xsu_avail; - u_int64_t xsu_used; - u_int32_t xsu_pagesize; - boolean_t xsu_encrypted; -}; - -#ifdef __APPLE_API_PRIVATE -/* Load average structure. Use of fixpt_t assume in scope. */ -/* XXX perhaps we should protect fixpt_t, and define it here (or discard it) */ -struct loadavg { - fixpt_t ldavg[3]; - long fscale; -}; -extern struct loadavg averunnable; -#define LSCALE 1000 /* scaling for "fixed point" arithmetic */ - -#endif /* __APPLE_API_PRIVATE */ - - -/* - * CTL_HW identifiers - */ -#define HW_MACHINE 1 /* string: machine class */ -#define HW_MODEL 2 /* string: specific machine model */ -#define HW_NCPU 3 /* int: number of cpus */ -#define HW_BYTEORDER 4 /* int: machine byte order */ -#define HW_PHYSMEM 5 /* int: total memory */ -#define HW_USERMEM 6 /* int: non-kernel memory */ -#define HW_PAGESIZE 7 /* int: software page size */ -#define HW_DISKNAMES 8 /* strings: disk drive names */ -#define HW_DISKSTATS 9 /* struct: diskstats[] */ -#define HW_EPOCH 10 /* int: 0 for Legacy, else NewWorld */ -#define HW_FLOATINGPT 11 /* int: has HW floating point? */ -#define HW_MACHINE_ARCH 12 /* string: machine architecture */ -#define HW_VECTORUNIT 13 /* int: has HW vector unit? */ -#define HW_BUS_FREQ 14 /* int: Bus Frequency */ -#define HW_CPU_FREQ 15 /* int: CPU Frequency */ -#define HW_CACHELINE 16 /* int: Cache Line Size in Bytes */ -#define HW_L1ICACHESIZE 17 /* int: L1 I Cache Size in Bytes */ -#define HW_L1DCACHESIZE 18 /* int: L1 D Cache Size in Bytes */ -#define HW_L2SETTINGS 19 /* int: L2 Cache Settings */ -#define HW_L2CACHESIZE 20 /* int: L2 Cache Size in Bytes */ -#define HW_L3SETTINGS 21 /* int: L3 Cache Settings */ -#define HW_L3CACHESIZE 22 /* int: L3 Cache Size in Bytes */ -#define HW_TB_FREQ 23 /* int: Bus Frequency */ -#define HW_MEMSIZE 24 /* uint64_t: physical ram size */ -#define HW_AVAILCPU 25 /* int: number of available CPUs */ -#define HW_MAXID 26 /* number of valid hw ids */ - -#define CTL_HW_NAMES { \ - { 0, 0 }, \ - { "machine", CTLTYPE_STRING }, \ - { "model", CTLTYPE_STRING }, \ - { "ncpu", CTLTYPE_INT }, \ - { "byteorder", CTLTYPE_INT }, \ - { "physmem", CTLTYPE_INT }, \ - { "usermem", CTLTYPE_INT }, \ - { "pagesize", CTLTYPE_INT }, \ - { "disknames", CTLTYPE_STRUCT }, \ - { "diskstats", CTLTYPE_STRUCT }, \ - { "epoch", CTLTYPE_INT }, \ - { "floatingpoint", CTLTYPE_INT }, \ - { "machinearch", CTLTYPE_STRING }, \ - { "vectorunit", CTLTYPE_INT }, \ - { "busfrequency", CTLTYPE_INT }, \ - { "cpufrequency", CTLTYPE_INT }, \ - { "cachelinesize", CTLTYPE_INT }, \ - { "l1icachesize", CTLTYPE_INT }, \ - { "l1dcachesize", CTLTYPE_INT }, \ - { "l2settings", CTLTYPE_INT }, \ - { "l2cachesize", CTLTYPE_INT }, \ - { "l3settings", CTLTYPE_INT }, \ - { "l3cachesize", CTLTYPE_INT }, \ - { "tbfrequency", CTLTYPE_INT }, \ - { "memsize", CTLTYPE_QUAD }, \ - { "availcpu", CTLTYPE_INT } \ -} - -/* - * XXX This information should be moved to the man page. - * - * These are the support HW selectors for sysctlbyname. Parameters that are byte counts or frequencies are 64 bit numbers. - * All other parameters are 32 bit numbers. - * - * hw.memsize - The number of bytes of physical memory in the system. - * - * hw.ncpu - The maximum number of processors that could be available this boot. - * Use this value for sizing of static per processor arrays; i.e. processor load statistics. - * - * hw.activecpu - The number of processors currently available for executing threads. - * Use this number to determine the number threads to create in SMP aware applications. - * This number can change when power management modes are changed. - * - * hw.physicalcpu - The number of physical processors available in the current power management mode. - * hw.physicalcpu_max - The maximum number of physical processors that could be available this boot - * - * hw.logicalcpu - The number of logical processors available in the current power management mode. - * hw.logicalcpu_max - The maximum number of logical processors that could be available this boot - * - * hw.tbfrequency - This gives the time base frequency used by the OS and is the basis of all timing services. - * In general is is better to use mach's or higher level timing services, but this value - * is needed to convert the PPC Time Base registers to real time. - * - * hw.cpufrequency - These values provide the current, min and max cpu frequency. The min and max are for - * hw.cpufrequency_max - all power management modes. The current frequency is the max frequency in the current mode. - * hw.cpufrequency_min - All frequencies are in Hz. - * - * hw.busfrequency - These values provide the current, min and max bus frequency. The min and max are for - * hw.busfrequency_max - all power management modes. The current frequency is the max frequency in the current mode. - * hw.busfrequency_min - All frequencies are in Hz. - * - * hw.cputype - These values provide the mach-o cpu type and subtype. A complete list is in - * hw.cpusubtype - These values should be used to determine what processor family the running cpu is from so that - * the best binary can be chosen, or the best dynamic code generated. They should not be used - * to determine if a given processor feature is available. - * hw.cputhreadtype - This value will be present if the processor supports threads. Like hw.cpusubtype this selector - * should not be used to infer features, and only used to name the processors thread architecture. - * The values are defined in - * - * hw.byteorder - Gives the byte order of the processor. 4321 for big endian, 1234 for little. - * - * hw.pagesize - Gives the size in bytes of the pages used by the processor and VM system. - * - * hw.cachelinesize - Gives the size in bytes of the processor's cache lines. - * This value should be use to control the strides of loops that use cache control instructions - * like dcbz, dcbt or dcbst. - * - * hw.l1dcachesize - These values provide the size in bytes of the L1, L2 and L3 caches. If a cache is not present - * hw.l1icachesize - then the selector will return and error. - * hw.l2cachesize - - * hw.l3cachesize - - * - * hw.packages - Gives the number of processor packages. - * - * These are the selectors for optional processor features for specific processors. Selectors that return errors are not support - * on the system. Supported features will return 1 if they are recommended or 0 if they are supported but are not expected to help . - * performance. Future versions of these selectors may return larger values as necessary so it is best to test for non zero. - * - * For PowerPC: - * - * hw.optional.floatingpoint - Floating Point Instructions - * hw.optional.altivec - AltiVec Instructions - * hw.optional.graphicsops - Graphics Operations - * hw.optional.64bitops - 64-bit Instructions - * hw.optional.fsqrt - HW Floating Point Square Root Instruction - * hw.optional.stfiwx - Store Floating Point as Integer Word Indexed Instructions - * hw.optional.dcba - Data Cache Block Allocate Instruction - * hw.optional.datastreams - Data Streams Instructions - * hw.optional.dcbtstreams - Data Cache Block Touch Steams Instruction Form - * - * For x86 Architecture: - * - * hw.optional.floatingpoint - Floating Point Instructions - * hw.optional.mmx - Original MMX vector instructions - * hw.optional.sse - Streaming SIMD Extensions - * hw.optional.sse2 - Streaming SIMD Extensions 2 - * hw.optional.sse3 - Streaming SIMD Extensions 3 - * hw.optional.supplementalsse3 - Supplemental Streaming SIMD Extensions 3 - * hw.optional.x86_64 - 64-bit support - */ - - -/* - * CTL_USER definitions - */ -#define USER_CS_PATH 1 /* string: _CS_PATH */ -#define USER_BC_BASE_MAX 2 /* int: BC_BASE_MAX */ -#define USER_BC_DIM_MAX 3 /* int: BC_DIM_MAX */ -#define USER_BC_SCALE_MAX 4 /* int: BC_SCALE_MAX */ -#define USER_BC_STRING_MAX 5 /* int: BC_STRING_MAX */ -#define USER_COLL_WEIGHTS_MAX 6 /* int: COLL_WEIGHTS_MAX */ -#define USER_EXPR_NEST_MAX 7 /* int: EXPR_NEST_MAX */ -#define USER_LINE_MAX 8 /* int: LINE_MAX */ -#define USER_RE_DUP_MAX 9 /* int: RE_DUP_MAX */ -#define USER_POSIX2_VERSION 10 /* int: POSIX2_VERSION */ -#define USER_POSIX2_C_BIND 11 /* int: POSIX2_C_BIND */ -#define USER_POSIX2_C_DEV 12 /* int: POSIX2_C_DEV */ -#define USER_POSIX2_CHAR_TERM 13 /* int: POSIX2_CHAR_TERM */ -#define USER_POSIX2_FORT_DEV 14 /* int: POSIX2_FORT_DEV */ -#define USER_POSIX2_FORT_RUN 15 /* int: POSIX2_FORT_RUN */ -#define USER_POSIX2_LOCALEDEF 16 /* int: POSIX2_LOCALEDEF */ -#define USER_POSIX2_SW_DEV 17 /* int: POSIX2_SW_DEV */ -#define USER_POSIX2_UPE 18 /* int: POSIX2_UPE */ -#define USER_STREAM_MAX 19 /* int: POSIX2_STREAM_MAX */ -#define USER_TZNAME_MAX 20 /* int: POSIX2_TZNAME_MAX */ -#define USER_MAXID 21 /* number of valid user ids */ - -#define CTL_USER_NAMES { \ - { 0, 0 }, \ - { "cs_path", CTLTYPE_STRING }, \ - { "bc_base_max", CTLTYPE_INT }, \ - { "bc_dim_max", CTLTYPE_INT }, \ - { "bc_scale_max", CTLTYPE_INT }, \ - { "bc_string_max", CTLTYPE_INT }, \ - { "coll_weights_max", CTLTYPE_INT }, \ - { "expr_nest_max", CTLTYPE_INT }, \ - { "line_max", CTLTYPE_INT }, \ - { "re_dup_max", CTLTYPE_INT }, \ - { "posix2_version", CTLTYPE_INT }, \ - { "posix2_c_bind", CTLTYPE_INT }, \ - { "posix2_c_dev", CTLTYPE_INT }, \ - { "posix2_char_term", CTLTYPE_INT }, \ - { "posix2_fort_dev", CTLTYPE_INT }, \ - { "posix2_fort_run", CTLTYPE_INT }, \ - { "posix2_localedef", CTLTYPE_INT }, \ - { "posix2_sw_dev", CTLTYPE_INT }, \ - { "posix2_upe", CTLTYPE_INT }, \ - { "stream_max", CTLTYPE_INT }, \ - { "tzname_max", CTLTYPE_INT } \ -} - - - -/* - * CTL_DEBUG definitions - * - * Second level identifier specifies which debug variable. - * Third level identifier specifies which stucture component. - */ -#define CTL_DEBUG_NAME 0 /* string: variable name */ -#define CTL_DEBUG_VALUE 1 /* int: variable value */ -#define CTL_DEBUG_MAXID 20 - - -#if (CTL_MAXID != 9) || (KERN_MAXID != 72) || (VM_MAXID != 6) || (HW_MAXID != 26) || (USER_MAXID != 21) || (CTL_DEBUG_MAXID != 20) -#error Use the SYSCTL_*() macros and OID_AUTO instead! -#endif - - - -__BEGIN_DECLS -int sysctl(int *, u_int, void *, size_t *, void *, size_t); -int sysctlbyname(const char *, void *, size_t *, void *, size_t); -int sysctlnametomib(const char *, int *, size_t *); -__END_DECLS - - - -#endif /* SYSCTL_DEF_ENABLED */ - - -#endif /* !_SYS_SYSCTL_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/syslimits.h b/lib/libc/include/x86_64-macos.10-none/sys/syslimits.h deleted file mode 100644 index ff60b66ff51539afa108e21fd41ef6dc5847e112..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/syslimits.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2000 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@ - */ -/* $NetBSD: syslimits.h,v 1.15 1997/06/25 00:48:09 lukem Exp $ */ - -/* - * Copyright (c) 1988, 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. - * - * @(#)syslimits.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _SYS_SYSLIMITS_H_ -#define _SYS_SYSLIMITS_H_ - -#include - -#if !defined(_ANSI_SOURCE) -/* - * Note: CHILD_MAX *must* be less than hard_maxproc, which is set at - * compile time; you *cannot* set it higher than the hard limit!! - */ -#define ARG_MAX (256 * 1024) /* max bytes for an exec function */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define CHILD_MAX 266 /* max simultaneous processes */ -#define GID_MAX 2147483647U /* max value for a gid_t (2^31-2) */ -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ -#define LINK_MAX 32767 /* max file link count */ -#define MAX_CANON 1024 /* max bytes in term canon input line */ -#define MAX_INPUT 1024 /* max bytes in terminal input */ -#define NAME_MAX 255 /* max bytes in a file name */ -#define NGROUPS_MAX 16 /* max supplemental group id's */ -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -#define UID_MAX 2147483647U /* max value for a uid_t (2^31-2) */ - -#define OPEN_MAX 10240 /* max open files per process - todo, make a config option? */ - -#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ -#define PATH_MAX 1024 /* max bytes in pathname */ -#define PIPE_BUF 512 /* max bytes for atomic pipe writes */ - -#define BC_BASE_MAX 99 /* max ibase/obase values in bc(1) */ -#define BC_DIM_MAX 2048 /* max array elements in bc(1) */ -#define BC_SCALE_MAX 99 /* max scale value in bc(1) */ -#define BC_STRING_MAX 1000 /* max const string length in bc(1) */ -#define CHARCLASS_NAME_MAX 14 /* max character class name size */ -#define COLL_WEIGHTS_MAX 2 /* max weights for order keyword */ -#define EQUIV_CLASS_MAX 2 -#define EXPR_NEST_MAX 32 /* max expressions nested in expr(1) */ -#define LINE_MAX 2048 /* max bytes in an input line */ -#define RE_DUP_MAX 255 /* max RE's in interval notation */ - -#if __DARWIN_UNIX03 -#define NZERO 20 /* default priority [XSI] */ - /* = ((PRIO_MAX - PRIO_MIN) / 2) + 1 */ - /* range: 0 - 39 [(2 * NZERO) - 1] */ - /* 0 is not actually used */ -#else /* !__DARWIN_UNIX03 */ -#define NZERO 0 /* default priority */ - /* range: -20 - 20 */ - /* (PRIO_MIN - PRIO_MAX) */ -#endif /* __DARWIN_UNIX03 */ -#endif /* !_ANSI_SOURCE */ - -#endif /* !_SYS_SYSLIMITS_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/ttycom.h b/lib/libc/include/x86_64-macos.10-none/sys/ttycom.h deleted file mode 100644 index e3830c8627078b37fce07d8b147cfd72c56b7cbc..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/ttycom.h +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (c) 2000-2002 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) 1997 Apple Computer, Inc. All Rights Reserved */ -/*- - * Copyright (c) 1982, 1986, 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * 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. - * - * @(#)ttycom.h 8.1 (Berkeley) 3/28/94 - */ - -#ifndef _SYS_TTYCOM_H_ -#define _SYS_TTYCOM_H_ - -#include -/* - * Tty ioctl's except for those supported only for backwards compatibility - * with the old tty driver. - */ - -/* - * Window/terminal size structure. This information is stored by the kernel - * in order to provide a consistent interface, but is not used by the kernel. - */ -struct winsize { - unsigned short ws_row; /* rows, in characters */ - unsigned short ws_col; /* columns, in characters */ - unsigned short ws_xpixel; /* horizontal size, pixels */ - unsigned short ws_ypixel; /* vertical size, pixels */ -}; - -#define TIOCMODG _IOR('t', 3, int) /* get modem control state */ -#define TIOCMODS _IOW('t', 4, int) /* set modem control state */ -#define TIOCM_LE 0001 /* line enable */ -#define TIOCM_DTR 0002 /* data terminal ready */ -#define TIOCM_RTS 0004 /* request to send */ -#define TIOCM_ST 0010 /* secondary transmit */ -#define TIOCM_SR 0020 /* secondary receive */ -#define TIOCM_CTS 0040 /* clear to send */ -#define TIOCM_CAR 0100 /* carrier detect */ -#define TIOCM_CD TIOCM_CAR -#define TIOCM_RNG 0200 /* ring */ -#define TIOCM_RI TIOCM_RNG -#define TIOCM_DSR 0400 /* data set ready */ - /* 8-10 compat */ -#define TIOCEXCL _IO('t', 13) /* set exclusive use of tty */ -#define TIOCNXCL _IO('t', 14) /* reset exclusive use of tty */ - /* 15 unused */ -#define TIOCFLUSH _IOW('t', 16, int) /* flush buffers */ - /* 17-18 compat */ -#define TIOCGETA _IOR('t', 19, struct termios) /* get termios struct */ -#define TIOCSETA _IOW('t', 20, struct termios) /* set termios struct */ -#define TIOCSETAW _IOW('t', 21, struct termios) /* drain output, set */ -#define TIOCSETAF _IOW('t', 22, struct termios) /* drn out, fls in, set */ -#define TIOCGETD _IOR('t', 26, int) /* get line discipline */ -#define TIOCSETD _IOW('t', 27, int) /* set line discipline */ -#define TIOCIXON _IO('t', 129) /* internal input VSTART */ -#define TIOCIXOFF _IO('t', 128) /* internal input VSTOP */ - /* 127-124 compat */ -#define TIOCSBRK _IO('t', 123) /* set break bit */ -#define TIOCCBRK _IO('t', 122) /* clear break bit */ -#define TIOCSDTR _IO('t', 121) /* set data terminal ready */ -#define TIOCCDTR _IO('t', 120) /* clear data terminal ready */ -#define TIOCGPGRP _IOR('t', 119, int) /* get pgrp of tty */ -#define TIOCSPGRP _IOW('t', 118, int) /* set pgrp of tty */ - /* 117-116 compat */ -#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */ -#define TIOCSTI _IOW('t', 114, char) /* simulate terminal input */ -#define TIOCNOTTY _IO('t', 113) /* void tty association */ -#define TIOCPKT _IOW('t', 112, int) /* pty: set/clear packet mode */ -#define TIOCPKT_DATA 0x00 /* data packet */ -#define TIOCPKT_FLUSHREAD 0x01 /* flush packet */ -#define TIOCPKT_FLUSHWRITE 0x02 /* flush packet */ -#define TIOCPKT_STOP 0x04 /* stop output */ -#define TIOCPKT_START 0x08 /* start output */ -#define TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */ -#define TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */ -#define TIOCPKT_IOCTL 0x40 /* state change of pty driver */ -#define TIOCSTOP _IO('t', 111) /* stop output, like ^S */ -#define TIOCSTART _IO('t', 110) /* start output, like ^Q */ -#define TIOCMSET _IOW('t', 109, int) /* set all modem bits */ -#define TIOCMBIS _IOW('t', 108, int) /* bis modem bits */ -#define TIOCMBIC _IOW('t', 107, int) /* bic modem bits */ -#define TIOCMGET _IOR('t', 106, int) /* get all modem bits */ -#define TIOCREMOTE _IOW('t', 105, int) /* remote input editing */ -#define TIOCGWINSZ _IOR('t', 104, struct winsize) /* get window size */ -#define TIOCSWINSZ _IOW('t', 103, struct winsize) /* set window size */ -#define TIOCUCNTL _IOW('t', 102, int) /* pty: set/clr usr cntl mode */ -#define TIOCSTAT _IO('t', 101) /* simulate ^T status message */ -#define UIOCCMD(n) _IO('u', n) /* usr cntl op "n" */ -#define TIOCSCONS _IO('t', 99) /* 4.2 compatibility */ -#define TIOCCONS _IOW('t', 98, int) /* become virtual console */ -#define TIOCSCTTY _IO('t', 97) /* become controlling tty */ -#define TIOCEXT _IOW('t', 96, int) /* pty: external processing */ -#define TIOCSIG _IO('t', 95) /* pty: generate signal */ -#define TIOCDRAIN _IO('t', 94) /* wait till output drained */ -#define TIOCMSDTRWAIT _IOW('t', 91, int) /* modem: set wait on close */ -#define TIOCMGDTRWAIT _IOR('t', 90, int) /* modem: get wait on close */ -#define TIOCTIMESTAMP _IOR('t', 89, struct timeval) /* enable/get timestamp - * of last input event */ -#define TIOCDCDTIMESTAMP _IOR('t', 88, struct timeval) /* enable/get timestamp - * of last DCd rise */ -#define TIOCSDRAINWAIT _IOW('t', 87, int) /* set ttywait timeout */ -#define TIOCGDRAINWAIT _IOR('t', 86, int) /* get ttywait timeout */ -#define TIOCDSIMICROCODE _IO('t', 85) /* download microcode to - * DSI Softmodem */ -#define TIOCPTYGRANT _IO('t', 84) /* grantpt(3) */ -#define TIOCPTYGNAME _IOC(IOC_OUT, 't', 83, 128) /* ptsname(3) */ -#define TIOCPTYUNLK _IO('t', 82) /* unlockpt(3) */ - -#define TTYDISC 0 /* termios tty line discipline */ -#define TABLDISC 3 /* tablet discipline */ -#define SLIPDISC 4 /* serial IP discipline */ -#define PPPDISC 5 /* PPP discipline */ - -#endif /* !_SYS_TTYCOM_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/ucontext.h b/lib/libc/include/x86_64-macos.10-none/sys/ucontext.h deleted file mode 100644 index e4468f2e40ed87ab86fd976d3288a6e8c7e71bff..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/ucontext.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2002-2006 Apple Computer, Inc. All rights reserved. - * - * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. The rights granted to you under the License - * may not be used to create, or enable the creation or redistribution of, - * unlawful or unlicensed copies of an Apple operating system, or to - * circumvent, violate, or enable the circumvention or violation of, any - * terms of an Apple operating system software license agreement. - * - * Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ - */ - -#ifndef _SYS_UCONTEXT_H_ -#define _SYS_UCONTEXT_H_ - -#include -#include - -#include -#include -#include - -#include - - -#endif /* _SYS_UCONTEXT_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/uio.h b/lib/libc/include/x86_64-macos.10-none/sys/uio.h deleted file mode 100644 index a5b1bad7cf4a4cb964be9f68cc6af432d0932d3e..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/uio.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2000-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@ - */ -/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ -/* - * Copyright (c) 1982, 1986, 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. - * - * @(#)uio.h 8.5 (Berkeley) 2/22/94 - */ - -#ifndef _SYS_UIO_H_ -#define _SYS_UIO_H_ - -#include -#include - -/* - * [XSI] The ssize_t and size_t types shall be defined as described - * in . - */ -#include -#include - -/* - * [XSI] Structure whose address is passed as the second parameter to the - * readv() and writev() functions. - */ -#include - - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* - * IO direction for uio_t. - * UIO_READ - data moves into iovec(s) associated with uio_t - * UIO_WRITE - data moves out of iovec(s) associated with uio_t - */ -enum uio_rw { UIO_READ, UIO_WRITE }; -#endif - - - -__BEGIN_DECLS -ssize_t readv(int, const struct iovec *, int) __DARWIN_ALIAS_C(readv); -ssize_t writev(int, const struct iovec *, int) __DARWIN_ALIAS_C(writev); -__END_DECLS - -#endif /* !_SYS_UIO_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/sys/un.h b/lib/libc/include/x86_64-macos.10-none/sys/un.h deleted file mode 100644 index a27ead54063a5835db7f409eba1c5459e9891c76..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/sys/un.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2000 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) 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. - * - * @(#)un.h 8.3 (Berkeley) 2/19/95 - */ - -#ifndef _SYS_UN_H_ -#define _SYS_UN_H_ - -#include -#include -#include - -/* [XSI] The sa_family_t type shall be defined as described in */ -#include - -/* - * [XSI] Definitions for UNIX IPC domain. - */ -struct sockaddr_un { - unsigned char sun_len; /* sockaddr len including null */ - sa_family_t sun_family; /* [XSI] AF_UNIX */ - char sun_path[104]; /* [XSI] path name (gag) */ -}; - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) - -/* Level number of get/setsockopt for local domain sockets */ -#define SOL_LOCAL 0 - -/* Socket options. */ -#define LOCAL_PEERCRED 0x001 /* retrieve peer credentials */ -#define LOCAL_PEERPID 0x002 /* retrieve peer pid */ -#define LOCAL_PEEREPID 0x003 /* retrieve eff. peer pid */ -#define LOCAL_PEERUUID 0x004 /* retrieve peer UUID */ -#define LOCAL_PEEREUUID 0x005 /* retrieve eff. peer UUID */ - -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - - - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -/* actual length of an initialized sockaddr_un */ -#define SUN_LEN(su) \ - (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path)) -#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ - - -#endif /* !_SYS_UN_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/time.h b/lib/libc/include/x86_64-macos.10-none/time.h deleted file mode 100644 index b2edfb95cd8049d3354a059bbb384ec1c89c40ae..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/time.h +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright (c) 2000 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@ - */ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * 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. - * - * @(#)time.h 8.3 (Berkeley) 1/21/94 - */ - -#ifndef _TIME_H_ -#define _TIME_H_ - -#include <_types.h> -#include -#include -#include -#include -#include -#include -#include - -struct tm { - int tm_sec; /* seconds after the minute [0-60] */ - int tm_min; /* minutes after the hour [0-59] */ - int tm_hour; /* hours since midnight [0-23] */ - int tm_mday; /* day of the month [1-31] */ - int tm_mon; /* months since January [0-11] */ - int tm_year; /* years since 1900 */ - int tm_wday; /* days since Sunday [0-6] */ - int tm_yday; /* days since January 1 [0-365] */ - int tm_isdst; /* Daylight Savings Time flag */ - long tm_gmtoff; /* offset from UTC in seconds */ - char *tm_zone; /* timezone abbreviation */ -}; - -#if __DARWIN_UNIX03 -#define CLOCKS_PER_SEC 1000000 /* [XSI] */ -#else /* !__DARWIN_UNIX03 */ -#include /* Include file containing CLK_TCK. */ - -#define CLOCKS_PER_SEC (__DARWIN_CLK_TCK) -#endif /* __DARWIN_UNIX03 */ - -#ifndef _ANSI_SOURCE -extern char *tzname[]; -#endif - -extern int getdate_err; -#if __DARWIN_UNIX03 -extern long timezone __DARWIN_ALIAS(timezone); -#endif /* __DARWIN_UNIX03 */ -extern int daylight; - -__BEGIN_DECLS -char *asctime(const struct tm *); -clock_t clock(void) __DARWIN_ALIAS(clock); -char *ctime(const time_t *); -double difftime(time_t, time_t); -struct tm *getdate(const char *); -struct tm *gmtime(const time_t *); -struct tm *localtime(const time_t *); -time_t mktime(struct tm *) __DARWIN_ALIAS(mktime); -size_t strftime(char * __restrict, size_t, const char * __restrict, const struct tm * __restrict) __DARWIN_ALIAS(strftime); -char *strptime(const char * __restrict, const char * __restrict, struct tm * __restrict) __DARWIN_ALIAS(strptime); -time_t time(time_t *); - -#ifndef _ANSI_SOURCE -void tzset(void); -#endif /* not ANSI */ - -/* [TSF] Thread safe functions */ -char *asctime_r(const struct tm * __restrict, char * __restrict); -char *ctime_r(const time_t *, char *); -struct tm *gmtime_r(const time_t * __restrict, struct tm * __restrict); -struct tm *localtime_r(const time_t * __restrict, struct tm * __restrict); - -#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) -time_t posix2time(time_t); -#if !__DARWIN_UNIX03 -char *timezone(int, int); -#endif /* !__DARWIN_UNIX03 */ -void tzsetwall(void); -time_t time2posix(time_t); -time_t timelocal(struct tm * const); -time_t timegm(struct tm * const); -#endif /* neither ANSI nor POSIX */ - -#if !defined(_ANSI_SOURCE) -int nanosleep(const struct timespec *__rqtp, struct timespec *__rmtp) __DARWIN_ALIAS_C(nanosleep); -#endif - -#if !defined(_DARWIN_FEATURE_CLOCK_GETTIME) || _DARWIN_FEATURE_CLOCK_GETTIME != 0 -#if __DARWIN_C_LEVEL >= 199309L -#if __has_feature(enumerator_attributes) -#define __CLOCK_AVAILABILITY __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0) -#else -#define __CLOCK_AVAILABILITY -#endif - -typedef enum { -_CLOCK_REALTIME __CLOCK_AVAILABILITY = 0, -#define CLOCK_REALTIME _CLOCK_REALTIME -_CLOCK_MONOTONIC __CLOCK_AVAILABILITY = 6, -#define CLOCK_MONOTONIC _CLOCK_MONOTONIC -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -_CLOCK_MONOTONIC_RAW __CLOCK_AVAILABILITY = 4, -#define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW -_CLOCK_MONOTONIC_RAW_APPROX __CLOCK_AVAILABILITY = 5, -#define CLOCK_MONOTONIC_RAW_APPROX _CLOCK_MONOTONIC_RAW_APPROX -_CLOCK_UPTIME_RAW __CLOCK_AVAILABILITY = 8, -#define CLOCK_UPTIME_RAW _CLOCK_UPTIME_RAW -_CLOCK_UPTIME_RAW_APPROX __CLOCK_AVAILABILITY = 9, -#define CLOCK_UPTIME_RAW_APPROX _CLOCK_UPTIME_RAW_APPROX -#endif -_CLOCK_PROCESS_CPUTIME_ID __CLOCK_AVAILABILITY = 12, -#define CLOCK_PROCESS_CPUTIME_ID _CLOCK_PROCESS_CPUTIME_ID -_CLOCK_THREAD_CPUTIME_ID __CLOCK_AVAILABILITY = 16 -#define CLOCK_THREAD_CPUTIME_ID _CLOCK_THREAD_CPUTIME_ID -} clockid_t; - -__CLOCK_AVAILABILITY -int clock_getres(clockid_t __clock_id, struct timespec *__res); - -__CLOCK_AVAILABILITY -int clock_gettime(clockid_t __clock_id, struct timespec *__tp); - -#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -__CLOCK_AVAILABILITY -__uint64_t clock_gettime_nsec_np(clockid_t __clock_id); -#endif - -__OSX_AVAILABLE(10.12) __IOS_PROHIBITED -__TVOS_PROHIBITED __WATCHOS_PROHIBITED -int clock_settime(clockid_t __clock_id, const struct timespec *__tp); - -#undef __CLOCK_AVAILABILITY -#endif /* __DARWIN_C_LEVEL */ -#endif /* _DARWIN_FEATURE_CLOCK_GETTIME */ - -#if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL) && \ - ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ - (defined(__cplusplus) && __cplusplus >= 201703L)) -/* ISO/IEC 9899:201x 7.27.2.5 The timespec_get function */ -#define TIME_UTC 1 /* time elapsed since epoch */ -__API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0)) -int timespec_get(struct timespec *ts, int base); -#endif - -__END_DECLS - -#ifdef _USE_EXTENDED_LOCALES_ -#include -#endif /* _USE_EXTENDED_LOCALES_ */ - -#endif /* !_TIME_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/ucontext.h b/lib/libc/include/x86_64-macos.10-none/ucontext.h deleted file mode 100644 index 32ffa65b7ee75f061928d90f76248830a25d839d..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/ucontext.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2002, 2008, 2009 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@ - */ - -/* - * These routines are DEPRECATED and should not be used. - */ -#ifndef _UCONTEXT_H_ -#define _UCONTEXT_H_ - -#include - -#ifdef _XOPEN_SOURCE -#include -#include - -__BEGIN_DECLS -int getcontext(ucontext_t *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -void makecontext(ucontext_t *, void (*)(), int, ...) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -int setcontext(const ucontext_t *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -int swapcontext(ucontext_t * __restrict, const ucontext_t * __restrict) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -__END_DECLS -#else /* !_XOPEN_SOURCE */ -#error The deprecated ucontext routines require _XOPEN_SOURCE to be defined -#endif /* _XOPEN_SOURCE */ - -#endif /* _UCONTEXT_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/unistd.h b/lib/libc/include/x86_64-macos.10-none/unistd.h deleted file mode 100644 index d07a4a61f520eaebc19ad0179dc803a0995eeecf..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/unistd.h +++ /dev/null @@ -1,787 +0,0 @@ -/* - * 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 -#include -#include -#include -#include -#include -/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see: - * _GCC_SIZE_T */ -#include -#include -#include -#include -#include - -#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 (-1) /* [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 */ -#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); -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 - -#include -#include -#include - -__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() -#include -#else -#include -#endif -#else -#include -#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 diff --git a/lib/libc/include/x86_64-macos.10-none/uuid/uuid.h b/lib/libc/include/x86_64-macos.10-none/uuid/uuid.h deleted file mode 100644 index ce75c9e0e1a62ca471428e6bcefa34efd77b3561..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/uuid/uuid.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Public include file for the UUID library - * - * Copyright (C) 1996, 1997, 1998 Theodore Ts'o. - * - * %Begin-Header% - * 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, and the entire permission notice in its entirety, - * including the disclaimer of warranties. - * 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. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior - * written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF - * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * %End-Header% - */ - -#ifndef _UUID_UUID_H -#define _UUID_UUID_H - -#include -#include - -#ifndef _UUID_STRING_T -#define _UUID_STRING_T -typedef __darwin_uuid_string_t uuid_string_t; -#endif /* _UUID_STRING_T */ - -#define UUID_DEFINE(name, u0, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) \ - static const uuid_t name __attribute__ ((unused)) = {u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15} - -UUID_DEFINE(UUID_NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - -#ifdef __cplusplus -extern "C" { -#endif - -void uuid_clear(uuid_t uu); - -int uuid_compare(const uuid_t uu1, const uuid_t uu2); - -void uuid_copy(uuid_t dst, const uuid_t src); - -void uuid_generate(uuid_t out); -void uuid_generate_random(uuid_t out); -void uuid_generate_time(uuid_t out); - -void uuid_generate_early_random(uuid_t out); - -int uuid_is_null(const uuid_t uu); - -int uuid_parse(const uuid_string_t in, uuid_t uu); - -void uuid_unparse(const uuid_t uu, uuid_string_t out); -void uuid_unparse_lower(const uuid_t uu, uuid_string_t out); -void uuid_unparse_upper(const uuid_t uu, uuid_string_t out); - -#ifdef __cplusplus -} -#endif - -#endif /* _UUID_UUID_H */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/xlocale/_inttypes.h b/lib/libc/include/x86_64-macos.10-none/xlocale/_inttypes.h deleted file mode 100644 index 4da8f90c6d69be82c6679805d60b9bb178ceb734..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/xlocale/_inttypes.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2005 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 _XLOCALE__INTTYPES_H_ -#define _XLOCALE__INTTYPES_H_ - -#include -#include -#include <_xlocale.h> - -__BEGIN_DECLS -intmax_t strtoimax_l(const char * __restrict nptr, char ** __restrict endptr, - int base, locale_t); -uintmax_t strtoumax_l(const char * __restrict nptr, char ** __restrict endptr, - int base, locale_t); -intmax_t wcstoimax_l(const wchar_t * __restrict nptr, - wchar_t ** __restrict endptr, int base, locale_t); -uintmax_t wcstoumax_l(const wchar_t * __restrict nptr, - wchar_t ** __restrict endptr, int base, locale_t); - -/* Poison the following routines if -fshort-wchar is set */ -#if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU -#pragma GCC poison wcstoimax_l wcstoumax_l -#endif -__END_DECLS - -#endif /* _XLOCALE__INTTYPES_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/xlocale/_wchar.h b/lib/libc/include/x86_64-macos.10-none/xlocale/_wchar.h deleted file mode 100644 index b4af0f816e09c5dbf3145fa684f253083515e39c..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/xlocale/_wchar.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2005 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 _XLOCALE__WCHAR_H_ -#define _XLOCALE__WCHAR_H_ - -#include <_stdio.h> -#include <_xlocale.h> -#include - -/* Initially added in Issue 4 */ -__BEGIN_DECLS -wint_t btowc_l(int, locale_t); -wint_t fgetwc_l(FILE *, locale_t); -wchar_t *fgetws_l(wchar_t * __restrict, int, FILE * __restrict, locale_t); -wint_t fputwc_l(wchar_t, FILE *, locale_t); -int fputws_l(const wchar_t * __restrict, FILE * __restrict, locale_t); -int fwprintf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...); -int fwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...); -wint_t getwc_l(FILE *, locale_t); -wint_t getwchar_l(locale_t); -size_t mbrlen_l(const char * __restrict, size_t, mbstate_t * __restrict, - locale_t); -size_t mbrtowc_l(wchar_t * __restrict, const char * __restrict, size_t, - mbstate_t * __restrict, locale_t); -int mbsinit_l(const mbstate_t *, locale_t); -size_t mbsrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, - mbstate_t * __restrict, locale_t); -wint_t putwc_l(wchar_t, FILE *, locale_t); -wint_t putwchar_l(wchar_t, locale_t); -int swprintf_l(wchar_t * __restrict, size_t n, locale_t, - const wchar_t * __restrict, ...); -int swscanf_l(const wchar_t * __restrict, locale_t, - const wchar_t * __restrict, ...); -wint_t ungetwc_l(wint_t, FILE *, locale_t); -int vfwprintf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, - __darwin_va_list); -int vswprintf_l(wchar_t * __restrict, size_t n, locale_t, - const wchar_t * __restrict, __darwin_va_list); -int vwprintf_l(locale_t, const wchar_t * __restrict, __darwin_va_list); -size_t wcrtomb_l(char * __restrict, wchar_t, mbstate_t * __restrict, - locale_t); -int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); -size_t wcsftime_l(wchar_t * __restrict, size_t, const wchar_t * __restrict, - const struct tm * __restrict, locale_t) - __DARWIN_ALIAS(wcsftime_l); -size_t wcsrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, - mbstate_t * __restrict, locale_t); -double wcstod_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); -long wcstol_l(const wchar_t * __restrict, wchar_t ** __restrict, int, - locale_t); -unsigned long - wcstoul_l(const wchar_t * __restrict, wchar_t ** __restrict, int, - locale_t); -int wcswidth_l(const wchar_t *, size_t, locale_t); -size_t wcsxfrm_l(wchar_t * __restrict, const wchar_t * __restrict, size_t, - locale_t); -int wctob_l(wint_t, locale_t); -int wcwidth_l(wchar_t, locale_t); -int wprintf_l(locale_t, const wchar_t * __restrict, ...); -int wscanf_l(locale_t, const wchar_t * __restrict, ...); -__END_DECLS - - - -/* Additional functionality provided by: - * POSIX.1-2001 - */ - -#if __DARWIN_C_LEVEL >= 200112L -__BEGIN_DECLS -int vfwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, - __darwin_va_list); -int vswscanf_l(const wchar_t * __restrict, locale_t, - const wchar_t * __restrict, __darwin_va_list); -int vwscanf_l(locale_t, const wchar_t * __restrict, __darwin_va_list); -float wcstof_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); -long double - wcstold_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); -#if !__DARWIN_NO_LONG_LONG -long long - wcstoll_l(const wchar_t * __restrict, wchar_t ** __restrict, int, - locale_t); -unsigned long long - wcstoull_l(const wchar_t * __restrict, wchar_t ** __restrict, int, - locale_t); -#endif /* !__DARWIN_NO_LONG_LONG */ -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 200112L */ - - - -/* Additional functionality provided by: - * POSIX.1-2008 - */ - -#if __DARWIN_C_LEVEL >= 200809L -__BEGIN_DECLS -size_t mbsnrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, - size_t, mbstate_t * __restrict, locale_t); -int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t n, locale_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -size_t wcsnrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, - size_t, mbstate_t * __restrict, locale_t); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= 200809L */ - - - -/* Darwin extensions */ - -#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -__BEGIN_DECLS -wchar_t *fgetwln_l(FILE * __restrict, size_t *, locale_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -__END_DECLS -#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ - - - -/* Poison the following routines if -fshort-wchar is set */ -#if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU -#pragma GCC poison fgetwln_l fgetws_l fputwc_l fputws_l fwprintf_l fwscanf_l mbrtowc_l mbsnrtowcs_l mbsrtowcs_l putwc_l putwchar_l swprintf_l swscanf_l vfwprintf_l vfwscanf_l vswprintf_l vswscanf_l vwprintf_l vwscanf_l wcrtomb_l wcscoll_l wcsftime_l wcsftime_l wcsnrtombs_l wcsrtombs_l wcstod_l wcstof_l wcstol_l wcstold_l wcstoll_l wcstoul_l wcstoull_l wcswidth_l wcsxfrm_l wcwidth_l wprintf_l wscanf_l -#endif - -#endif /* _XLOCALE__WCHAR_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/xpc/activity.h b/lib/libc/include/x86_64-macos.10-none/xpc/activity.h deleted file mode 100644 index c48051f145878798b22f39e8506cc62b2a72f2a2..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/xpc/activity.h +++ /dev/null @@ -1,446 +0,0 @@ -#ifndef __XPC_ACTIVITY_H__ -#define __XPC_ACTIVITY_H__ - -#ifndef __XPC_INDIRECT__ -#error "Please #include instead of this file directly." -// For HeaderDoc. -#include -#endif // __XPC_INDIRECT__ - -#ifdef __BLOCKS__ - -XPC_ASSUME_NONNULL_BEGIN -__BEGIN_DECLS - -/* - * The following are a collection of keys and values used to set an activity's - * execution criteria. - */ - -/*! - * @constant XPC_ACTIVITY_INTERVAL - * An integer property indicating the desired time interval (in seconds) of the - * activity. The activity will not be run more than once per time interval. - * Due to the nature of XPC Activity finding an opportune time to run - * the activity, any two occurrences may be more or less than 'interval' - * seconds apart, but on average will be 'interval' seconds apart. - * The presence of this key implies the following, unless overridden: - * - XPC_ACTIVITY_REPEATING with a value of true - * - XPC_ACTIVITY_DELAY with a value of half the 'interval' - * The delay enforces a minimum distance between any two occurrences. - * - XPC_ACTIVITY_GRACE_PERIOD with a value of half the 'interval'. - * The grace period is the amount of time allowed to pass after the end of - * the interval before more aggressive scheduling occurs. The grace period - * does not increase the size of the interval. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_INTERVAL; - -/*! - * @constant XPC_ACTIVITY_REPEATING - * A boolean property indicating whether this is a repeating activity. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_REPEATING; - -/*! - * @constant XPC_ACTIVITY_DELAY - * An integer property indicating the number of seconds to delay before - * beginning the activity. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_DELAY; - -/*! - * @constant XPC_ACTIVITY_GRACE_PERIOD - * An integer property indicating the number of seconds to allow as a grace - * period before the scheduling of the activity becomes more aggressive. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_GRACE_PERIOD; - - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_1_MIN; - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_5_MIN; - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_15_MIN; - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_30_MIN; - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_1_HOUR; - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_4_HOURS; - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_8_HOURS; - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_1_DAY; - -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const int64_t XPC_ACTIVITY_INTERVAL_7_DAYS; - -/*! - * @constant XPC_ACTIVITY_PRIORITY - * A string property indicating the priority of the activity. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_PRIORITY; - -/*! - * @constant XPC_ACTIVITY_PRIORITY_MAINTENANCE - * A string indicating activity is maintenance priority. - * - * Maintenance priority is intended for user-invisible maintenance tasks - * such as garbage collection or optimization. - * - * Maintenance activities are not permitted to run if the device thermal - * condition exceeds a nominal level or if the battery level is lower than 20%. - * In Low Power Mode (on supported devices), maintenance activities are not - * permitted to run while the device is on battery, or plugged in and the - * battery level is lower than 30%. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_PRIORITY_MAINTENANCE; - -/*! - * @constant XPC_ACTIVITY_PRIORITY_UTILITY - * A string indicating activity is utility priority. - * - * Utility priority is intended for user-visible tasks such as fetching data - * from the network, copying files, or importing data. - * - * Utility activities are not permitted to run if the device thermal condition - * exceeds a moderate level or if the battery level is less than 10%. In Low - * Power Mode (on supported devices) when on battery power, utility activities - * are only permitted when they are close to their deadline (90% of their time - * window has elapsed). - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_PRIORITY_UTILITY; - -/*! - * @constant XPC_ACTIVITY_ALLOW_BATTERY - * A Boolean value indicating whether the activity should be allowed to run - * while the computer is on battery power. The default value is false for - * maintenance priority activity and true for utility priority activity. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_ALLOW_BATTERY; - -/*! - * @constant XPC_ACTIVITY_REQUIRE_SCREEN_SLEEP - * A Boolean value indicating whether the activity should only be performed - * while device appears to be asleep. Note that the definition of screen sleep - * may vary by platform and may include states where the device is known to be - * idle despite the fact that the display itself is still powered. Defaults to - * false. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const char * const XPC_ACTIVITY_REQUIRE_SCREEN_SLEEP; // bool - -/*! - * @constant XPC_ACTIVITY_REQUIRE_BATTERY_LEVEL - * An integer percentage of minimum battery charge required to allow the - * activity to run. A default minimum battery level is determined by the - * system. - */ -__OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_9, __IPHONE_7_0, __IPHONE_7_0, - "REQUIRE_BATTERY_LEVEL is not implemented") -XPC_EXPORT -const char * const XPC_ACTIVITY_REQUIRE_BATTERY_LEVEL; // int (%) - -/*! - * @constant XPC_ACTIVITY_REQUIRE_HDD_SPINNING - * A Boolean value indicating whether the activity should only be performed - * while the hard disk drive (HDD) is spinning. Computers with flash storage - * are considered to be equivalent to HDD spinning. Defaults to false. - */ -__OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_9, __IPHONE_7_0, __IPHONE_7_0, - "REQUIRE_HDD_SPINNING is not implemented") -XPC_EXPORT -const char * const XPC_ACTIVITY_REQUIRE_HDD_SPINNING; // bool - -/*! - * @define XPC_TYPE_ACTIVITY - * A type representing the XPC activity object. - */ -#define XPC_TYPE_ACTIVITY (&_xpc_type_activity) -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_activity); - -/*! - * @typedef xpc_activity_t - * - * @abstract - * An XPC activity object. - * - * @discussion - * This object represents a set of execution criteria and a current execution - * state for background activity on the system. Once an activity is registered, - * the system will evaluate its criteria to determine whether the activity is - * eligible to run under current system conditions. When an activity becomes - * eligible to run, its execution state will be updated and an invocation of - * its handler block will be made. - */ -XPC_DECL(xpc_activity); - -/*! - * @typedef xpc_activity_handler_t - * - * @abstract - * A block that is called when an XPC activity becomes eligible to run. - */ -XPC_NONNULL1 -typedef void (^xpc_activity_handler_t)(xpc_activity_t activity); - -/*! - * @constant XPC_ACTIVITY_CHECK_IN - * This constant may be passed to xpc_activity_register() as the criteria - * dictionary in order to check in with the system for previously registered - * activity using the same identifier (for example, an activity taken from a - * launchd property list). - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT -const xpc_object_t XPC_ACTIVITY_CHECK_IN; - -/*! - * @function xpc_activity_register - * - * @abstract - * Registers an activity with the system. - * - * @discussion - * Registers a new activity with the system. The criteria of the activity are - * described by the dictionary passed to this function. If an activity with the - * same identifier already exists, the criteria provided override the existing - * criteria unless the special dictionary XPC_ACTIVITY_CHECK_IN is used. The - * XPC_ACTIVITY_CHECK_IN dictionary instructs the system to first look up an - * existing activity without modifying its criteria. Once the existing activity - * is found (or a new one is created with an empty set of criteria) the handler - * will be called with an activity object in the XPC_ACTIVITY_STATE_CHECK_IN - * state. - * - * @param identifier - * A unique identifier for the activity. Each application has its own namespace. - * The identifier should remain constant across registrations, relaunches of - * the application, and reboots. It should identify the kind of work being done, - * not a particular invocation of the work. - * - * @param criteria - * A dictionary of criteria for the activity. - * - * @param handler - * The handler block to be called when the activity changes state to one of the - * following states: - * - XPC_ACTIVITY_STATE_CHECK_IN (optional) - * - XPC_ACTIVITY_STATE_RUN - * - * The handler block is never invoked reentrantly. It will be invoked on a - * dispatch queue with an appropriate priority to perform the activity. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3 -void -xpc_activity_register(const char *identifier, xpc_object_t criteria, - xpc_activity_handler_t handler); - -/*! - * @function xpc_activity_copy_criteria - * - * @abstract - * Returns an XPC dictionary describing the execution criteria of an activity. - * This will return NULL in cases where the activity has already completed, e.g. - * when checking in to an event that finished and was not rescheduled. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT XPC_WARN_RESULT XPC_RETURNS_RETAINED XPC_NONNULL1 -xpc_object_t _Nullable -xpc_activity_copy_criteria(xpc_activity_t activity); - -/*! - * @function xpc_activity_set_criteria - * - * @abstract - * Modifies the execution criteria of an activity. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_activity_set_criteria(xpc_activity_t activity, xpc_object_t criteria); - -/*! - * @enum xpc_activity_state_t - * An activity is defined to be in one of the following states. Applications - * may check the current state of the activity using xpc_activity_get_state() - * in the handler block provided to xpc_activity_register(). - * - * The application can modify the state of the activity by calling - * xpc_activity_set_state() with one of the following: - * - XPC_ACTIVITY_STATE_DEFER - * - XPC_ACTIVITY_STATE_CONTINUE - * - XPC_ACTIVITY_STATE_DONE - * - * @constant XPC_ACTIVITY_STATE_CHECK_IN - * An activity in this state has just completed a checkin with the system after - * XPC_ACTIVITY_CHECK_IN was provided as the criteria dictionary to - * xpc_activity_register. The state gives the application an opportunity to - * inspect and modify the activity's criteria. - * - * @constant XPC_ACTIVITY_STATE_WAIT - * An activity in this state is waiting for an opportunity to run. This value - * is never returned within the activity's handler block, as the block is - * invoked in response to XPC_ACTIVITY_STATE_CHECK_IN or XPC_ACTIVITY_STATE_RUN. - * - * Note: - * A launchd job may idle exit while an activity is in the wait state and be - * relaunched in response to the activity becoming runnable. The launchd job - * simply needs to re-register for the activity on its next launch by passing - * XPC_ACTIVITY_STATE_CHECK_IN to xpc_activity_register(). - * - * @constant XPC_ACTIVITY_STATE_RUN - * An activity in this state is eligible to run based on its criteria. - * - * @constant XPC_ACTIVITY_STATE_DEFER - * An application may pass this value to xpc_activity_set_state() to indicate - * that the activity should be deferred (placed back into the WAIT state) until - * a time when its criteria are met again. Deferring an activity does not reset - * any of its time-based criteria (in other words, it will remain past due). - * - * IMPORTANT: - * This should be done in response to observing xpc_activity_should_defer(). - * It should not be done unilaterally. If you determine that conditions are bad - * to do your activity's work for reasons you can't express in a criteria - * dictionary, you should set the activity's state to XPC_ACTIVITY_STATE_DONE. - * - * - * @constant XPC_ACTIVITY_STATE_CONTINUE - * An application may pass this value to xpc_activity_set_state() to indicate - * that the activity will continue its operation beyond the return of its - * handler block. This can be used to extend an activity to include asynchronous - * operations. The activity's handler block will not be invoked again until the - * state has been updated to either XPC_ACTIVITY_STATE_DEFER or, in the case - * of repeating activity, XPC_ACTIVITY_STATE_DONE. - * - * @constant XPC_ACTIVITY_STATE_DONE - * An application may pass this value to xpc_activity_set_state() to indicate - * that the activity has completed. For non-repeating activity, the resources - * associated with the activity will be automatically released upon return from - * the handler block. For repeating activity, timers present in the activity's - * criteria will be reset. - */ -enum { - XPC_ACTIVITY_STATE_CHECK_IN, - XPC_ACTIVITY_STATE_WAIT, - XPC_ACTIVITY_STATE_RUN, - XPC_ACTIVITY_STATE_DEFER, - XPC_ACTIVITY_STATE_CONTINUE, - XPC_ACTIVITY_STATE_DONE, -}; -typedef long xpc_activity_state_t; - -/*! - * @function xpc_activity_get_state - * - * @abstract - * Returns the current state of an activity. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -xpc_activity_state_t -xpc_activity_get_state(xpc_activity_t activity); - -/*! - * @function xpc_activity_set_state - * - * @abstract - * Updates the current state of an activity. - * - * @return - * Returns true if the state was successfully updated; otherwise, returns - * false if the requested state transition is not valid. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -bool -xpc_activity_set_state(xpc_activity_t activity, xpc_activity_state_t state); - -/*! - * @function xpc_activity_should_defer - * - * @abstract - * Test whether an activity should be deferred. - * - * @discussion - * This function may be used to test whether the criteria of a long-running - * activity are still satisfied. If not, the system indicates that the - * application should defer the activity. The application may acknowledge the - * deferral by calling xpc_activity_set_state() with XPC_ACTIVITY_STATE_DEFER. - * Once deferred, the system will place the activity back into the WAIT state - * and re-invoke the handler block at the earliest opportunity when the criteria - * are once again satisfied. - * - * @return - * Returns true if the activity should be deferred. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -bool -xpc_activity_should_defer(xpc_activity_t activity); - -/*! - * @function xpc_activity_unregister - * - * @abstract - * Unregisters an activity found by its identifier. - * - * @discussion - * A dynamically registered activity will be deleted in response to this call. - * Statically registered activity (from a launchd property list) will be - * deleted until the job is next loaded (e.g. at next boot). - * - * Unregistering an activity has no effect on any outstanding xpc_activity_t - * objects or any currently executing xpc_activity_handler_t blocks; however, - * no new handler block invocations will be made after it is unregistered. - * - * @param identifier - * The identifier of the activity to unregister. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_activity_unregister(const char *identifier); - -__END_DECLS -XPC_ASSUME_NONNULL_END - -#endif // __BLOCKS__ - -#endif // __XPC_ACTIVITY_H__ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/xpc/availability.h b/lib/libc/include/x86_64-macos.10-none/xpc/availability.h deleted file mode 100644 index d4efcec6858e4b9c7bee31f198d9e6f4a287dba8..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/xpc/availability.h +++ /dev/null @@ -1,120 +0,0 @@ -#ifndef __XPC_AVAILABILITY_H__ -#define __XPC_AVAILABILITY_H__ - -#include - -// 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_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 __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() -#include -#else // __has_include() -#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() - -#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 diff --git a/lib/libc/include/x86_64-macos.10-none/xpc/base.h b/lib/libc/include/x86_64-macos.10-none/xpc/base.h deleted file mode 100644 index 8fce33a1d4761e450af8e02584bdb072eea957f7..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/xpc/base.h +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright (c) 2009-2011 Apple Inc. All rights reserved. - -#ifndef __XPC_BASE_H__ -#define __XPC_BASE_H__ - -#include - -__BEGIN_DECLS - -#if !defined(__has_include) -#define __has_include(x) 0 -#endif // !defined(__has_include) - -#if !defined(__has_attribute) -#define __has_attribute(x) 0 -#endif // !defined(__has_attribute) - -#if !defined(__has_feature) -#define __has_feature(x) 0 -#endif // !defined(__has_feature) - -#if !defined(__has_extension) -#define __has_extension(x) 0 -#endif // !defined(__has_extension) - -#if __has_include() -#include -#else // __has_include() -#include -#endif // __has_include() - -#ifndef __XPC_INDIRECT__ -#error "Please #include instead of this file directly." -#endif // __XPC_INDIRECT__ - -#pragma mark Attribute Shims -#ifdef __GNUC__ -#define XPC_CONSTRUCTOR __attribute__((constructor)) -#define XPC_NORETURN __attribute__((__noreturn__)) -#define XPC_NOTHROW __attribute__((__nothrow__)) -#define XPC_NONNULL1 __attribute__((__nonnull__(1))) -#define XPC_NONNULL2 __attribute__((__nonnull__(2))) -#define XPC_NONNULL3 __attribute__((__nonnull__(3))) -#define XPC_NONNULL4 __attribute__((__nonnull__(4))) -#define XPC_NONNULL5 __attribute__((__nonnull__(5))) -#define XPC_NONNULL6 __attribute__((__nonnull__(6))) -#define XPC_NONNULL7 __attribute__((__nonnull__(7))) -#define XPC_NONNULL8 __attribute__((__nonnull__(8))) -#define XPC_NONNULL9 __attribute__((__nonnull__(9))) -#define XPC_NONNULL10 __attribute__((__nonnull__(10))) -#define XPC_NONNULL11 __attribute__((__nonnull__(11))) -#define XPC_NONNULL_ALL __attribute__((__nonnull__)) -#define XPC_SENTINEL __attribute__((__sentinel__)) -#define XPC_PURE __attribute__((__pure__)) -#define XPC_WARN_RESULT __attribute__((__warn_unused_result__)) -#define XPC_MALLOC __attribute__((__malloc__)) -#define XPC_UNUSED __attribute__((__unused__)) -#define XPC_USED __attribute__((__used__)) -#define XPC_PACKED __attribute__((__packed__)) -#define XPC_PRINTF(m, n) __attribute__((format(printf, m, n))) -#define XPC_INLINE static __inline__ __attribute__((__always_inline__)) -#define XPC_NOINLINE __attribute__((noinline)) -#define XPC_NOIMPL __attribute__((unavailable)) - -#if __has_attribute(noescape) -#define XPC_NOESCAPE __attribute__((__noescape__)) -#else -#define XPC_NOESCAPE -#endif - -#if __has_extension(attribute_unavailable_with_message) -#define XPC_UNAVAILABLE(m) __attribute__((unavailable(m))) -#else // __has_extension(attribute_unavailable_with_message) -#define XPC_UNAVAILABLE(m) XPC_NOIMPL -#endif // __has_extension(attribute_unavailable_with_message) - -#define XPC_EXPORT extern __attribute__((visibility("default"))) -#define XPC_NOEXPORT __attribute__((visibility("hidden"))) -#define XPC_WEAKIMPORT extern __attribute__((weak_import)) -#define XPC_DEBUGGER_EXCL XPC_NOEXPORT XPC_USED -#define XPC_TRANSPARENT_UNION __attribute__((transparent_union)) -#if __clang__ -#define XPC_DEPRECATED(m) __attribute__((deprecated(m))) -#else // __clang__ -#define XPC_DEPRECATED(m) __attribute__((deprecated)) -#endif // __clang - -#if defined(__XPC_TEST__) && __XPC_TEST__ -#define XPC_TESTSTATIC -#define XPC_TESTEXTERN extern -#else // defined(__XPC_TEST__) && __XPC_TEST__ -#define XPC_TESTSTATIC static -#endif // defined(__XPC_TEST__) && __XPC_TEST__ - -#if __has_feature(objc_arc) -#define XPC_GIVES_REFERENCE __strong -#define XPC_UNRETAINED __unsafe_unretained -#define XPC_BRIDGE(xo) ((__bridge void *)(xo)) -#define XPC_BRIDGEREF_BEGIN(xo) ((__bridge_retained void *)(xo)) -#define XPC_BRIDGEREF_BEGIN_WITH_REF(xo) ((__bridge void *)(xo)) -#define XPC_BRIDGEREF_MIDDLE(xo) ((__bridge id)(xo)) -#define XPC_BRIDGEREF_END(xo) ((__bridge_transfer id)(xo)) -#else // __has_feature(objc_arc) -#define XPC_GIVES_REFERENCE -#define XPC_UNRETAINED -#define XPC_BRIDGE(xo) (xo) -#define XPC_BRIDGEREF_BEGIN(xo) (xo) -#define XPC_BRIDGEREF_BEGIN_WITH_REF(xo) (xo) -#define XPC_BRIDGEREF_MIDDLE(xo) (xo) -#define XPC_BRIDGEREF_END(xo) (xo) -#endif // __has_feature(objc_arc) - -#define _xpc_unreachable() __builtin_unreachable() -#else // __GNUC__ -/*! @parseOnly */ -#define XPC_CONSTRUCTOR -/*! @parseOnly */ -#define XPC_NORETURN -/*! @parseOnly */ -#define XPC_NOTHROW -/*! @parseOnly */ -#define XPC_NONNULL1 -/*! @parseOnly */ -#define XPC_NONNULL2 -/*! @parseOnly */ -#define XPC_NONNULL3 -/*! @parseOnly */ -#define XPC_NONNULL4 -/*! @parseOnly */ -#define XPC_NONNULL5 -/*! @parseOnly */ -#define XPC_NONNULL6 -/*! @parseOnly */ -#define XPC_NONNULL7 -/*! @parseOnly */ -#define XPC_NONNULL8 -/*! @parseOnly */ -#define XPC_NONNULL9 -/*! @parseOnly */ -#define XPC_NONNULL10 -/*! @parseOnly */ -#define XPC_NONNULL11 -/*! @parseOnly */ -#define XPC_NONNULL(n) -/*! @parseOnly */ -#define XPC_NONNULL_ALL -/*! @parseOnly */ -#define XPC_SENTINEL -/*! @parseOnly */ -#define XPC_PURE -/*! @parseOnly */ -#define XPC_WARN_RESULT -/*! @parseOnly */ -#define XPC_MALLOC -/*! @parseOnly */ -#define XPC_UNUSED -/*! @parseOnly */ -#define XPC_PACKED -/*! @parseOnly */ -#define XPC_PRINTF(m, n) -/*! @parseOnly */ -#define XPC_INLINE static inline -/*! @parseOnly */ -#define XPC_NOINLINE -/*! @parseOnly */ -#define XPC_NOIMPL -/*! @parseOnly */ -#define XPC_EXPORT extern -/*! @parseOnly */ -#define XPC_WEAKIMPORT -/*! @parseOnly */ -#define XPC_DEPRECATED -/*! @parseOnly */ -#define XPC_UNAVAILABLE(m) -/*! @parseOnly */ -#define XPC_NOESCAPE -#endif // __GNUC__ - -#if __has_feature(assume_nonnull) -#define XPC_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") -#define XPC_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") -#else -#define XPC_ASSUME_NONNULL_BEGIN -#define XPC_ASSUME_NONNULL_END -#endif - -#if __has_feature(nullability_on_arrays) -#define XPC_NONNULL_ARRAY _Nonnull -#else -#define XPC_NONNULL_ARRAY -#endif - -#ifdef OS_CLOSED_OPTIONS -#define XPC_FLAGS_ENUM(_name, _type, ...) \ - OS_CLOSED_OPTIONS(_name, _type, __VA_ARGS__) -#else // OS_CLOSED_ENUM -#define XPC_FLAGS_ENUM(_name, _type, ...) \ - OS_ENUM(_name, _type, __VA_ARGS__) -#endif // OS_CLOSED_ENUM - -#ifdef OS_CLOSED_ENUM -#define XPC_ENUM(_name, _type, ...) \ - OS_CLOSED_ENUM(_name, _type, __VA_ARGS__) -#else // OS_CLOSED_ENUM -#define XPC_ENUM(_name, _type, ...) \ - OS_ENUM(_name, _type, __VA_ARGS__) -#endif // OS_CLOSED_ENUM - -__END_DECLS - -#endif // __XPC_BASE_H__ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/xpc/connection.h b/lib/libc/include/x86_64-macos.10-none/xpc/connection.h deleted file mode 100644 index 7a6ac1a2f902bf875e556419e68b6006e688eb21..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/xpc/connection.h +++ /dev/null @@ -1,747 +0,0 @@ -#ifndef __XPC_CONNECTION_H__ -#define __XPC_CONNECTION_H__ - -#ifndef __XPC_INDIRECT__ -#error "Please #include instead of this file directly." -// For HeaderDoc. -#include -#endif // __XPC_INDIRECT__ - -#ifndef __BLOCKS__ -#error "XPC connections require Blocks support." -#endif // __BLOCKS__ - -XPC_ASSUME_NONNULL_BEGIN -__BEGIN_DECLS - -/*! - * @constant XPC_ERROR_CONNECTION_INTERRUPTED - * Will be delivered to the connection's event handler if the remote service - * exited. The connection is still live even in this case, and resending a - * message will cause the service to be launched on-demand. This error serves - * as a client's indication that it should resynchronize any state that it had - * given the service. - * - * Any messages in the queue to be sent will be unwound and canceled when this - * error occurs. In the case where a message waiting to be sent has a reply - * handler, that handler will be invoked with this error. In the context of the - * reply handler, this error indicates that a reply to the message will never - * arrive. - * - * Messages that do not have reply handlers associated with them will be - * silently disposed of. This error will only be given to peer connections. - */ -#define XPC_ERROR_CONNECTION_INTERRUPTED \ - XPC_GLOBAL_OBJECT(_xpc_error_connection_interrupted) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -const struct _xpc_dictionary_s _xpc_error_connection_interrupted; - -/*! - * @constant XPC_ERROR_CONNECTION_INVALID - * Will be delivered to the connection's event handler if the named service - * provided to xpc_connection_create() could not be found in the XPC service - * namespace. The connection is useless and should be disposed of. - * - * Any messages in the queue to be sent will be unwound and canceled when this - * error occurs, similarly to the behavior when XPC_ERROR_CONNECTION_INTERRUPTED - * occurs. The only difference is that the XPC_ERROR_CONNECTION_INVALID will be - * given to outstanding reply handlers and the connection's event handler. - * - * This error may be given to any type of connection. - */ -#define XPC_ERROR_CONNECTION_INVALID \ - XPC_GLOBAL_OBJECT(_xpc_error_connection_invalid) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -const struct _xpc_dictionary_s _xpc_error_connection_invalid; - -/*! - * @constant XPC_ERROR_TERMINATION_IMMINENT - * On macOS, this error will be delivered to a peer connection's event handler - * when the XPC runtime has determined that the program should exit and that - * all outstanding transactions must be wound down, and no new transactions can - * be opened. - * - * After this error has been delivered to the event handler, no more messages - * will be received by the connection. The runtime will still attempt to deliver - * outgoing messages, but this error should be treated as an indication that - * the program will exit very soon, and any outstanding business over the - * connection should be wrapped up as quickly as possible and the connection - * canceled shortly thereafter. - * - * This error will only be delivered to peer connections received through a - * listener or the xpc_main() event handler. - */ -#define XPC_ERROR_TERMINATION_IMMINENT \ - XPC_GLOBAL_OBJECT(_xpc_error_termination_imminent) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -const struct _xpc_dictionary_s _xpc_error_termination_imminent; - -/*! - * @constant XPC_CONNECTION_MACH_SERVICE_LISTENER - * Passed to xpc_connection_create_mach_service(). This flag indicates that the - * caller is the listener for the named service. This flag may only be passed - * for services which are advertised in the process' launchd.plist(5). You may - * not use this flag to dynamically add services to the Mach bootstrap - * namespace. - */ -#define XPC_CONNECTION_MACH_SERVICE_LISTENER (1 << 0) - -/*! - * @constant XPC_CONNECTION_MACH_SERVICE_PRIVILEGED - * Passed to xpc_connection_create_mach_service(). This flag indicates that the - * job advertising the service name in its launchd.plist(5) should be in the - * privileged Mach bootstrap. This is typically accomplished by placing your - * launchd.plist(5) in /Library/LaunchDaemons. If specified alongside the - * XPC_CONNECTION_MACH_SERVICE_LISTENER flag, this flag is a no-op. - */ -#define XPC_CONNECTION_MACH_SERVICE_PRIVILEGED (1 << 1) - -/*! - * @typedef xpc_finalizer_f - * A function that is invoked when a connection is being torn down and its - * context needs to be freed. The sole argument is the value that was given to - * {@link xpc_connection_set_context} or NULL if no context has been set. It is - * not safe to reference the connection from within this function. - * - * @param value - * The context object that is to be disposed of. - */ -typedef void (*xpc_finalizer_t)(void * _Nullable value); - -/*! - * @function xpc_connection_create - * Creates a new connection object. - * - * @param name - * If non-NULL, the name of the service with which to connect. The returned - * connection will be a peer. - * - * If NULL, an anonymous listener connection will be created. You can embed the - * ability to create new peer connections in an endpoint, which can be inserted - * into a message and sent to another process . - * - * @param targetq - * The GCD queue to which the event handler block will be submitted. This - * parameter may be NULL, in which case the connection's target queue will be - * libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT. - * The target queue may be changed later with a call to - * xpc_connection_set_target_queue(). - * - * @result - * A new connection object. The caller is responsible for disposing of the - * returned object with {@link xpc_release} when it is no longer needed. - * - * @discussion - * This method will succeed even if the named service does not exist. This is - * because the XPC namespace is not queried for the service name until the - * connection has been activated. See {@link xpc_connection_activate()}. - * - * XPC connections, like dispatch sources, are returned in an inactive state, so - * you must call {@link xpc_connection_activate()} in order to begin receiving - * events from the connection. Also like dispatch sources, connections must be - * activated and not suspended in order to be safely released. It is - * a programming error to release an inactive or suspended connection. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_connection_t -xpc_connection_create(const char * _Nullable name, - dispatch_queue_t _Nullable targetq); - -/*! - * @function xpc_connection_create_mach_service - * Creates a new connection object representing a Mach service. - * - * @param name - * The name of the remote service with which to connect. The service name must - * exist in a Mach bootstrap that is accessible to the process and be advertised - * in a launchd.plist. - * - * @param targetq - * The GCD queue to which the event handler block will be submitted. This - * parameter may be NULL, in which case the connection's target queue will be - * libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT. - * The target queue may be changed later with a call to - * xpc_connection_set_target_queue(). - * - * @param flags - * Additional attributes with which to create the connection. - * - * @result - * A new connection object. - * - * @discussion - * If the XPC_CONNECTION_MACH_SERVICE_LISTENER flag is given to this method, - * then the connection returned will be a listener connection. Otherwise, a peer - * connection will be returned. See the documentation for - * {@link xpc_connection_set_event_handler()} for the semantics of listener - * connections versus peer connections. - * - * This method will succeed even if the named service does not exist. This is - * because the Mach namespace is not queried for the service name until the - * connection has been activated. See {@link xpc_connection_activate()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 -xpc_connection_t -xpc_connection_create_mach_service(const char *name, - dispatch_queue_t _Nullable targetq, uint64_t flags); - -/*! - * @function xpc_connection_create_from_endpoint - * Creates a new connection from the given endpoint. - * - * @param endpoint - * The endpoint from which to create the new connection. - * - * @result - * A new peer connection to the listener represented by the given endpoint. - * - * The same responsibilities of setting an event handler and activating the - * connection after calling xpc_connection_create() apply to the connection - * returned by this API. Since the connection yielded by this API is not - * associated with a name (and therefore is not rediscoverable), this connection - * will receive XPC_ERROR_CONNECTION_INVALID if the listening side crashes, - * exits or cancels the listener connection. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL -xpc_connection_t -xpc_connection_create_from_endpoint(xpc_endpoint_t endpoint); - -/*! - * @function xpc_connection_set_target_queue - * Sets the target queue of the given connection. - * - * @param connection - * The connection object which is to be manipulated. - * - * @param targetq - * The GCD queue to which the event handler block will be submitted. This - * parameter may be NULL, in which case the connection's target queue will be - * libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT. - * - * @discussion - * Setting the target queue is asynchronous and non-preemptive and therefore - * this method will not interrupt the execution of an already-running event - * handler block. Setting the target queue may be likened to issuing a barrier - * to the connection which does the actual work of changing the target queue. - * - * The XPC runtime guarantees this non-preemptiveness even for concurrent target - * queues. If the target queue is a concurrent queue, then XPC still guarantees - * that there will never be more than one invocation of the connection's event - * handler block executing concurrently. If you wish to process events - * concurrently, you can dispatch_async(3) to a concurrent queue from within - * the event handler. - * - * IMPORTANT: When called from within the event handler block, - * dispatch_get_current_queue(3) is NOT guaranteed to return a pointer to the - * queue set with this method. - * - * Despite this seeming inconsistency, the XPC runtime guarantees that, when the - * target queue is a serial queue, the event handler block will execute - * synchonously with respect to other blocks submitted to that same queue. When - * the target queue is a concurrent queue, the event handler block may run - * concurrently with other blocks submitted to that queue, but it will never run - * concurrently with other invocations of itself for the same connection, as - * discussed previously. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_connection_set_target_queue(xpc_connection_t connection, - dispatch_queue_t _Nullable targetq); - -/*! - * @function xpc_connection_set_event_handler - * Sets the event handler block for the connection. - * - * @param connection - * The connection object which is to be manipulated. - * - * @param handler - * The event handler block. - * - * @discussion - * Setting the event handler is asynchronous and non-preemptive, and therefore - * this method will not interrupt the execution of an already-running event - * handler block. If the event handler is executing at the time of this call, it - * will finish, and then the connection's event handler will be changed before - * the next invocation of the event handler. The XPC runtime guarantees this - * non-preemptiveness even for concurrent target queues. - * - * Connection event handlers are non-reentrant, so it is safe to call - * xpc_connection_set_event_handler() from within the event handler block. - * - * The event handler's execution should be treated as a barrier to all - * connection activity. When it is executing, the connection will not attempt to - * send or receive messages, including reply messages. Thus, it is not safe to - * call xpc_connection_send_message_with_reply_sync() on the connection from - * within the event handler. - * - * You do not hold a reference on the object received as the event handler's - * only argument. Regardless of the type of object received, it is safe to call - * xpc_retain() on the object to obtain a reference to it. - * - * A connection may receive different events depending upon whether it is a - * listener or not. Any connection may receive an error in its event handler. - * But while normal connections may receive messages in addition to errors, - * listener connections will receive connections and and not messages. - * - * Connections received by listeners are equivalent to those returned by - * xpc_connection_create() with a non-NULL name argument and a NULL targetq - * argument with the exception that you do not hold a reference on them. - * You must set an event handler and activate the connection. If you do not wish - * to accept the connection, you may simply call xpc_connection_cancel() on it - * and return. The runtime will dispose of it for you. - * - * If there is an error in the connection, this handler will be invoked with the - * error dictionary as its argument. This dictionary will be one of the well- - * known XPC_ERROR_* dictionaries. - * - * Regardless of the type of event, ownership of the event object is NOT - * implicitly transferred. Thus, the object will be released and deallocated at - * some point in the future after the event handler returns. If you wish the - * event's lifetime to persist, you must retain it with xpc_retain(). - * - * Connections received through the event handler will be released and - * deallocated after the connection has gone invalid and delivered that event to - * its event handler. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -void -xpc_connection_set_event_handler(xpc_connection_t connection, - xpc_handler_t handler); - -/*! - * @function xpc_connection_activate - * Activates the connection. Connections start in an inactive state, so you must - * call xpc_connection_activate() on a connection before it will send or receive - * any messages. - * - * @param connection - * The connection object which is to be manipulated. - * - * @discussion - * Calling xpc_connection_activate() on an active connection has no effect. - * Releasing the last reference on an inactive connection that was created with - * an xpc_connection_create*() call is undefined. - * - * For backward compatibility reasons, xpc_connection_resume() on an inactive - * and not otherwise suspended xpc connection has the same effect as calling - * xpc_connection_activate(). For new code, using xpc_connection_activate() - * is preferred. - */ -__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) -__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0) -XPC_EXPORT XPC_NONNULL_ALL -void -xpc_connection_activate(xpc_connection_t connection); - -/*! - * @function xpc_connection_suspend - * Suspends the connection so that the event handler block will not fire and - * that the connection will not attempt to send any messages it has in its - * queue. All calls to xpc_connection_suspend() must be balanced with calls to - * xpc_connection_resume() before releasing the last reference to the - * connection. - * - * @param connection - * The connection object which is to be manipulated. - * - * @discussion - * Suspension is asynchronous and non-preemptive, and therefore this method will - * not interrupt the execution of an already-running event handler block. If - * the event handler is executing at the time of this call, it will finish, and - * then the connection will be suspended before the next scheduled invocation - * of the event handler. The XPC runtime guarantees this non-preemptiveness even - * for concurrent target queues. - * - * Connection event handlers are non-reentrant, so it is safe to call - * xpc_connection_suspend() from within the event handler block. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -void -xpc_connection_suspend(xpc_connection_t connection); - -/*! - * @function xpc_connection_resume - * Resumes the connection. - * - * @param connection - * The connection object which is to be manipulated. - * - * @discussion - * In order for a connection to become live, every call to - * xpc_connection_suspend() must be balanced with a call to - * xpc_connection_resume(). - * - * For backward compatibility reasons, xpc_connection_resume() on an inactive - * and not otherwise suspended xpc connection has the same effect as calling - * xpc_connection_activate(). For new code, using xpc_connection_activate() - * is preferred. - * - * Calling xpc_connection_resume() more times than xpc_connection_suspend() - * has been called is otherwise considered an error. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -void -xpc_connection_resume(xpc_connection_t connection); - -/*! - * @function xpc_connection_send_message - * Sends a message over the connection to the destination service. - * - * @param connection - * The connection over which the message shall be sent. - * - * @param message - * The message to send. This must be a dictionary object. This dictionary is - * logically copied by the connection, so it is safe to modify the dictionary - * after this call. - * - * @discussion - * Messages are delivered in FIFO order. This API is safe to call from multiple - * GCD queues. There is no indication that a message was delivered successfully. - * This is because even once the message has been successfully enqueued on the - * remote end, there are no guarantees about when the runtime will dequeue the - * message and invoke the other connection's event handler block. - * - * If this API is used to send a message that is in reply to another message, - * there is no guarantee of ordering between the invocations of the connection's - * event handler and the reply handler for that message, even if they are - * targeted to the same queue. - * - * After extensive study, we have found that clients who are interested in - * the state of the message on the server end are typically holding open - * transactions related to that message. And the only reliable way to track the - * lifetime of that transaction is at the protocol layer. So the server should - * send a reply message, which upon receiving, will cause the client to close - * its transaction. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -void -xpc_connection_send_message(xpc_connection_t connection, xpc_object_t message); - -/*! - * @function xpc_connection_send_barrier - * Issues a barrier against the connection's message-send activity. - * - * @param connection - * The connection against which the barrier is to be issued. - * - * @param barrier - * The barrier block to issue. This barrier prevents concurrent message-send - * activity on the connection. No messages will be sent while the barrier block - * is executing. - * - * @discussion - * XPC guarantees that, even if the connection's target queue is a concurrent - * queue, there are no other messages being sent concurrently while the barrier - * block is executing. XPC does not guarantee that the receipt of messages - * (either through the connection's event handler or through reply handlers) - * will be suspended while the barrier is executing. - * - * A barrier is issued relative to the message-send queue. Thus, if you call - * xpc_connection_send_message() five times and then call - * xpc_connection_send_barrier(), the barrier will be invoked after the fifth - * message has been sent and its memory disposed of. You may safely cancel a - * connection from within a barrier block. - * - * If a barrier is issued after sending a message which expects a reply, the - * behavior is the same as described above. The receipt of a reply message will - * not influence when the barrier runs. - * - * A barrier block can be useful for throttling resource consumption on the - * connected side of a connection. For example, if your connection sends many - * large messages, you can use a barrier to limit the number of messages that - * are inflight at any given time. This can be particularly useful for messages - * that contain kernel resources (like file descriptors) which have a system- - * wide limit. - * - * If a barrier is issued on a canceled connection, it will be invoked - * immediately. If a connection has been canceled and still has outstanding - * barriers, those barriers will be invoked as part of the connection's - * unwinding process. - * - * It is important to note that a barrier block's execution order is not - * guaranteed with respect to other blocks that have been scheduled on the - * target queue of the connection. Or said differently, - * xpc_connection_send_barrier(3) is not equivalent to dispatch_async(3). - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -void -xpc_connection_send_barrier(xpc_connection_t connection, - dispatch_block_t barrier); - -/*! - * @function xpc_connection_send_message_with_reply - * Sends a message over the connection to the destination service and associates - * a handler to be invoked when the remote service sends a reply message. - * - * @param connection - * The connection over which the message shall be sent. - * - * @param message - * The message to send. This must be a dictionary object. - * - * @param replyq - * The GCD queue to which the reply handler will be submitted. This may be a - * concurrent queue. - * - * @param handler - * The handler block to invoke when a reply to the message is received from - * the connection. If the remote service exits prematurely before the reply was - * received, the XPC_ERROR_CONNECTION_INTERRUPTED error will be returned. - * If the connection went invalid before the message could be sent, the - * XPC_ERROR_CONNECTION_INVALID error will be returned. - * - * @discussion - * If the given GCD queue is a concurrent queue, XPC cannot guarantee that there - * will not be multiple reply handlers being invoked concurrently. XPC does not - * guarantee any ordering for the invocation of reply handers. So if multiple - * messages are waiting for replies and the connection goes invalid, there is no - * guarantee that the reply handlers will be invoked in FIFO order. Similarly, - * XPC does not guarantee that reply handlers will not run concurrently with - * the connection's event handler in the case that the reply queue and the - * connection's target queue are the same concurrent queue. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL4 -void -xpc_connection_send_message_with_reply(xpc_connection_t connection, - xpc_object_t message, dispatch_queue_t _Nullable replyq, - xpc_handler_t handler); - -/*! - * @function xpc_connection_send_message_with_reply_sync - * Sends a message over the connection and blocks the caller until a reply is - * received. - * - * @param connection - * The connection over which the message shall be sent. - * - * @param message - * The message to send. This must be a dictionary object. - * - * @result - * The message that the remote service sent in reply to the original message. - * If the remote service exits prematurely before the reply was received, the - * XPC_ERROR_CONNECTION_INTERRUPTED error will be returned. If the connection - * went invalid before the message could be sent, the - * XPC_ERROR_CONNECTION_INVALID error will be returned. - * - * You are responsible for releasing the returned object. - * - * @discussion - * This API is primarily for transitional purposes. Its implementation is - * conceptually equivalent to calling xpc_connection_send_message_with_reply() - * and then immediately blocking the calling thread on a semaphore and - * signaling the semaphore from the reply block. - * - * Be judicious about your use of this API. It can block indefinitely, so if you - * are using it to implement an API that can be called from the main thread, you - * may wish to consider allowing the API to take a queue and callback block so - * that results may be delivered asynchronously if possible. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT XPC_RETURNS_RETAINED -xpc_object_t -xpc_connection_send_message_with_reply_sync(xpc_connection_t connection, - xpc_object_t message); - -/*! - * @function xpc_connection_cancel - * Cancels the connection and ensures that its event handler will not fire - * again. After this call, any messages that have not yet been sent will be - * discarded, and the connection will be unwound. If there are messages that are - * awaiting replies, they will have their reply handlers invoked with the - * XPC_ERROR_CONNECTION_INVALID error. - * - * @param connection - * The connection object which is to be manipulated. - * - * @discussion - * Cancellation is asynchronous and non-preemptive and therefore this method - * will not interrupt the execution of an already-running event handler block. - * If the event handler is executing at the time of this call, it will finish, - * and then the connection will be canceled, causing a final invocation of the - * event handler to be scheduled with the XPC_ERROR_CONNECTION_INVALID error. - * After that invocation, there will be no further invocations of the event - * handler. - * - * The XPC runtime guarantees this non-preemptiveness even for concurrent target - * queues. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -void -xpc_connection_cancel(xpc_connection_t connection); - -/*! - * @function xpc_connection_get_name - * Returns the name of the service with which the connections was created. - * - * @param connection - * The connection object which is to be examined. - * - * @result - * The name of the remote service. If you obtained the connection through an - * invocation of another connection's event handler, NULL is returned. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT -const char * _Nullable -xpc_connection_get_name(xpc_connection_t connection); - -/*! - * @function xpc_connection_get_euid - * Returns the EUID of the remote peer. - * - * @param connection - * The connection object which is to be examined. - * - * @result - * The EUID of the remote peer at the time the connection was made. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT -uid_t -xpc_connection_get_euid(xpc_connection_t connection); - -/*! - * @function xpc_connection_get_egid - * Returns the EGID of the remote peer. - * - * @param connection - * The connection object which is to be examined. - * - * @result - * The EGID of the remote peer at the time the connection was made. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT -gid_t -xpc_connection_get_egid(xpc_connection_t connection); - -/*! - * @function xpc_connection_get_pid - * Returns the PID of the remote peer. - * - * @param connection - * The connection object which is to be examined. - * - * @result - * The PID of the remote peer. - * - * @discussion - * A given PID is not guaranteed to be unique across an entire boot cycle. - * Great care should be taken when dealing with this information, as it can go - * stale after the connection is established. OS X recycles PIDs, and therefore - * another process could spawn and claim the PID before a message is actually - * received from the connection. - * - * XPC will deliver an error to your event handler if the remote process goes - * away, but there are no guarantees as to the timing of this notification's - * delivery either at the kernel layer or at the XPC layer. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT -pid_t -xpc_connection_get_pid(xpc_connection_t connection); - -/*! - * @function xpc_connection_get_asid - * Returns the audit session identifier of the remote peer. - * - * @param connection - * The connection object which is to be examined. - * - * @result - * The audit session ID of the remote peer at the time the connection was made. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT -au_asid_t -xpc_connection_get_asid(xpc_connection_t connection); - -/*! - * @function xpc_connection_set_context - * Sets context on an connection. - * - * @param connection - * The connection which is to be manipulated. - * - * @param context - * The context to associate with the connection. - * - * @discussion - * If you must manage the memory of the context object, you must set a finalizer - * to dispose of it. If this method is called on a connection which already has - * context associated with it, the finalizer will NOT be invoked. The finalizer - * is only invoked when the connection is being deallocated. - * - * It is recommended that, instead of changing the actual context pointer - * associated with the object, you instead change the state of the context - * object itself. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_connection_set_context(xpc_connection_t connection, - void * _Nullable context); - -/*! - * @function xpc_connection_get_context - * Returns the context associated with the connection. - * - * @param connection - * The connection which is to be examined. - * - * @result - * The context associated with the connection. NULL if there has been no context - * associated with the object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT -void * _Nullable -xpc_connection_get_context(xpc_connection_t connection); - -/*! - * @function xpc_connection_set_finalizer_f - * Sets the finalizer for the given connection. - * - * @param connection - * The connection on which to set the finalizer. - * - * @param finalizer - * The function that will be invoked when the connection's retain count has - * dropped to zero and is being torn down. - * - * @discussion - * This method disposes of the context value associated with a connection, as - * set by {@link xpc_connection_set_context}. - * - * For many uses of context objects, this API allows for a convenient shorthand - * for freeing them. For example, for a context object allocated with malloc(3): - * - * xpc_connection_set_finalizer_f(object, free); - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_connection_set_finalizer_f(xpc_connection_t connection, - xpc_finalizer_t _Nullable finalizer); - -__END_DECLS -XPC_ASSUME_NONNULL_END - -#endif // __XPC_CONNECTION_H__ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.10-none/xpc/xpc.h b/lib/libc/include/x86_64-macos.10-none/xpc/xpc.h deleted file mode 100644 index cb6cbb39972b9fe02053696b888720cb36ec83f6..0000000000000000000000000000000000000000 --- a/lib/libc/include/x86_64-macos.10-none/xpc/xpc.h +++ /dev/null @@ -1,2663 +0,0 @@ -// Copyright (c) 2009-2011 Apple Inc. All rights reserved. - -#ifndef __XPC_H__ -#define __XPC_H__ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef __XPC_INDIRECT__ -#define __XPC_INDIRECT__ -#endif // __XPC_INDIRECT__ - -#include - -#if __has_include() -#include -#else // __has_include() -#define XPC_TRANSACTION_DEPRECATED -#endif // __has_include() - -XPC_ASSUME_NONNULL_BEGIN -__BEGIN_DECLS - -#ifndef __OSX_AVAILABLE_STARTING -#define __OSX_AVAILABLE_STARTING(x, y) -#endif // __OSX_AVAILABLE_STARTING - -#define XPC_API_VERSION 20121012 - -/*! - * @typedef xpc_type_t - * A type that describes XPC object types. - */ -typedef const struct _xpc_type_s * xpc_type_t; -#ifndef XPC_TYPE -#define XPC_TYPE(type) const struct _xpc_type_s type -#endif // XPC_TYPE - -/*! - * @typedef xpc_object_t - * A type that can describe all XPC objects. Dictionaries, arrays, strings, etc. - * are all described by this type. - * - * XPC objects are created with a retain count of 1, and therefore it is the - * caller's responsibility to call xpc_release() on them when they are no longer - * needed. - */ - -#if OS_OBJECT_USE_OBJC -/* By default, XPC objects are declared as Objective-C types when building with - * an Objective-C compiler. This allows them to participate in ARC, in RR - * management by the Blocks runtime and in leaks checking by the static - * analyzer, and enables them to be added to Cocoa collections. - * - * See for details. - */ -OS_OBJECT_DECL(xpc_object); -#ifndef XPC_DECL -#define XPC_DECL(name) typedef xpc_object_t name##_t -#endif // XPC_DECL - -#define XPC_GLOBAL_OBJECT(object) ((OS_OBJECT_BRIDGE xpc_object_t)&(object)) -#define XPC_RETURNS_RETAINED OS_OBJECT_RETURNS_RETAINED -XPC_INLINE XPC_NONNULL_ALL -void -_xpc_object_validate(xpc_object_t object) { - void *isa = *(void * volatile *)(OS_OBJECT_BRIDGE void *)object; - (void)isa; -} -#else // OS_OBJECT_USE_OBJC -typedef void * xpc_object_t; -#define XPC_DECL(name) typedef struct _##name##_s * name##_t -#define XPC_GLOBAL_OBJECT(object) (&(object)) -#define XPC_RETURNS_RETAINED -#endif // OS_OBJECT_USE_OBJC - -/*! - * @typedef xpc_handler_t - * The type of block that is accepted by the XPC connection APIs. - * - * @param object - * An XPC object that is to be handled. If there was an error, this object will - * be equal to one of the well-known XPC_ERROR_* dictionaries and can be - * compared with the equality operator. - * - * @discussion - * You are not responsible for releasing the event object. - */ -#if __BLOCKS__ -typedef void (^xpc_handler_t)(xpc_object_t object); -#endif // __BLOCKS__ - -/*! - * @define XPC_TYPE_CONNECTION - * A type representing a connection to a named service. This connection is - * bidirectional and can be used to both send and receive messages. A - * connection carries the credentials of the remote service provider. - */ -#define XPC_TYPE_CONNECTION (&_xpc_type_connection) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_connection); -XPC_DECL(xpc_connection); - -/*! - * @typedef xpc_connection_handler_t - * The type of the function that will be invoked for a bundled XPC service when - * there is a new connection on the service. - * - * @param connection - * A new connection that is equivalent to one received by a listener connection. - * See the documentation for {@link xpc_connection_set_event_handler} for the - * semantics associated with the received connection. - */ -typedef void (*xpc_connection_handler_t)(xpc_connection_t connection); - -/*! - * @define XPC_TYPE_ENDPOINT - * A type representing a connection in serialized form. Unlike a connection, an - * endpoint is an inert object that does not have any runtime activity - * associated with it. Thus, it is safe to pass an endpoint in a message. Upon - * receiving an endpoint, the recipient can use - * xpc_connection_create_from_endpoint() to create as many distinct connections - * as desired. - */ -#define XPC_TYPE_ENDPOINT (&_xpc_type_endpoint) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_endpoint); -XPC_DECL(xpc_endpoint); - -/*! - * @define XPC_TYPE_NULL - * A type representing a null object. This type is useful for disambiguating - * an unset key in a dictionary and one which has been reserved but set empty. - * Also, this type is a way to represent a "null" value in dictionaries, which - * do not accept NULL. - */ -#define XPC_TYPE_NULL (&_xpc_type_null) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_null); - -/*! - * @define XPC_TYPE_BOOL - * A type representing a Boolean value. - */ -#define XPC_TYPE_BOOL (&_xpc_type_bool) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_bool); - -/*! - * @define XPC_BOOL_TRUE - * A constant representing a Boolean value of true. You may compare a Boolean - * object against this constant to determine its value. - */ -#define XPC_BOOL_TRUE XPC_GLOBAL_OBJECT(_xpc_bool_true) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -const struct _xpc_bool_s _xpc_bool_true; - -/*! - * @define XPC_BOOL_FALSE - * A constant representing a Boolean value of false. You may compare a Boolean - * object against this constant to determine its value. - */ -#define XPC_BOOL_FALSE XPC_GLOBAL_OBJECT(_xpc_bool_false) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -const struct _xpc_bool_s _xpc_bool_false; - -/*! - * @define XPC_TYPE_INT64 - * A type representing a signed, 64-bit integer value. - */ -#define XPC_TYPE_INT64 (&_xpc_type_int64) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_int64); - -/*! - * @define XPC_TYPE_UINT64 - * A type representing an unsigned, 64-bit integer value. - */ -#define XPC_TYPE_UINT64 (&_xpc_type_uint64) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_uint64); - -/*! - * @define XPC_TYPE_DOUBLE - * A type representing an IEEE-compliant, double-precision floating point value. - */ -#define XPC_TYPE_DOUBLE (&_xpc_type_double) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_double); - -/*! - * @define XPC_TYPE_DATE -* A type representing a date interval. The interval is with respect to the - * Unix epoch. XPC dates are in Unix time and are thus unaware of local time - * or leap seconds. - */ -#define XPC_TYPE_DATE (&_xpc_type_date) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_date); - -/*! - * @define XPC_TYPE_DATA - * A type representing a an arbitrary buffer of bytes. - */ -#define XPC_TYPE_DATA (&_xpc_type_data) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_data); - -/*! - * @define XPC_TYPE_STRING - * A type representing a NUL-terminated C-string. - */ -#define XPC_TYPE_STRING (&_xpc_type_string) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_string); - -/*! - * @define XPC_TYPE_UUID - * A type representing a Universally Unique Identifier as defined by uuid(3). - */ -#define XPC_TYPE_UUID (&_xpc_type_uuid) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_uuid); - -/*! - * @define XPC_TYPE_FD - * A type representing a POSIX file descriptor. - */ -#define XPC_TYPE_FD (&_xpc_type_fd) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_fd); - -/*! - * @define XPC_TYPE_SHMEM - * A type representing a region of shared memory. - */ -#define XPC_TYPE_SHMEM (&_xpc_type_shmem) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_shmem); - -/*! - * @define XPC_TYPE_ARRAY - * A type representing an array of XPC objects. This array must be contiguous, - * i.e. it cannot contain NULL values. If you wish to indicate that a slot - * is empty, you can insert a null object. The array will grow as needed to - * accommodate more objects. - */ -#define XPC_TYPE_ARRAY (&_xpc_type_array) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_array); - -/*! - * @define XPC_TYPE_DICTIONARY - * A type representing a dictionary of XPC objects, keyed off of C-strings. - * You may insert NULL values into this collection. The dictionary will grow - * as needed to accommodate more key/value pairs. - */ -#define XPC_TYPE_DICTIONARY (&_xpc_type_dictionary) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_dictionary); - -/*! - * @define XPC_TYPE_ERROR - * A type representing an error object. Errors in XPC are dictionaries, but - * xpc_get_type() will return this type when given an error object. You - * cannot create an error object directly; XPC will only give them to handlers. - * These error objects have pointer values that are constant across the lifetime - * of your process and can be safely compared. - * - * These constants are enumerated in the header for the connection object. Error - * dictionaries may reserve keys so that they can be queried to obtain more - * detailed information about the error. Currently, the only reserved key is - * XPC_ERROR_KEY_DESCRIPTION. - */ -#define XPC_TYPE_ERROR (&_xpc_type_error) -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -XPC_TYPE(_xpc_type_error); - -/*! - * @define XPC_ERROR_KEY_DESCRIPTION - * In an error dictionary, querying for this key will return a string object - * that describes the error in a human-readable way. - */ -#define XPC_ERROR_KEY_DESCRIPTION _xpc_error_key_description -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -const char * const _xpc_error_key_description; - -/*! - * @define XPC_EVENT_KEY_NAME - * In an event dictionary, this querying for this key will return a string - * object that describes the event. - */ -#define XPC_EVENT_KEY_NAME _xpc_event_key_name -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -const char * const _xpc_event_key_name; - -XPC_ASSUME_NONNULL_END -#if !defined(__XPC_BUILDING_XPC__) || !__XPC_BUILDING_XPC__ -#include -#include -#if __BLOCKS__ -#include -#include -#endif // __BLOCKS__ -#undef __XPC_INDIRECT__ -#include -#endif // !defined(__XPC_BUILDING_XPC__) || !__XPC_BUILDING_XPC__ -XPC_ASSUME_NONNULL_BEGIN - -#pragma mark XPC Object Protocol -/*! - * @function xpc_retain - * - * @abstract - * Increments the reference count of an object. - * - * @param object - * The object which is to be manipulated. - * - * @result - * The object which was given. - * - * @discussion - * Calls to xpc_retain() must be balanced with calls to xpc_release() - * to avoid leaking memory. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -xpc_object_t -xpc_retain(xpc_object_t object); -#if OS_OBJECT_USE_OBJC_RETAIN_RELEASE -#undef xpc_retain -#define xpc_retain(object) ({ xpc_object_t _o = (object); \ - _xpc_object_validate(_o); [_o retain]; }) -#endif // OS_OBJECT_USE_OBJC_RETAIN_RELEASE - -/*! - * @function xpc_release - * - * @abstract - * Decrements the reference count of an object. - * - * @param object - * The object which is to be manipulated. - * - * @discussion - * The caller must take care to balance retains and releases. When creating or - * retaining XPC objects, the creator obtains a reference on the object. Thus, - * it is the caller's responsibility to call xpc_release() on those objects when - * they are no longer needed. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_release(xpc_object_t object); -#if OS_OBJECT_USE_OBJC_RETAIN_RELEASE -#undef xpc_release -#define xpc_release(object) ({ xpc_object_t _o = (object); \ - _xpc_object_validate(_o); [_o release]; }) -#endif // OS_OBJECT_USE_OBJC_RETAIN_RELEASE - -/*! - * @function xpc_get_type - * - * @abstract - * Returns the type of an object. - * - * @param object - * The object to examine. - * - * @result - * An opaque pointer describing the type of the object. This pointer is suitable - * direct comparison to exported type constants with the equality operator. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT -xpc_type_t -xpc_get_type(xpc_object_t object); - -/*! - * @function xpc_type_get_name - * - * @abstract - * Returns a string describing an XPC object type. - * - * @param type - * The type to describe. - * - * @result - * A string describing the type of an object, like "string" or "int64". - * This string should not be freed or modified. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_15, __IPHONE_13_0) -XPC_EXPORT XPC_NONNULL1 -const char * -xpc_type_get_name(xpc_type_t type); - -/*! - * @function xpc_copy - * - * @abstract - * Creates a copy of the object. - * - * @param object - * The object to copy. - * - * @result - * The new object. NULL if the object type does not support copying or if - * sufficient memory for the copy could not be allocated. Service objects do - * not support copying. - * - * @discussion - * When called on an array or dictionary, xpc_copy() will perform a deep copy. - * - * The object returned is not necessarily guaranteed to be a new object, and - * whether it is will depend on the implementation of the object being copied. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT XPC_RETURNS_RETAINED -xpc_object_t _Nullable -xpc_copy(xpc_object_t object); - -/*! - * @function xpc_equal - * - * @abstract - * Compares two objects for equality. - * - * @param object1 - * The first object to compare. - * - * @param object2 - * The second object to compare. - * - * @result - * Returns true if the objects are equal, otherwise false. Two objects must be - * of the same type in order to be equal. - * - * For two arrays to be equal, they must contain the same values at the - * same indexes. For two dictionaries to be equal, they must contain the same - * values for the same keys. - * - * Two objects being equal implies that their hashes (as returned by xpc_hash()) - * are also equal. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_WARN_RESULT -bool -xpc_equal(xpc_object_t object1, xpc_object_t object2); - -/*! - * @function xpc_hash - * - * @abstract - * Calculates a hash value for the given object. - * - * @param object - * The object for which to calculate a hash value. This value may be modded - * with a table size for insertion into a dictionary-like data structure. - * - * @result - * The calculated hash value. - * - * @discussion - * Note that the computed hash values for any particular type and value of an - * object can change from across releases and platforms and should not be - * assumed to be constant across all time and space or stored persistently. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_WARN_RESULT -size_t -xpc_hash(xpc_object_t object); - -/*! - * @function xpc_copy_description - * - * @abstract - * Copies a debug string describing the object. - * - * @param object - * The object which is to be examined. - * - * @result - * A string describing object which contains information useful for debugging. - * This string should be disposed of with free(3) when done. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_WARN_RESULT XPC_NONNULL1 -char * -xpc_copy_description(xpc_object_t object); - -#pragma mark XPC Object Types -#pragma mark Null -/*! - * @function xpc_null_create - * - * @abstract - * Creates an XPC object representing the null object. - * - * @result - * A new null object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_null_create(void); - -#pragma mark Boolean -/*! - * @function xpc_bool_create - * - * @abstract - * Creates an XPC Boolean object. - * - * @param value - * The Boolean primitive value which is to be boxed. - * - * @result - * A new Boolean object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_bool_create(bool value); - -/*! - * @function xpc_bool_get_value - * - * @abstract - * Returns the underlying Boolean value from the object. - * - * @param xbool - * The Boolean object which is to be examined. - * - * @result - * The underlying Boolean value or false if the given object was not an XPC - * Boolean object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT -bool -xpc_bool_get_value(xpc_object_t xbool); - -#pragma mark Signed Integer -/*! - * @function xpc_int64_create - * - * @abstract - * Creates an XPC signed integer object. - * - * @param value - * The signed integer value which is to be boxed. - * - * @result - * A new signed integer object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_int64_create(int64_t value); - -/*! - * @function xpc_int64_get_value - * - * @abstract - * Returns the underlying signed 64-bit integer value from an object. - * - * @param xint - * The signed integer object which is to be examined. - * - * @result - * The underlying signed 64-bit value or 0 if the given object was not an XPC - * integer object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -int64_t -xpc_int64_get_value(xpc_object_t xint); - -#pragma mark Unsigned Integer -/*! - * @function xpc_uint64_create - * - * @abstract - * Creates an XPC unsigned integer object. - * - * @param value - * The unsigned integer value which is to be boxed. - * - * @result - * A new unsigned integer object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_uint64_create(uint64_t value); - -/*! - * @function xpc_uint64_get_value - * - * @abstract - * Returns the underlying unsigned 64-bit integer value from an object. - * - * @param xuint - * The unsigned integer object which is to be examined. - * - * @result - * The underlying unsigned integer value or 0 if the given object was not an XPC - * unsigned integer object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -uint64_t -xpc_uint64_get_value(xpc_object_t xuint); - -#pragma mark Double -/*! - * @function xpc_double_create - * - * @abstract - * Creates an XPC double object. - * - * @param value - * The floating point quantity which is to be boxed. - * - * @result - * A new floating point object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_double_create(double value); - -/*! - * @function xpc_double_get_value - * - * @abstract - * Returns the underlying double-precision floating point value from an object. - * - * @param xdouble - * The floating point object which is to be examined. - * - * @result - * The underlying floating point value or NAN if the given object was not an XPC - * floating point object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -double -xpc_double_get_value(xpc_object_t xdouble); - -#pragma mark Date -/*! - * @function xpc_date_create - * - * @abstract - * Creates an XPC date object. - * - * @param interval - * The date interval which is to be boxed. Negative values indicate the number - * of nanoseconds before the epoch. Positive values indicate the number of - * nanoseconds after the epoch. - * - * @result - * A new date object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_date_create(int64_t interval); - -/*! - * @function xpc_date_create_from_current - * - * @abstract - * Creates an XPC date object representing the current date. - * - * @result - * A new date object representing the current date. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_date_create_from_current(void); - -/*! - * @function xpc_date_get_value - * - * @abstract - * Returns the underlying date interval from an object. - * - * @param xdate - * The date object which is to be examined. - * - * @result - * The underlying date interval or 0 if the given object was not an XPC date - * object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -int64_t -xpc_date_get_value(xpc_object_t xdate); - -#pragma mark Data -/*! - * @function xpc_data_create - * - * @abstract - * Creates an XPC object representing buffer of bytes. - * - * @param bytes - * The buffer of bytes which is to be boxed. You may create an empty data object - * by passing NULL for this parameter and 0 for the length. Passing NULL with - * any other length will result in undefined behavior. - * - * @param length - * The number of bytes which are to be boxed. - * - * @result - * A new data object. - * - * @discussion - * This method will copy the buffer given into internal storage. After calling - * this method, it is safe to dispose of the given buffer. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_data_create(const void * _Nullable bytes, size_t length); - -/*! - * @function xpc_data_create_with_dispatch_data - * - * @abstract - * Creates an XPC object representing buffer of bytes described by the given GCD - * data object. - * - * @param ddata - * The GCD data object containing the bytes which are to be boxed. This object - * is retained by the data object. - * - * @result - * A new data object. - * - * @discussion - * The object returned by this method will refer to the buffer returned by - * dispatch_data_create_map(). The point where XPC will make the call to - * dispatch_data_create_map() is undefined. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 -xpc_object_t -xpc_data_create_with_dispatch_data(dispatch_data_t ddata); - -/*! - * @function xpc_data_get_length - * - * @abstract - * Returns the length of the data encapsulated by an XPC data object. - * - * @param xdata - * The data object which is to be examined. - * - * @result - * The length of the underlying boxed data or 0 if the given object was not an - * XPC data object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -size_t -xpc_data_get_length(xpc_object_t xdata); - -/*! - * @function xpc_data_get_bytes_ptr - * - * @abstract - * Returns a pointer to the internal storage of a data object. - * - * @param xdata - * The data object which is to be examined. - * - * @result - * A pointer to the underlying boxed data or NULL if the given object was not an - * XPC data object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -const void * _Nullable -xpc_data_get_bytes_ptr(xpc_object_t xdata); - -/*! - * @function xpc_data_get_bytes - * - * @abstract - * Copies the bytes stored in an data objects into the specified buffer. - * - * @param xdata - * The data object which is to be examined. - * - * @param buffer - * The buffer in which to copy the data object's bytes. - * - * @param off - * The offset at which to begin the copy. If this offset is greater than the - * length of the data element, nothing is copied. Pass 0 to start the copy - * at the beginning of the buffer. - * - * @param length - * The length of the destination buffer. - * - * @result - * The number of bytes that were copied into the buffer or 0 if the given object - * was not an XPC data object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2 -size_t -xpc_data_get_bytes(xpc_object_t xdata, - void *buffer, size_t off, size_t length); - -#pragma mark String -/*! - * @function xpc_string_create - * - * @abstract - * Creates an XPC object representing a NUL-terminated C-string. - * - * @param string - * The C-string which is to be boxed. - * - * @result - * A new string object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 -xpc_object_t -xpc_string_create(const char *string); - -/*! - * @function xpc_string_create_with_format - * - * @abstract - * Creates an XPC object representing a C-string that is generated from the - * given format string and arguments. - * - * @param fmt - * The printf(3)-style format string from which to construct the final C-string - * to be boxed. - * - * @param ... - * The arguments which correspond to those specified in the format string. - * - * @result - * A new string object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 -XPC_PRINTF(1, 2) -xpc_object_t -xpc_string_create_with_format(const char *fmt, ...); - -/*! - * @function xpc_string_create_with_format_and_arguments - * - * @abstract - * Creates an XPC object representing a C-string that is generated from the - * given format string and argument list pointer. - * - * @param fmt - * The printf(3)-style format string from which to construct the final C-string - * to be boxed. - * - * @param ap - * A pointer to the arguments which correspond to those specified in the format - * string. - * - * @result - * A new string object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 -XPC_PRINTF(1, 0) -xpc_object_t -xpc_string_create_with_format_and_arguments(const char *fmt, va_list ap); - -/*! - * @function xpc_string_get_length - * - * @abstract - * Returns the length of the underlying string. - * - * @param xstring - * The string object which is to be examined. - * - * @result - * The length of the underlying string, not including the NUL-terminator, or 0 - * if the given object was not an XPC string object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -size_t -xpc_string_get_length(xpc_object_t xstring); - -/*! - * @function xpc_string_get_string_ptr - * - * @abstract - * Returns a pointer to the internal storage of a string object. - * - * @param xstring - * The string object which is to be examined. - * - * @result - * A pointer to the string object's internal storage or NULL if the given object - * was not an XPC string object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -const char * _Nullable -xpc_string_get_string_ptr(xpc_object_t xstring); - -#pragma mark UUID -/*! - * @function xpc_uuid_create - * - * @abstract - * Creates an XPC object representing a universally-unique identifier (UUID) as - * described by uuid(3). - * - * @param uuid - * The UUID which is to be boxed. - * - * @result - * A new UUID object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 -xpc_object_t -xpc_uuid_create(const uuid_t XPC_NONNULL_ARRAY uuid); - -/*! - * @function xpc_uuid_get_bytes - * - * @abstract - * Returns a pointer to the the boxed UUID bytes in an XPC UUID object. - * - * @param xuuid - * The UUID object which is to be examined. - * - * @result - * The underlying uuid_t bytes or NULL if the given object was not - * an XPC UUID object. The returned pointer may be safely passed to the uuid(3) - * APIs. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -const uint8_t * _Nullable -xpc_uuid_get_bytes(xpc_object_t xuuid); - -#pragma mark File Descriptors -/*! - * @function xpc_fd_create - * - * @abstract - * Creates an XPC object representing a POSIX file descriptor. - * - * @param fd - * The file descriptor which is to be boxed. - * - * @result - * A new file descriptor object. NULL if sufficient memory could not be - * allocated or if the given file descriptor was not valid. - * - * @discussion - * This method performs the equivalent of a dup(2) on the descriptor, and thus - * it is safe to call close(2) on the descriptor after boxing it with a file - * descriptor object. - * - * IMPORTANT: Pointer equality is the ONLY valid test for equality between two - * file descriptor objects. There is no reliable way to determine whether two - * file descriptors refer to the same inode with the same capabilities, so two - * file descriptor objects created from the same underlying file descriptor - * number will not compare equally with xpc_equal(). This is also true of a - * file descriptor object created using xpc_copy() and the original. - * - * This also implies that two collections containing file descriptor objects - * cannot be equal unless the exact same object was inserted into both. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t _Nullable -xpc_fd_create(int fd); - -/*! - * @function xpc_fd_dup - * - * @abstract - * Returns a file descriptor that is equivalent to the one boxed by the file - * file descriptor object. - * - * @param xfd - * The file descriptor object which is to be examined. - * - * @result - * A file descriptor that is equivalent to the one originally given to - * xpc_fd_create(). If the descriptor could not be created or if the given - * object was not an XPC file descriptor, -1 is returned. - * - * @discussion - * Multiple invocations of xpc_fd_dup() will not return the same file descriptor - * number, but they will return descriptors that are equivalent, as though they - * had been created by dup(2). - * - * The caller is responsible for calling close(2) on the returned descriptor. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -int -xpc_fd_dup(xpc_object_t xfd); - -#pragma mark Shared Memory -/*! - * @function xpc_shmem_create - * - * @abstract - * Creates an XPC object representing the given shared memory region. - * - * @param region - * A pointer to a region of shared memory, created through a call to mmap(2) - * with the MAP_SHARED flag, which is to be boxed. - * - * @param length - * The length of the region. - * - * @result - * A new shared memory object. - * - * @discussion - * Only memory regions whose exact characteristics are known to the caller - * should be boxed using this API. Memory returned from malloc(3) may not be - * safely shared on either OS X or iOS because the underlying virtual memory - * objects for malloc(3)ed allocations are owned by the malloc(3) subsystem and - * not the caller of malloc(3). - * - * If you wish to share a memory region that you receive from another subsystem, - * part of the interface contract with that other subsystem must include how to - * create the region of memory, or sharing it may be unsafe. - * - * Certain operations may internally fragment a region of memory in a way that - * would truncate the range detected by the shared memory object. vm_copy(), for - * example, may split the region into multiple parts to avoid copying certain - * page ranges. For this reason, it is recommended that you delay all VM - * operations until the shared memory object has been created so that the VM - * system knows that the entire range is intended for sharing. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 -xpc_object_t -xpc_shmem_create(void *region, size_t length); - -/*! - * @function xpc_shmem_map - * - * @abstract - * Maps the region boxed by the XPC shared memory object into the caller's - * address space. - * - * @param xshmem - * The shared memory object to be examined. - * - * @param region - * On return, this will point to the region at which the shared memory was - * mapped. - * - * @result - * The length of the region that was mapped. If the mapping failed or if the - * given object was not an XPC shared memory object, 0 is returned. The length - * of the mapped region will always be an integral page size, even if the - * creator of the region specified a non-integral page size. - * - * @discussion - * The resulting region must be disposed of with munmap(2). - * - * It is the responsibility of the caller to manage protections on the new - * region accordingly. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -size_t -xpc_shmem_map(xpc_object_t xshmem, void * _Nullable * _Nonnull region); - -#pragma mark Array -/*! - * @typedef xpc_array_applier_t - * A block to be invoked for every value in the array. - * - * @param index - * The current index in the iteration. - * - * @param value - * The current value in the iteration. - * - * @result - * A Boolean indicating whether iteration should continue. - */ -#ifdef __BLOCKS__ -typedef bool (^xpc_array_applier_t)(size_t index, xpc_object_t _Nonnull value); -#endif // __BLOCKS__ - -/*! - * @function xpc_array_create - * - * @abstract - * Creates an XPC object representing an array of XPC objects. - * - * @discussion - * This array must be contiguous and cannot contain any NULL values. If you - * wish to insert the equivalent of a NULL value, you may use the result of - * {@link xpc_null_create}. - * - * @param objects - * An array of XPC objects which is to be boxed. The order of this array is - * preserved in the object. If this array contains a NULL value, the behavior - * is undefined. This parameter may be NULL only if the count is 0. - * - * @param count - * The number of objects in the given array. If the number passed is less than - * the actual number of values in the array, only the specified number of items - * are inserted into the resulting array. If the number passed is more than - * the the actual number of values, the behavior is undefined. - * - * @result - * A new array object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_array_create(const xpc_object_t _Nonnull * _Nullable objects, size_t count); - -/*! - * @function xpc_array_set_value - * - * @abstract - * Inserts the specified object into the array at the specified index. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array). - * If the index is outside that range, the behavior is undefined. - * - * @param value - * The object to insert. This value is retained by the array and cannot be - * NULL. If there is already a value at the specified index, it is released, - * and the new value is inserted in its place. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 -void -xpc_array_set_value(xpc_object_t xarray, size_t index, xpc_object_t value); - -/*! - * @function xpc_array_append_value - * - * @abstract - * Appends an object to an XPC array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param value - * The object to append. This object is retained by the array. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_array_append_value(xpc_object_t xarray, xpc_object_t value); - -/*! - * @function xpc_array_get_count - * - * @abstract - * Returns the count of values currently in the array. - * - * @param xarray - * The array object which is to be examined. - * - * @result - * The count of values in the array or 0 if the given object was not an XPC - * array. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -size_t -xpc_array_get_count(xpc_object_t xarray); - -/*! - * @function xpc_array_get_value - * - * @abstract - * Returns the value at the specified index in the array. - * - * @param xarray - * The array object which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the range of - * indexes as specified in xpc_array_set_value(). - * - * @result - * The object at the specified index within the array or NULL if the given - * object was not an XPC array. - * - * @discussion - * This method does not grant the caller a reference to the underlying object, - * and thus the caller is not responsible for releasing the object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -xpc_object_t -xpc_array_get_value(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_apply - * - * @abstract - * Invokes the given block for every value in the array. - * - * @param xarray - * The array object which is to be examined. - * - * @param applier - * The block which this function applies to every element in the array. - * - * @result - * A Boolean indicating whether iteration of the array completed successfully. - * Iteration will only fail if the applier block returns false. - * - * @discussion - * You should not modify an array's contents during iteration. The array indexes - * are iterated in order. - */ -#ifdef __BLOCKS__ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -bool -xpc_array_apply(xpc_object_t xarray, XPC_NOESCAPE xpc_array_applier_t applier); -#endif // __BLOCKS__ - -#pragma mark Array Primitive Setters -/*! - * @define XPC_ARRAY_APPEND - * A constant that may be passed as the destination index to the class of - * primitive XPC array setters indicating that the given primitive should be - * appended to the array. - */ -#define XPC_ARRAY_APPEND ((size_t)(-1)) - -/*! - * @function xpc_array_set_bool - * - * @abstract - * Inserts a bool (primitive) value into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param value - * The bool value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_array_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_array_set_bool(xpc_object_t xarray, size_t index, bool value); - -/*! - * @function xpc_array_set_int64 - * - * @abstract - * Inserts an int64_t (primitive) value into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param value - * The int64_t value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_array_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_array_set_int64(xpc_object_t xarray, size_t index, int64_t value); - -/*! - * @function xpc_array_set_uint64 - * - * @abstract - * Inserts a uint64_t (primitive) value into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param value - * The uint64_t value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_array_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_array_set_uint64(xpc_object_t xarray, size_t index, uint64_t value); - -/*! - * @function xpc_array_set_double - * - * @abstract - * Inserts a double (primitive) value into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param value - * The double value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_array_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_array_set_double(xpc_object_t xarray, size_t index, double value); - -/*! - * @function xpc_array_set_date - * - * @abstract - * Inserts a date value into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param value - * The date value to insert, represented as an int64_t. After - * calling this method, the XPC object corresponding to the primitive value - * inserted may be safely retrieved with {@link xpc_array_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_array_set_date(xpc_object_t xarray, size_t index, int64_t value); - -/*! - * @function xpc_array_set_data - * - * @abstract - * Inserts a raw data value into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param bytes - * The raw data to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved with - * {@link xpc_array_get_value()}. - * - * @param length - * The length of the data. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 -void -xpc_array_set_data(xpc_object_t xarray, size_t index, const void *bytes, - size_t length); - -/*! - * @function xpc_array_set_string - * - * @abstract - * Inserts a C string into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param string - * The C string to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved with - * {@link xpc_array_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 -void -xpc_array_set_string(xpc_object_t xarray, size_t index, const char *string); - -/*! - * @function xpc_array_set_uuid - * - * @abstract - * Inserts a uuid_t (primitive) value into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param uuid - * The UUID primitive to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved with - * {@link xpc_array_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 -void -xpc_array_set_uuid(xpc_object_t xarray, size_t index, - const uuid_t XPC_NONNULL_ARRAY uuid); - -/*! - * @function xpc_array_set_fd - * - * @abstract - * Inserts a file descriptor into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param fd - * The file descriptor to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved with - * {@link xpc_array_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 -void -xpc_array_set_fd(xpc_object_t xarray, size_t index, int fd); - -/*! - * @function xpc_array_set_connection - * - * @abstract - * Inserts a connection into an array. - * - * @param xarray - * The array object which is to be manipulated. - * - * @param index - * The index at which to insert the value. This value must lie within the index - * space of the array (0 to N-1 inclusive, where N is the count of the array) or - * be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is - * undefined. - * - * @param connection - * The connection to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved with - * {@link xpc_array_get_value()}. The connection is NOT retained by the array. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 -void -xpc_array_set_connection(xpc_object_t xarray, size_t index, - xpc_connection_t connection); - -#pragma mark Array Primitive Getters -/*! - * @function xpc_array_get_bool - * - * @abstract - * Gets a bool primitive value from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * The underlying bool value at the specified index. false if the - * value at the specified index is not a Boolean value. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -bool -xpc_array_get_bool(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_get_int64 - * - * @abstract - * Gets an int64_t primitive value from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * The underlying int64_t value at the specified index. 0 if the - * value at the specified index is not a signed integer value. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -int64_t -xpc_array_get_int64(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_get_uint64 - * - * @abstract - * Gets a uint64_t primitive value from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * The underlying uint64_t value at the specified index. 0 if the - * value at the specified index is not an unsigned integer value. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -uint64_t -xpc_array_get_uint64(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_get_double - * - * @abstract - * Gets a double primitive value from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * The underlying double value at the specified index. NAN if the - * value at the specified index is not a floating point value. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -double -xpc_array_get_double(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_get_date - * - * @abstract - * Gets a date interval from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * The underlying date interval at the specified index. 0 if the value at the - * specified index is not a date value. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -int64_t -xpc_array_get_date(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_get_data - * - * @abstract - * Gets a pointer to the raw bytes of a data object from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @param length - * Upon return output, will contain the length of the data corresponding to the - * specified key. - * - * @result - * The underlying bytes at the specified index. NULL if the value at the - * specified index is not a data value. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -const void * _Nullable -xpc_array_get_data(xpc_object_t xarray, size_t index, - size_t * _Nullable length); - -/*! - * @function xpc_array_get_string - * - * @abstract - * Gets a C string value from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * The underlying C string at the specified index. NULL if the value at the - * specified index is not a C string value. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -const char * _Nullable -xpc_array_get_string(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_get_uuid - * - * @abstract - * Gets a uuid_t value from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * The underlying uuid_t value at the specified index. The null - * UUID if the value at the specified index is not a UUID value. The returned - * pointer may be safely passed to the uuid(3) APIs. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -const uint8_t * _Nullable -xpc_array_get_uuid(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_dup_fd - * - * @abstract - * Gets a file descriptor from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * A new file descriptor created from the value at the specified index. You are - * responsible for close(2)ing this descriptor. -1 if the value at the specified - * index is not a file descriptor value. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -int -xpc_array_dup_fd(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_create_connection - * - * @abstract - * Creates a connection object from an array directly. - * - * @param xarray - * The array which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the index space - * of the array (0 to N-1 inclusive, where N is the count of the array). If the - * index is outside that range, the behavior is undefined. - * - * @result - * A new connection created from the value at the specified index. You are - * responsible for calling xpc_release() on the returned connection. NULL if the - * value at the specified index is not an endpoint containing a connection. Each - * call to this method for the same index in the same array will yield a - * different connection. See {@link xpc_connection_create_from_endpoint()} for - * discussion as to the responsibilities when dealing with the returned - * connection. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 -xpc_connection_t _Nullable -xpc_array_create_connection(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_get_dictionary - * - * @abstract - * Returns the dictionary at the specified index in the array. - * - * @param xarray - * The array object which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the range of - * indexes as specified in xpc_array_set_value(). - * - * @result - * The object at the specified index within the array or NULL if the given - * object was not an XPC array or if the the value at the specified index was - * not a dictionary. - * - * @discussion - * This method does not grant the caller a reference to the underlying object, - * and thus the caller is not responsible for releasing the object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -xpc_object_t _Nullable -xpc_array_get_dictionary(xpc_object_t xarray, size_t index); - -/*! - * @function xpc_array_get_array - * - * @abstract - * Returns the array at the specified index in the array. - * - * @param xarray - * The array object which is to be examined. - * - * @param index - * The index of the value to obtain. This value must lie within the range of - * indexes as specified in xpc_array_set_value(). - * - * @result - * The object at the specified index within the array or NULL if the given - * object was not an XPC array or if the the value at the specified index was - * not an array. - * - * @discussion - * This method does not grant the caller a reference to the underlying object, - * and thus the caller is not responsible for releasing the object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -xpc_object_t _Nullable -xpc_array_get_array(xpc_object_t xarray, size_t index); - -#pragma mark Dictionary -/*! - * @typedef xpc_dictionary_applier_t - * A block to be invoked for every key/value pair in the dictionary. - * - * @param key - * The current key in the iteration. - * - * @param value - * The current value in the iteration. - * - * @result - * A Boolean indicating whether iteration should continue. - */ -#ifdef __BLOCKS__ -typedef bool (^xpc_dictionary_applier_t)(const char * _Nonnull key, - xpc_object_t _Nonnull value); -#endif // __BLOCKS__ - -/*! - * @function xpc_dictionary_create - * - * @abstract - * Creates an XPC object representing a dictionary of XPC objects keyed to - * C-strings. - * - * @param keys - * An array of C-strings that are to be the keys for the values to be inserted. - * Each element of this array is copied into the dictionary's internal storage. - * Elements of this array may NOT be NULL. - * - * @param values - * A C-array that is parallel to the array of keys, consisting of objects that - * are to be inserted. Each element in this array is retained. Elements in this - * array may be NULL. - * - * @param count - * The number of key/value pairs in the given arrays. If the count is less than - * the actual count of values, only that many key/value pairs will be inserted - * into the dictionary. - * - * If the count is more than the the actual count of key/value pairs, the - * behavior is undefined. If one array is NULL and the other is not, the - * behavior is undefined. If both arrays are NULL and the count is non-0, the - * behavior is undefined. - * - * @result - * The new dictionary object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT -xpc_object_t -xpc_dictionary_create(const char * _Nonnull const * _Nullable keys, - const xpc_object_t _Nullable * _Nullable values, size_t count); - -/*! - * @function xpc_dictionary_create_reply - * - * @abstract - * Creates a dictionary that is in reply to the given dictionary. - * - * @param original - * The original dictionary that is to be replied to. - * - * @result - * The new dictionary object. NULL if the object was not a dictionary with a - * reply context. - * - * @discussion - * After completing successfully on a dictionary, this method may not be called - * again on that same dictionary. Attempts to do so will return NULL. - * - * When this dictionary is sent across the reply connection, the remote end's - * reply handler is invoked. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL -xpc_object_t _Nullable -xpc_dictionary_create_reply(xpc_object_t original); - -/*! - * @function xpc_dictionary_set_value - * - * @abstract - * Sets the value for the specified key to the specified object. - * - * @param xdict - * The dictionary object which is to be manipulated. - * - * @param key - * The key for which the value shall be set. - * - * @param value - * The object to insert. The object is retained by the dictionary. If there - * already exists a value for the specified key, the old value is released - * and overwritten by the new value. This parameter may be NULL, in which case - * the value corresponding to the specified key is deleted if present. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_dictionary_set_value(xpc_object_t xdict, const char *key, - xpc_object_t _Nullable value); - -/*! - * @function xpc_dictionary_get_value - * - * @abstract - * Returns the value for the specified key. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The object for the specified key within the dictionary. NULL if there is no - * value associated with the specified key or if the given object was not an - * XPC dictionary. - * - * @discussion - * This method does not grant the caller a reference to the underlying object, - * and thus the caller is not responsible for releasing the object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2 -xpc_object_t _Nullable -xpc_dictionary_get_value(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_count - * - * @abstract - * Returns the number of values stored in the dictionary. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @result - * The number of values stored in the dictionary or 0 if the given object was - * not an XPC dictionary. Calling xpc_dictionary_set_value() with a non-NULL - * value will increment the count. Calling xpc_dictionary_set_value() with a - * NULL value will decrement the count. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -size_t -xpc_dictionary_get_count(xpc_object_t xdict); - -/*! - * @function xpc_dictionary_apply - * - * @abstract - * Invokes the given block for every key/value pair in the dictionary. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param applier - * The block which this function applies to every key/value pair in the - * dictionary. - * - * @result - * A Boolean indicating whether iteration of the dictionary completed - * successfully. Iteration will only fail if the applier block returns false. - * - * @discussion - * You should not modify a dictionary's contents during iteration. There is no - * guaranteed order of iteration over dictionaries. - */ -#ifdef __BLOCKS__ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL_ALL -bool -xpc_dictionary_apply(xpc_object_t xdict, - XPC_NOESCAPE xpc_dictionary_applier_t applier); -#endif // __BLOCKS__ - -/*! - * @function xpc_dictionary_get_remote_connection - * - * @abstract - * Returns the connection from which the dictionary was received. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @result - * If the dictionary was received by a connection event handler or a dictionary - * created through xpc_dictionary_create_reply(), a connection object over which - * a reply message can be sent is returned. For any other dictionary, NULL is - * returned. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -xpc_connection_t _Nullable -xpc_dictionary_get_remote_connection(xpc_object_t xdict); - -#pragma mark Dictionary Primitive Setters -/*! - * @function xpc_dictionary_set_bool - * - * @abstract - * Inserts a bool (primitive) value into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param value - * The bool value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_dictionary_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_dictionary_set_bool(xpc_object_t xdict, const char *key, bool value); - -/*! - * @function xpc_dictionary_set_int64 - * - * @abstract - * Inserts an int64_t (primitive) value into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param value - * The int64_t value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_dictionary_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_dictionary_set_int64(xpc_object_t xdict, const char *key, int64_t value); - -/*! - * @function xpc_dictionary_set_uint64 - * - * @abstract - * Inserts a uint64_t (primitive) value into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param value - * The uint64_t value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_dictionary_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_dictionary_set_uint64(xpc_object_t xdict, const char *key, uint64_t value); - -/*! - * @function xpc_dictionary_set_double - * - * @abstract - * Inserts a double (primitive) value into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param value - * The double value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_dictionary_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_dictionary_set_double(xpc_object_t xdict, const char *key, double value); - -/*! - * @function xpc_dictionary_set_date - * - * @abstract - * Inserts a date (primitive) value into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param value - * The date value to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved with - * {@link xpc_dictionary_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_dictionary_set_date(xpc_object_t xdict, const char *key, int64_t value); - -/*! - * @function xpc_dictionary_set_data - * - * @abstract - * Inserts a raw data value into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param bytes - * The bytes to insert. After calling this method, the XPC object corresponding - * to the primitive value inserted may be safely retrieved with - * {@link xpc_dictionary_get_value()}. - * - * @param length - * The length of the data. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3 -void -xpc_dictionary_set_data(xpc_object_t xdict, const char *key, const void *bytes, - size_t length); - -/*! - * @function xpc_dictionary_set_string - * - * @abstract - * Inserts a C string value into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param string - * The C string to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved with - * {@link xpc_dictionary_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3 -void -xpc_dictionary_set_string(xpc_object_t xdict, const char *key, - const char *string); - -/*! - * @function xpc_dictionary_set_uuid - * - * @abstract - * Inserts a uuid (primitive) value into an array. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param uuid - * The uuid_t value to insert. After calling this method, the XPC - * object corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_dictionary_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3 -void -xpc_dictionary_set_uuid(xpc_object_t xdict, const char *key, - const uuid_t XPC_NONNULL_ARRAY uuid); - -/*! - * @function xpc_dictionary_set_fd - * - * @abstract - * Inserts a file descriptor into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param fd - * The file descriptor to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_dictionary_get_value()}. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 -void -xpc_dictionary_set_fd(xpc_object_t xdict, const char *key, int fd); - -/*! - * @function xpc_dictionary_set_connection - * - * @abstract - * Inserts a connection into a dictionary. - * - * @param xdict - * The dictionary which is to be manipulated. - * - * @param key - * The key for which the primitive value shall be set. - * - * @param connection - * The connection to insert. After calling this method, the XPC object - * corresponding to the primitive value inserted may be safely retrieved - * with {@link xpc_dictionary_get_value()}. The connection is NOT retained by - * the dictionary. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3 -void -xpc_dictionary_set_connection(xpc_object_t xdict, const char *key, - xpc_connection_t connection); - -#pragma mark Dictionary Primitive Getters -/*! - * @function xpc_dictionary_get_bool - * - * @abstract - * Gets a bool primitive value from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The underlying bool value for the specified key. false if the - * the value for the specified key is not a Boolean value or if there is no - * value for the specified key. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -bool -xpc_dictionary_get_bool(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_int64 - * - * @abstract - * Gets an int64 primitive value from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The underlying int64_t value for the specified key. 0 if the - * value for the specified key is not a signed integer value or if there is no - * value for the specified key. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -int64_t -xpc_dictionary_get_int64(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_uint64 - * - * @abstract - * Gets a uint64 primitive value from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The underlying uint64_t value for the specified key. 0 if the - * value for the specified key is not an unsigned integer value or if there is - * no value for the specified key. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -uint64_t -xpc_dictionary_get_uint64(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_double - * - * @abstract - * Gets a double primitive value from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The underlying double value for the specified key. NAN if the - * value for the specified key is not a floating point value or if there is no - * value for the specified key. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -double -xpc_dictionary_get_double(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_date - * - * @abstract - * Gets a date value from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The underlying date interval for the specified key. 0 if the value for the - * specified key is not a date value or if there is no value for the specified - * key. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -int64_t -xpc_dictionary_get_date(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_data - * - * @abstract - * Gets a raw data value from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @param length - * For the data type, the third parameter, upon output, will contain the length - * of the data corresponding to the specified key. May be NULL. - * - * @result - * The underlying raw data for the specified key. NULL if the value for the - * specified key is not a data value or if there is no value for the specified - * key. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 -const void * _Nullable -xpc_dictionary_get_data(xpc_object_t xdict, const char *key, - size_t * _Nullable length); - -/*! - * @function xpc_dictionary_get_string - * - * @abstract - * Gets a C string value from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The underlying C string for the specified key. NULL if the value for the - * specified key is not a C string value or if there is no value for the - * specified key. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -const char * _Nullable -xpc_dictionary_get_string(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_uuid - * - * @abstract - * Gets a uuid value from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The underlying uuid_t value for the specified key. NULL is the - * value at the specified index is not a UUID value. The returned pointer may be - * safely passed to the uuid(3) APIs. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2 -const uint8_t * _Nullable -xpc_dictionary_get_uuid(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_dup_fd - * - * @abstract - * Creates a file descriptor from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * A new file descriptor created from the value for the specified key. You are - * responsible for close(2)ing this descriptor. -1 if the value for the - * specified key is not a file descriptor value or if there is no value for the - * specified key. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -int -xpc_dictionary_dup_fd(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_create_connection - * - * @abstract - * Creates a connection from a dictionary directly. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * A new connection created from the value for the specified key. You are - * responsible for calling xpc_release() on the returned connection. NULL if the - * value for the specified key is not an endpoint containing a connection or if - * there is no value for the specified key. Each call to this method for the - * same key in the same dictionary will yield a different connection. See - * {@link xpc_connection_create_from_endpoint()} for discussion as to the - * responsibilities when dealing with the returned connection. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL -xpc_connection_t _Nullable -xpc_dictionary_create_connection(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_dictionary - * - * @abstract - * Returns the dictionary value for the specified key. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The object for the specified key within the dictionary. NULL if there is no - * value associated with the specified key, if the given object was not an - * XPC dictionary, or if the object for the specified key is not a dictionary. - * - * @discussion - * This method does not grant the caller a reference to the underlying object, - * and thus the caller is not responsible for releasing the object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -xpc_object_t _Nullable -xpc_dictionary_get_dictionary(xpc_object_t xdict, const char *key); - -/*! - * @function xpc_dictionary_get_array - * - * @abstract - * Returns the array value for the specified key. - * - * @param xdict - * The dictionary object which is to be examined. - * - * @param key - * The key whose value is to be obtained. - * - * @result - * The object for the specified key within the dictionary. NULL if there is no - * value associated with the specified key, if the given object was not an - * XPC dictionary, or if the object for the specified key is not an array. - * - * @discussion - * This method does not grant the caller a reference to the underlying object, - * and thus the caller is not responsible for releasing the object. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0) -XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL -xpc_object_t _Nullable -xpc_dictionary_get_array(xpc_object_t xdict, const char *key); - -#pragma mark Runtime -/*! - * @function xpc_main - * The springboard into the XPCService runtime. This function will set up your - * service bundle's listener connection and manage it automatically. After this - * initial setup, this function will, by default, call dispatch_main(). You may - * override this behavior by setting the RunLoopType key in your XPC service - * bundle's Info.plist under the XPCService dictionary. - * - * @param handler - * The handler with which to accept new connections. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NORETURN XPC_NONNULL1 -void -xpc_main(xpc_connection_handler_t handler); - -#pragma mark Transactions -/*! - * @function xpc_transaction_begin - * Informs the XPC runtime that a transaction has begun and that the service - * should not exit due to inactivity. - * - * @discussion - * A service with no outstanding transactions may automatically exit due to - * inactivity as determined by the system. - * - * This function may be used to manually manage transactions in cases where - * their automatic management (as described below) does not meet the needs of an - * XPC service. This function also updates the transaction count used for sudden - * termination, i.e. vproc_transaction_begin(), and these two interfaces may be - * used in combination. - * - * The XPC runtime will automatically begin a transaction on behalf of a service - * when a new message is received. If no reply message is expected, the - * transaction is automatically ended when the connection event handler returns. - * If a reply message is created, the transaction will end when the reply - * message is sent or released. An XPC service may use xpc_transaction_begin() - * and xpc_transaction_end() to inform the XPC runtime about activity that - * occurs outside of this common pattern. - * - * On macOS, when the XPC runtime has determined that the service should exit, - * the event handlers for all active peer connections will receive - * {@link XPC_ERROR_TERMINATION_IMMINENT} as an indication that they should - * unwind their existing transactions. After this error is delivered to a - * connection's event handler, no more messages will be delivered to the - * connection. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_TRANSACTION_DEPRECATED -XPC_EXPORT -void -xpc_transaction_begin(void); - -/*! - * @function xpc_transaction_end - * Informs the XPC runtime that a transaction has ended. - * - * @discussion - * As described in {@link xpc_transaction_begin()}, this API may be used - * interchangeably with vproc_transaction_end(). - * - * See the discussion for {@link xpc_transaction_begin()} for details regarding - * the XPC runtime's idle-exit policy. - */ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_TRANSACTION_DEPRECATED -XPC_EXPORT -void -xpc_transaction_end(void); - -#pragma mark XPC Event Stream -/*! - * @function xpc_set_event_stream_handler - * Sets the event handler to invoke when streamed events are received. - * - * @param stream - * The name of the event stream for which this handler will be invoked. - * - * @param targetq - * The GCD queue to which the event handler block will be submitted. This - * parameter may be NULL, in which case the connection's target queue will be - * libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT. - * - * @param handler - * The event handler block. The event which this block receives as its first - * parameter will always be a dictionary which contains the XPC_EVENT_KEY_NAME - * key. The value for this key will be a string whose value is the name assigned - * to the XPC event specified in the launchd.plist. Future keys may be added to - * this dictionary. - * - * @discussion - * Multiple calls to this function for the same event stream will result in - * undefined behavior. - */ -#if __BLOCKS__ -__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) -XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 -void -xpc_set_event_stream_handler(const char *stream, - dispatch_queue_t _Nullable targetq, xpc_handler_t handler); -#endif // __BLOCKS__ - -__END_DECLS -XPC_ASSUME_NONNULL_END - -#endif // __XPC_H__ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/_limits.h b/lib/libc/include/x86_64-macos.13-none/i386/_limits.h new file mode 100644 index 0000000000000000000000000000000000000000..5763f5a3a8c500121b2cf51a4f8252fe88069faf --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/_limits.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2004 Apple Computer, 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 _I386__LIMITS_H_ +#define _I386__LIMITS_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#define __DARWIN_CLK_TCK 100 /* ticks per second */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _I386__LIMITS_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/_mcontext.h b/lib/libc/include/x86_64-macos.13-none/i386/_mcontext.h new file mode 100644 index 0000000000000000000000000000000000000000..b9f40e5e33b88340d7ace4dd06ff249230982b0a --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/_mcontext.h @@ -0,0 +1,216 @@ +/* + * Copyright (c) 2003-2012 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 __I386_MCONTEXT_H_ +#define __I386_MCONTEXT_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#include /* __DARWIN_UNIX03 */ +#include +#include + +#ifndef _STRUCT_MCONTEXT32 +#if __DARWIN_UNIX03 +#define _STRUCT_MCONTEXT32 struct __darwin_mcontext32 +_STRUCT_MCONTEXT32 +{ + _STRUCT_X86_EXCEPTION_STATE32 __es; + _STRUCT_X86_THREAD_STATE32 __ss; + _STRUCT_X86_FLOAT_STATE32 __fs; +}; + +#define _STRUCT_MCONTEXT_AVX32 struct __darwin_mcontext_avx32 +_STRUCT_MCONTEXT_AVX32 +{ + _STRUCT_X86_EXCEPTION_STATE32 __es; + _STRUCT_X86_THREAD_STATE32 __ss; + _STRUCT_X86_AVX_STATE32 __fs; +}; + +#if defined(_STRUCT_X86_AVX512_STATE32) +#define _STRUCT_MCONTEXT_AVX512_32 struct __darwin_mcontext_avx512_32 +_STRUCT_MCONTEXT_AVX512_32 +{ + _STRUCT_X86_EXCEPTION_STATE32 __es; + _STRUCT_X86_THREAD_STATE32 __ss; + _STRUCT_X86_AVX512_STATE32 __fs; +}; +#endif /* _STRUCT_X86_AVX512_STATE32 */ + +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_MCONTEXT32 struct mcontext32 +_STRUCT_MCONTEXT32 +{ + _STRUCT_X86_EXCEPTION_STATE32 es; + _STRUCT_X86_THREAD_STATE32 ss; + _STRUCT_X86_FLOAT_STATE32 fs; +}; + +#define _STRUCT_MCONTEXT_AVX32 struct mcontext_avx32 +_STRUCT_MCONTEXT_AVX32 +{ + _STRUCT_X86_EXCEPTION_STATE32 es; + _STRUCT_X86_THREAD_STATE32 ss; + _STRUCT_X86_AVX_STATE32 fs; +}; + +#if defined(_STRUCT_X86_AVX512_STATE32) +#define _STRUCT_MCONTEXT_AVX512_32 struct mcontext_avx512_32 +_STRUCT_MCONTEXT_AVX512_32 +{ + _STRUCT_X86_EXCEPTION_STATE32 es; + _STRUCT_X86_THREAD_STATE32 ss; + _STRUCT_X86_AVX512_STATE32 fs; +}; +#endif /* _STRUCT_X86_AVX512_STATE32 */ + +#endif /* __DARWIN_UNIX03 */ +#endif /* _STRUCT_MCONTEXT32 */ + +#ifndef _STRUCT_MCONTEXT64 +#if __DARWIN_UNIX03 +#define _STRUCT_MCONTEXT64 struct __darwin_mcontext64 +_STRUCT_MCONTEXT64 +{ + _STRUCT_X86_EXCEPTION_STATE64 __es; + _STRUCT_X86_THREAD_STATE64 __ss; + _STRUCT_X86_FLOAT_STATE64 __fs; +}; + +#define _STRUCT_MCONTEXT64_FULL struct __darwin_mcontext64_full +_STRUCT_MCONTEXT64_FULL +{ + _STRUCT_X86_EXCEPTION_STATE64 __es; + _STRUCT_X86_THREAD_FULL_STATE64 __ss; + _STRUCT_X86_FLOAT_STATE64 __fs; +}; + +#define _STRUCT_MCONTEXT_AVX64 struct __darwin_mcontext_avx64 +_STRUCT_MCONTEXT_AVX64 +{ + _STRUCT_X86_EXCEPTION_STATE64 __es; + _STRUCT_X86_THREAD_STATE64 __ss; + _STRUCT_X86_AVX_STATE64 __fs; +}; + +#define _STRUCT_MCONTEXT_AVX64_FULL struct __darwin_mcontext_avx64_full +_STRUCT_MCONTEXT_AVX64_FULL +{ + _STRUCT_X86_EXCEPTION_STATE64 __es; + _STRUCT_X86_THREAD_FULL_STATE64 __ss; + _STRUCT_X86_AVX_STATE64 __fs; +}; + +#if defined(_STRUCT_X86_AVX512_STATE64) +#define _STRUCT_MCONTEXT_AVX512_64 struct __darwin_mcontext_avx512_64 +_STRUCT_MCONTEXT_AVX512_64 +{ + _STRUCT_X86_EXCEPTION_STATE64 __es; + _STRUCT_X86_THREAD_STATE64 __ss; + _STRUCT_X86_AVX512_STATE64 __fs; +}; + +#define _STRUCT_MCONTEXT_AVX512_64_FULL struct __darwin_mcontext_avx512_64_full +_STRUCT_MCONTEXT_AVX512_64_FULL +{ + _STRUCT_X86_EXCEPTION_STATE64 __es; + _STRUCT_X86_THREAD_FULL_STATE64 __ss; + _STRUCT_X86_AVX512_STATE64 __fs; +}; +#endif /* _STRUCT_X86_AVX512_STATE64 */ + +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_MCONTEXT64 struct mcontext64 +_STRUCT_MCONTEXT64 +{ + _STRUCT_X86_EXCEPTION_STATE64 es; + _STRUCT_X86_THREAD_STATE64 ss; + _STRUCT_X86_FLOAT_STATE64 fs; +}; + +#define _STRUCT_MCONTEXT64_FULL struct mcontext64_full +_STRUCT_MCONTEXT64_FULL +{ + _STRUCT_X86_EXCEPTION_STATE64 es; + _STRUCT_X86_THREAD_FULL_STATE64 ss; + _STRUCT_X86_FLOAT_STATE64 fs; +}; + +#define _STRUCT_MCONTEXT_AVX64 struct mcontext_avx64 +_STRUCT_MCONTEXT_AVX64 +{ + _STRUCT_X86_EXCEPTION_STATE64 es; + _STRUCT_X86_THREAD_STATE64 ss; + _STRUCT_X86_AVX_STATE64 fs; +}; + +#define _STRUCT_MCONTEXT_AVX64_FULL struct mcontext_avx64_full +_STRUCT_MCONTEXT_AVX64_FULL +{ + _STRUCT_X86_EXCEPTION_STATE64 es; + _STRUCT_X86_THREAD_FULL_STATE64 ss; + _STRUCT_X86_AVX_STATE64 fs; +}; + +#if defined(_STRUCT_X86_AVX512_STATE64) +#define _STRUCT_MCONTEXT_AVX512_64 struct mcontext_avx512_64 +_STRUCT_MCONTEXT_AVX512_64 +{ + _STRUCT_X86_EXCEPTION_STATE64 es; + _STRUCT_X86_THREAD_STATE64 ss; + _STRUCT_X86_AVX512_STATE64 fs; +}; + +#define _STRUCT_MCONTEXT_AVX512_64_FULL struct mcontext_avx512_64_full +_STRUCT_MCONTEXT_AVX512_64_FULL +{ + _STRUCT_X86_EXCEPTION_STATE64 es; + _STRUCT_X86_THREAD_FULL_STATE64 ss; + _STRUCT_X86_AVX512_STATE64 fs; +}; +#endif /* _STRUCT_X86_AVX512_STATE64 */ + +#endif /* __DARWIN_UNIX03 */ +#endif /* _STRUCT_MCONTEXT64 */ + + +#ifndef _MCONTEXT_T +#define _MCONTEXT_T +#if defined(__LP64__) +typedef _STRUCT_MCONTEXT64 *mcontext_t; +#define _STRUCT_MCONTEXT _STRUCT_MCONTEXT64 +#else +typedef _STRUCT_MCONTEXT32 *mcontext_t; +#define _STRUCT_MCONTEXT _STRUCT_MCONTEXT32 +#endif +#endif /* _MCONTEXT_T */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* __I386_MCONTEXT_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/_param.h b/lib/libc/include/x86_64-macos.13-none/i386/_param.h new file mode 100644 index 0000000000000000000000000000000000000000..ac0ac439aac24b00a76ee49b798ca584df7313ce --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/_param.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2008 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 _I386__PARAM_H_ +#define _I386__PARAM_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#include + +/* + * Round p (pointer or byte index) up to a correctly-aligned value for all + * data types (int, long, ...). The result is unsigned int and must be + * cast to any desired pointer type. + */ +#define __DARWIN_ALIGNBYTES (sizeof(__darwin_size_t) - 1) +#define __DARWIN_ALIGN(p) ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES) + +#define __DARWIN_ALIGNBYTES32 (sizeof(__uint32_t) - 1) +#define __DARWIN_ALIGN32(p) ((__darwin_size_t)((__darwin_size_t)(p) + __DARWIN_ALIGNBYTES32) &~ __DARWIN_ALIGNBYTES32) + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _I386__PARAM_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/_types.h b/lib/libc/include/x86_64-macos.13-none/i386/_types.h new file mode 100644 index 0000000000000000000000000000000000000000..b9e77d684cf7708ba7feb7aa0bfcd0ce48848b1c --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/_types.h @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2000-2003 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 _BSD_I386__TYPES_H_ +#define _BSD_I386__TYPES_H_ + +#if defined (__i386__) || defined (__x86_64__) + +/* + * This header file contains integer types. It's intended to also contain + * flotaing point and other arithmetic types, as needed, later. + */ + +#ifdef __GNUC__ +typedef __signed char __int8_t; +#else /* !__GNUC__ */ +typedef char __int8_t; +#endif /* !__GNUC__ */ +typedef unsigned char __uint8_t; +typedef short __int16_t; +typedef unsigned short __uint16_t; +typedef int __int32_t; +typedef unsigned int __uint32_t; +typedef long long __int64_t; +typedef unsigned long long __uint64_t; + +typedef long __darwin_intptr_t; +typedef unsigned int __darwin_natural_t; + +/* + * The rune type below is declared to be an ``int'' instead of the more natural + * ``unsigned long'' or ``long''. Two things are happening here. It is not + * unsigned so that EOF (-1) can be naturally assigned to it and used. Also, + * it looks like 10646 will be a 31 bit standard. This means that if your + * ints cannot hold 32 bits, you will be in trouble. The reason an int was + * chosen over a long is that the is*() and to*() routines take ints (says + * ANSI C), but they use __darwin_ct_rune_t instead of int. By changing it + * here, you lose a bit of ANSI conformance, but your programs will still + * work. + * + * NOTE: rune_t is not covered by ANSI nor other standards, and should not + * be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and + * rune_t must be the same type. Also wint_t must be no narrower than + * wchar_t, and should also be able to hold all members of the largest + * character set plus one extra value (WEOF). wint_t must be at least 16 bits. + */ + +typedef int __darwin_ct_rune_t; /* ct_rune_t */ + +/* + * mbstate_t is an opaque object to keep conversion state, during multibyte + * stream conversions. The content must not be referenced by user programs. + */ +typedef union { + char __mbstate8[128]; + long long _mbstateL; /* for alignment */ +} __mbstate_t; + +typedef __mbstate_t __darwin_mbstate_t; /* mbstate_t */ + +#if defined(__PTRDIFF_TYPE__) +typedef __PTRDIFF_TYPE__ __darwin_ptrdiff_t; /* ptr1 - ptr2 */ +#elif defined(__LP64__) +typedef long __darwin_ptrdiff_t; /* ptr1 - ptr2 */ +#else +typedef int __darwin_ptrdiff_t; /* ptr1 - ptr2 */ +#endif /* __GNUC__ */ + +#if defined(__SIZE_TYPE__) +typedef __SIZE_TYPE__ __darwin_size_t; /* sizeof() */ +#else +typedef unsigned long __darwin_size_t; /* sizeof() */ +#endif + +#if (__GNUC__ > 2) +typedef __builtin_va_list __darwin_va_list; /* va_list */ +#else +typedef void * __darwin_va_list; /* va_list */ +#endif + +#if defined(__WCHAR_TYPE__) +typedef __WCHAR_TYPE__ __darwin_wchar_t; /* wchar_t */ +#else +typedef __darwin_ct_rune_t __darwin_wchar_t; /* wchar_t */ +#endif + +typedef __darwin_wchar_t __darwin_rune_t; /* rune_t */ + +#if defined(__WINT_TYPE__) +typedef __WINT_TYPE__ __darwin_wint_t; /* wint_t */ +#else +typedef __darwin_ct_rune_t __darwin_wint_t; /* wint_t */ +#endif + +typedef unsigned long __darwin_clock_t; /* clock() */ +typedef __uint32_t __darwin_socklen_t; /* socklen_t (duh) */ +typedef long __darwin_ssize_t; /* byte count or error */ +typedef long __darwin_time_t; /* time() */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _BSD_I386__TYPES_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/eflags.h b/lib/libc/include/x86_64-macos.13-none/i386/eflags.h new file mode 100644 index 0000000000000000000000000000000000000000..7faa7d0839b2a57d1b00dcfcb54a9a43d353b216 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/eflags.h @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + */ + +#ifndef _I386_EFLAGS_H_ +#define _I386_EFLAGS_H_ + +#if defined (__i386__) || defined (__x86_64__) + +/* + * i386 flags register + */ + +#ifndef EFL_CF +#define EFL_CF 0x00000001 /* carry */ +#define EFL_PF 0x00000004 /* parity of low 8 bits */ +#define EFL_AF 0x00000010 /* carry out of bit 3 */ +#define EFL_ZF 0x00000040 /* zero */ +#define EFL_SF 0x00000080 /* sign */ +#define EFL_TF 0x00000100 /* trace trap */ +#define EFL_IF 0x00000200 /* interrupt enable */ +#define EFL_DF 0x00000400 /* direction */ +#define EFL_OF 0x00000800 /* overflow */ +#define EFL_IOPL 0x00003000 /* IO privilege level: */ +#define EFL_IOPL_KERNEL 0x00000000 /* kernel */ +#define EFL_IOPL_USER 0x00003000 /* user */ +#define EFL_NT 0x00004000 /* nested task */ +#define EFL_RF 0x00010000 /* resume without tracing */ +#define EFL_VM 0x00020000 /* virtual 8086 mode */ +#define EFL_AC 0x00040000 /* alignment check */ +#define EFL_VIF 0x00080000 /* virtual interrupt flag */ +#define EFL_VIP 0x00100000 /* virtual interrupt pending */ +#define EFL_ID 0x00200000 /* cpuID instruction */ +#endif + +#define EFL_CLR 0xfff88028 +#define EFL_SET 0x00000002 + +#define EFL_USER_SET (EFL_IF) +#define EFL_USER_CLEAR (EFL_IOPL|EFL_NT|EFL_RF) + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _I386_EFLAGS_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/endian.h b/lib/libc/include/x86_64-macos.13-none/i386/endian.h new file mode 100644 index 0000000000000000000000000000000000000000..104d5babcaa6a2e4d3e925b125caa45583377205 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/endian.h @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2000-2002 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 1995 NeXT Computer, Inc. All rights reserved. + */ +/* + * Copyright (c) 1987, 1991, 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. + * + * @(#)endian.h 8.1 (Berkeley) 6/11/93 + */ + +#ifndef _I386__ENDIAN_H_ +#define _I386__ENDIAN_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#include +/* + * Define _NOQUAD if the compiler does NOT support 64-bit integers. + */ +/* #define _NOQUAD */ + +/* + * Define the order of 32-bit words in 64-bit words. + */ +#define _QUAD_HIGHWORD 1 +#define _QUAD_LOWWORD 0 + +/* + * Definitions for byte order, according to byte significance from low + * address to high. + */ +#define __DARWIN_LITTLE_ENDIAN 1234 /* LSB first: i386, vax */ +#define __DARWIN_BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */ +#define __DARWIN_PDP_ENDIAN 3412 /* LSB first in word, MSW first in long */ + +#define __DARWIN_BYTE_ORDER __DARWIN_LITTLE_ENDIAN + +#if defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) + +#define LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN +#define BIG_ENDIAN __DARWIN_BIG_ENDIAN +#define PDP_ENDIAN __DARWIN_PDP_ENDIAN + +#define BYTE_ORDER __DARWIN_BYTE_ORDER + +#include + +#endif /* defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) */ +#endif /* defined (__i386__) || defined (__x86_64__) */ +#endif /* !_I386__ENDIAN_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/limits.h b/lib/libc/include/x86_64-macos.13-none/i386/limits.h new file mode 100644 index 0000000000000000000000000000000000000000..292e6bd654b5f76d4ac088250430544dbb07530f --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/limits.h @@ -0,0 +1,111 @@ +/* + * Copyright (c) 1988, 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. + * + * @(#)limits.h 8.3 (Berkeley) 1/4/94 + */ + +#ifndef _I386_LIMITS_H_ +#define _I386_LIMITS_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#include +#include + +#define CHAR_BIT 8 /* number of bits in a char */ +#define MB_LEN_MAX 6 /* Allow 31 bit UTF2 */ + +#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) +#define CLK_TCK __DARWIN_CLK_TCK /* ticks per second */ +#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ + +/* + * According to ANSI (section 2.2.4.2), the values below must be usable by + * #if preprocessing directives. Additionally, the expression must have the + * same type as would an expression that is an object of the corresponding + * type converted according to the integral promotions. The subtraction for + * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an + * unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). + * These numbers work for pcc as well. The UINT_MAX and ULONG_MAX values + * are written as hex so that GCC will be quiet about large integer constants. + */ +#define SCHAR_MAX 127 /* min value for a signed char */ +#define SCHAR_MIN (-128) /* max value for a signed char */ + +#define UCHAR_MAX 255 /* max value for an unsigned char */ +#define CHAR_MAX 127 /* max value for a char */ +#define CHAR_MIN (-128) /* min value for a char */ + +#define USHRT_MAX 65535 /* max value for an unsigned short */ +#define SHRT_MAX 32767 /* max value for a short */ +#define SHRT_MIN (-32768) /* min value for a short */ + +#define UINT_MAX 0xffffffff /* max value for an unsigned int */ +#define INT_MAX 2147483647 /* max value for an int */ +#define INT_MIN (-2147483647-1) /* min value for an int */ + +#ifdef __LP64__ +#define ULONG_MAX 0xffffffffffffffffUL /* max unsigned long */ +#define LONG_MAX 0x7fffffffffffffffL /* max signed long */ +#define LONG_MIN (-0x7fffffffffffffffL-1) /* min signed long */ +#else /* !__LP64__ */ +#define ULONG_MAX 0xffffffffUL /* max unsigned long */ +#define LONG_MAX 2147483647L /* max signed long */ +#define LONG_MIN (-2147483647L-1) /* min signed long */ +#endif /* __LP64__ */ + +#define ULLONG_MAX 0xffffffffffffffffULL /* max unsigned long long */ +#define LLONG_MAX 0x7fffffffffffffffLL /* max signed long long */ +#define LLONG_MIN (-0x7fffffffffffffffLL-1) /* min signed long long */ + +#if !defined(_ANSI_SOURCE) +#ifdef __LP64__ +#define LONG_BIT 64 +#else /* !__LP64__ */ +#define LONG_BIT 32 +#endif /* __LP64__ */ +#define SSIZE_MAX LONG_MAX /* max value for a ssize_t */ +#define WORD_BIT 32 + +#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) +#define SIZE_T_MAX ULONG_MAX /* max value for a size_t */ + +#define UQUAD_MAX ULLONG_MAX +#define QUAD_MAX LLONG_MAX +#define QUAD_MIN LLONG_MIN + +#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */ +#endif /* !_ANSI_SOURCE */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _I386_LIMITS_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/param.h b/lib/libc/include/x86_64-macos.13-none/i386/param.h new file mode 100644 index 0000000000000000000000000000000000000000..fe2bb9cc06bd87987ed2767687b2ca68111e76b8 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/param.h @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2000-2010 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@ + */ +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * 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. + * + * @(#)param.h 8.1 (Berkeley) 4/4/95 + */ + +/* + * Machine dependent constants for Intel 386. + */ + +#ifndef _I386_PARAM_H_ +#define _I386_PARAM_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#include + +/* + * Round p (pointer or byte index) up to a correctly-aligned value for all + * data types (int, long, ...). The result is unsigned int and must be + * cast to any desired pointer type. + */ +#define ALIGNBYTES __DARWIN_ALIGNBYTES +#define ALIGN(p) __DARWIN_ALIGN(p) + +#define NBPG 4096 /* bytes/page */ +#define PGOFSET (NBPG-1) /* byte offset into page */ +#define PGSHIFT 12 /* LOG2(NBPG) */ + +#define DEV_BSIZE 512 +#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */ +#define BLKDEV_IOSIZE 2048 +#define MAXPHYS (128 * 1024) /* max raw I/O transfer size */ + +#define CLSIZE 1 +#define CLSIZELOG2 0 + +/* + * Constants related to network buffer management. + * MCLBYTES must be no larger than CLBYTES (the software page size), and, + * on machines that exchange pages of input or output buffers with mbuf + * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple + * of the hardware page size. + */ +#define MSIZESHIFT 8 /* 256 */ +#define MSIZE (1 << MSIZESHIFT) /* size of an mbuf */ +#define MCLSHIFT 11 /* 2048 */ +#define MCLBYTES (1 << MCLSHIFT) /* size of an mbuf cluster */ +#define MBIGCLSHIFT 12 /* 4096 */ +#define MBIGCLBYTES (1 << MBIGCLSHIFT) /* size of a big cluster */ +#define M16KCLSHIFT 14 /* 16384 */ +#define M16KCLBYTES (1 << M16KCLSHIFT) /* size of a jumbo cluster */ + +#define MCLOFSET (MCLBYTES - 1) +#ifndef NMBCLUSTERS +#define NMBCLUSTERS ((1024 * 1024) / MCLBYTES) /* cl map size: 1MB */ +#endif + +/* + * Some macros for units conversion + */ +/* Core clicks (NeXT_page_size bytes) to segments and vice versa */ +#define ctos(x) (x) +#define stoc(x) (x) + +/* Core clicks (4096 bytes) to disk blocks */ +#define ctod(x) ((x)<<(PGSHIFT-DEV_BSHIFT)) +#define dtoc(x) ((x)>>(PGSHIFT-DEV_BSHIFT)) +#define dtob(x) ((x)<>PGSHIFT) + +#ifdef __APPLE__ +#define btodb(bytes, devBlockSize) \ + ((unsigned)(bytes) / devBlockSize) +#define dbtob(db, devBlockSize) \ + ((unsigned)(db) * devBlockSize) +#else +#define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \ + ((unsigned)(bytes) >> DEV_BSHIFT) +#define dbtob(db) /* calculates (db * DEV_BSIZE) */ \ + ((unsigned)(db) << DEV_BSHIFT) +#endif + +/* + * Map a ``block device block'' to a file system block. + * This should be device dependent, and will be if we + * add an entry to cdevsw/bdevsw for that purpose. + * For now though just use DEV_BSIZE. + */ +#define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE)) + +/* + * Macros to decode (and encode) processor status word. + */ +#define STATUS_WORD(rpl, ipl) (((ipl) << 8) | (rpl)) +#define USERMODE(x) (((x) & 3) == 3) +#define BASEPRI(x) (((x) & (255 << 8)) == 0) + + +#if defined(KERNEL) || defined(STANDALONE) +#define DELAY(n) delay(n) + +#else /* defined(KERNEL) || defined(STANDALONE) */ +#define DELAY(n) { int N = (n); while (--N > 0); } +#endif /* defined(KERNEL) || defined(STANDALONE) */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _I386_PARAM_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/signal.h b/lib/libc/include/x86_64-macos.13-none/i386/signal.h new file mode 100644 index 0000000000000000000000000000000000000000..e699c2b61b03999cf83eb39ab562399558e27f76 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/signal.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2000-2002 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) 1992 NeXT Computer, Inc. + * + */ + +#ifndef _I386_SIGNAL_H_ +#define _I386_SIGNAL_H_ 1 + +#if defined (__i386__) || defined (__x86_64__) + +#include + +#ifndef _ANSI_SOURCE +typedef int sig_atomic_t; + +#endif /* ! _ANSI_SOURCE */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _I386_SIGNAL_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/i386/types.h b/lib/libc/include/x86_64-macos.13-none/i386/types.h new file mode 100644 index 0000000000000000000000000000000000000000..31ffa1f37c75d5989f2bbfd807ec0552034b50f7 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/i386/types.h @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2000-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@ + */ +/* + * Copyright 1995 NeXT Computer, Inc. All rights reserved. + */ +/* + * Copyright (c) 1990, 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. + * + * @(#)types.h 8.3 (Berkeley) 1/5/94 + */ + +#ifndef _I386_MACHTYPES_H_ +#define _I386_MACHTYPES_H_ +#define _MACHTYPES_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#ifndef __ASSEMBLER__ +#include +#include +/* + * Basic integral types. Omit the typedef if + * not possible for a machine/compiler combination. + */ +#include +#include +#include +#include + +#include +#include +#include +#include + +#if __LP64__ +typedef int64_t register_t; +#else +typedef int32_t register_t; +#endif + +#include +#include + +#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) +/* These types are used for reserving the largest possible size. */ +typedef u_int64_t user_addr_t; +typedef u_int64_t user_size_t; +typedef int64_t user_ssize_t; +typedef int64_t user_long_t; +typedef u_int64_t user_ulong_t; +typedef int64_t user_time_t; +typedef int64_t user_off_t; +#define USER_ADDR_NULL ((user_addr_t) 0) +#define CAST_USER_ADDR_T(a_ptr) ((user_addr_t)((uintptr_t)(a_ptr))) + + +#endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ + +/* This defines the size of syscall arguments after copying into the kernel: */ +typedef u_int64_t syscall_arg_t; + +#endif /* __ASSEMBLER__ */ +#endif /* defined (__i386__) || defined (__x86_64__) */ +#endif /* _I386_MACHTYPES_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomic.h b/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomic.h new file mode 100644 index 0000000000000000000000000000000000000000..37ef16ce445423016650031200d2f0b4423f732a --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomic.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2004-2016 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@ + */ + +#ifndef _OSATOMIC_H_ +#define _OSATOMIC_H_ + +/*! @header + * These are deprecated legacy interfaces for atomic and synchronization + * operations. + * + * Define OSATOMIC_USE_INLINED=1 to get inline implementations of the + * OSAtomic interfaces in terms of the primitives. + * + * Define OSSPINLOCK_USE_INLINED=1 to get inline implementations of the + * OSSpinLock interfaces in terms of the primitives. + * + * These are intended as a transition convenience, direct use of those + * primitives should be preferred. + */ + +#include + +#include "OSAtomicDeprecated.h" +#include "OSSpinLockDeprecated.h" +#include "OSAtomicQueue.h" + +#endif /* _OSATOMIC_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomicDeprecated.h b/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomicDeprecated.h new file mode 100644 index 0000000000000000000000000000000000000000..6dc880b0d4d0bf5e8646b378cc3360c90ffaed41 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomicDeprecated.h @@ -0,0 +1,1266 @@ +/* + * Copyright (c) 2004-2016 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@ + */ + +#ifndef _OSATOMIC_DEPRECATED_H_ +#define _OSATOMIC_DEPRECATED_H_ + +/*! @header + * These are deprecated legacy interfaces for atomic operations. + * The C11 interfaces in resp. C++11 interfaces in + * should be used instead. + * + * Define OSATOMIC_USE_INLINED=1 to get inline implementations of these + * interfaces in terms of the resp. primitives. + * This is intended as a transition convenience, direct use of those primitives + * is preferred. + */ + +#include + +#if !(defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED) + +#include +#include +#include +#include + +#ifndef OSATOMIC_DEPRECATED +#define OSATOMIC_DEPRECATED 1 +#ifndef __cplusplus +#define OSATOMIC_BARRIER_DEPRECATED_MSG(_r) \ + "Use " #_r "() from instead" +#define OSATOMIC_DEPRECATED_MSG(_r) \ + "Use " #_r "_explicit(memory_order_relaxed) from instead" +#else +#define OSATOMIC_BARRIER_DEPRECATED_MSG(_r) \ + "Use std::" #_r "() from instead" +#define OSATOMIC_DEPRECATED_MSG(_r) \ + "Use std::" #_r "_explicit(std::memory_order_relaxed) from instead" +#endif +#define OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(_r) \ + __OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSATOMIC_BARRIER_DEPRECATED_MSG(_r)) +#define OSATOMIC_DEPRECATED_REPLACE_WITH(_r) \ + __OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSATOMIC_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSATOMIC_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSATOMIC_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSATOMIC_DEPRECATED_MSG(_r)) +#else +#undef OSATOMIC_DEPRECATED +#define OSATOMIC_DEPRECATED 0 +#define OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(_r) +#define OSATOMIC_DEPRECATED_REPLACE_WITH(_r) +#endif + +/* + * WARNING: all addresses passed to these functions must be "naturally aligned", + * i.e. int32_t pointers must be 32-bit aligned (low 2 bits of + * address are zeroes), and int64_t pointers must be 64-bit + * aligned (low 3 bits of address are zeroes.). + * Note that this is not the default alignment of the int64_t type + * in the iOS ARMv7 ABI, see + * {@link //apple_ref/doc/uid/TP40009021-SW8 iPhoneOSABIReference} + * + * Note that some versions of the atomic functions incorporate memory barriers + * and some do not. Barriers strictly order memory access on weakly-ordered + * architectures such as ARM. All loads and stores that appear (in sequential + * program order) before the barrier are guaranteed to complete before any + * load or store that appears after the barrier. + * + * The barrier operation is typically a no-op on uniprocessor systems and + * fully enabled on multiprocessor systems. On some platforms, such as ARM, + * the barrier can be quite expensive. + * + * Most code should use the barrier functions to ensure that memory shared + * between threads is properly synchronized. For example, if you want to + * initialize a shared data structure and then atomically increment a variable + * to indicate that the initialization is complete, you must use + * {@link OSAtomicIncrement32Barrier} to ensure that the stores to your data + * structure complete before the atomic increment. + * + * Likewise, the consumer of that data structure must use + * {@link OSAtomicDecrement32Barrier}, + * in order to ensure that their loads of the structure are not executed before + * the atomic decrement. On the other hand, if you are simply incrementing a + * global counter, then it is safe and potentially faster to use + * {@link OSAtomicIncrement32}. + * + * If you are unsure which version to use, prefer the barrier variants as they + * are safer. + * + * For the kernel-space version of this header, see + * {@link //apple_ref/doc/header/OSAtomic.h OSAtomic.h (Kernel Framework)} + * + * @apiuid //apple_ref/doc/header/user_space_OSAtomic.h + */ + +__BEGIN_DECLS + +/*! @typedef OSAtomic_int64_aligned64_t + * 64-bit aligned int64_t type. + * Use for variables whose addresses are passed to OSAtomic*64() functions to + * get the compiler to generate the required alignment. + */ + +#if __has_attribute(aligned) +typedef int64_t __attribute__((__aligned__((sizeof(int64_t))))) + OSAtomic_int64_aligned64_t; +#else +typedef int64_t OSAtomic_int64_aligned64_t; +#endif + +/*! @group Arithmetic functions + All functions in this group return the new value. + */ + +/*! @abstract Atomically adds two 32-bit values. + @discussion + This function adds the value given by __theAmount to the + value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int32_t OSAtomicAdd32( int32_t __theAmount, volatile int32_t *__theValue ); + + +/*! @abstract Atomically adds two 32-bit values. + @discussion + This function adds the value given by __theAmount to the + value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + + This function is equivalent to {@link OSAtomicAdd32} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int32_t OSAtomicAdd32Barrier( int32_t __theAmount, volatile int32_t *__theValue ); + + +#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10 || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_1 || TARGET_OS_DRIVERKIT + +/*! @abstract Atomically increments a 32-bit value. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add) +__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1) +int32_t OSAtomicIncrement32( volatile int32_t *__theValue ); + + +/*! @abstract Atomically increments a 32-bit value with a barrier. + @discussion + This function is equivalent to {@link OSAtomicIncrement32} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add) +__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1) +int32_t OSAtomicIncrement32Barrier( volatile int32_t *__theValue ); + + +/*! @abstract Atomically decrements a 32-bit value. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_sub) +__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1) +int32_t OSAtomicDecrement32( volatile int32_t *__theValue ); + + +/*! @abstract Atomically decrements a 32-bit value with a barrier. + @discussion + This function is equivalent to {@link OSAtomicDecrement32} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_sub) +__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1) +int32_t OSAtomicDecrement32Barrier( volatile int32_t *__theValue ); + +#else +__inline static +int32_t OSAtomicIncrement32( volatile int32_t *__theValue ) + { return OSAtomicAdd32( 1, __theValue); } + +__inline static +int32_t OSAtomicIncrement32Barrier( volatile int32_t *__theValue ) + { return OSAtomicAdd32Barrier( 1, __theValue); } + +__inline static +int32_t OSAtomicDecrement32( volatile int32_t *__theValue ) + { return OSAtomicAdd32( -1, __theValue); } + +__inline static +int32_t OSAtomicDecrement32Barrier( volatile int32_t *__theValue ) + { return OSAtomicAdd32Barrier( -1, __theValue); } +#endif + + +/*! @abstract Atomically adds two 64-bit values. + @discussion + This function adds the value given by __theAmount to the + value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int64_t OSAtomicAdd64( int64_t __theAmount, + volatile OSAtomic_int64_aligned64_t *__theValue ); + + +/*! @abstract Atomically adds two 64-bit values with a barrier. + @discussion + This function adds the value given by __theAmount to the + value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + + This function is equivalent to {@link OSAtomicAdd64} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_3_2) +int64_t OSAtomicAdd64Barrier( int64_t __theAmount, + volatile OSAtomic_int64_aligned64_t *__theValue ); + + +#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10 || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_1 || TARGET_OS_DRIVERKIT + +/*! @abstract Atomically increments a 64-bit value. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_add) +__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1) +int64_t OSAtomicIncrement64( volatile OSAtomic_int64_aligned64_t *__theValue ); + + +/*! @abstract Atomically increments a 64-bit value with a barrier. + @discussion + This function is equivalent to {@link OSAtomicIncrement64} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_add) +__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1) +int64_t OSAtomicIncrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue ); + + +/*! @abstract Atomically decrements a 64-bit value. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_sub) +__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1) +int64_t OSAtomicDecrement64( volatile OSAtomic_int64_aligned64_t *__theValue ); + + +/*! @abstract Atomically decrements a 64-bit value with a barrier. + @discussion + This function is equivalent to {@link OSAtomicDecrement64} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_sub) +__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_1) +int64_t OSAtomicDecrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue ); + +#else +__inline static +int64_t OSAtomicIncrement64( volatile OSAtomic_int64_aligned64_t *__theValue ) + { return OSAtomicAdd64( 1, __theValue); } + +__inline static +int64_t OSAtomicIncrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue ) + { return OSAtomicAdd64Barrier( 1, __theValue); } + +__inline static +int64_t OSAtomicDecrement64( volatile OSAtomic_int64_aligned64_t *__theValue ) + { return OSAtomicAdd64( -1, __theValue); } + +__inline static +int64_t OSAtomicDecrement64Barrier( volatile OSAtomic_int64_aligned64_t *__theValue ) + { return OSAtomicAdd64Barrier( -1, __theValue); } +#endif + + +/*! @group Boolean functions (AND, OR, XOR) + * + * @discussion Functions in this group come in four variants for each operation: + * with and without barriers, and functions that return the original value or + * the result value of the operation. + * + * The "Orig" versions return the original value, (before the operation); the non-Orig + * versions return the value after the operation. All are layered on top of + * {@link OSAtomicCompareAndSwap32} and similar. + */ + +/*! @abstract Atomic bitwise OR of two 32-bit values. + @discussion + This function performs the bitwise OR of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int32_t OSAtomicOr32( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise OR of two 32-bit values with barrier. + @discussion + This function performs the bitwise OR of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + + This function is equivalent to {@link OSAtomicOr32} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int32_t OSAtomicOr32Barrier( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise OR of two 32-bit values returning original. + @discussion + This function performs the bitwise OR of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + @result Returns the original value referenced by __theValue. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2) +int32_t OSAtomicOr32Orig( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise OR of two 32-bit values returning original with barrier. + @discussion + This function performs the bitwise OR of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + + This function is equivalent to {@link OSAtomicOr32Orig} + except that it also introduces a barrier. + @result Returns the original value referenced by __theValue. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2) +int32_t OSAtomicOr32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue ); + + + + +/*! @abstract Atomic bitwise AND of two 32-bit values. + @discussion + This function performs the bitwise AND of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int32_t OSAtomicAnd32( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise AND of two 32-bit values with barrier. + @discussion + This function performs the bitwise AND of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + + This function is equivalent to {@link OSAtomicAnd32} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int32_t OSAtomicAnd32Barrier( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise AND of two 32-bit values returning original. + @discussion + This function performs the bitwise AND of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + @result Returns the original value referenced by __theValue. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2) +int32_t OSAtomicAnd32Orig( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise AND of two 32-bit values returning original with barrier. + @discussion + This function performs the bitwise AND of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + + This function is equivalent to {@link OSAtomicAnd32Orig} + except that it also introduces a barrier. + @result Returns the original value referenced by __theValue. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2) +int32_t OSAtomicAnd32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue ); + + + + +/*! @abstract Atomic bitwise XOR of two 32-bit values. + @discussion + This function performs the bitwise XOR of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + @result Returns the new value. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_xor) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int32_t OSAtomicXor32( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise XOR of two 32-bit values with barrier. + @discussion + This function performs the bitwise XOR of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + + This function is equivalent to {@link OSAtomicXor32} + except that it also introduces a barrier. + @result Returns the new value. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_xor) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +int32_t OSAtomicXor32Barrier( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise XOR of two 32-bit values returning original. + @discussion + This function performs the bitwise XOR of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + @result Returns the original value referenced by __theValue. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_xor) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2) +int32_t OSAtomicXor32Orig( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @abstract Atomic bitwise XOR of two 32-bit values returning original with barrier. + @discussion + This function performs the bitwise XOR of the value given by __theMask + with the value in the memory location referenced by __theValue, + storing the result back to that memory location atomically. + + This function is equivalent to {@link OSAtomicXor32Orig} + except that it also introduces a barrier. + @result Returns the original value referenced by __theValue. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_xor) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_2) +int32_t OSAtomicXor32OrigBarrier( uint32_t __theMask, volatile uint32_t *__theValue ); + + +/*! @group Compare and swap + * Functions in this group return true if the swap occured. There are several versions, + * depending on data type and on whether or not a barrier is used. + */ + + +/*! @abstract Compare and swap for 32-bit values. + @discussion + This function compares the value in __oldValue to the value + in the memory location referenced by __theValue. If the values + match, this function stores the value from __newValue into + that memory location atomically. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +bool OSAtomicCompareAndSwap32( int32_t __oldValue, int32_t __newValue, volatile int32_t *__theValue ); + + +/*! @abstract Compare and swap for 32-bit values with barrier. + @discussion + This function compares the value in __oldValue to the value + in the memory location referenced by __theValue. If the values + match, this function stores the value from __newValue into + that memory location atomically. + + This function is equivalent to {@link OSAtomicCompareAndSwap32} + except that it also introduces a barrier. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +bool OSAtomicCompareAndSwap32Barrier( int32_t __oldValue, int32_t __newValue, volatile int32_t *__theValue ); + + +/*! @abstract Compare and swap pointers. + @discussion + This function compares the pointer stored in __oldValue to the pointer + in the memory location referenced by __theValue. If the pointers + match, this function stores the pointer from __newValue into + that memory location atomically. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) +bool OSAtomicCompareAndSwapPtr( void *__oldValue, void *__newValue, void * volatile *__theValue ); + + +/*! @abstract Compare and swap pointers with barrier. + @discussion + This function compares the pointer stored in __oldValue to the pointer + in the memory location referenced by __theValue. If the pointers + match, this function stores the pointer from __newValue into + that memory location atomically. + + This function is equivalent to {@link OSAtomicCompareAndSwapPtr} + except that it also introduces a barrier. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) +bool OSAtomicCompareAndSwapPtrBarrier( void *__oldValue, void *__newValue, void * volatile *__theValue ); + + +/*! @abstract Compare and swap for int values. + @discussion + This function compares the value in __oldValue to the value + in the memory location referenced by __theValue. If the values + match, this function stores the value from __newValue into + that memory location atomically. + + This function is equivalent to {@link OSAtomicCompareAndSwap32}. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) +bool OSAtomicCompareAndSwapInt( int __oldValue, int __newValue, volatile int *__theValue ); + + +/*! @abstract Compare and swap for int values. + @discussion + This function compares the value in __oldValue to the value + in the memory location referenced by __theValue. If the values + match, this function stores the value from __newValue into + that memory location atomically. + + This function is equivalent to {@link OSAtomicCompareAndSwapInt} + except that it also introduces a barrier. + + This function is equivalent to {@link OSAtomicCompareAndSwap32Barrier}. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) +bool OSAtomicCompareAndSwapIntBarrier( int __oldValue, int __newValue, volatile int *__theValue ); + + +/*! @abstract Compare and swap for long values. + @discussion + This function compares the value in __oldValue to the value + in the memory location referenced by __theValue. If the values + match, this function stores the value from __newValue into + that memory location atomically. + + This function is equivalent to {@link OSAtomicCompareAndSwap32} on 32-bit architectures, + or {@link OSAtomicCompareAndSwap64} on 64-bit architectures. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) +bool OSAtomicCompareAndSwapLong( long __oldValue, long __newValue, volatile long *__theValue ); + + +/*! @abstract Compare and swap for long values. + @discussion + This function compares the value in __oldValue to the value + in the memory location referenced by __theValue. If the values + match, this function stores the value from __newValue into + that memory location atomically. + + This function is equivalent to {@link OSAtomicCompareAndSwapLong} + except that it also introduces a barrier. + + This function is equivalent to {@link OSAtomicCompareAndSwap32} on 32-bit architectures, + or {@link OSAtomicCompareAndSwap64} on 64-bit architectures. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) +bool OSAtomicCompareAndSwapLongBarrier( long __oldValue, long __newValue, volatile long *__theValue ); + + +/*! @abstract Compare and swap for uint64_t values. + @discussion + This function compares the value in __oldValue to the value + in the memory location referenced by __theValue. If the values + match, this function stores the value from __newValue into + that memory location atomically. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +bool OSAtomicCompareAndSwap64( int64_t __oldValue, int64_t __newValue, + volatile OSAtomic_int64_aligned64_t *__theValue ); + + +/*! @abstract Compare and swap for uint64_t values. + @discussion + This function compares the value in __oldValue to the value + in the memory location referenced by __theValue. If the values + match, this function stores the value from __newValue into + that memory location atomically. + + This function is equivalent to {@link OSAtomicCompareAndSwap64} + except that it also introduces a barrier. + @result Returns TRUE on a match, FALSE otherwise. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_compare_exchange_strong) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_3_2) +bool OSAtomicCompareAndSwap64Barrier( int64_t __oldValue, int64_t __newValue, + volatile OSAtomic_int64_aligned64_t *__theValue ); + + +/* Test and set. + * They return the original value of the bit, and operate on bit (0x80>>(n&7)) + * in byte ((char*)theAddress + (n>>3)). + */ +/*! @abstract Atomic test and set + @discussion + This function tests a bit in the value referenced by + __theAddress and if it is not set, sets it. + + The bit is chosen by the value of __n such that the + operation will be performed on bit (0x80 >> (__n & 7)) + of byte ((char *)__theAddress + (n >> 3)). + + For example, if __theAddress points to a 64-bit value, + to compare the value of the most significant bit, you would specify + 56 for __n. + @result + Returns the original value of the bit being tested. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_or) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +bool OSAtomicTestAndSet( uint32_t __n, volatile void *__theAddress ); + + +/*! @abstract Atomic test and set with barrier + @discussion + This function tests a bit in the value referenced by __theAddress + and if it is not set, sets it. + + The bit is chosen by the value of __n such that the + operation will be performed on bit (0x80 >> (__n & 7)) + of byte ((char *)__theAddress + (n >> 3)). + + For example, if __theAddress points to a 64-bit value, + to compare the value of the most significant bit, you would specify + 56 for __n. + + This function is equivalent to {@link OSAtomicTestAndSet} + except that it also introduces a barrier. + @result + Returns the original value of the bit being tested. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_or) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +bool OSAtomicTestAndSetBarrier( uint32_t __n, volatile void *__theAddress ); + + + +/*! @abstract Atomic test and clear + @discussion + This function tests a bit in the value referenced by __theAddress + and if it is not cleared, clears it. + + The bit is chosen by the value of __n such that the + operation will be performed on bit (0x80 >> (__n & 7)) + of byte ((char *)__theAddress + (n >> 3)). + + For example, if __theAddress points to a 64-bit value, + to compare the value of the most significant bit, you would specify + 56 for __n. + + @result + Returns the original value of the bit being tested. + */ +OSATOMIC_DEPRECATED_REPLACE_WITH(atomic_fetch_and) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +bool OSAtomicTestAndClear( uint32_t __n, volatile void *__theAddress ); + + +/*! @abstract Atomic test and clear + @discussion + This function tests a bit in the value referenced by __theAddress + and if it is not cleared, clears it. + + The bit is chosen by the value of __n such that the + operation will be performed on bit (0x80 >> (__n & 7)) + of byte ((char *)__theAddress + (n >> 3)). + + For example, if __theAddress points to a 64-bit value, + to compare the value of the most significant bit, you would specify + 56 for __n. + + This function is equivalent to {@link OSAtomicTestAndSet} + except that it also introduces a barrier. + @result + Returns the original value of the bit being tested. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_fetch_and) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +bool OSAtomicTestAndClearBarrier( uint32_t __n, volatile void *__theAddress ); + + +/*! @group Memory barriers */ + +/*! @abstract Memory barrier. + @discussion + This function serves as both a read and write barrier. + */ +OSATOMIC_BARRIER_DEPRECATED_REPLACE_WITH(atomic_thread_fence) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +void OSMemoryBarrier( void ); + +__END_DECLS + +#else // defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED + +/* + * Inline implementations of the legacy OSAtomic interfaces in terms of + * C11 resp. C++11 primitives. + * Direct use of those primitives is preferred. + */ + +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C++" { +#if !(__has_include() && __has_extension(cxx_atomic)) +#error Cannot use inlined OSAtomic without and C++11 atomics +#endif +#include +typedef std::atomic _OSAtomic_uint8_t; +typedef std::atomic _OSAtomic_int32_t; +typedef std::atomic _OSAtomic_uint32_t; +typedef std::atomic _OSAtomic_int64_t; +typedef std::atomic _OSAtomic_void_ptr_t; +#define OSATOMIC_STD(_a) std::_a +__BEGIN_DECLS +#else +#if !(__has_include() && __has_extension(c_atomic)) +#error Cannot use inlined OSAtomic without and C11 atomics +#endif +#include +typedef _Atomic(uint8_t) _OSAtomic_uint8_t; +typedef _Atomic(int32_t) _OSAtomic_int32_t; +typedef _Atomic(uint32_t) _OSAtomic_uint32_t; +typedef _Atomic(int64_t) _OSAtomic_int64_t; +typedef _Atomic(void*) _OSAtomic_void_ptr_t; +#define OSATOMIC_STD(_a) _a +#endif + +#if __has_extension(c_alignof) && __has_attribute(aligned) +typedef int64_t __attribute__((__aligned__(_Alignof(_OSAtomic_int64_t)))) + OSAtomic_int64_aligned64_t; +#elif __has_attribute(aligned) +typedef int64_t __attribute__((__aligned__((sizeof(_OSAtomic_int64_t))))) + OSAtomic_int64_aligned64_t; +#else +typedef int64_t OSAtomic_int64_aligned64_t; +#endif + +#if __has_attribute(always_inline) +#define OSATOMIC_INLINE static __inline __attribute__((__always_inline__)) +#else +#define OSATOMIC_INLINE static __inline +#endif + +OSATOMIC_INLINE +int32_t +OSAtomicAdd32(int32_t __theAmount, volatile int32_t *__theValue) +{ + return (OSATOMIC_STD(atomic_fetch_add_explicit)( + (volatile _OSAtomic_int32_t*) __theValue, __theAmount, + OSATOMIC_STD(memory_order_relaxed)) + __theAmount); +} + +OSATOMIC_INLINE +int32_t +OSAtomicAdd32Barrier(int32_t __theAmount, volatile int32_t *__theValue) +{ + return (OSATOMIC_STD(atomic_fetch_add_explicit)( + (volatile _OSAtomic_int32_t*) __theValue, __theAmount, + OSATOMIC_STD(memory_order_seq_cst)) + __theAmount); +} + +OSATOMIC_INLINE +int32_t +OSAtomicIncrement32(volatile int32_t *__theValue) +{ + return OSAtomicAdd32(1, __theValue); +} + +OSATOMIC_INLINE +int32_t +OSAtomicIncrement32Barrier(volatile int32_t *__theValue) +{ + return OSAtomicAdd32Barrier(1, __theValue); +} + +OSATOMIC_INLINE +int32_t +OSAtomicDecrement32(volatile int32_t *__theValue) +{ + return OSAtomicAdd32(-1, __theValue); +} + +OSATOMIC_INLINE +int32_t +OSAtomicDecrement32Barrier(volatile int32_t *__theValue) +{ + return OSAtomicAdd32Barrier(-1, __theValue); +} + +OSATOMIC_INLINE +int64_t +OSAtomicAdd64(int64_t __theAmount, + volatile OSAtomic_int64_aligned64_t *__theValue) +{ + return (OSATOMIC_STD(atomic_fetch_add_explicit)( + (volatile _OSAtomic_int64_t*) __theValue, __theAmount, + OSATOMIC_STD(memory_order_relaxed)) + __theAmount); +} + +OSATOMIC_INLINE +int64_t +OSAtomicAdd64Barrier(int64_t __theAmount, + volatile OSAtomic_int64_aligned64_t *__theValue) +{ + return (OSATOMIC_STD(atomic_fetch_add_explicit)( + (volatile _OSAtomic_int64_t*) __theValue, __theAmount, + OSATOMIC_STD(memory_order_seq_cst)) + __theAmount); +} + +OSATOMIC_INLINE +int64_t +OSAtomicIncrement64(volatile OSAtomic_int64_aligned64_t *__theValue) +{ + return OSAtomicAdd64(1, __theValue); +} + +OSATOMIC_INLINE +int64_t +OSAtomicIncrement64Barrier(volatile OSAtomic_int64_aligned64_t *__theValue) +{ + return OSAtomicAdd64Barrier(1, __theValue); +} + +OSATOMIC_INLINE +int64_t +OSAtomicDecrement64(volatile OSAtomic_int64_aligned64_t *__theValue) +{ + return OSAtomicAdd64(-1, __theValue); +} + +OSATOMIC_INLINE +int64_t +OSAtomicDecrement64Barrier(volatile OSAtomic_int64_aligned64_t *__theValue) +{ + return OSAtomicAdd64Barrier(-1, __theValue); +} + +OSATOMIC_INLINE +int32_t +OSAtomicOr32(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_relaxed)) | __theMask); +} + +OSATOMIC_INLINE +int32_t +OSAtomicOr32Barrier(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_seq_cst)) | __theMask); +} + +OSATOMIC_INLINE +int32_t +OSAtomicOr32Orig(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +int32_t +OSAtomicOr32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_or_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_seq_cst))); +} + +OSATOMIC_INLINE +int32_t +OSAtomicAnd32(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_relaxed)) & __theMask); +} + +OSATOMIC_INLINE +int32_t +OSAtomicAnd32Barrier(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_seq_cst)) & __theMask); +} + +OSATOMIC_INLINE +int32_t +OSAtomicAnd32Orig(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +int32_t +OSAtomicAnd32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_and_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_seq_cst))); +} + +OSATOMIC_INLINE +int32_t +OSAtomicXor32(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_relaxed)) ^ __theMask); +} + +OSATOMIC_INLINE +int32_t +OSAtomicXor32Barrier(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_seq_cst)) ^ __theMask); +} + +OSATOMIC_INLINE +int32_t +OSAtomicXor32Orig(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +int32_t +OSAtomicXor32OrigBarrier(uint32_t __theMask, volatile uint32_t *__theValue) +{ + return (int32_t)(OSATOMIC_STD(atomic_fetch_xor_explicit)( + (volatile _OSAtomic_uint32_t*)__theValue, __theMask, + OSATOMIC_STD(memory_order_seq_cst))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwap32(int32_t __oldValue, int32_t __newValue, + volatile int32_t *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile _OSAtomic_int32_t*)__theValue, &__oldValue, __newValue, + OSATOMIC_STD(memory_order_relaxed), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwap32Barrier(int32_t __oldValue, int32_t __newValue, + volatile int32_t *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile _OSAtomic_int32_t*)__theValue, &__oldValue, __newValue, + OSATOMIC_STD(memory_order_seq_cst), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwapPtr(void *__oldValue, void *__newValue, + void * volatile *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile _OSAtomic_void_ptr_t*)__theValue, &__oldValue, __newValue, + OSATOMIC_STD(memory_order_relaxed), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwapPtrBarrier(void *__oldValue, void *__newValue, + void * volatile *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile _OSAtomic_void_ptr_t*)__theValue, &__oldValue, __newValue, + OSATOMIC_STD(memory_order_seq_cst), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwapInt(int __oldValue, int __newValue, + volatile int *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile OSATOMIC_STD(atomic_int)*)__theValue, &__oldValue, + __newValue, OSATOMIC_STD(memory_order_relaxed), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwapIntBarrier(int __oldValue, int __newValue, + volatile int *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile OSATOMIC_STD(atomic_int)*)__theValue, &__oldValue, + __newValue, OSATOMIC_STD(memory_order_seq_cst), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwapLong(long __oldValue, long __newValue, + volatile long *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile OSATOMIC_STD(atomic_long)*)__theValue, &__oldValue, + __newValue, OSATOMIC_STD(memory_order_relaxed), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwapLongBarrier(long __oldValue, long __newValue, + volatile long *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile OSATOMIC_STD(atomic_long)*)__theValue, &__oldValue, + __newValue, OSATOMIC_STD(memory_order_seq_cst), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwap64(int64_t __oldValue, int64_t __newValue, + volatile OSAtomic_int64_aligned64_t *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile _OSAtomic_int64_t*)__theValue, &__oldValue, __newValue, + OSATOMIC_STD(memory_order_relaxed), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicCompareAndSwap64Barrier(int64_t __oldValue, int64_t __newValue, + volatile OSAtomic_int64_aligned64_t *__theValue) +{ + return (OSATOMIC_STD(atomic_compare_exchange_strong_explicit)( + (volatile _OSAtomic_int64_t*)__theValue, &__oldValue, __newValue, + OSATOMIC_STD(memory_order_seq_cst), + OSATOMIC_STD(memory_order_relaxed))); +} + +OSATOMIC_INLINE +bool +OSAtomicTestAndSet(uint32_t __n, volatile void *__theAddress) +{ + uintptr_t a = (uintptr_t)__theAddress + (__n >> 3); + uint8_t v = (0x80u >> (__n & 7)); + return (OSATOMIC_STD(atomic_fetch_or_explicit)((_OSAtomic_uint8_t*)a, v, + OSATOMIC_STD(memory_order_relaxed)) & v); +} + +OSATOMIC_INLINE +bool +OSAtomicTestAndSetBarrier(uint32_t __n, volatile void *__theAddress) +{ + uintptr_t a = (uintptr_t)__theAddress + (__n >> 3); + uint8_t v = (0x80u >> (__n & 7)); + return (OSATOMIC_STD(atomic_fetch_or_explicit)((_OSAtomic_uint8_t*)a, v, + OSATOMIC_STD(memory_order_seq_cst)) & v); +} + +OSATOMIC_INLINE +bool +OSAtomicTestAndClear(uint32_t __n, volatile void *__theAddress) +{ + uintptr_t a = (uintptr_t)__theAddress + (__n >> 3); + uint8_t v = (0x80u >> (__n & 7)); + return (OSATOMIC_STD(atomic_fetch_and_explicit)((_OSAtomic_uint8_t*)a, + (uint8_t)~v, OSATOMIC_STD(memory_order_relaxed)) & v); +} + +OSATOMIC_INLINE +bool +OSAtomicTestAndClearBarrier(uint32_t __n, volatile void *__theAddress) +{ + uintptr_t a = (uintptr_t)__theAddress + (__n >> 3); + uint8_t v = (0x80u >> (__n & 7)); + return (OSATOMIC_STD(atomic_fetch_and_explicit)((_OSAtomic_uint8_t*)a, + (uint8_t)~v, OSATOMIC_STD(memory_order_seq_cst)) & v); +} + +OSATOMIC_INLINE +void +OSMemoryBarrier(void) +{ + OSATOMIC_STD(atomic_thread_fence)(OSATOMIC_STD(memory_order_seq_cst)); +} + +#undef OSATOMIC_INLINE +#undef OSATOMIC_STD +#ifdef __cplusplus +__END_DECLS +} // extern "C++" +#endif + +#endif // defined(OSATOMIC_USE_INLINED) && OSATOMIC_USE_INLINED + +#if TARGET_OS_OSX || TARGET_OS_DRIVERKIT + +__BEGIN_DECLS + +/*! @group Lockless atomic fifo enqueue and dequeue + * These routines manipulate singly-linked FIFO lists. + * + * This API is deprecated and no longer recommended + */ + +/*! @abstract The data structure for a fifo queue head. + @discussion + You should always initialize a fifo queue head structure with the + initialization vector {@link OS_ATOMIC_FIFO_QUEUE_INIT} before use. + */ +#if defined(__LP64__) + +typedef volatile struct { + void *opaque1; + void *opaque2; + int opaque3; +} __attribute__ ((aligned (16))) OSFifoQueueHead; + +#else + +typedef volatile struct { + void *opaque1; + void *opaque2; + int opaque3; +} OSFifoQueueHead; + +#endif +/*! @abstract The initialization vector for a fifo queue head. */ +#define OS_ATOMIC_FIFO_QUEUE_INIT { NULL, NULL, 0 } + +/*! @abstract Enqueue an element onto a list. + @discussion + Memory barriers are incorporated as needed to permit thread-safe access + to the queue element. + @param __list + The list on which you want to enqueue the element. + @param __new + The element to add. + @param __offset + The "offset" parameter is the offset (in bytes) of the link field + from the beginning of the data structure being queued (__new). + The link field should be a pointer type. + The __offset value needs to be same for all enqueuing and + dequeuing operations on the same list, even if different structure types + are enqueued on that list. The use of offsetset(), defined in + stddef.h is the common way to specify the __offset + value. + + @note + This API is deprecated and no longer recommended + */ +__API_DEPRECATED("No longer supported", macos(10.7, 11.0)) +void OSAtomicFifoEnqueue( OSFifoQueueHead *__list, void *__new, size_t __offset); + +/*! @abstract Dequeue an element from a list. + @discussion + Memory barriers are incorporated as needed to permit thread-safe access + to the queue element. + @param __list + The list from which you want to dequeue an element. + @param __offset + The "offset" parameter is the offset (in bytes) of the link field + from the beginning of the data structure being dequeued (__new). + The link field should be a pointer type. + The __offset value needs to be same for all enqueuing and + dequeuing operations on the same list, even if different structure types + are enqueued on that list. The use of offsetset(), defined in + stddef.h is the common way to specify the __offset + value. + @result + Returns the oldest enqueued element, or NULL if the + list is empty. + + @note + This API is deprecated and no longer recommended + */ +__API_DEPRECATED("No longer supported", macos(10.7, 11.0)) +void* OSAtomicFifoDequeue( OSFifoQueueHead *__list, size_t __offset); + +__END_DECLS + +#endif /* TARGET_OS_OSX || TARGET_OS_DRIVERKIT */ + +#endif /* _OSATOMIC_DEPRECATED_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomicQueue.h b/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomicQueue.h new file mode 100644 index 0000000000000000000000000000000000000000..66033fc8345be13b0cb943fc78b98237348f8189 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/libkern/OSAtomicQueue.h @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2004-2016 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@ + */ + +#ifndef _OSATOMICQUEUE_H_ +#define _OSATOMICQUEUE_H_ + +#include +#include +#include +#include +#include "OSAtomicDeprecated.h" + +#include + +/*! @header Lockless atomic enqueue and dequeue + * These routines manipulate singly-linked LIFO lists. + */ + +__BEGIN_DECLS + +/*! @abstract The data structure for a queue head. + @discussion + You should always initialize a queue head structure with the + initialization vector {@link OS_ATOMIC_QUEUE_INIT} before use. + */ +#if defined(__LP64__) + +typedef volatile struct { + void *opaque1; + long opaque2; +} __attribute__ ((aligned (16))) OSQueueHead; + +#else + +typedef volatile struct { + void *opaque1; + long opaque2; +} OSQueueHead; + +#endif + +/*! @abstract The initialization vector for a queue head. */ +#define OS_ATOMIC_QUEUE_INIT { NULL, 0 } + +/*! @abstract Enqueue an element onto a list. + @discussion + Memory barriers are incorporated as needed to permit thread-safe access + to the queue element. + @param __list + The list on which you want to enqueue the element. + @param __new + The element to add. + @param __offset + The "offset" parameter is the offset (in bytes) of the link field + from the beginning of the data structure being queued (__new). + The link field should be a pointer type. + The __offset value needs to be same for all enqueuing and + dequeuing operations on the same list, even if different structure types + are enqueued on that list. The use of offsetset(), defined in + stddef.h is the common way to specify the __offset + value. + */ +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_4_0) +void OSAtomicEnqueue( OSQueueHead *__list, void *__new, size_t __offset); + + +/*! @abstract Dequeue an element from a list. + @discussion + Memory barriers are incorporated as needed to permit thread-safe access + to the queue element. + @param __list + The list from which you want to dequeue an element. + @param __offset + The "offset" parameter is the offset (in bytes) of the link field + from the beginning of the data structure being dequeued (__new). + The link field should be a pointer type. + The __offset value needs to be same for all enqueuing and + dequeuing operations on the same list, even if different structure types + are enqueued on that list. The use of offsetset(), defined in + stddef.h is the common way to specify the __offset + value. + IMPORTANT: the memory backing the link field of a queue element must not be + unmapped after OSAtomicDequeue() returns until all concurrent calls to + OSAtomicDequeue() for the same list on other threads have also returned, + as they may still be accessing that memory location. + @result + Returns the most recently enqueued element, or NULL if the + list is empty. + */ +__OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_4_0) +void* OSAtomicDequeue( OSQueueHead *__list, size_t __offset); + +__END_DECLS + +#endif /* _OSATOMICQUEUE_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/libkern/OSSpinLockDeprecated.h b/lib/libc/include/x86_64-macos.13-none/libkern/OSSpinLockDeprecated.h new file mode 100644 index 0000000000000000000000000000000000000000..a654a7bbc2d8cf3a02c77cd4f2af942f7eca09bb --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/libkern/OSSpinLockDeprecated.h @@ -0,0 +1,212 @@ +/* + * Copyright (c) 2004-2016 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@ + */ + +#ifndef _OSSPINLOCK_DEPRECATED_H_ +#define _OSSPINLOCK_DEPRECATED_H_ + +/*! @header + * These are deprecated legacy interfaces for userspace spinlocks. + * + * These interfaces should no longer be used, particularily in situations where + * threads of differing priorities may contend on the same spinlock. + * + * The interfaces in should be used instead in cases where a very + * low-level lock primitive is required. In general however, using higher level + * synchronization primitives such as those provided by the pthread or dispatch + * subsystems should be preferred. + * + * Define OSSPINLOCK_USE_INLINED=1 to get inline implementations of these + * interfaces in terms of the primitives. This is intended as a + * transition convenience, direct use of those primitives is preferred. + */ + +#ifndef OSSPINLOCK_DEPRECATED +#define OSSPINLOCK_DEPRECATED 1 +#define OSSPINLOCK_DEPRECATED_MSG(_r) "Use " #_r "() from instead" +#define OSSPINLOCK_DEPRECATED_REPLACE_WITH(_r) \ + __OS_AVAILABILITY_MSG(macosx, deprecated=10.12, OSSPINLOCK_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(ios, deprecated=10.0, OSSPINLOCK_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(tvos, deprecated=10.0, OSSPINLOCK_DEPRECATED_MSG(_r)) \ + __OS_AVAILABILITY_MSG(watchos, deprecated=3.0, OSSPINLOCK_DEPRECATED_MSG(_r)) +#else +#undef OSSPINLOCK_DEPRECATED +#define OSSPINLOCK_DEPRECATED 0 +#define OSSPINLOCK_DEPRECATED_REPLACE_WITH(_r) +#endif + +#if !(defined(OSSPINLOCK_USE_INLINED) && OSSPINLOCK_USE_INLINED) + +#include +#include +#include +#include +#include + +__BEGIN_DECLS + +/*! @abstract The default value for an OSSpinLock. + @discussion + The convention is that unlocked is zero, locked is nonzero. + */ +#define OS_SPINLOCK_INIT 0 + + +/*! @abstract Data type for a spinlock. + @discussion + You should always initialize a spinlock to {@link OS_SPINLOCK_INIT} before + using it. + */ +typedef int32_t OSSpinLock OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock); + + +/*! @abstract Locks a spinlock if it would not block + @result + Returns false if the lock was already held by another thread, + true if it took the lock successfully. + */ +OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_trylock) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +bool OSSpinLockTry( volatile OSSpinLock *__lock ); + + +/*! @abstract Locks a spinlock + @discussion + Although the lock operation spins, it employs various strategies to back + off if the lock is held. + */ +OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_lock) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +void OSSpinLockLock( volatile OSSpinLock *__lock ); + + +/*! @abstract Unlocks a spinlock */ +OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_unlock) +__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) +void OSSpinLockUnlock( volatile OSSpinLock *__lock ); + +__END_DECLS + +#else /* OSSPINLOCK_USE_INLINED */ + +/* + * Inline implementations of the legacy OSSpinLock interfaces in terms of the + * of the primitives. Direct use of those primitives is preferred. + * + * NOTE: the locked value of os_unfair_lock is implementation defined and + * subject to change, code that relies on the specific locked value used by the + * legacy OSSpinLock interface WILL break when using these inline + * implementations in terms of os_unfair_lock. + */ + +#if !OSSPINLOCK_USE_INLINED_TRANSPARENT + +#include + +__BEGIN_DECLS + +#if __has_attribute(always_inline) +#define OSSPINLOCK_INLINE static __inline +#else +#define OSSPINLOCK_INLINE static __inline __attribute__((__always_inline__)) +#endif + +#define OS_SPINLOCK_INIT 0 +typedef int32_t OSSpinLock; + +#if __has_extension(c_static_assert) +_Static_assert(sizeof(OSSpinLock) == sizeof(os_unfair_lock), + "Incompatible os_unfair_lock type"); +#endif + +OSSPINLOCK_INLINE +void +OSSpinLockLock(volatile OSSpinLock *__lock) +{ + os_unfair_lock_t lock = (os_unfair_lock_t)__lock; + return os_unfair_lock_lock(lock); +} + +OSSPINLOCK_INLINE +bool +OSSpinLockTry(volatile OSSpinLock *__lock) +{ + os_unfair_lock_t lock = (os_unfair_lock_t)__lock; + return os_unfair_lock_trylock(lock); +} + +OSSPINLOCK_INLINE +void +OSSpinLockUnlock(volatile OSSpinLock *__lock) +{ + os_unfair_lock_t lock = (os_unfair_lock_t)__lock; + return os_unfair_lock_unlock(lock); +} + +#undef OSSPINLOCK_INLINE + +__END_DECLS + +#else /* OSSPINLOCK_USE_INLINED_TRANSPARENT */ + +#include +#include +#include +#include +#include + +#define OS_NOSPIN_LOCK_AVAILABILITY \ + __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) \ + __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0) + +__BEGIN_DECLS + +#define OS_SPINLOCK_INIT 0 +typedef int32_t OSSpinLock OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock); +typedef volatile OSSpinLock *_os_nospin_lock_t + OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_t); + +OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_lock) +OS_NOSPIN_LOCK_AVAILABILITY +void _os_nospin_lock_lock(_os_nospin_lock_t lock); +#undef OSSpinLockLock +#define OSSpinLockLock(lock) _os_nospin_lock_lock(lock) + +OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_trylock) +OS_NOSPIN_LOCK_AVAILABILITY +bool _os_nospin_lock_trylock(_os_nospin_lock_t lock); +#undef OSSpinLockTry +#define OSSpinLockTry(lock) _os_nospin_lock_trylock(lock) + +OSSPINLOCK_DEPRECATED_REPLACE_WITH(os_unfair_lock_unlock) +OS_NOSPIN_LOCK_AVAILABILITY +void _os_nospin_lock_unlock(_os_nospin_lock_t lock); +#undef OSSpinLockUnlock +#define OSSpinLockUnlock(lock) _os_nospin_lock_unlock(lock) + +__END_DECLS + +#endif /* OSSPINLOCK_USE_INLINED_TRANSPARENT */ + +#endif /* OSSPINLOCK_USE_INLINED */ + +#endif /* _OSSPINLOCK_DEPRECATED_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/libkern/i386/OSByteOrder.h b/lib/libc/include/x86_64-macos.13-none/libkern/i386/OSByteOrder.h new file mode 100644 index 0000000000000000000000000000000000000000..d6783b74e0b5f6659d639d6a55d9a54317163818 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/libkern/i386/OSByteOrder.h @@ -0,0 +1,112 @@ +/* + * Copyright (c) 1999-2006 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ + +#ifndef _OS_OSBYTEORDERI386_H +#define _OS_OSBYTEORDERI386_H + +#include +#include +#include + +/* Functions for byte reversed loads. */ + +OS_INLINE +uint16_t +OSReadSwapInt16( + const volatile void * base, + uintptr_t byteOffset + ) +{ + uint16_t result; + + result = *(volatile uint16_t *)((uintptr_t)base + byteOffset); + return _OSSwapInt16(result); +} + +OS_INLINE +uint32_t +OSReadSwapInt32( + const volatile void * base, + uintptr_t byteOffset + ) +{ + uint32_t result; + + result = *(volatile uint32_t *)((uintptr_t)base + byteOffset); + return _OSSwapInt32(result); +} + +OS_INLINE +uint64_t +OSReadSwapInt64( + const volatile void * base, + uintptr_t byteOffset + ) +{ + uint64_t result; + + result = *(volatile uint64_t *)((uintptr_t)base + byteOffset); + return _OSSwapInt64(result); +} + +/* Functions for byte reversed stores. */ + +OS_INLINE +void +OSWriteSwapInt16( + volatile void * base, + uintptr_t byteOffset, + uint16_t data + ) +{ + *(volatile uint16_t *)((uintptr_t)base + byteOffset) = _OSSwapInt16(data); +} + +OS_INLINE +void +OSWriteSwapInt32( + volatile void * base, + uintptr_t byteOffset, + uint32_t data + ) +{ + *(volatile uint32_t *)((uintptr_t)base + byteOffset) = _OSSwapInt32(data); +} + +OS_INLINE +void +OSWriteSwapInt64( + volatile void * base, + uintptr_t byteOffset, + uint64_t data + ) +{ + *(volatile uint64_t *)((uintptr_t)base + byteOffset) = _OSSwapInt64(data); +} + +#endif /* ! _OS_OSBYTEORDERI386_H */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/libkern/i386/_OSByteOrder.h b/lib/libc/include/x86_64-macos.13-none/libkern/i386/_OSByteOrder.h new file mode 100644 index 0000000000000000000000000000000000000000..4b160f734f8ce1f9790dca3ace25a2901131922e --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/libkern/i386/_OSByteOrder.h @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2006-2012 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 _OS__OSBYTEORDERI386_H +#define _OS__OSBYTEORDERI386_H + +#if !defined(__DARWIN_OS_INLINE) +# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +# define __DARWIN_OS_INLINE static inline +# elif defined(__MWERKS__) || defined(__cplusplus) +# define __DARWIN_OS_INLINE static inline +# else +# define __DARWIN_OS_INLINE static __inline__ +# endif +#endif + +/* Generic byte swapping functions. */ + +__DARWIN_OS_INLINE +__uint16_t +_OSSwapInt16( + __uint16_t _data + ) +{ + return (__uint16_t)((_data << 8) | (_data >> 8)); +} + +__DARWIN_OS_INLINE +__uint32_t +_OSSwapInt32( + __uint32_t _data + ) +{ +#if defined(__llvm__) + return __builtin_bswap32(_data); +#else + __asm__ ("bswap %0" : "+r" (_data)); + return _data; +#endif +} + +#if defined(__llvm__) +__DARWIN_OS_INLINE +__uint64_t +_OSSwapInt64( + __uint64_t _data + ) +{ + return __builtin_bswap64(_data); +} + +#elif defined(__i386__) +__DARWIN_OS_INLINE +__uint64_t +_OSSwapInt64( + __uint64_t _data + ) +{ + __asm__ ("bswap %%eax\n\t" + "bswap %%edx\n\t" + "xchgl %%eax, %%edx" + : "+A" (_data)); + return _data; +} +#elif defined(__x86_64__) +__DARWIN_OS_INLINE +__uint64_t +_OSSwapInt64( + __uint64_t _data + ) +{ + __asm__ ("bswap %0" : "+r" (_data)); + return _data; +} +#else +#error Unknown architecture +#endif + +#endif /* ! _OS__OSBYTEORDERI386_H */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/_structs.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/_structs.h new file mode 100644 index 0000000000000000000000000000000000000000..02c135184f821ea3f6fa65eecdf7ec38dd855497 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/_structs.h @@ -0,0 +1,1316 @@ +/* + * Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ + +#ifndef _MACH_I386__STRUCTS_H_ +#define _MACH_I386__STRUCTS_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#include /* __DARWIN_UNIX03 */ +#include /* __uint8_t */ + +/* + * i386 is the structure that is exported to user threads for + * use in status/mutate calls. This structure should never change. + * + */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_THREAD_STATE32 struct __darwin_i386_thread_state +_STRUCT_X86_THREAD_STATE32 +{ + unsigned int __eax; + unsigned int __ebx; + unsigned int __ecx; + unsigned int __edx; + unsigned int __edi; + unsigned int __esi; + unsigned int __ebp; + unsigned int __esp; + unsigned int __ss; + unsigned int __eflags; + unsigned int __eip; + unsigned int __cs; + unsigned int __ds; + unsigned int __es; + unsigned int __fs; + unsigned int __gs; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_X86_THREAD_STATE32 struct i386_thread_state +_STRUCT_X86_THREAD_STATE32 +{ + unsigned int eax; + unsigned int ebx; + unsigned int ecx; + unsigned int edx; + unsigned int edi; + unsigned int esi; + unsigned int ebp; + unsigned int esp; + unsigned int ss; + unsigned int eflags; + unsigned int eip; + unsigned int cs; + unsigned int ds; + unsigned int es; + unsigned int fs; + unsigned int gs; +}; +#endif /* !__DARWIN_UNIX03 */ + +/* This structure should be double-word aligned for performance */ + +#if __DARWIN_UNIX03 +#define _STRUCT_FP_CONTROL struct __darwin_fp_control +_STRUCT_FP_CONTROL +{ + unsigned short __invalid :1, + __denorm :1, + __zdiv :1, + __ovrfl :1, + __undfl :1, + __precis :1, + :2, + __pc :2, +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) +#define FP_PREC_24B 0 +#define FP_PREC_53B 2 +#define FP_PREC_64B 3 +#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ + __rc :2, +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) +#define FP_RND_NEAR 0 +#define FP_RND_DOWN 1 +#define FP_RND_UP 2 +#define FP_CHOP 3 +#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ + /*inf*/ :1, + :3; +}; +typedef _STRUCT_FP_CONTROL __darwin_fp_control_t; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_FP_CONTROL struct fp_control +_STRUCT_FP_CONTROL +{ + unsigned short invalid :1, + denorm :1, + zdiv :1, + ovrfl :1, + undfl :1, + precis :1, + :2, + pc :2, +#define FP_PREC_24B 0 +#define FP_PREC_53B 2 +#define FP_PREC_64B 3 + rc :2, +#define FP_RND_NEAR 0 +#define FP_RND_DOWN 1 +#define FP_RND_UP 2 +#define FP_CHOP 3 + /*inf*/ :1, + :3; +}; +typedef _STRUCT_FP_CONTROL fp_control_t; +#endif /* !__DARWIN_UNIX03 */ + +/* + * Status word. + */ + +#if __DARWIN_UNIX03 +#define _STRUCT_FP_STATUS struct __darwin_fp_status +_STRUCT_FP_STATUS +{ + unsigned short __invalid :1, + __denorm :1, + __zdiv :1, + __ovrfl :1, + __undfl :1, + __precis :1, + __stkflt :1, + __errsumm :1, + __c0 :1, + __c1 :1, + __c2 :1, + __tos :3, + __c3 :1, + __busy :1; +}; +typedef _STRUCT_FP_STATUS __darwin_fp_status_t; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_FP_STATUS struct fp_status +_STRUCT_FP_STATUS +{ + unsigned short invalid :1, + denorm :1, + zdiv :1, + ovrfl :1, + undfl :1, + precis :1, + stkflt :1, + errsumm :1, + c0 :1, + c1 :1, + c2 :1, + tos :3, + c3 :1, + busy :1; +}; +typedef _STRUCT_FP_STATUS fp_status_t; +#endif /* !__DARWIN_UNIX03 */ + +/* defn of 80bit x87 FPU or MMX register */ + +#if __DARWIN_UNIX03 +#define _STRUCT_MMST_REG struct __darwin_mmst_reg +_STRUCT_MMST_REG +{ + char __mmst_reg[10]; + char __mmst_rsrv[6]; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_MMST_REG struct mmst_reg +_STRUCT_MMST_REG +{ + char mmst_reg[10]; + char mmst_rsrv[6]; +}; +#endif /* !__DARWIN_UNIX03 */ + + +/* defn of 128 bit XMM regs */ + +#if __DARWIN_UNIX03 +#define _STRUCT_XMM_REG struct __darwin_xmm_reg +_STRUCT_XMM_REG +{ + char __xmm_reg[16]; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_XMM_REG struct xmm_reg +_STRUCT_XMM_REG +{ + char xmm_reg[16]; +}; +#endif /* !__DARWIN_UNIX03 */ + +/* defn of 256 bit YMM regs */ + +#if __DARWIN_UNIX03 +#define _STRUCT_YMM_REG struct __darwin_ymm_reg +_STRUCT_YMM_REG +{ + char __ymm_reg[32]; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_YMM_REG struct ymm_reg +_STRUCT_YMM_REG +{ + char ymm_reg[32]; +}; +#endif /* !__DARWIN_UNIX03 */ + +/* defn of 512 bit ZMM regs */ + +#if __DARWIN_UNIX03 +#define _STRUCT_ZMM_REG struct __darwin_zmm_reg +_STRUCT_ZMM_REG +{ + char __zmm_reg[64]; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_ZMM_REG struct zmm_reg +_STRUCT_ZMM_REG +{ + char zmm_reg[64]; +}; +#endif /* !__DARWIN_UNIX03 */ + +#if __DARWIN_UNIX03 +#define _STRUCT_OPMASK_REG struct __darwin_opmask_reg +_STRUCT_OPMASK_REG +{ + char __opmask_reg[8]; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_OPMASK_REG struct opmask_reg +_STRUCT_OPMASK_REG +{ + char opmask_reg[8]; +}; +#endif /* !__DARWIN_UNIX03 */ + +/* + * Floating point state. + */ + +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) +#define FP_STATE_BYTES 512 /* number of chars worth of data from fpu_fcw */ +#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_FLOAT_STATE32 struct __darwin_i386_float_state +_STRUCT_X86_FLOAT_STATE32 +{ + int __fpu_reserved[2]; + _STRUCT_FP_CONTROL __fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS __fpu_fsw; /* x87 FPU status word */ + __uint8_t __fpu_ftw; /* x87 FPU tag word */ + __uint8_t __fpu_rsrv1; /* reserved */ + __uint16_t __fpu_fop; /* x87 FPU Opcode */ + __uint32_t __fpu_ip; /* x87 FPU Instruction Pointer offset */ + __uint16_t __fpu_cs; /* x87 FPU Instruction Pointer Selector */ + __uint16_t __fpu_rsrv2; /* reserved */ + __uint32_t __fpu_dp; /* x87 FPU Instruction Operand(Data) Pointer offset */ + __uint16_t __fpu_ds; /* x87 FPU Instruction Operand(Data) Pointer Selector */ + __uint16_t __fpu_rsrv3; /* reserved */ + __uint32_t __fpu_mxcsr; /* MXCSR Register state */ + __uint32_t __fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG __fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG __fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG __fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG __fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG __fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG __fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG __fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG __fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG __fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG __fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG __fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG __fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG __fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG __fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG __fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG __fpu_xmm7; /* XMM 7 */ + char __fpu_rsrv4[14*16]; /* reserved */ + int __fpu_reserved1; +}; + +#define _STRUCT_X86_AVX_STATE32 struct __darwin_i386_avx_state +_STRUCT_X86_AVX_STATE32 +{ + int __fpu_reserved[2]; + _STRUCT_FP_CONTROL __fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS __fpu_fsw; /* x87 FPU status word */ + __uint8_t __fpu_ftw; /* x87 FPU tag word */ + __uint8_t __fpu_rsrv1; /* reserved */ + __uint16_t __fpu_fop; /* x87 FPU Opcode */ + __uint32_t __fpu_ip; /* x87 FPU Instruction Pointer offset */ + __uint16_t __fpu_cs; /* x87 FPU Instruction Pointer Selector */ + __uint16_t __fpu_rsrv2; /* reserved */ + __uint32_t __fpu_dp; /* x87 FPU Instruction Operand(Data) Pointer offset */ + __uint16_t __fpu_ds; /* x87 FPU Instruction Operand(Data) Pointer Selector */ + __uint16_t __fpu_rsrv3; /* reserved */ + __uint32_t __fpu_mxcsr; /* MXCSR Register state */ + __uint32_t __fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG __fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG __fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG __fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG __fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG __fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG __fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG __fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG __fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG __fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG __fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG __fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG __fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG __fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG __fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG __fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG __fpu_xmm7; /* XMM 7 */ + char __fpu_rsrv4[14*16]; /* reserved */ + int __fpu_reserved1; + char __avx_reserved1[64]; + _STRUCT_XMM_REG __fpu_ymmh0; /* YMMH 0 */ + _STRUCT_XMM_REG __fpu_ymmh1; /* YMMH 1 */ + _STRUCT_XMM_REG __fpu_ymmh2; /* YMMH 2 */ + _STRUCT_XMM_REG __fpu_ymmh3; /* YMMH 3 */ + _STRUCT_XMM_REG __fpu_ymmh4; /* YMMH 4 */ + _STRUCT_XMM_REG __fpu_ymmh5; /* YMMH 5 */ + _STRUCT_XMM_REG __fpu_ymmh6; /* YMMH 6 */ + _STRUCT_XMM_REG __fpu_ymmh7; /* YMMH 7 */ +}; + +#define _STRUCT_X86_AVX512_STATE32 struct __darwin_i386_avx512_state +_STRUCT_X86_AVX512_STATE32 +{ + int __fpu_reserved[2]; + _STRUCT_FP_CONTROL __fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS __fpu_fsw; /* x87 FPU status word */ + __uint8_t __fpu_ftw; /* x87 FPU tag word */ + __uint8_t __fpu_rsrv1; /* reserved */ + __uint16_t __fpu_fop; /* x87 FPU Opcode */ + __uint32_t __fpu_ip; /* x87 FPU Instruction Pointer offset */ + __uint16_t __fpu_cs; /* x87 FPU Instruction Pointer Selector */ + __uint16_t __fpu_rsrv2; /* reserved */ + __uint32_t __fpu_dp; /* x87 FPU Instruction Operand(Data) Pointer offset */ + __uint16_t __fpu_ds; /* x87 FPU Instruction Operand(Data) Pointer Selector */ + __uint16_t __fpu_rsrv3; /* reserved */ + __uint32_t __fpu_mxcsr; /* MXCSR Register state */ + __uint32_t __fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG __fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG __fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG __fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG __fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG __fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG __fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG __fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG __fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG __fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG __fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG __fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG __fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG __fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG __fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG __fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG __fpu_xmm7; /* XMM 7 */ + char __fpu_rsrv4[14*16]; /* reserved */ + int __fpu_reserved1; + char __avx_reserved1[64]; + _STRUCT_XMM_REG __fpu_ymmh0; /* YMMH 0 */ + _STRUCT_XMM_REG __fpu_ymmh1; /* YMMH 1 */ + _STRUCT_XMM_REG __fpu_ymmh2; /* YMMH 2 */ + _STRUCT_XMM_REG __fpu_ymmh3; /* YMMH 3 */ + _STRUCT_XMM_REG __fpu_ymmh4; /* YMMH 4 */ + _STRUCT_XMM_REG __fpu_ymmh5; /* YMMH 5 */ + _STRUCT_XMM_REG __fpu_ymmh6; /* YMMH 6 */ + _STRUCT_XMM_REG __fpu_ymmh7; /* YMMH 7 */ + _STRUCT_OPMASK_REG __fpu_k0; /* K0 */ + _STRUCT_OPMASK_REG __fpu_k1; /* K1 */ + _STRUCT_OPMASK_REG __fpu_k2; /* K2 */ + _STRUCT_OPMASK_REG __fpu_k3; /* K3 */ + _STRUCT_OPMASK_REG __fpu_k4; /* K4 */ + _STRUCT_OPMASK_REG __fpu_k5; /* K5 */ + _STRUCT_OPMASK_REG __fpu_k6; /* K6 */ + _STRUCT_OPMASK_REG __fpu_k7; /* K7 */ + _STRUCT_YMM_REG __fpu_zmmh0; /* ZMMH 0 */ + _STRUCT_YMM_REG __fpu_zmmh1; /* ZMMH 1 */ + _STRUCT_YMM_REG __fpu_zmmh2; /* ZMMH 2 */ + _STRUCT_YMM_REG __fpu_zmmh3; /* ZMMH 3 */ + _STRUCT_YMM_REG __fpu_zmmh4; /* ZMMH 4 */ + _STRUCT_YMM_REG __fpu_zmmh5; /* ZMMH 5 */ + _STRUCT_YMM_REG __fpu_zmmh6; /* ZMMH 6 */ + _STRUCT_YMM_REG __fpu_zmmh7; /* ZMMH 7 */ +}; + +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_X86_FLOAT_STATE32 struct i386_float_state +_STRUCT_X86_FLOAT_STATE32 +{ + int fpu_reserved[2]; + _STRUCT_FP_CONTROL fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS fpu_fsw; /* x87 FPU status word */ + __uint8_t fpu_ftw; /* x87 FPU tag word */ + __uint8_t fpu_rsrv1; /* reserved */ + __uint16_t fpu_fop; /* x87 FPU Opcode */ + __uint32_t fpu_ip; /* x87 FPU Instruction Pointer offset */ + __uint16_t fpu_cs; /* x87 FPU Instruction Pointer Selector */ + __uint16_t fpu_rsrv2; /* reserved */ + __uint32_t fpu_dp; /* x87 FPU Instruction Operand(Data) Pointer offset */ + __uint16_t fpu_ds; /* x87 FPU Instruction Operand(Data) Pointer Selector */ + __uint16_t fpu_rsrv3; /* reserved */ + __uint32_t fpu_mxcsr; /* MXCSR Register state */ + __uint32_t fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG fpu_xmm7; /* XMM 7 */ + char fpu_rsrv4[14*16]; /* reserved */ + int fpu_reserved1; +}; + +#define _STRUCT_X86_AVX_STATE32 struct i386_avx_state +_STRUCT_X86_AVX_STATE32 +{ + int fpu_reserved[2]; + _STRUCT_FP_CONTROL fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS fpu_fsw; /* x87 FPU status word */ + __uint8_t fpu_ftw; /* x87 FPU tag word */ + __uint8_t fpu_rsrv1; /* reserved */ + __uint16_t fpu_fop; /* x87 FPU Opcode */ + __uint32_t fpu_ip; /* x87 FPU Instruction Pointer offset */ + __uint16_t fpu_cs; /* x87 FPU Instruction Pointer Selector */ + __uint16_t fpu_rsrv2; /* reserved */ + __uint32_t fpu_dp; /* x87 FPU Instruction Operand(Data) Pointer offset */ + __uint16_t fpu_ds; /* x87 FPU Instruction Operand(Data) Pointer Selector */ + __uint16_t fpu_rsrv3; /* reserved */ + __uint32_t fpu_mxcsr; /* MXCSR Register state */ + __uint32_t fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG fpu_xmm7; /* XMM 7 */ + char fpu_rsrv4[14*16]; /* reserved */ + int fpu_reserved1; + char avx_reserved1[64]; + _STRUCT_XMM_REG fpu_ymmh0; /* YMMH 0 */ + _STRUCT_XMM_REG fpu_ymmh1; /* YMMH 1 */ + _STRUCT_XMM_REG fpu_ymmh2; /* YMMH 2 */ + _STRUCT_XMM_REG fpu_ymmh3; /* YMMH 3 */ + _STRUCT_XMM_REG fpu_ymmh4; /* YMMH 4 */ + _STRUCT_XMM_REG fpu_ymmh5; /* YMMH 5 */ + _STRUCT_XMM_REG fpu_ymmh6; /* YMMH 6 */ + _STRUCT_XMM_REG fpu_ymmh7; /* YMMH 7 */ +}; + +#define _STRUCT_X86_AVX512_STATE32 struct i386_avx512_state +_STRUCT_X86_AVX512_STATE32 +{ + int fpu_reserved[2]; + _STRUCT_FP_CONTROL fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS fpu_fsw; /* x87 FPU status word */ + __uint8_t fpu_ftw; /* x87 FPU tag word */ + __uint8_t fpu_rsrv1; /* reserved */ + __uint16_t fpu_fop; /* x87 FPU Opcode */ + __uint32_t fpu_ip; /* x87 FPU Instruction Pointer offset */ + __uint16_t fpu_cs; /* x87 FPU Instruction Pointer Selector */ + __uint16_t fpu_rsrv2; /* reserved */ + __uint32_t fpu_dp; /* x87 FPU Instruction Operand(Data) Pointer offset */ + __uint16_t fpu_ds; /* x87 FPU Instruction Operand(Data) Pointer Selector */ + __uint16_t fpu_rsrv3; /* reserved */ + __uint32_t fpu_mxcsr; /* MXCSR Register state */ + __uint32_t fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG fpu_xmm7; /* XMM 7 */ + char fpu_rsrv4[14*16]; /* reserved */ + int fpu_reserved1; + char avx_reserved1[64]; + _STRUCT_XMM_REG fpu_ymmh0; /* YMMH 0 */ + _STRUCT_XMM_REG fpu_ymmh1; /* YMMH 1 */ + _STRUCT_XMM_REG fpu_ymmh2; /* YMMH 2 */ + _STRUCT_XMM_REG fpu_ymmh3; /* YMMH 3 */ + _STRUCT_XMM_REG fpu_ymmh4; /* YMMH 4 */ + _STRUCT_XMM_REG fpu_ymmh5; /* YMMH 5 */ + _STRUCT_XMM_REG fpu_ymmh6; /* YMMH 6 */ + _STRUCT_XMM_REG fpu_ymmh7; /* YMMH 7 */ + _STRUCT_OPMASK_REG fpu_k0; /* K0 */ + _STRUCT_OPMASK_REG fpu_k1; /* K1 */ + _STRUCT_OPMASK_REG fpu_k2; /* K2 */ + _STRUCT_OPMASK_REG fpu_k3; /* K3 */ + _STRUCT_OPMASK_REG fpu_k4; /* K4 */ + _STRUCT_OPMASK_REG fpu_k5; /* K5 */ + _STRUCT_OPMASK_REG fpu_k6; /* K6 */ + _STRUCT_OPMASK_REG fpu_k7; /* K7 */ + _STRUCT_YMM_REG fpu_zmmh0; /* ZMMH 0 */ + _STRUCT_YMM_REG fpu_zmmh1; /* ZMMH 1 */ + _STRUCT_YMM_REG fpu_zmmh2; /* ZMMH 2 */ + _STRUCT_YMM_REG fpu_zmmh3; /* ZMMH 3 */ + _STRUCT_YMM_REG fpu_zmmh4; /* ZMMH 4 */ + _STRUCT_YMM_REG fpu_zmmh5; /* ZMMH 5 */ + _STRUCT_YMM_REG fpu_zmmh6; /* ZMMH 6 */ + _STRUCT_YMM_REG fpu_zmmh7; /* ZMMH 7 */ +}; + +#endif /* !__DARWIN_UNIX03 */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_EXCEPTION_STATE32 struct __darwin_i386_exception_state +_STRUCT_X86_EXCEPTION_STATE32 +{ + __uint16_t __trapno; + __uint16_t __cpu; + __uint32_t __err; + __uint32_t __faultvaddr; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_X86_EXCEPTION_STATE32 struct i386_exception_state +_STRUCT_X86_EXCEPTION_STATE32 +{ + __uint16_t trapno; + __uint16_t cpu; + __uint32_t err; + __uint32_t faultvaddr; +}; +#endif /* !__DARWIN_UNIX03 */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_DEBUG_STATE32 struct __darwin_x86_debug_state32 +_STRUCT_X86_DEBUG_STATE32 +{ + unsigned int __dr0; + unsigned int __dr1; + unsigned int __dr2; + unsigned int __dr3; + unsigned int __dr4; + unsigned int __dr5; + unsigned int __dr6; + unsigned int __dr7; +}; + +#define _STRUCT_X86_INSTRUCTION_STATE struct __x86_instruction_state +_STRUCT_X86_INSTRUCTION_STATE +{ + int __insn_stream_valid_bytes; + int __insn_offset; + int __out_of_synch; /* + * non-zero when the cacheline that includes the insn_offset + * is replaced in the insn_bytes array due to a mismatch + * detected when comparing it with the same cacheline in memory + */ +#define _X86_INSTRUCTION_STATE_MAX_INSN_BYTES (2448 - 64 - 4) + __uint8_t __insn_bytes[_X86_INSTRUCTION_STATE_MAX_INSN_BYTES]; +#define _X86_INSTRUCTION_STATE_CACHELINE_SIZE 64 + __uint8_t __insn_cacheline[_X86_INSTRUCTION_STATE_CACHELINE_SIZE]; +}; + +#define _STRUCT_LAST_BRANCH_RECORD struct __last_branch_record +_STRUCT_LAST_BRANCH_RECORD +{ + __uint64_t __from_ip; + __uint64_t __to_ip; + __uint32_t __mispredict : 1, + __tsx_abort : 1, + __in_tsx : 1, + __cycle_count: 16, + __reserved : 13; +}; + +#define _STRUCT_LAST_BRANCH_STATE struct __last_branch_state +_STRUCT_LAST_BRANCH_STATE +{ + int __lbr_count; + __uint32_t __lbr_supported_tsx : 1, + __lbr_supported_cycle_count : 1, + __reserved : 30; +#define __LASTBRANCH_MAX 32 + _STRUCT_LAST_BRANCH_RECORD __lbrs[__LASTBRANCH_MAX]; +}; + +#else /* !__DARWIN_UNIX03 */ + +#define _STRUCT_X86_DEBUG_STATE32 struct x86_debug_state32 +_STRUCT_X86_DEBUG_STATE32 +{ + unsigned int dr0; + unsigned int dr1; + unsigned int dr2; + unsigned int dr3; + unsigned int dr4; + unsigned int dr5; + unsigned int dr6; + unsigned int dr7; +}; + +#define _STRUCT_X86_INSTRUCTION_STATE struct __x86_instruction_state +_STRUCT_X86_INSTRUCTION_STATE +{ + int insn_stream_valid_bytes; + int insn_offset; + int out_of_synch; /* + * non-zero when the cacheline that includes the insn_offset + * is replaced in the insn_bytes array due to a mismatch + * detected when comparing it with the same cacheline in memory + */ +#define x86_INSTRUCTION_STATE_MAX_INSN_BYTES (2448 - 64 - 4) + __uint8_t insn_bytes[x86_INSTRUCTION_STATE_MAX_INSN_BYTES]; +#define x86_INSTRUCTION_STATE_CACHELINE_SIZE 64 + __uint8_t insn_cacheline[x86_INSTRUCTION_STATE_CACHELINE_SIZE]; +}; + +#define _STRUCT_LAST_BRANCH_RECORD struct __last_branch_record +_STRUCT_LAST_BRANCH_RECORD +{ + __uint64_t from_ip; + __uint64_t to_ip; + __uint32_t mispredict : 1, + tsx_abort : 1, + in_tsx : 1, + cycle_count: 16, + reserved : 13; +}; + +#define _STRUCT_LAST_BRANCH_STATE struct __last_branch_state +_STRUCT_LAST_BRANCH_STATE +{ + int lbr_count; + __uint32_t lbr_supported_tsx : 1, + lbr_supported_cycle_count : 1, + reserved : 30; +#define __LASTBRANCH_MAX 32 + _STRUCT_LAST_BRANCH_RECORD lbrs[__LASTBRANCH_MAX]; +}; +#endif /* !__DARWIN_UNIX03 */ + +#define _STRUCT_X86_PAGEIN_STATE struct __x86_pagein_state +_STRUCT_X86_PAGEIN_STATE +{ + int __pagein_error; +}; + +/* + * 64 bit versions of the above + */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_THREAD_STATE64 struct __darwin_x86_thread_state64 +_STRUCT_X86_THREAD_STATE64 +{ + __uint64_t __rax; + __uint64_t __rbx; + __uint64_t __rcx; + __uint64_t __rdx; + __uint64_t __rdi; + __uint64_t __rsi; + __uint64_t __rbp; + __uint64_t __rsp; + __uint64_t __r8; + __uint64_t __r9; + __uint64_t __r10; + __uint64_t __r11; + __uint64_t __r12; + __uint64_t __r13; + __uint64_t __r14; + __uint64_t __r15; + __uint64_t __rip; + __uint64_t __rflags; + __uint64_t __cs; + __uint64_t __fs; + __uint64_t __gs; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_X86_THREAD_STATE64 struct x86_thread_state64 +_STRUCT_X86_THREAD_STATE64 +{ + __uint64_t rax; + __uint64_t rbx; + __uint64_t rcx; + __uint64_t rdx; + __uint64_t rdi; + __uint64_t rsi; + __uint64_t rbp; + __uint64_t rsp; + __uint64_t r8; + __uint64_t r9; + __uint64_t r10; + __uint64_t r11; + __uint64_t r12; + __uint64_t r13; + __uint64_t r14; + __uint64_t r15; + __uint64_t rip; + __uint64_t rflags; + __uint64_t cs; + __uint64_t fs; + __uint64_t gs; +}; +#endif /* !__DARWIN_UNIX03 */ + +/* + * 64 bit versions of the above (complete) + */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_THREAD_FULL_STATE64 struct __darwin_x86_thread_full_state64 +_STRUCT_X86_THREAD_FULL_STATE64 +{ + _STRUCT_X86_THREAD_STATE64 __ss64; + __uint64_t __ds; + __uint64_t __es; + __uint64_t __ss; + __uint64_t __gsbase; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_X86_THREAD_FULL_STATE64 struct x86_thread_full_state64 +_STRUCT_X86_THREAD_FULL_STATE64 +{ + _STRUCT_X86_THREAD_STATE64 ss64; + __uint64_t ds; + __uint64_t es; + __uint64_t ss; + __uint64_t gsbase; +}; +#endif /* !__DARWIN_UNIX03 */ + + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_FLOAT_STATE64 struct __darwin_x86_float_state64 +_STRUCT_X86_FLOAT_STATE64 +{ + int __fpu_reserved[2]; + _STRUCT_FP_CONTROL __fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS __fpu_fsw; /* x87 FPU status word */ + __uint8_t __fpu_ftw; /* x87 FPU tag word */ + __uint8_t __fpu_rsrv1; /* reserved */ + __uint16_t __fpu_fop; /* x87 FPU Opcode */ + + /* x87 FPU Instruction Pointer */ + __uint32_t __fpu_ip; /* offset */ + __uint16_t __fpu_cs; /* Selector */ + + __uint16_t __fpu_rsrv2; /* reserved */ + + /* x87 FPU Instruction Operand(Data) Pointer */ + __uint32_t __fpu_dp; /* offset */ + __uint16_t __fpu_ds; /* Selector */ + + __uint16_t __fpu_rsrv3; /* reserved */ + __uint32_t __fpu_mxcsr; /* MXCSR Register state */ + __uint32_t __fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG __fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG __fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG __fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG __fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG __fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG __fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG __fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG __fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG __fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG __fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG __fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG __fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG __fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG __fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG __fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG __fpu_xmm7; /* XMM 7 */ + _STRUCT_XMM_REG __fpu_xmm8; /* XMM 8 */ + _STRUCT_XMM_REG __fpu_xmm9; /* XMM 9 */ + _STRUCT_XMM_REG __fpu_xmm10; /* XMM 10 */ + _STRUCT_XMM_REG __fpu_xmm11; /* XMM 11 */ + _STRUCT_XMM_REG __fpu_xmm12; /* XMM 12 */ + _STRUCT_XMM_REG __fpu_xmm13; /* XMM 13 */ + _STRUCT_XMM_REG __fpu_xmm14; /* XMM 14 */ + _STRUCT_XMM_REG __fpu_xmm15; /* XMM 15 */ + char __fpu_rsrv4[6*16]; /* reserved */ + int __fpu_reserved1; +}; + +#define _STRUCT_X86_AVX_STATE64 struct __darwin_x86_avx_state64 +_STRUCT_X86_AVX_STATE64 +{ + int __fpu_reserved[2]; + _STRUCT_FP_CONTROL __fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS __fpu_fsw; /* x87 FPU status word */ + __uint8_t __fpu_ftw; /* x87 FPU tag word */ + __uint8_t __fpu_rsrv1; /* reserved */ + __uint16_t __fpu_fop; /* x87 FPU Opcode */ + + /* x87 FPU Instruction Pointer */ + __uint32_t __fpu_ip; /* offset */ + __uint16_t __fpu_cs; /* Selector */ + + __uint16_t __fpu_rsrv2; /* reserved */ + + /* x87 FPU Instruction Operand(Data) Pointer */ + __uint32_t __fpu_dp; /* offset */ + __uint16_t __fpu_ds; /* Selector */ + + __uint16_t __fpu_rsrv3; /* reserved */ + __uint32_t __fpu_mxcsr; /* MXCSR Register state */ + __uint32_t __fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG __fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG __fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG __fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG __fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG __fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG __fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG __fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG __fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG __fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG __fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG __fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG __fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG __fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG __fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG __fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG __fpu_xmm7; /* XMM 7 */ + _STRUCT_XMM_REG __fpu_xmm8; /* XMM 8 */ + _STRUCT_XMM_REG __fpu_xmm9; /* XMM 9 */ + _STRUCT_XMM_REG __fpu_xmm10; /* XMM 10 */ + _STRUCT_XMM_REG __fpu_xmm11; /* XMM 11 */ + _STRUCT_XMM_REG __fpu_xmm12; /* XMM 12 */ + _STRUCT_XMM_REG __fpu_xmm13; /* XMM 13 */ + _STRUCT_XMM_REG __fpu_xmm14; /* XMM 14 */ + _STRUCT_XMM_REG __fpu_xmm15; /* XMM 15 */ + char __fpu_rsrv4[6*16]; /* reserved */ + int __fpu_reserved1; + char __avx_reserved1[64]; + _STRUCT_XMM_REG __fpu_ymmh0; /* YMMH 0 */ + _STRUCT_XMM_REG __fpu_ymmh1; /* YMMH 1 */ + _STRUCT_XMM_REG __fpu_ymmh2; /* YMMH 2 */ + _STRUCT_XMM_REG __fpu_ymmh3; /* YMMH 3 */ + _STRUCT_XMM_REG __fpu_ymmh4; /* YMMH 4 */ + _STRUCT_XMM_REG __fpu_ymmh5; /* YMMH 5 */ + _STRUCT_XMM_REG __fpu_ymmh6; /* YMMH 6 */ + _STRUCT_XMM_REG __fpu_ymmh7; /* YMMH 7 */ + _STRUCT_XMM_REG __fpu_ymmh8; /* YMMH 8 */ + _STRUCT_XMM_REG __fpu_ymmh9; /* YMMH 9 */ + _STRUCT_XMM_REG __fpu_ymmh10; /* YMMH 10 */ + _STRUCT_XMM_REG __fpu_ymmh11; /* YMMH 11 */ + _STRUCT_XMM_REG __fpu_ymmh12; /* YMMH 12 */ + _STRUCT_XMM_REG __fpu_ymmh13; /* YMMH 13 */ + _STRUCT_XMM_REG __fpu_ymmh14; /* YMMH 14 */ + _STRUCT_XMM_REG __fpu_ymmh15; /* YMMH 15 */ +}; + +#define _STRUCT_X86_AVX512_STATE64 struct __darwin_x86_avx512_state64 +_STRUCT_X86_AVX512_STATE64 +{ + int __fpu_reserved[2]; + _STRUCT_FP_CONTROL __fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS __fpu_fsw; /* x87 FPU status word */ + __uint8_t __fpu_ftw; /* x87 FPU tag word */ + __uint8_t __fpu_rsrv1; /* reserved */ + __uint16_t __fpu_fop; /* x87 FPU Opcode */ + + /* x87 FPU Instruction Pointer */ + __uint32_t __fpu_ip; /* offset */ + __uint16_t __fpu_cs; /* Selector */ + + __uint16_t __fpu_rsrv2; /* reserved */ + + /* x87 FPU Instruction Operand(Data) Pointer */ + __uint32_t __fpu_dp; /* offset */ + __uint16_t __fpu_ds; /* Selector */ + + __uint16_t __fpu_rsrv3; /* reserved */ + __uint32_t __fpu_mxcsr; /* MXCSR Register state */ + __uint32_t __fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG __fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG __fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG __fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG __fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG __fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG __fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG __fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG __fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG __fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG __fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG __fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG __fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG __fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG __fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG __fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG __fpu_xmm7; /* XMM 7 */ + _STRUCT_XMM_REG __fpu_xmm8; /* XMM 8 */ + _STRUCT_XMM_REG __fpu_xmm9; /* XMM 9 */ + _STRUCT_XMM_REG __fpu_xmm10; /* XMM 10 */ + _STRUCT_XMM_REG __fpu_xmm11; /* XMM 11 */ + _STRUCT_XMM_REG __fpu_xmm12; /* XMM 12 */ + _STRUCT_XMM_REG __fpu_xmm13; /* XMM 13 */ + _STRUCT_XMM_REG __fpu_xmm14; /* XMM 14 */ + _STRUCT_XMM_REG __fpu_xmm15; /* XMM 15 */ + char __fpu_rsrv4[6*16]; /* reserved */ + int __fpu_reserved1; + char __avx_reserved1[64]; + _STRUCT_XMM_REG __fpu_ymmh0; /* YMMH 0 */ + _STRUCT_XMM_REG __fpu_ymmh1; /* YMMH 1 */ + _STRUCT_XMM_REG __fpu_ymmh2; /* YMMH 2 */ + _STRUCT_XMM_REG __fpu_ymmh3; /* YMMH 3 */ + _STRUCT_XMM_REG __fpu_ymmh4; /* YMMH 4 */ + _STRUCT_XMM_REG __fpu_ymmh5; /* YMMH 5 */ + _STRUCT_XMM_REG __fpu_ymmh6; /* YMMH 6 */ + _STRUCT_XMM_REG __fpu_ymmh7; /* YMMH 7 */ + _STRUCT_XMM_REG __fpu_ymmh8; /* YMMH 8 */ + _STRUCT_XMM_REG __fpu_ymmh9; /* YMMH 9 */ + _STRUCT_XMM_REG __fpu_ymmh10; /* YMMH 10 */ + _STRUCT_XMM_REG __fpu_ymmh11; /* YMMH 11 */ + _STRUCT_XMM_REG __fpu_ymmh12; /* YMMH 12 */ + _STRUCT_XMM_REG __fpu_ymmh13; /* YMMH 13 */ + _STRUCT_XMM_REG __fpu_ymmh14; /* YMMH 14 */ + _STRUCT_XMM_REG __fpu_ymmh15; /* YMMH 15 */ + _STRUCT_OPMASK_REG __fpu_k0; /* K0 */ + _STRUCT_OPMASK_REG __fpu_k1; /* K1 */ + _STRUCT_OPMASK_REG __fpu_k2; /* K2 */ + _STRUCT_OPMASK_REG __fpu_k3; /* K3 */ + _STRUCT_OPMASK_REG __fpu_k4; /* K4 */ + _STRUCT_OPMASK_REG __fpu_k5; /* K5 */ + _STRUCT_OPMASK_REG __fpu_k6; /* K6 */ + _STRUCT_OPMASK_REG __fpu_k7; /* K7 */ + _STRUCT_YMM_REG __fpu_zmmh0; /* ZMMH 0 */ + _STRUCT_YMM_REG __fpu_zmmh1; /* ZMMH 1 */ + _STRUCT_YMM_REG __fpu_zmmh2; /* ZMMH 2 */ + _STRUCT_YMM_REG __fpu_zmmh3; /* ZMMH 3 */ + _STRUCT_YMM_REG __fpu_zmmh4; /* ZMMH 4 */ + _STRUCT_YMM_REG __fpu_zmmh5; /* ZMMH 5 */ + _STRUCT_YMM_REG __fpu_zmmh6; /* ZMMH 6 */ + _STRUCT_YMM_REG __fpu_zmmh7; /* ZMMH 7 */ + _STRUCT_YMM_REG __fpu_zmmh8; /* ZMMH 8 */ + _STRUCT_YMM_REG __fpu_zmmh9; /* ZMMH 9 */ + _STRUCT_YMM_REG __fpu_zmmh10; /* ZMMH 10 */ + _STRUCT_YMM_REG __fpu_zmmh11; /* ZMMH 11 */ + _STRUCT_YMM_REG __fpu_zmmh12; /* ZMMH 12 */ + _STRUCT_YMM_REG __fpu_zmmh13; /* ZMMH 13 */ + _STRUCT_YMM_REG __fpu_zmmh14; /* ZMMH 14 */ + _STRUCT_YMM_REG __fpu_zmmh15; /* ZMMH 15 */ + _STRUCT_ZMM_REG __fpu_zmm16; /* ZMM 16 */ + _STRUCT_ZMM_REG __fpu_zmm17; /* ZMM 17 */ + _STRUCT_ZMM_REG __fpu_zmm18; /* ZMM 18 */ + _STRUCT_ZMM_REG __fpu_zmm19; /* ZMM 19 */ + _STRUCT_ZMM_REG __fpu_zmm20; /* ZMM 20 */ + _STRUCT_ZMM_REG __fpu_zmm21; /* ZMM 21 */ + _STRUCT_ZMM_REG __fpu_zmm22; /* ZMM 22 */ + _STRUCT_ZMM_REG __fpu_zmm23; /* ZMM 23 */ + _STRUCT_ZMM_REG __fpu_zmm24; /* ZMM 24 */ + _STRUCT_ZMM_REG __fpu_zmm25; /* ZMM 25 */ + _STRUCT_ZMM_REG __fpu_zmm26; /* ZMM 26 */ + _STRUCT_ZMM_REG __fpu_zmm27; /* ZMM 27 */ + _STRUCT_ZMM_REG __fpu_zmm28; /* ZMM 28 */ + _STRUCT_ZMM_REG __fpu_zmm29; /* ZMM 29 */ + _STRUCT_ZMM_REG __fpu_zmm30; /* ZMM 30 */ + _STRUCT_ZMM_REG __fpu_zmm31; /* ZMM 31 */ +}; + +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_X86_FLOAT_STATE64 struct x86_float_state64 +_STRUCT_X86_FLOAT_STATE64 +{ + int fpu_reserved[2]; + _STRUCT_FP_CONTROL fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS fpu_fsw; /* x87 FPU status word */ + __uint8_t fpu_ftw; /* x87 FPU tag word */ + __uint8_t fpu_rsrv1; /* reserved */ + __uint16_t fpu_fop; /* x87 FPU Opcode */ + + /* x87 FPU Instruction Pointer */ + __uint32_t fpu_ip; /* offset */ + __uint16_t fpu_cs; /* Selector */ + + __uint16_t fpu_rsrv2; /* reserved */ + + /* x87 FPU Instruction Operand(Data) Pointer */ + __uint32_t fpu_dp; /* offset */ + __uint16_t fpu_ds; /* Selector */ + + __uint16_t fpu_rsrv3; /* reserved */ + __uint32_t fpu_mxcsr; /* MXCSR Register state */ + __uint32_t fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG fpu_xmm7; /* XMM 7 */ + _STRUCT_XMM_REG fpu_xmm8; /* XMM 8 */ + _STRUCT_XMM_REG fpu_xmm9; /* XMM 9 */ + _STRUCT_XMM_REG fpu_xmm10; /* XMM 10 */ + _STRUCT_XMM_REG fpu_xmm11; /* XMM 11 */ + _STRUCT_XMM_REG fpu_xmm12; /* XMM 12 */ + _STRUCT_XMM_REG fpu_xmm13; /* XMM 13 */ + _STRUCT_XMM_REG fpu_xmm14; /* XMM 14 */ + _STRUCT_XMM_REG fpu_xmm15; /* XMM 15 */ + char fpu_rsrv4[6*16]; /* reserved */ + int fpu_reserved1; +}; + +#define _STRUCT_X86_AVX_STATE64 struct x86_avx_state64 +_STRUCT_X86_AVX_STATE64 +{ + int fpu_reserved[2]; + _STRUCT_FP_CONTROL fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS fpu_fsw; /* x87 FPU status word */ + __uint8_t fpu_ftw; /* x87 FPU tag word */ + __uint8_t fpu_rsrv1; /* reserved */ + __uint16_t fpu_fop; /* x87 FPU Opcode */ + + /* x87 FPU Instruction Pointer */ + __uint32_t fpu_ip; /* offset */ + __uint16_t fpu_cs; /* Selector */ + + __uint16_t fpu_rsrv2; /* reserved */ + + /* x87 FPU Instruction Operand(Data) Pointer */ + __uint32_t fpu_dp; /* offset */ + __uint16_t fpu_ds; /* Selector */ + + __uint16_t fpu_rsrv3; /* reserved */ + __uint32_t fpu_mxcsr; /* MXCSR Register state */ + __uint32_t fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG fpu_xmm7; /* XMM 7 */ + _STRUCT_XMM_REG fpu_xmm8; /* XMM 8 */ + _STRUCT_XMM_REG fpu_xmm9; /* XMM 9 */ + _STRUCT_XMM_REG fpu_xmm10; /* XMM 10 */ + _STRUCT_XMM_REG fpu_xmm11; /* XMM 11 */ + _STRUCT_XMM_REG fpu_xmm12; /* XMM 12 */ + _STRUCT_XMM_REG fpu_xmm13; /* XMM 13 */ + _STRUCT_XMM_REG fpu_xmm14; /* XMM 14 */ + _STRUCT_XMM_REG fpu_xmm15; /* XMM 15 */ + char fpu_rsrv4[6*16]; /* reserved */ + int fpu_reserved1; + char avx_reserved1[64]; + _STRUCT_XMM_REG fpu_ymmh0; /* YMMH 0 */ + _STRUCT_XMM_REG fpu_ymmh1; /* YMMH 1 */ + _STRUCT_XMM_REG fpu_ymmh2; /* YMMH 2 */ + _STRUCT_XMM_REG fpu_ymmh3; /* YMMH 3 */ + _STRUCT_XMM_REG fpu_ymmh4; /* YMMH 4 */ + _STRUCT_XMM_REG fpu_ymmh5; /* YMMH 5 */ + _STRUCT_XMM_REG fpu_ymmh6; /* YMMH 6 */ + _STRUCT_XMM_REG fpu_ymmh7; /* YMMH 7 */ + _STRUCT_XMM_REG fpu_ymmh8; /* YMMH 8 */ + _STRUCT_XMM_REG fpu_ymmh9; /* YMMH 9 */ + _STRUCT_XMM_REG fpu_ymmh10; /* YMMH 10 */ + _STRUCT_XMM_REG fpu_ymmh11; /* YMMH 11 */ + _STRUCT_XMM_REG fpu_ymmh12; /* YMMH 12 */ + _STRUCT_XMM_REG fpu_ymmh13; /* YMMH 13 */ + _STRUCT_XMM_REG fpu_ymmh14; /* YMMH 14 */ + _STRUCT_XMM_REG fpu_ymmh15; /* YMMH 15 */ +}; + +#define _STRUCT_X86_AVX512_STATE64 struct x86_avx512_state64 +_STRUCT_X86_AVX512_STATE64 +{ + int fpu_reserved[2]; + _STRUCT_FP_CONTROL fpu_fcw; /* x87 FPU control word */ + _STRUCT_FP_STATUS fpu_fsw; /* x87 FPU status word */ + __uint8_t fpu_ftw; /* x87 FPU tag word */ + __uint8_t fpu_rsrv1; /* reserved */ + __uint16_t fpu_fop; /* x87 FPU Opcode */ + + /* x87 FPU Instruction Pointer */ + __uint32_t fpu_ip; /* offset */ + __uint16_t fpu_cs; /* Selector */ + + __uint16_t fpu_rsrv2; /* reserved */ + + /* x87 FPU Instruction Operand(Data) Pointer */ + __uint32_t fpu_dp; /* offset */ + __uint16_t fpu_ds; /* Selector */ + + __uint16_t fpu_rsrv3; /* reserved */ + __uint32_t fpu_mxcsr; /* MXCSR Register state */ + __uint32_t fpu_mxcsrmask; /* MXCSR mask */ + _STRUCT_MMST_REG fpu_stmm0; /* ST0/MM0 */ + _STRUCT_MMST_REG fpu_stmm1; /* ST1/MM1 */ + _STRUCT_MMST_REG fpu_stmm2; /* ST2/MM2 */ + _STRUCT_MMST_REG fpu_stmm3; /* ST3/MM3 */ + _STRUCT_MMST_REG fpu_stmm4; /* ST4/MM4 */ + _STRUCT_MMST_REG fpu_stmm5; /* ST5/MM5 */ + _STRUCT_MMST_REG fpu_stmm6; /* ST6/MM6 */ + _STRUCT_MMST_REG fpu_stmm7; /* ST7/MM7 */ + _STRUCT_XMM_REG fpu_xmm0; /* XMM 0 */ + _STRUCT_XMM_REG fpu_xmm1; /* XMM 1 */ + _STRUCT_XMM_REG fpu_xmm2; /* XMM 2 */ + _STRUCT_XMM_REG fpu_xmm3; /* XMM 3 */ + _STRUCT_XMM_REG fpu_xmm4; /* XMM 4 */ + _STRUCT_XMM_REG fpu_xmm5; /* XMM 5 */ + _STRUCT_XMM_REG fpu_xmm6; /* XMM 6 */ + _STRUCT_XMM_REG fpu_xmm7; /* XMM 7 */ + _STRUCT_XMM_REG fpu_xmm8; /* XMM 8 */ + _STRUCT_XMM_REG fpu_xmm9; /* XMM 9 */ + _STRUCT_XMM_REG fpu_xmm10; /* XMM 10 */ + _STRUCT_XMM_REG fpu_xmm11; /* XMM 11 */ + _STRUCT_XMM_REG fpu_xmm12; /* XMM 12 */ + _STRUCT_XMM_REG fpu_xmm13; /* XMM 13 */ + _STRUCT_XMM_REG fpu_xmm14; /* XMM 14 */ + _STRUCT_XMM_REG fpu_xmm15; /* XMM 15 */ + char fpu_rsrv4[6*16]; /* reserved */ + int fpu_reserved1; + char avx_reserved1[64]; + _STRUCT_XMM_REG fpu_ymmh0; /* YMMH 0 */ + _STRUCT_XMM_REG fpu_ymmh1; /* YMMH 1 */ + _STRUCT_XMM_REG fpu_ymmh2; /* YMMH 2 */ + _STRUCT_XMM_REG fpu_ymmh3; /* YMMH 3 */ + _STRUCT_XMM_REG fpu_ymmh4; /* YMMH 4 */ + _STRUCT_XMM_REG fpu_ymmh5; /* YMMH 5 */ + _STRUCT_XMM_REG fpu_ymmh6; /* YMMH 6 */ + _STRUCT_XMM_REG fpu_ymmh7; /* YMMH 7 */ + _STRUCT_XMM_REG fpu_ymmh8; /* YMMH 8 */ + _STRUCT_XMM_REG fpu_ymmh9; /* YMMH 9 */ + _STRUCT_XMM_REG fpu_ymmh10; /* YMMH 10 */ + _STRUCT_XMM_REG fpu_ymmh11; /* YMMH 11 */ + _STRUCT_XMM_REG fpu_ymmh12; /* YMMH 12 */ + _STRUCT_XMM_REG fpu_ymmh13; /* YMMH 13 */ + _STRUCT_XMM_REG fpu_ymmh14; /* YMMH 14 */ + _STRUCT_XMM_REG fpu_ymmh15; /* YMMH 15 */ + _STRUCT_OPMASK_REG fpu_k0; /* K0 */ + _STRUCT_OPMASK_REG fpu_k1; /* K1 */ + _STRUCT_OPMASK_REG fpu_k2; /* K2 */ + _STRUCT_OPMASK_REG fpu_k3; /* K3 */ + _STRUCT_OPMASK_REG fpu_k4; /* K4 */ + _STRUCT_OPMASK_REG fpu_k5; /* K5 */ + _STRUCT_OPMASK_REG fpu_k6; /* K6 */ + _STRUCT_OPMASK_REG fpu_k7; /* K7 */ + _STRUCT_YMM_REG fpu_zmmh0; /* ZMMH 0 */ + _STRUCT_YMM_REG fpu_zmmh1; /* ZMMH 1 */ + _STRUCT_YMM_REG fpu_zmmh2; /* ZMMH 2 */ + _STRUCT_YMM_REG fpu_zmmh3; /* ZMMH 3 */ + _STRUCT_YMM_REG fpu_zmmh4; /* ZMMH 4 */ + _STRUCT_YMM_REG fpu_zmmh5; /* ZMMH 5 */ + _STRUCT_YMM_REG fpu_zmmh6; /* ZMMH 6 */ + _STRUCT_YMM_REG fpu_zmmh7; /* ZMMH 7 */ + _STRUCT_YMM_REG fpu_zmmh8; /* ZMMH 8 */ + _STRUCT_YMM_REG fpu_zmmh9; /* ZMMH 9 */ + _STRUCT_YMM_REG fpu_zmmh10; /* ZMMH 10 */ + _STRUCT_YMM_REG fpu_zmmh11; /* ZMMH 11 */ + _STRUCT_YMM_REG fpu_zmmh12; /* ZMMH 12 */ + _STRUCT_YMM_REG fpu_zmmh13; /* ZMMH 13 */ + _STRUCT_YMM_REG fpu_zmmh14; /* ZMMH 14 */ + _STRUCT_YMM_REG fpu_zmmh15; /* ZMMH 15 */ + _STRUCT_ZMM_REG fpu_zmm16; /* ZMM 16 */ + _STRUCT_ZMM_REG fpu_zmm17; /* ZMM 17 */ + _STRUCT_ZMM_REG fpu_zmm18; /* ZMM 18 */ + _STRUCT_ZMM_REG fpu_zmm19; /* ZMM 19 */ + _STRUCT_ZMM_REG fpu_zmm20; /* ZMM 20 */ + _STRUCT_ZMM_REG fpu_zmm21; /* ZMM 21 */ + _STRUCT_ZMM_REG fpu_zmm22; /* ZMM 22 */ + _STRUCT_ZMM_REG fpu_zmm23; /* ZMM 23 */ + _STRUCT_ZMM_REG fpu_zmm24; /* ZMM 24 */ + _STRUCT_ZMM_REG fpu_zmm25; /* ZMM 25 */ + _STRUCT_ZMM_REG fpu_zmm26; /* ZMM 26 */ + _STRUCT_ZMM_REG fpu_zmm27; /* ZMM 27 */ + _STRUCT_ZMM_REG fpu_zmm28; /* ZMM 28 */ + _STRUCT_ZMM_REG fpu_zmm29; /* ZMM 29 */ + _STRUCT_ZMM_REG fpu_zmm30; /* ZMM 30 */ + _STRUCT_ZMM_REG fpu_zmm31; /* ZMM 31 */ +}; + +#endif /* !__DARWIN_UNIX03 */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_EXCEPTION_STATE64 struct __darwin_x86_exception_state64 +_STRUCT_X86_EXCEPTION_STATE64 +{ + __uint16_t __trapno; + __uint16_t __cpu; + __uint32_t __err; + __uint64_t __faultvaddr; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_X86_EXCEPTION_STATE64 struct x86_exception_state64 +_STRUCT_X86_EXCEPTION_STATE64 +{ + __uint16_t trapno; + __uint16_t cpu; + __uint32_t err; + __uint64_t faultvaddr; +}; +#endif /* !__DARWIN_UNIX03 */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_DEBUG_STATE64 struct __darwin_x86_debug_state64 +_STRUCT_X86_DEBUG_STATE64 +{ + __uint64_t __dr0; + __uint64_t __dr1; + __uint64_t __dr2; + __uint64_t __dr3; + __uint64_t __dr4; + __uint64_t __dr5; + __uint64_t __dr6; + __uint64_t __dr7; +}; +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_X86_DEBUG_STATE64 struct x86_debug_state64 +_STRUCT_X86_DEBUG_STATE64 +{ + __uint64_t dr0; + __uint64_t dr1; + __uint64_t dr2; + __uint64_t dr3; + __uint64_t dr4; + __uint64_t dr5; + __uint64_t dr6; + __uint64_t dr7; +}; +#endif /* !__DARWIN_UNIX03 */ + +#if __DARWIN_UNIX03 +#define _STRUCT_X86_CPMU_STATE64 struct __darwin_x86_cpmu_state64 +_STRUCT_X86_CPMU_STATE64 +{ + __uint64_t __ctrs[16]; +}; +#else /* __DARWIN_UNIX03 */ +#define _STRUCT_X86_CPMU_STATE64 struct x86_cpmu_state64 +_STRUCT_X86_CPMU_STATE64 +{ + __uint64_t ctrs[16]; +}; +#endif /* !__DARWIN_UNIX03 */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386__STRUCTS_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/boolean.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/boolean.h new file mode 100644 index 0000000000000000000000000000000000000000..b1d69a193be25b4b4875c904bf0c23c8b3f48fd3 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/boolean.h @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + */ + +/* + * File: boolean.h + * + * Boolean type, for I386. + */ + +#ifndef _MACH_I386_BOOLEAN_H_ +#define _MACH_I386_BOOLEAN_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#if defined(__x86_64__) && !defined(KERNEL) +typedef unsigned int boolean_t; +#else +typedef int boolean_t; +#endif + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_BOOLEAN_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/exception.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/exception.h new file mode 100644 index 0000000000000000000000000000000000000000..1a8b2c0d1d0752ae4eae39ee53b10be6419e86f0 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/exception.h @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + */ + +#ifndef _MACH_I386_EXCEPTION_H_ +#define _MACH_I386_EXCEPTION_H_ + +#if defined (__i386__) || defined (__x86_64__) + +/* + * No machine dependent types for the 80386 + */ + +#define EXC_TYPES_COUNT 14 /* incl. illegal exception 0 */ + +/* + * Codes and subcodes for 80386 exceptions. + */ + +#define EXCEPTION_CODE_MAX 2 /* currently code and subcode */ + +/* + * EXC_BAD_INSTRUCTION + */ + +#define EXC_I386_INVOP 1 + +/* + * EXC_ARITHMETIC + */ + +#define EXC_I386_DIV 1 +#define EXC_I386_INTO 2 +#define EXC_I386_NOEXT 3 +#define EXC_I386_EXTOVR 4 +#define EXC_I386_EXTERR 5 +#define EXC_I386_EMERR 6 +#define EXC_I386_BOUND 7 +#define EXC_I386_SSEEXTERR 8 + +/* + * EXC_SOFTWARE + * Note: 0x10000-0x10003 in use for unix signal + */ + +/* + * EXC_BAD_ACCESS + */ + +/* + * EXC_BREAKPOINT + */ + +#define EXC_I386_SGL 1 +#define EXC_I386_BPT 2 + +#define EXC_I386_DIVERR 0 /* divide by 0 eprror */ +#define EXC_I386_SGLSTP 1 /* single step */ +#define EXC_I386_NMIFLT 2 /* NMI */ +#define EXC_I386_BPTFLT 3 /* breakpoint fault */ +#define EXC_I386_INTOFLT 4 /* INTO overflow fault */ +#define EXC_I386_BOUNDFLT 5 /* BOUND instruction fault */ +#define EXC_I386_INVOPFLT 6 /* invalid opcode fault */ +#define EXC_I386_NOEXTFLT 7 /* extension not available fault*/ +#define EXC_I386_DBLFLT 8 /* double fault */ +#define EXC_I386_EXTOVRFLT 9 /* extension overrun fault */ +#define EXC_I386_INVTSSFLT 10 /* invalid TSS fault */ +#define EXC_I386_SEGNPFLT 11 /* segment not present fault */ +#define EXC_I386_STKFLT 12 /* stack fault */ +#define EXC_I386_GPFLT 13 /* general protection fault */ +#define EXC_I386_PGFLT 14 /* page fault */ +#define EXC_I386_EXTERRFLT 16 /* extension error fault */ +#define EXC_I386_ALIGNFLT 17 /* Alignment fault */ +#define EXC_I386_ENDPERR 33 /* emulated extension error flt */ +#define EXC_I386_ENOEXTFLT 32 /* emulated ext not present */ + + +/* + * machine dependent exception masks + */ +#define EXC_MASK_MACHINE 0 + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_EXCEPTION_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/fp_reg.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/fp_reg.h new file mode 100644 index 0000000000000000000000000000000000000000..e968978842f4e46b611ffd7452f00c4dbd0a5471 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/fp_reg.h @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1992-1989 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + */ + +#ifndef _I386_FP_SAVE_H_ +#define _I386_FP_SAVE_H_ + +#if defined (__i386__) || defined (__x86_64__) + +/* + * Control register + */ +#define FPC_IE 0x0001 /* enable invalid operation + * exception */ +#define FPC_IM FPC_IE +#define FPC_DE 0x0002 /* enable denormalized operation + * exception */ +#define FPC_DM FPC_DE +#define FPC_ZE 0x0004 /* enable zero-divide exception */ +#define FPC_ZM FPC_ZE +#define FPC_OE 0x0008 /* enable overflow exception */ +#define FPC_OM FPC_OE +#define FPC_UE 0x0010 /* enable underflow exception */ +#define FPC_PE 0x0020 /* enable precision exception */ +#define FPC_PC 0x0300 /* precision control: */ +#define FPC_PC_24 0x0000 /* 24 bits */ +#define FPC_PC_53 0x0200 /* 53 bits */ +#define FPC_PC_64 0x0300 /* 64 bits */ +#define FPC_RC 0x0c00 /* rounding control: */ +#define FPC_RC_RN 0x0000 /* round to nearest or even */ +#define FPC_RC_RD 0x0400 /* round down */ +#define FPC_RC_RU 0x0800 /* round up */ +#define FPC_RC_CHOP 0x0c00 /* chop */ +#define FPC_IC 0x1000 /* infinity control (obsolete) */ +#define FPC_IC_PROJ 0x0000 /* projective infinity */ +#define FPC_IC_AFF 0x1000 /* affine infinity (std) */ + +/* + * Status register + */ +#define FPS_IE 0x0001 /* invalid operation */ +#define FPS_DE 0x0002 /* denormalized operand */ +#define FPS_ZE 0x0004 /* divide by zero */ +#define FPS_OE 0x0008 /* overflow */ +#define FPS_UE 0x0010 /* underflow */ +#define FPS_PE 0x0020 /* precision */ +#define FPS_SF 0x0040 /* stack flag */ +#define FPS_ES 0x0080 /* error summary */ +#define FPS_C0 0x0100 /* condition code bit 0 */ +#define FPS_C1 0x0200 /* condition code bit 1 */ +#define FPS_C2 0x0400 /* condition code bit 2 */ +#define FPS_TOS 0x3800 /* top-of-stack pointer */ +#define FPS_TOS_SHIFT 11 +#define FPS_C3 0x4000 /* condition code bit 3 */ +#define FPS_BUSY 0x8000 /* FPU busy */ + +/* + * Kind of floating-point support provided by kernel. + */ +#define FP_NO 0 /* no floating point */ +#define FP_SOFT 1 /* software FP emulator */ +#define FP_287 2 /* 80287 */ +#define FP_387 3 /* 80387 or 80486 */ +#define FP_FXSR 4 /* Fast save/restore SIMD Extension */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _I386_FP_SAVE_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/kern_return.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/kern_return.h new file mode 100644 index 0000000000000000000000000000000000000000..3a12665ead3eff615cdde628552e80bfd14fe773 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/kern_return.h @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + */ + +/* + * File: kern_return.h + * Author: Avadis Tevanian, Jr., Michael Wayne Young + * Date: 1985 + * + * Machine-dependent kernel return definitions. + */ + +#ifndef _MACH_I386_KERN_RETURN_H_ +#define _MACH_I386_KERN_RETURN_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#ifndef ASSEMBLER +typedef int kern_return_t; +#endif /* ASSEMBLER */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_KERN_RETURN_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/processor_info.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/processor_info.h new file mode 100644 index 0000000000000000000000000000000000000000..5a9aeac9cbc1ca485988f3178f374c7ccb0523e8 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/processor_info.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2000 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@ + */ +/* + * File: mach/i386/processor_info.h + * + * Data structure definitions for i386 specific processor control + */ + +#ifndef _MACH_I386_PROCESSOR_INFO_H_ +#define _MACH_I386_PROCESSOR_INFO_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_PROCESSOR_INFO_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/rpc.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/rpc.h new file mode 100644 index 0000000000000000000000000000000000000000..fcd2829f6b90b88dfb7500e60dfe63f72ee33419 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/rpc.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ + +#ifndef _MACH_I386_RPC_H_ +#define _MACH_I386_RPC_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_RPC_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/thread_state.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/thread_state.h new file mode 100644 index 0000000000000000000000000000000000000000..421917aeb35bd6644a6210da518b57a50e9ad8bd --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/thread_state.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ + +#ifndef _MACH_I386_THREAD_STATE_H_ +#define _MACH_I386_THREAD_STATE_H_ + +#if defined (__i386__) || defined (__x86_64__) + +/* Size of maximum exported thread state in 32-bit words */ +#define I386_THREAD_STATE_MAX (614) /* Size of biggest state possible */ + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_THREAD_STATE_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/thread_status.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/thread_status.h new file mode 100644 index 0000000000000000000000000000000000000000..d401a11fd0fc2bbb2fce7c05e2ce123eebc49cde --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/thread_status.h @@ -0,0 +1,366 @@ +/* + * 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@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + */ +/* + * File: thread_status.h + * Author: Avadis Tevanian, Jr. + * Date: 1985 + * + * This file contains the structure definitions for the thread + * state as applied to I386 processors. + */ + +#ifndef _MACH_I386_THREAD_STATUS_H_ +#define _MACH_I386_THREAD_STATUS_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#include +#include +#include +#include +#include + + +/* + * the i386_xxxx form is kept for legacy purposes since these types + * are externally known... eventually they should be deprecated. + * our internal implementation has moved to the following naming convention + * + * x86_xxxx32 names are used to deal with 32 bit states + * x86_xxxx64 names are used to deal with 64 bit states + * x86_xxxx names are used to deal with either 32 or 64 bit states + * via a self-describing mechanism + */ + +/* + * these are the legacy names which should be deprecated in the future + * they are externally known which is the only reason we don't just get + * rid of them + */ +#define i386_THREAD_STATE 1 +#define i386_FLOAT_STATE 2 +#define i386_EXCEPTION_STATE 3 + +/* + * THREAD_STATE_FLAVOR_LIST 0 + * these are the supported flavors + */ +#define x86_THREAD_STATE32 1 +#define x86_FLOAT_STATE32 2 +#define x86_EXCEPTION_STATE32 3 +#define x86_THREAD_STATE64 4 +#define x86_FLOAT_STATE64 5 +#define x86_EXCEPTION_STATE64 6 +#define x86_THREAD_STATE 7 +#define x86_FLOAT_STATE 8 +#define x86_EXCEPTION_STATE 9 +#define x86_DEBUG_STATE32 10 +#define x86_DEBUG_STATE64 11 +#define x86_DEBUG_STATE 12 +#define THREAD_STATE_NONE 13 +/* 14 and 15 are used for the internal x86_SAVED_STATE flavours */ +/* Arrange for flavors to take sequential values, 32-bit, 64-bit, non-specific */ +#define x86_AVX_STATE32 16 +#define x86_AVX_STATE64 (x86_AVX_STATE32 + 1) +#define x86_AVX_STATE (x86_AVX_STATE32 + 2) +#define x86_AVX512_STATE32 19 +#define x86_AVX512_STATE64 (x86_AVX512_STATE32 + 1) +#define x86_AVX512_STATE (x86_AVX512_STATE32 + 2) +#define x86_PAGEIN_STATE 22 +#define x86_THREAD_FULL_STATE64 23 +#define x86_INSTRUCTION_STATE 24 +#define x86_LAST_BRANCH_STATE 25 + +/* + * Largest state on this machine: + * (be sure mach/machine/thread_state.h matches!) + */ +#define THREAD_MACHINE_STATE_MAX THREAD_STATE_MAX + +/* + * 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 + * platform. The macro must be manually updated to include all of the valid + * exception flavors as defined above. + */ +#define VALID_THREAD_STATE_FLAVOR(x) \ + ((x == x86_THREAD_STATE32) || \ + (x == x86_FLOAT_STATE32) || \ + (x == x86_EXCEPTION_STATE32) || \ + (x == x86_DEBUG_STATE32) || \ + (x == x86_THREAD_STATE64) || \ + (x == x86_THREAD_FULL_STATE64) || \ + (x == x86_FLOAT_STATE64) || \ + (x == x86_EXCEPTION_STATE64) || \ + (x == x86_DEBUG_STATE64) || \ + (x == x86_THREAD_STATE) || \ + (x == x86_FLOAT_STATE) || \ + (x == x86_EXCEPTION_STATE) || \ + (x == x86_DEBUG_STATE) || \ + (x == x86_AVX_STATE32) || \ + (x == x86_AVX_STATE64) || \ + (x == x86_AVX_STATE) || \ + (x == x86_AVX512_STATE32) || \ + (x == x86_AVX512_STATE64) || \ + (x == x86_AVX512_STATE) || \ + (x == x86_PAGEIN_STATE) || \ + (x == x86_INSTRUCTION_STATE) || \ + (x == x86_LAST_BRANCH_STATE) || \ + (x == THREAD_STATE_NONE)) + +struct x86_state_hdr { + uint32_t flavor; + uint32_t count; +}; +typedef struct x86_state_hdr x86_state_hdr_t; + +/* + * Default segment register values. + */ + +#define USER_CODE_SELECTOR 0x0017 +#define USER_DATA_SELECTOR 0x001f +#define KERN_CODE_SELECTOR 0x0008 +#define KERN_DATA_SELECTOR 0x0010 + +/* + * to be deprecated in the future + */ +typedef _STRUCT_X86_THREAD_STATE32 i386_thread_state_t; +#define i386_THREAD_STATE_COUNT ((mach_msg_type_number_t) \ + ( sizeof (i386_thread_state_t) / sizeof (int) )) + +typedef _STRUCT_X86_THREAD_STATE32 x86_thread_state32_t; +#define x86_THREAD_STATE32_COUNT ((mach_msg_type_number_t) \ + ( sizeof (x86_thread_state32_t) / sizeof (int) )) + +/* + * to be deprecated in the future + */ +typedef _STRUCT_X86_FLOAT_STATE32 i386_float_state_t; +#define i386_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof(i386_float_state_t)/sizeof(unsigned int))) + +typedef _STRUCT_X86_FLOAT_STATE32 x86_float_state32_t; +#define x86_FLOAT_STATE32_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_float_state32_t)/sizeof(unsigned int))) + +typedef _STRUCT_X86_AVX_STATE32 x86_avx_state32_t; +#define x86_AVX_STATE32_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_avx_state32_t)/sizeof(unsigned int))) + +typedef _STRUCT_X86_AVX512_STATE32 x86_avx512_state32_t; +#define x86_AVX512_STATE32_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_avx512_state32_t)/sizeof(unsigned int))) + +/* + * to be deprecated in the future + */ +typedef _STRUCT_X86_EXCEPTION_STATE32 i386_exception_state_t; +#define i386_EXCEPTION_STATE_COUNT ((mach_msg_type_number_t) \ + ( sizeof (i386_exception_state_t) / sizeof (int) )) + +typedef _STRUCT_X86_EXCEPTION_STATE32 x86_exception_state32_t; +#define x86_EXCEPTION_STATE32_COUNT ((mach_msg_type_number_t) \ + ( sizeof (x86_exception_state32_t) / sizeof (int) )) + +#define I386_EXCEPTION_STATE_COUNT i386_EXCEPTION_STATE_COUNT + +typedef _STRUCT_X86_DEBUG_STATE32 x86_debug_state32_t; +#define x86_DEBUG_STATE32_COUNT ((mach_msg_type_number_t) \ + ( sizeof (x86_debug_state32_t) / sizeof (int) )) + +#define X86_DEBUG_STATE32_COUNT x86_DEBUG_STATE32_COUNT + +typedef _STRUCT_X86_THREAD_STATE64 x86_thread_state64_t; +#define x86_THREAD_STATE64_COUNT ((mach_msg_type_number_t) \ + ( sizeof (x86_thread_state64_t) / sizeof (int) )) + +typedef _STRUCT_X86_THREAD_FULL_STATE64 x86_thread_full_state64_t; +#define x86_THREAD_FULL_STATE64_COUNT ((mach_msg_type_number_t) \ + ( sizeof (x86_thread_full_state64_t) / sizeof (int) )) + +typedef _STRUCT_X86_FLOAT_STATE64 x86_float_state64_t; +#define x86_FLOAT_STATE64_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_float_state64_t)/sizeof(unsigned int))) + +typedef _STRUCT_X86_AVX_STATE64 x86_avx_state64_t; +#define x86_AVX_STATE64_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_avx_state64_t)/sizeof(unsigned int))) + +typedef _STRUCT_X86_AVX512_STATE64 x86_avx512_state64_t; +#define x86_AVX512_STATE64_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_avx512_state64_t)/sizeof(unsigned int))) + +typedef _STRUCT_X86_EXCEPTION_STATE64 x86_exception_state64_t; +#define x86_EXCEPTION_STATE64_COUNT ((mach_msg_type_number_t) \ + ( sizeof (x86_exception_state64_t) / sizeof (int) )) + +#define X86_EXCEPTION_STATE64_COUNT x86_EXCEPTION_STATE64_COUNT + +typedef _STRUCT_X86_DEBUG_STATE64 x86_debug_state64_t; +#define x86_DEBUG_STATE64_COUNT ((mach_msg_type_number_t) \ + ( sizeof (x86_debug_state64_t) / sizeof (int) )) + +#define X86_DEBUG_STATE64_COUNT x86_DEBUG_STATE64_COUNT + +typedef _STRUCT_X86_PAGEIN_STATE x86_pagein_state_t; +#define x86_PAGEIN_STATE_COUNT \ + ((mach_msg_type_number_t)(sizeof(x86_pagein_state_t) / sizeof(int))) + +#define X86_PAGEIN_STATE_COUNT x86_PAGEIN_STATE_COUNT + +typedef _STRUCT_X86_INSTRUCTION_STATE x86_instruction_state_t; +#define x86_INSTRUCTION_STATE_COUNT \ + ((mach_msg_type_number_t)(sizeof(x86_instruction_state_t) / sizeof(int))) + +#define X86_INSTRUCTION_STATE_COUNT x86_INSTRUCTION_STATE_COUNT + +typedef _STRUCT_LAST_BRANCH_STATE last_branch_state_t; +#define x86_LAST_BRANCH_STATE_COUNT \ + ((mach_msg_type_number_t)(sizeof(last_branch_state_t) / sizeof(int))) + +#define X86_LAST_BRANCH_STATE_COUNT x86_LAST_BRANCH_STATE_COUNT + + +/* + * Combined thread, float and exception states + */ +struct x86_thread_state { + x86_state_hdr_t tsh; + union { + x86_thread_state32_t ts32; + x86_thread_state64_t ts64; + } uts; +}; + +struct x86_float_state { + x86_state_hdr_t fsh; + union { + x86_float_state32_t fs32; + x86_float_state64_t fs64; + } ufs; +}; + +struct x86_exception_state { + x86_state_hdr_t esh; + union { + x86_exception_state32_t es32; + x86_exception_state64_t es64; + } ues; +}; + +struct x86_debug_state { + x86_state_hdr_t dsh; + union { + x86_debug_state32_t ds32; + x86_debug_state64_t ds64; + } uds; +}; + +struct x86_avx_state { + x86_state_hdr_t ash; + union { + x86_avx_state32_t as32; + x86_avx_state64_t as64; + } ufs; +}; + +struct x86_avx512_state { + x86_state_hdr_t ash; + union { + x86_avx512_state32_t as32; + x86_avx512_state64_t as64; + } ufs; +}; + +typedef struct x86_thread_state x86_thread_state_t; +#define x86_THREAD_STATE_COUNT ((mach_msg_type_number_t) \ + ( sizeof (x86_thread_state_t) / sizeof (int) )) + +typedef struct x86_float_state x86_float_state_t; +#define x86_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_float_state_t)/sizeof(unsigned int))) + +typedef struct x86_exception_state x86_exception_state_t; +#define x86_EXCEPTION_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_exception_state_t)/sizeof(unsigned int))) + +typedef struct x86_debug_state x86_debug_state_t; +#define x86_DEBUG_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_debug_state_t)/sizeof(unsigned int))) + +typedef struct x86_avx_state x86_avx_state_t; +#define x86_AVX_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_avx_state_t)/sizeof(unsigned int))) + +typedef struct x86_avx512_state x86_avx512_state_t; +#define x86_AVX512_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof(x86_avx512_state_t)/sizeof(unsigned int))) + +/* + * Machine-independent way for servers and Mach's exception mechanism to + * choose the most efficient state flavor for exception RPC's: + */ +#define MACHINE_THREAD_STATE x86_THREAD_STATE +#define MACHINE_THREAD_STATE_COUNT x86_THREAD_STATE_COUNT + + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_THREAD_STATUS_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/vm_param.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/vm_param.h new file mode 100644 index 0000000000000000000000000000000000000000..953f4a160541efe65833a5fce2c637e50af2ce62 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/vm_param.h @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2000-2012 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@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ + +/* + * Copyright (c) 1994 The University of Utah and + * the Computer Systems Laboratory at the University of Utah (CSL). + * All rights reserved. + * + * Permission to use, copy, modify and distribute this software is hereby + * granted provided that (1) source code retains these copyright, permission, + * and disclaimer notices, and (2) redistributions including binaries + * reproduce the notices in supporting documentation, and (3) all advertising + * materials mentioning features or use of this software display the following + * acknowledgement: ``This product includes software developed by the + * Computer Systems Laboratory at the University of Utah.'' + * + * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS + * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF + * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * CSL requests users of this software to return to csl-dist@cs.utah.edu any + * improvements that they make and grant CSL redistribution rights. + * + */ + +/* + * File: vm_param.h + * Author: Avadis Tevanian, Jr. + * Date: 1985 + * + * I386 machine dependent virtual memory parameters. + * Most of the declarations are preceeded by I386_ (or i386_) + * which is OK because only I386 specific code will be using + * them. + */ + +#ifndef _MACH_I386_VM_PARAM_H_ +#define _MACH_I386_VM_PARAM_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#if !defined(KERNEL) && !defined(__ASSEMBLER__) + +#include +#endif + +#define BYTE_SIZE 8 /* byte size in bits */ + +#define I386_PGBYTES 4096 /* bytes per 80386 page */ +#define I386_PGSHIFT 12 /* bitshift for pages */ + + +#if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || (__MAC_OS_X_VERSION_MIN_REQUIRED < 101600) +#define PAGE_SHIFT I386_PGSHIFT +#define PAGE_SIZE I386_PGBYTES +#define PAGE_MASK (PAGE_SIZE-1) +#else /* !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || (__MAC_OS_X_VERSION_MIN_REQUIRED < 101600) */ +#define PAGE_SHIFT vm_page_shift +#define PAGE_SIZE vm_page_size +#define PAGE_MASK vm_page_mask +#endif /* !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || (__MAC_OS_X_VERSION_MIN_REQUIRED < 101600) */ + +#define PAGE_MAX_SHIFT 14 +#define PAGE_MAX_SIZE (1 << PAGE_MAX_SHIFT) +#define PAGE_MAX_MASK (PAGE_MAX_SIZE-1) + +#define PAGE_MIN_SHIFT 12 +#define PAGE_MIN_SIZE (1 << PAGE_MIN_SHIFT) +#define PAGE_MIN_MASK (PAGE_MIN_SIZE-1) + + +#define VM_MIN_ADDRESS64 ((user_addr_t) 0x0000000000000000ULL) +/* + * Default top of user stack, grows down from here. + * Address chosen to be 1G (3rd level page table entry) below SHARED_REGION_BASE_X86_64 + * minus additional 1Meg (1/2 1st level page table coverage) to allow a redzone after it. + */ +#define VM_USRSTACK64 ((user_addr_t) (0x00007FF7C0000000ull - (1024 * 1024))) + +/* + * XXX TODO: Obsolete? + */ +#define VM_DYLD64 ((user_addr_t) 0x00007FFF5FC00000ULL) +#define VM_LIB64_SHR_DATA ((user_addr_t) 0x00007FFF60000000ULL) +#define VM_LIB64_SHR_TEXT ((user_addr_t) 0x00007FFF80000000ULL) +/* + * the end of the usable user address space , for now about 47 bits. + * the 64 bit commpage is past the end of this + */ +#define VM_MAX_PAGE_ADDRESS ((user_addr_t) 0x00007FFFFFE00000ULL) +/* + * canonical end of user address space for limits checking + */ +#define VM_MAX_USER_PAGE_ADDRESS ((user_addr_t)0x00007FFFFFFFF000ULL) + + +/* system-wide values */ +#define MACH_VM_MIN_ADDRESS ((mach_vm_offset_t) 0) +#define MACH_VM_MAX_ADDRESS ((mach_vm_offset_t) VM_MAX_PAGE_ADDRESS) + +/* process-relative values (all 32-bit legacy only for now) */ +#define VM_MIN_ADDRESS ((vm_offset_t) 0) +#define VM_USRSTACK32 ((vm_offset_t) 0xC0000000) /* ASLR slides stack down by up to 1 MB */ +#define VM_MAX_ADDRESS ((vm_offset_t) 0xFFE00000) + + + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_VM_PARAM_H_ */ \ No newline at end of file diff --git a/lib/libc/include/x86_64-macos.13-none/mach/i386/vm_types.h b/lib/libc/include/x86_64-macos.13-none/mach/i386/vm_types.h new file mode 100644 index 0000000000000000000000000000000000000000..f3e956d3e2928995f942d8896b7649d7d991b178 --- /dev/null +++ b/lib/libc/include/x86_64-macos.13-none/mach/i386/vm_types.h @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + */ + +/* + * File: vm_types.h + * Author: Avadis Tevanian, Jr. + * Date: 1985 + * + * Header file for VM data types. I386 version. + */ + +#ifndef _MACH_I386_VM_TYPES_H_ +#define _MACH_I386_VM_TYPES_H_ + +#if defined (__i386__) || defined (__x86_64__) + +#ifndef ASSEMBLER + +#include +#include +#include + +/* + * natural_t and integer_t are Mach's legacy types for machine- + * independent integer types (unsigned, and signed, respectively). + * Their original purpose was to define other types in a machine/ + * compiler independent way. + * + * They also had an implicit "same size as pointer" characteristic + * to them (i.e. Mach's traditional types are very ILP32 or ILP64 + * centric). We support x86 ABIs that do not follow either of + * these models (specifically LP64). Therefore, we had to make a + * choice between making these types scale with pointers or stay + * tied to integers. Because their use is predominantly tied to + * to the size of an integer, we are keeping that association and + * breaking free from pointer size guarantees. + * + * New use of these types is discouraged. + */ +typedef __darwin_natural_t natural_t; +typedef int integer_t; + +/* + * A vm_offset_t is a type-neutral pointer, + * e.g. an offset into a virtual memory space. + */ +#ifdef __LP64__ +typedef uintptr_t vm_offset_t __kernel_ptr_semantics; +#else /* __LP64__ */ +typedef natural_t vm_offset_t __kernel_ptr_semantics; +#endif /* __LP64__ */ + +/* + * A vm_size_t is the proper type for e.g. + * expressing the difference between two + * vm_offset_t entities. + */ +#ifdef __LP64__ +typedef uintptr_t vm_size_t; +#else /* __LP64__ */ +typedef natural_t vm_size_t; +#endif /* __LP64__ */ + +/* + * This new type is independent of a particular vm map's + * implementation size - and represents appropriate types + * for all possible maps. This is used for interfaces + * where the size of the map is not known - or we don't + * want to have to distinguish. + */ +typedef uint64_t mach_vm_address_t __kernel_ptr_semantics; +typedef uint64_t mach_vm_offset_t __kernel_ptr_semantics; +typedef uint64_t mach_vm_size_t; + +typedef uint64_t vm_map_offset_t __kernel_ptr_semantics; +typedef uint64_t vm_map_address_t __kernel_ptr_semantics; +typedef uint64_t vm_map_size_t; + +typedef mach_vm_address_t mach_port_context_t; + + +#endif /* ASSEMBLER */ + +/* + * If composing messages by hand (please do not) + */ +#define MACH_MSG_TYPE_INTEGER_T MACH_MSG_TYPE_INTEGER_32 + +#endif /* defined (__i386__) || defined (__x86_64__) */ + +#endif /* _MACH_I386_VM_TYPES_H_ */ \ No newline at end of file diff --git a/lib/std/ascii.zig b/lib/std/ascii.zig index cd8b14e98fcd1669a202c062127ee94b6578d689..eac3ba05651ca1d686a62ce4da3e2c20ff235e99 100644 --- a/lib/std/ascii.zig +++ b/lib/std/ascii.zig @@ -555,22 +555,54 @@ test "ascii.endsWithIgnoreCase" { try std.testing.expect(!endsWithIgnoreCase("BoB", "Bo")); } -/// Finds `substr` in `container`, ignoring case, starting at `start_index`. -/// TODO boyer-moore algorithm -pub fn indexOfIgnoreCasePos(container: []const u8, start_index: usize, substr: []const u8) ?usize { - if (substr.len > container.len) return null; +/// Finds `needle` in `haystack`, ignoring case, starting at index 0. +pub fn indexOfIgnoreCase(haystack: []const u8, needle: []const u8) ?usize { + return indexOfIgnoreCasePos(haystack, 0, needle); +} +/// Finds `needle` in `haystack`, ignoring case, starting at `start_index`. +/// Uses Boyer-Moore-Horspool algorithm on large inputs; `indexOfIgnoreCasePosLinear` on small inputs. +pub fn indexOfIgnoreCasePos(haystack: []const u8, start_index: usize, needle: []const u8) ?usize { + if (needle.len > haystack.len) return null; + if (needle.len == 0) return start_index; + + if (haystack.len < 52 or needle.len <= 4) + return indexOfIgnoreCasePosLinear(haystack, start_index, needle); + + var skip_table: [256]usize = undefined; + boyerMooreHorspoolPreprocessIgnoreCase(needle, skip_table[0..]); + + var i: usize = start_index; + while (i <= haystack.len - needle.len) { + if (eqlIgnoreCase(haystack[i .. i + needle.len], needle)) return i; + i += skip_table[toLower(haystack[i + needle.len - 1])]; + } + + return null; +} + +/// Consider using `indexOfIgnoreCasePos` instead of this, which will automatically use a +/// more sophisticated algorithm on larger inputs. +pub fn indexOfIgnoreCasePosLinear(haystack: []const u8, start_index: usize, needle: []const u8) ?usize { var i: usize = start_index; - const end = container.len - substr.len; + const end = haystack.len - needle.len; while (i <= end) : (i += 1) { - if (eqlIgnoreCase(container[i .. i + substr.len], substr)) return i; + if (eqlIgnoreCase(haystack[i .. i + needle.len], needle)) return i; } return null; } -/// Finds `substr` in `container`, ignoring case, starting at index 0. -pub fn indexOfIgnoreCase(container: []const u8, substr: []const u8) ?usize { - return indexOfIgnoreCasePos(container, 0, substr); +fn boyerMooreHorspoolPreprocessIgnoreCase(pattern: []const u8, table: *[256]usize) void { + for (table) |*c| { + c.* = pattern.len; + } + + var i: usize = 0; + // The last item is intentionally ignored and the skip size will be pattern.len. + // This is the standard way Boyer-Moore-Horspool is implemented. + while (i < pattern.len - 1) : (i += 1) { + table[toLower(pattern[i])] = pattern.len - 1 - i; + } } test "indexOfIgnoreCase" { @@ -579,6 +611,9 @@ test "indexOfIgnoreCase" { try std.testing.expect(indexOfIgnoreCase("foO", "Foo").? == 0); try std.testing.expect(indexOfIgnoreCase("foo", "fool") == null); try std.testing.expect(indexOfIgnoreCase("FOO foo", "fOo").? == 0); + + try std.testing.expect(indexOfIgnoreCase("one two three four five six seven eight nine ten eleven", "ThReE fOUr").? == 8); + try std.testing.expect(indexOfIgnoreCase("one two three four five six seven eight nine ten eleven", "Two tWo") == null); } /// Returns the lexicographical order of two slices. O(n). diff --git a/lib/std/build/CheckObjectStep.zig b/lib/std/build/CheckObjectStep.zig index 315bbd9b038649089c98b68d3a27874a02513e14..63b361473b84c0dab0e8f9a495ac26f191fd352a 100644 --- a/lib/std/build/CheckObjectStep.zig +++ b/lib/std/build/CheckObjectStep.zig @@ -649,6 +649,8 @@ const WasmDumper = struct { try parseDumpNames(reader, writer, data); } else if (mem.eql(u8, name, "producers")) { try parseDumpProducers(reader, writer, data); + } else if (mem.eql(u8, name, "target_features")) { + try parseDumpFeatures(reader, writer, data); } // TODO: Implement parsing and dumping other custom sections (such as relocations) }, @@ -902,4 +904,19 @@ const WasmDumper = struct { } } } + + fn parseDumpFeatures(reader: anytype, writer: anytype, data: []const u8) !void { + const feature_count = try std.leb.readULEB128(u32, reader); + try writer.print("features {d}\n", .{feature_count}); + + var index: u32 = 0; + while (index < feature_count) : (index += 1) { + const prefix_byte = try std.leb.readULEB128(u8, reader); + const name_length = try std.leb.readULEB128(u32, reader); + const feature_name = data[reader.context.pos..][0..name_length]; + reader.context.pos += name_length; + + try writer.print("{c} {s}\n", .{ prefix_byte, feature_name }); + } + } }; diff --git a/lib/std/crypto/25519/ed25519.zig b/lib/std/crypto/25519/ed25519.zig index 7066b1a154198c779ac2698702bd7c2c520042ef..0a9db10d15ce6d6706f6e1ceb742f501c21c2ec4 100644 --- a/lib/std/crypto/25519/ed25519.zig +++ b/lib/std/crypto/25519/ed25519.zig @@ -16,27 +16,227 @@ const WeakPublicKeyError = crypto.errors.WeakPublicKeyError; /// Ed25519 (EdDSA) signatures. pub const Ed25519 = struct { /// The underlying elliptic curve. - pub const Curve = @import("edwards25519.zig").Edwards25519; - /// Length (in bytes) of a seed required to create a key pair. - pub const seed_length = 32; - /// Length (in bytes) of a compressed secret key. - pub const secret_length = 64; - /// Length (in bytes) of a compressed public key. - pub const public_length = 32; - /// Length (in bytes) of a signature. - pub const signature_length = 64; + pub const Curve = std.crypto.ecc.Edwards25519; + /// Length (in bytes) of optional random bytes, for non-deterministic signatures. pub const noise_length = 32; const CompressedScalar = Curve.scalar.CompressedScalar; const Scalar = Curve.scalar.Scalar; + /// An Ed25519 secret key. + pub const SecretKey = struct { + /// Length (in bytes) of a raw secret key. + pub const encoded_length = 64; + + bytes: [encoded_length]u8, + + /// Return the seed used to generate this secret key. + pub fn seed(self: SecretKey) [KeyPair.seed_length]u8 { + return self.bytes[0..KeyPair.seed_length].*; + } + + /// Return the raw public key bytes corresponding to this secret key. + pub fn publicKeyBytes(self: SecretKey) [PublicKey.encoded_length]u8 { + return self.bytes[KeyPair.seed_length..].*; + } + + /// Create a secret key from raw bytes. + pub fn fromBytes(bytes: [encoded_length]u8) !SecretKey { + return SecretKey{ .bytes = bytes }; + } + + /// Return the secret key as raw bytes. + pub fn toBytes(sk: SecretKey) [encoded_length]u8 { + return sk.bytes; + } + + // Return the clamped secret scalar and prefix for this secret key + fn scalarAndPrefix(self: SecretKey) struct { scalar: CompressedScalar, prefix: [32]u8 } { + var az: [Sha512.digest_length]u8 = undefined; + var h = Sha512.init(.{}); + h.update(&self.seed()); + h.final(&az); + + var s = az[0..32].*; + Curve.scalar.clamp(&s); + + return .{ .scalar = s, .prefix = az[32..].* }; + } + }; + + /// A Signer is used to incrementally compute a signature. + /// It can be obtained from a `KeyPair`, using the `signer()` function. + pub const Signer = struct { + h: Sha512, + scalar: CompressedScalar, + nonce: CompressedScalar, + r_bytes: [Curve.encoded_length]u8, + + fn init(scalar: CompressedScalar, nonce: CompressedScalar, public_key: PublicKey) (IdentityElementError || KeyMismatchError || NonCanonicalError || WeakPublicKeyError)!Signer { + const r = try Curve.basePoint.mul(nonce); + const r_bytes = r.toBytes(); + + var t: [64]u8 = undefined; + mem.copy(u8, t[0..32], &r_bytes); + mem.copy(u8, t[32..], &public_key.bytes); + var h = Sha512.init(.{}); + h.update(&t); + + return Signer{ .h = h, .scalar = scalar, .nonce = nonce, .r_bytes = r_bytes }; + } + + /// Add new data to the message being signed. + pub fn update(self: *Signer, data: []const u8) void { + self.h.update(data); + } + + /// Compute a signature over the entire message. + pub fn finalize(self: *Signer) Signature { + var hram64: [Sha512.digest_length]u8 = undefined; + self.h.final(&hram64); + const hram = Curve.scalar.reduce64(hram64); + + const s = Curve.scalar.mulAdd(hram, self.scalar, self.nonce); + + return Signature{ .r = self.r_bytes, .s = s }; + } + }; + + /// An Ed25519 public key. + pub const PublicKey = struct { + /// Length (in bytes) of a raw public key. + pub const encoded_length = 32; + + bytes: [encoded_length]u8, + + /// Create a public key from raw bytes. + pub fn fromBytes(bytes: [encoded_length]u8) NonCanonicalError!PublicKey { + try Curve.rejectNonCanonical(bytes); + return PublicKey{ .bytes = bytes }; + } + + /// Convert a public key to raw bytes. + pub fn toBytes(pk: PublicKey) [encoded_length]u8 { + return pk.bytes; + } + + fn signWithNonce(public_key: PublicKey, msg: []const u8, scalar: CompressedScalar, nonce: CompressedScalar) (IdentityElementError || NonCanonicalError || KeyMismatchError || WeakPublicKeyError)!Signature { + var st = try Signer.init(scalar, nonce, public_key); + st.update(msg); + return st.finalize(); + } + + fn computeNonceAndSign(public_key: PublicKey, msg: []const u8, noise: ?[noise_length]u8, scalar: CompressedScalar, prefix: []const u8) (IdentityElementError || NonCanonicalError || KeyMismatchError || WeakPublicKeyError)!Signature { + var h = Sha512.init(.{}); + if (noise) |*z| { + h.update(z); + } + h.update(prefix); + h.update(msg); + var nonce64: [64]u8 = undefined; + h.final(&nonce64); + + const nonce = Curve.scalar.reduce64(nonce64); + + return public_key.signWithNonce(msg, scalar, nonce); + } + }; + + /// A Verifier is used to incrementally verify a signature. + /// It can be obtained from a `Signature`, using the `verifier()` function. + pub const Verifier = struct { + h: Sha512, + s: CompressedScalar, + a: Curve, + expected_r: Curve, + + fn init(sig: Signature, public_key: PublicKey) (NonCanonicalError || EncodingError || IdentityElementError)!Verifier { + const r = sig.r; + const s = sig.s; + try Curve.scalar.rejectNonCanonical(s); + const a = try Curve.fromBytes(public_key.bytes); + try a.rejectIdentity(); + try Curve.rejectNonCanonical(r); + const expected_r = try Curve.fromBytes(r); + try expected_r.rejectIdentity(); + + var h = Sha512.init(.{}); + h.update(&r); + h.update(&public_key.bytes); + + return Verifier{ .h = h, .s = s, .a = a, .expected_r = expected_r }; + } + + /// Add new content to the message to be verified. + pub fn update(self: *Verifier, msg: []const u8) void { + self.h.update(msg); + } + + /// Verify that the signature is valid for the entire message. + pub fn verify(self: *Verifier) (SignatureVerificationError || WeakPublicKeyError || IdentityElementError)!void { + var hram64: [Sha512.digest_length]u8 = undefined; + self.h.final(&hram64); + const hram = Curve.scalar.reduce64(hram64); + + const sb_ah = try Curve.basePoint.mulDoubleBasePublic(self.s, self.a.neg(), hram); + if (self.expected_r.sub(sb_ah).clearCofactor().rejectIdentity()) |_| { + return error.SignatureVerificationFailed; + } else |_| {} + } + }; + + /// An Ed25519 signature. + pub const Signature = struct { + /// Length (in bytes) of a raw signature. + pub const encoded_length = Curve.encoded_length + @sizeOf(CompressedScalar); + + /// The R component of an EdDSA signature. + r: [Curve.encoded_length]u8, + /// The S component of an EdDSA signature. + s: CompressedScalar, + + /// Return the raw signature (r, s) in little-endian format. + pub fn toBytes(self: Signature) [encoded_length]u8 { + var bytes: [encoded_length]u8 = undefined; + mem.copy(u8, bytes[0 .. encoded_length / 2], &self.r); + mem.copy(u8, bytes[encoded_length / 2 ..], &self.s); + return bytes; + } + + /// Create a signature from a raw encoding of (r, s). + /// EdDSA always assumes little-endian. + pub fn fromBytes(bytes: [encoded_length]u8) Signature { + return Signature{ + .r = bytes[0 .. encoded_length / 2].*, + .s = bytes[encoded_length / 2 ..].*, + }; + } + + /// Create a Verifier for incremental verification of a signature. + pub fn verifier(self: Signature, public_key: PublicKey) (NonCanonicalError || EncodingError || IdentityElementError)!Verifier { + return Verifier.init(self, public_key); + } + + /// Verify the signature against a message and public key. + /// Return IdentityElement or NonCanonical if the public key or signature are not in the expected range, + /// or SignatureVerificationError if the signature is invalid for the given message and key. + pub fn verify(self: Signature, msg: []const u8, public_key: PublicKey) (IdentityElementError || NonCanonicalError || SignatureVerificationError || EncodingError || WeakPublicKeyError)!void { + var st = try Verifier.init(self, public_key); + st.update(msg); + return st.verify(); + } + }; + /// An Ed25519 key pair. pub const KeyPair = struct { + /// Length (in bytes) of a seed required to create a key pair. + pub const seed_length = noise_length; + /// Public part. - public_key: [public_length]u8, - /// Secret part. What we expose as a secret key is, under the hood, the concatenation of the seed and the public key. - secret_key: [secret_length]u8, + public_key: PublicKey, + /// Secret scalar. + secret_key: SecretKey, /// Derive a key pair from an optional secret seed. /// @@ -56,120 +256,101 @@ pub const Ed25519 = struct { var h = Sha512.init(.{}); h.update(&ss); h.final(&az); - const p = Curve.basePoint.clampedMul(az[0..32].*) catch return error.IdentityElement; - var sk: [secret_length]u8 = undefined; - mem.copy(u8, &sk, &ss); - const pk = p.toBytes(); - mem.copy(u8, sk[seed_length..], &pk); - - return KeyPair{ .public_key = pk, .secret_key = sk }; + const pk_p = Curve.basePoint.clampedMul(az[0..32].*) catch return error.IdentityElement; + const pk_bytes = pk_p.toBytes(); + var sk_bytes: [SecretKey.encoded_length]u8 = undefined; + mem.copy(u8, &sk_bytes, &ss); + mem.copy(u8, sk_bytes[seed_length..], &pk_bytes); + return KeyPair{ + .public_key = PublicKey.fromBytes(pk_bytes) catch unreachable, + .secret_key = try SecretKey.fromBytes(sk_bytes), + }; } /// Create a KeyPair from a secret key. - pub fn fromSecretKey(secret_key: [secret_length]u8) KeyPair { + pub fn fromSecretKey(secret_key: SecretKey) IdentityElementError!KeyPair { + const pk_p = try Curve.fromBytes(secret_key.publicKeyBytes()); + + // It is critical for EdDSA to use the correct public key. + // In order to enforce this, a SecretKey implicitly includes a copy of the public key. + // In Debug mode, we can still afford checking that the public key is correct for extra safety. + if (std.builtin.mode == .Debug) { + const recomputed_kp = try create(secret_key[0..seed_length].*); + debug.assert(recomputed_kp.public_key.p.toBytes() == pk_p.toBytes()); + } return KeyPair{ + .public_key = PublicKey{ .p = pk_p }, .secret_key = secret_key, - .public_key = secret_key[seed_length..].*, }; } + + /// Sign a message using the key pair. + /// The noise can be null in order to create deterministic signatures. + /// If deterministic signatures are not required, the noise should be randomly generated instead. + /// This helps defend against fault attacks. + pub fn sign(key_pair: KeyPair, msg: []const u8, noise: ?[noise_length]u8) (IdentityElementError || NonCanonicalError || KeyMismatchError || WeakPublicKeyError)!Signature { + if (!mem.eql(u8, &key_pair.secret_key.publicKeyBytes(), &key_pair.public_key.toBytes())) { + return error.KeyMismatch; + } + const scalar_and_prefix = key_pair.secret_key.scalarAndPrefix(); + return key_pair.public_key.computeNonceAndSign( + msg, + noise, + scalar_and_prefix.scalar, + &scalar_and_prefix.prefix, + ); + } + + /// Create a Signer, that can be used for incremental signing. + /// Note that the signature is not deterministic. + /// The noise parameter, if set, should be something unique for each message, + /// such as a random nonce, or a counter. + pub fn signer(key_pair: KeyPair, noise: ?[noise_length]u8) (IdentityElementError || KeyMismatchError || NonCanonicalError || WeakPublicKeyError)!Signer { + if (!mem.eql(u8, &key_pair.secret_key.publicKeyBytes(), &key_pair.public_key.toBytes())) { + return error.KeyMismatch; + } + const scalar_and_prefix = key_pair.secret_key.scalarAndPrefix(); + var h = Sha512.init(.{}); + h.update(&scalar_and_prefix.prefix); + var noise2: [noise_length]u8 = undefined; + crypto.random.bytes(&noise2); + if (noise) |*z| { + h.update(z); + } + var nonce64: [64]u8 = undefined; + h.final(&nonce64); + const nonce = Curve.scalar.reduce64(nonce64); + + return Signer.init(scalar_and_prefix.scalar, nonce, key_pair.public_key); + } }; - /// Sign a message using a key pair, and optional random noise. - /// Having noise creates non-standard, non-deterministic signatures, - /// but has been proven to increase resilience against fault attacks. - pub fn sign(msg: []const u8, key_pair: KeyPair, noise: ?[noise_length]u8) (IdentityElementError || WeakPublicKeyError || KeyMismatchError)![signature_length]u8 { - const seed = key_pair.secret_key[0..seed_length]; - const public_key = key_pair.secret_key[seed_length..]; - if (!mem.eql(u8, public_key, &key_pair.public_key)) { - return error.KeyMismatch; - } - var az: [Sha512.digest_length]u8 = undefined; - var h = Sha512.init(.{}); - h.update(seed); - h.final(&az); - - h = Sha512.init(.{}); - if (noise) |*z| { - h.update(z); - } - h.update(az[32..]); - h.update(msg); - var nonce64: [64]u8 = undefined; - h.final(&nonce64); - const nonce = Curve.scalar.reduce64(nonce64); - const r = try Curve.basePoint.mul(nonce); - - var sig: [signature_length]u8 = undefined; - mem.copy(u8, sig[0..32], &r.toBytes()); - mem.copy(u8, sig[32..], public_key); - h = Sha512.init(.{}); - h.update(&sig); - h.update(msg); - var hram64: [Sha512.digest_length]u8 = undefined; - h.final(&hram64); - const hram = Curve.scalar.reduce64(hram64); - - var x = az[0..32]; - Curve.scalar.clamp(x); - const s = Curve.scalar.mulAdd(hram, x.*, nonce); - mem.copy(u8, sig[32..], s[0..]); - return sig; - } - - /// Verify an Ed25519 signature given a message and a public key. - /// Returns error.SignatureVerificationFailed is the signature verification failed. - pub fn verify(sig: [signature_length]u8, msg: []const u8, public_key: [public_length]u8) (SignatureVerificationError || WeakPublicKeyError || EncodingError || NonCanonicalError || IdentityElementError)!void { - const r = sig[0..32]; - const s = sig[32..64]; - try Curve.scalar.rejectNonCanonical(s.*); - try Curve.rejectNonCanonical(public_key); - const a = try Curve.fromBytes(public_key); - try a.rejectIdentity(); - try Curve.rejectNonCanonical(r.*); - const expected_r = try Curve.fromBytes(r.*); - try expected_r.rejectIdentity(); - - var h = Sha512.init(.{}); - h.update(r); - h.update(&public_key); - h.update(msg); - var hram64: [Sha512.digest_length]u8 = undefined; - h.final(&hram64); - const hram = Curve.scalar.reduce64(hram64); - - const sb_ah = try Curve.basePoint.mulDoubleBasePublic(s.*, a.neg(), hram); - if (expected_r.sub(sb_ah).clearCofactor().rejectIdentity()) |_| { - return error.SignatureVerificationFailed; - } else |_| {} - } - /// A (signature, message, public_key) tuple for batch verification pub const BatchElement = struct { - sig: [signature_length]u8, + sig: Signature, msg: []const u8, - public_key: [public_length]u8, + public_key: PublicKey, }; /// Verify several signatures in a single operation, much faster than verifying signatures one-by-one pub fn verifyBatch(comptime count: usize, signature_batch: [count]BatchElement) (SignatureVerificationError || IdentityElementError || WeakPublicKeyError || EncodingError || NonCanonicalError)!void { - var r_batch: [count][32]u8 = undefined; - var s_batch: [count][32]u8 = undefined; + var r_batch: [count]CompressedScalar = undefined; + var s_batch: [count]CompressedScalar = undefined; var a_batch: [count]Curve = undefined; var expected_r_batch: [count]Curve = undefined; for (signature_batch) |signature, i| { - const r = signature.sig[0..32]; - const s = signature.sig[32..64]; - try Curve.scalar.rejectNonCanonical(s.*); - try Curve.rejectNonCanonical(signature.public_key); - const a = try Curve.fromBytes(signature.public_key); + const r = signature.sig.r; + const s = signature.sig.s; + try Curve.scalar.rejectNonCanonical(s); + const a = try Curve.fromBytes(signature.public_key.bytes); try a.rejectIdentity(); - try Curve.rejectNonCanonical(r.*); - const expected_r = try Curve.fromBytes(r.*); + try Curve.rejectNonCanonical(r); + const expected_r = try Curve.fromBytes(r); try expected_r.rejectIdentity(); expected_r_batch[i] = expected_r; - r_batch[i] = r.*; - s_batch[i] = s.*; + r_batch[i] = r; + s_batch[i] = s; a_batch[i] = a; } @@ -177,7 +358,7 @@ pub const Ed25519 = struct { for (signature_batch) |signature, i| { var h = Sha512.init(.{}); h.update(&r_batch[i]); - h.update(&signature.public_key); + h.update(&signature.public_key.bytes); h.update(signature.msg); var hram64: [Sha512.digest_length]u8 = undefined; h.final(&hram64); @@ -212,7 +393,7 @@ pub const Ed25519 = struct { } /// Ed25519 signatures with key blinding. - pub const BlindKeySignatures = struct { + pub const key_blinding = struct { /// Length (in bytes) of a blinding seed. pub const blind_seed_length = 32; @@ -220,82 +401,70 @@ pub const Ed25519 = struct { pub const BlindSecretKey = struct { prefix: [64]u8, blind_scalar: CompressedScalar, - blind_public_key: CompressedScalar, + blind_public_key: BlindPublicKey, + }; + + /// A blind public key. + pub const BlindPublicKey = struct { + /// Public key equivalent, that can used for signature verification. + key: PublicKey, + + /// Recover a public key from a blind version of it. + pub fn unblind(blind_public_key: BlindPublicKey, blind_seed: [blind_seed_length]u8, ctx: []const u8) (IdentityElementError || NonCanonicalError || EncodingError || WeakPublicKeyError)!PublicKey { + const blind_h = blindCtx(blind_seed, ctx); + const inv_blind_factor = Scalar.fromBytes(blind_h[0..32].*).invert().toBytes(); + const pk_p = try (try Curve.fromBytes(blind_public_key.key.bytes)).mul(inv_blind_factor); + return PublicKey.fromBytes(pk_p.toBytes()); + } }; /// A blind key pair. pub const BlindKeyPair = struct { - blind_public_key: [public_length]u8, + blind_public_key: BlindPublicKey, blind_secret_key: BlindSecretKey, + + /// Create an blind key pair from an existing key pair, a blinding seed and a context. + pub fn init(key_pair: Ed25519.KeyPair, blind_seed: [blind_seed_length]u8, ctx: []const u8) (NonCanonicalError || IdentityElementError)!BlindKeyPair { + var h: [Sha512.digest_length]u8 = undefined; + Sha512.hash(&key_pair.secret_key.seed(), &h, .{}); + Curve.scalar.clamp(h[0..32]); + const scalar = Curve.scalar.reduce(h[0..32].*); + + const blind_h = blindCtx(blind_seed, ctx); + const blind_factor = Curve.scalar.reduce(blind_h[0..32].*); + + const blind_scalar = Curve.scalar.mul(scalar, blind_factor); + const blind_public_key = BlindPublicKey{ + .key = try PublicKey.fromBytes((Curve.basePoint.mul(blind_scalar) catch return error.IdentityElement).toBytes()), + }; + + var prefix: [64]u8 = undefined; + mem.copy(u8, prefix[0..32], h[32..64]); + mem.copy(u8, prefix[32..64], blind_h[32..64]); + + const blind_secret_key = BlindSecretKey{ + .prefix = prefix, + .blind_scalar = blind_scalar, + .blind_public_key = blind_public_key, + }; + return BlindKeyPair{ + .blind_public_key = blind_public_key, + .blind_secret_key = blind_secret_key, + }; + } + + /// Sign a message using a blind key pair, and optional random noise. + /// Having noise creates non-standard, non-deterministic signatures, + /// but has been proven to increase resilience against fault attacks. + pub fn sign(key_pair: BlindKeyPair, msg: []const u8, noise: ?[noise_length]u8) (IdentityElementError || KeyMismatchError || NonCanonicalError || WeakPublicKeyError)!Signature { + const scalar = key_pair.blind_secret_key.blind_scalar; + const prefix = key_pair.blind_secret_key.prefix; + + return (try PublicKey.fromBytes(key_pair.blind_public_key.key.bytes)) + .computeNonceAndSign(msg, noise, scalar, &prefix); + } }; - /// Blind an existing key pair with a blinding seed and a context. - pub fn blind(key_pair: Ed25519.KeyPair, blind_seed: [blind_seed_length]u8, ctx: []const u8) !BlindKeyPair { - var h: [Sha512.digest_length]u8 = undefined; - Sha512.hash(key_pair.secret_key[0..32], &h, .{}); - Curve.scalar.clamp(h[0..32]); - const scalar = Curve.scalar.reduce(h[0..32].*); - - const blind_h = blindCtx(blind_seed, ctx); - const blind_factor = Curve.scalar.reduce(blind_h[0..32].*); - - const blind_scalar = Curve.scalar.mul(scalar, blind_factor); - const blind_public_key = (Curve.basePoint.mul(blind_scalar) catch return error.IdentityElement).toBytes(); - - var prefix: [64]u8 = undefined; - mem.copy(u8, prefix[0..32], h[32..64]); - mem.copy(u8, prefix[32..64], blind_h[32..64]); - - const blind_secret_key = .{ - .prefix = prefix, - .blind_scalar = blind_scalar, - .blind_public_key = blind_public_key, - }; - return BlindKeyPair{ - .blind_public_key = blind_public_key, - .blind_secret_key = blind_secret_key, - }; - } - - /// Recover a public key from a blind version of it. - pub fn unblindPublicKey(blind_public_key: [public_length]u8, blind_seed: [blind_seed_length]u8, ctx: []const u8) ![public_length]u8 { - const blind_h = blindCtx(blind_seed, ctx); - const inv_blind_factor = Scalar.fromBytes(blind_h[0..32].*).invert().toBytes(); - const public_key = try (try Curve.fromBytes(blind_public_key)).mul(inv_blind_factor); - return public_key.toBytes(); - } - - /// Sign a message using a blind key pair, and optional random noise. - /// Having noise creates non-standard, non-deterministic signatures, - /// but has been proven to increase resilience against fault attacks. - pub fn sign(msg: []const u8, key_pair: BlindKeyPair, noise: ?[noise_length]u8) ![signature_length]u8 { - var h = Sha512.init(.{}); - if (noise) |*z| { - h.update(z); - } - h.update(&key_pair.blind_secret_key.prefix); - h.update(msg); - var nonce64: [64]u8 = undefined; - h.final(&nonce64); - - const nonce = Curve.scalar.reduce64(nonce64); - const r = try Curve.basePoint.mul(nonce); - - var sig: [signature_length]u8 = undefined; - mem.copy(u8, sig[0..32], &r.toBytes()); - mem.copy(u8, sig[32..], &key_pair.blind_public_key); - h = Sha512.init(.{}); - h.update(&sig); - h.update(msg); - var hram64: [Sha512.digest_length]u8 = undefined; - h.final(&hram64); - const hram = Curve.scalar.reduce64(hram64); - - const s = Curve.scalar.mulAdd(hram, key_pair.blind_secret_key.blind_scalar, nonce); - mem.copy(u8, sig[32..], s[0..]); - return sig; - } - /// Compute a blind context from a blinding seed and a context. fn blindCtx(blind_seed: [blind_seed_length]u8, ctx: []const u8) [Sha512.digest_length]u8 { var blind_h: [Sha512.digest_length]u8 = undefined; @@ -306,7 +475,13 @@ pub const Ed25519 = struct { hx.final(&blind_h); return blind_h; } + + pub const sign = @compileError("deprecated; use BlindKeyPair.sign instead"); + pub const unblindPublicKey = @compileError("deprecated; use BlindPublicKey.unblind instead"); }; + + pub const sign = @compileError("deprecated; use KeyPair.sign instead"); + pub const verify = @compileError("deprecated; use PublicKey.verify instead"); }; test "ed25519 key pair creation" { @@ -314,8 +489,8 @@ test "ed25519 key pair creation" { _ = try fmt.hexToBytes(seed[0..], "8052030376d47112be7f73ed7a019293dd12ad910b654455798b4667d73de166"); const key_pair = try Ed25519.KeyPair.create(seed); var buf: [256]u8 = undefined; - try std.testing.expectEqualStrings(try std.fmt.bufPrint(&buf, "{s}", .{std.fmt.fmtSliceHexUpper(&key_pair.secret_key)}), "8052030376D47112BE7F73ED7A019293DD12AD910B654455798B4667D73DE1662D6F7455D97B4A3A10D7293909D1A4F2058CB9A370E43FA8154BB280DB839083"); - try std.testing.expectEqualStrings(try std.fmt.bufPrint(&buf, "{s}", .{std.fmt.fmtSliceHexUpper(&key_pair.public_key)}), "2D6F7455D97B4A3A10D7293909D1A4F2058CB9A370E43FA8154BB280DB839083"); + try std.testing.expectEqualStrings(try std.fmt.bufPrint(&buf, "{s}", .{std.fmt.fmtSliceHexUpper(&key_pair.secret_key.toBytes())}), "8052030376D47112BE7F73ED7A019293DD12AD910B654455798B4667D73DE1662D6F7455D97B4A3A10D7293909D1A4F2058CB9A370E43FA8154BB280DB839083"); + try std.testing.expectEqualStrings(try std.fmt.bufPrint(&buf, "{s}", .{std.fmt.fmtSliceHexUpper(&key_pair.public_key.toBytes())}), "2D6F7455D97B4A3A10D7293909D1A4F2058CB9A370E43FA8154BB280DB839083"); } test "ed25519 signature" { @@ -323,11 +498,11 @@ test "ed25519 signature" { _ = try fmt.hexToBytes(seed[0..], "8052030376d47112be7f73ed7a019293dd12ad910b654455798b4667d73de166"); const key_pair = try Ed25519.KeyPair.create(seed); - const sig = try Ed25519.sign("test", key_pair, null); + const sig = try key_pair.sign("test", null); var buf: [128]u8 = undefined; - try std.testing.expectEqualStrings(try std.fmt.bufPrint(&buf, "{s}", .{std.fmt.fmtSliceHexUpper(&sig)}), "10A442B4A80CC4225B154F43BEF28D2472CA80221951262EB8E0DF9091575E2687CC486E77263C3418C757522D54F84B0359236ABBBD4ACD20DC297FDCA66808"); - try Ed25519.verify(sig, "test", key_pair.public_key); - try std.testing.expectError(error.SignatureVerificationFailed, Ed25519.verify(sig, "TEST", key_pair.public_key)); + try std.testing.expectEqualStrings(try std.fmt.bufPrint(&buf, "{s}", .{std.fmt.fmtSliceHexUpper(&sig.toBytes())}), "10A442B4A80CC4225B154F43BEF28D2472CA80221951262EB8E0DF9091575E2687CC486E77263C3418C757522D54F84B0359236ABBBD4ACD20DC297FDCA66808"); + try sig.verify("test", key_pair.public_key); + try std.testing.expectError(error.SignatureVerificationFailed, sig.verify("TEST", key_pair.public_key)); } test "ed25519 batch verification" { @@ -338,8 +513,8 @@ test "ed25519 batch verification" { var msg2: [32]u8 = undefined; crypto.random.bytes(&msg1); crypto.random.bytes(&msg2); - const sig1 = try Ed25519.sign(&msg1, key_pair, null); - const sig2 = try Ed25519.sign(&msg2, key_pair, null); + const sig1 = try key_pair.sign(&msg1, null); + const sig2 = try key_pair.sign(&msg2, null); var signature_batch = [_]Ed25519.BatchElement{ Ed25519.BatchElement{ .sig = sig1, @@ -355,9 +530,7 @@ test "ed25519 batch verification" { try Ed25519.verifyBatch(2, signature_batch); signature_batch[1].sig = sig1; - // TODO https://github.com/ziglang/zig/issues/12240 - const sig_len = signature_batch.len; - try std.testing.expectError(error.SignatureVerificationFailed, Ed25519.verifyBatch(sig_len, signature_batch)); + try std.testing.expectError(error.SignatureVerificationFailed, Ed25519.verifyBatch(signature_batch.len, signature_batch)); } } @@ -446,20 +619,25 @@ test "ed25519 test vectors" { for (entries) |entry| { var msg: [entry.msg_hex.len / 2]u8 = undefined; _ = try fmt.hexToBytes(&msg, entry.msg_hex); - var public_key: [32]u8 = undefined; - _ = try fmt.hexToBytes(&public_key, entry.public_key_hex); - var sig: [64]u8 = undefined; - _ = try fmt.hexToBytes(&sig, entry.sig_hex); + var public_key_bytes: [32]u8 = undefined; + _ = try fmt.hexToBytes(&public_key_bytes, entry.public_key_hex); + const public_key = Ed25519.PublicKey.fromBytes(public_key_bytes) catch |err| { + try std.testing.expectEqual(entry.expected.?, err); + continue; + }; + var sig_bytes: [64]u8 = undefined; + _ = try fmt.hexToBytes(&sig_bytes, entry.sig_hex); + const sig = Ed25519.Signature.fromBytes(sig_bytes); if (entry.expected) |error_type| { - try std.testing.expectError(error_type, Ed25519.verify(sig, &msg, public_key)); + try std.testing.expectError(error_type, sig.verify(&msg, public_key)); } else { - try Ed25519.verify(sig, &msg, public_key); + try sig.verify(&msg, public_key); } } } test "ed25519 with blind keys" { - const BlindKeySignatures = Ed25519.BlindKeySignatures; + const BlindKeyPair = Ed25519.key_blinding.BlindKeyPair; // Create a standard Ed25519 key pair const kp = try Ed25519.KeyPair.create(null); @@ -469,14 +647,30 @@ test "ed25519 with blind keys" { crypto.random.bytes(&blind); // Blind the key pair - const blind_kp = try BlindKeySignatures.blind(kp, blind, "ctx"); + const blind_kp = try BlindKeyPair.init(kp, blind, "ctx"); // Sign a message and check that it can be verified with the blind public key const msg = "test"; - const sig = try BlindKeySignatures.sign(msg, blind_kp, null); - try Ed25519.verify(sig, msg, blind_kp.blind_public_key); + const sig = try blind_kp.sign(msg, null); + try sig.verify(msg, blind_kp.blind_public_key.key); // Unblind the public key - const pk = try BlindKeySignatures.unblindPublicKey(blind_kp.blind_public_key, blind, "ctx"); - try std.testing.expectEqualSlices(u8, &pk, &kp.public_key); + const pk = try blind_kp.blind_public_key.unblind(blind, "ctx"); + try std.testing.expectEqualSlices(u8, &pk.toBytes(), &kp.public_key.toBytes()); +} + +test "ed25519 signatures with streaming" { + const kp = try Ed25519.KeyPair.create(null); + + var signer = try kp.signer(null); + signer.update("mes"); + signer.update("sage"); + const sig = signer.finalize(); + + try sig.verify("message", kp.public_key); + + var verifier = try sig.verifier(kp.public_key); + verifier.update("mess"); + verifier.update("age"); + try verifier.verify(); } diff --git a/lib/std/crypto/25519/x25519.zig b/lib/std/crypto/25519/x25519.zig index d935513ab6ab8c97943a085bb7324f064ce2dcf2..22bcf0013682dcd08840a8ca13cc5543dfdc656c 100644 --- a/lib/std/crypto/25519/x25519.zig +++ b/lib/std/crypto/25519/x25519.zig @@ -44,9 +44,9 @@ pub const X25519 = struct { /// Create a key pair from an Ed25519 key pair pub fn fromEd25519(ed25519_key_pair: crypto.sign.Ed25519.KeyPair) (IdentityElementError || EncodingError)!KeyPair { - const seed = ed25519_key_pair.secret_key[0..32]; + const seed = ed25519_key_pair.secret_key.seed(); var az: [Sha512.digest_length]u8 = undefined; - Sha512.hash(seed, &az, .{}); + Sha512.hash(&seed, &az, .{}); var sk = az[0..32].*; Curve.scalar.clamp(&sk); const pk = try publicKeyFromEd25519(ed25519_key_pair.public_key); @@ -64,8 +64,8 @@ pub const X25519 = struct { } /// Compute the X25519 equivalent to an Ed25519 public eky. - pub fn publicKeyFromEd25519(ed25519_public_key: [crypto.sign.Ed25519.public_length]u8) (IdentityElementError || EncodingError)![public_length]u8 { - const pk_ed = try crypto.ecc.Edwards25519.fromBytes(ed25519_public_key); + pub fn publicKeyFromEd25519(ed25519_public_key: crypto.sign.Ed25519.PublicKey) (IdentityElementError || EncodingError)![public_length]u8 { + const pk_ed = try crypto.ecc.Edwards25519.fromBytes(ed25519_public_key.bytes); const pk = try Curve.fromEdwards25519(pk_ed); return pk.toBytes(); } diff --git a/lib/std/crypto/bcrypt.zig b/lib/std/crypto/bcrypt.zig index d7a0e0fb80b7e17baea5f39fbb47645f2ccd99e6..f924ab681c7a6f7183985a3462e6f8e1fb6976c2 100644 --- a/lib/std/crypto/bcrypt.zig +++ b/lib/std/crypto/bcrypt.zig @@ -1,4 +1,5 @@ const std = @import("std"); +const base64 = std.base64; const crypto = std.crypto; const debug = std.debug; const fmt = std.fmt; @@ -533,71 +534,10 @@ const crypt_format = struct { pub const prefix = "$2"; // bcrypt has its own variant of base64, with its own alphabet and no padding - const Codec = struct { - const alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - - fn encode(b64: []u8, bin: []const u8) void { - var i: usize = 0; - var j: usize = 0; - while (i < bin.len) { - var c1 = bin[i]; - i += 1; - b64[j] = alphabet[c1 >> 2]; - j += 1; - c1 = (c1 & 3) << 4; - if (i >= bin.len) { - b64[j] = alphabet[c1]; - j += 1; - break; - } - var c2 = bin[i]; - i += 1; - c1 |= (c2 >> 4) & 0x0f; - b64[j] = alphabet[c1]; - j += 1; - c1 = (c2 & 0x0f) << 2; - if (i >= bin.len) { - b64[j] = alphabet[c1]; - j += 1; - break; - } - c2 = bin[i]; - i += 1; - c1 |= (c2 >> 6) & 3; - b64[j] = alphabet[c1]; - b64[j + 1] = alphabet[c2 & 0x3f]; - j += 2; - } - debug.assert(j == b64.len); - } - - fn decode(bin: []u8, b64: []const u8) EncodingError!void { - var i: usize = 0; - var j: usize = 0; - while (j < bin.len) { - const c1 = @intCast(u8, mem.indexOfScalar(u8, alphabet, b64[i]) orelse - return EncodingError.InvalidEncoding); - const c2 = @intCast(u8, mem.indexOfScalar(u8, alphabet, b64[i + 1]) orelse - return EncodingError.InvalidEncoding); - bin[j] = (c1 << 2) | ((c2 & 0x30) >> 4); - j += 1; - if (j >= bin.len) { - break; - } - const c3 = @intCast(u8, mem.indexOfScalar(u8, alphabet, b64[i + 2]) orelse - return EncodingError.InvalidEncoding); - bin[j] = ((c2 & 0x0f) << 4) | ((c3 & 0x3c) >> 2); - j += 1; - if (j >= bin.len) { - break; - } - const c4 = @intCast(u8, mem.indexOfScalar(u8, alphabet, b64[i + 3]) orelse - return EncodingError.InvalidEncoding); - bin[j] = ((c3 & 0x03) << 6) | c4; - j += 1; - i += 4; - } - } + const bcrypt_alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".*; + const Codec = struct { Encoder: base64.Base64Encoder, Decoder: base64.Base64Decoder }{ + .Encoder = base64.Base64Encoder.init(bcrypt_alphabet, null), + .Decoder = base64.Base64Decoder.init(bcrypt_alphabet, null), }; fn strHashInternal( @@ -608,10 +548,10 @@ const crypt_format = struct { var dk = bcrypt(password, salt, params); var salt_str: [salt_str_length]u8 = undefined; - Codec.encode(salt_str[0..], salt[0..]); + _ = Codec.Encoder.encode(salt_str[0..], salt[0..]); var ct_str: [ct_str_length]u8 = undefined; - Codec.encode(ct_str[0..], dk[0..]); + _ = Codec.Encoder.encode(ct_str[0..], dk[0..]); var s_buf: [hash_length]u8 = undefined; const s = fmt.bufPrint( @@ -709,7 +649,7 @@ const CryptFormatHasher = struct { const salt_str = str[7..][0..salt_str_length]; var salt: [salt_length]u8 = undefined; - try crypt_format.Codec.decode(salt[0..], salt_str[0..]); + crypt_format.Codec.Decoder.decode(salt[0..], salt_str[0..]) catch return HasherError.InvalidEncoding; const wanted_s = crypt_format.strHashInternal(password, salt, .{ .rounds_log = rounds_log }); if (!mem.eql(u8, wanted_s[0..], str[0..])) return HasherError.PasswordVerificationFailed; @@ -764,9 +704,9 @@ test "bcrypt codec" { var salt: [salt_length]u8 = undefined; crypto.random.bytes(&salt); var salt_str: [salt_str_length]u8 = undefined; - crypt_format.Codec.encode(salt_str[0..], salt[0..]); + _ = crypt_format.Codec.Encoder.encode(salt_str[0..], salt[0..]); var salt2: [salt_length]u8 = undefined; - try crypt_format.Codec.decode(salt2[0..], salt_str[0..]); + try crypt_format.Codec.Decoder.decode(salt2[0..], salt_str[0..]); try testing.expectEqualSlices(u8, salt[0..], salt2[0..]); } diff --git a/lib/std/crypto/benchmark.zig b/lib/std/crypto/benchmark.zig index 28d283048a08016da9e0ee909cc693396e85a109..d4bf3d26335a12b069f4e8a0589d74417def873d 100644 --- a/lib/std/crypto/benchmark.zig +++ b/lib/std/crypto/benchmark.zig @@ -130,7 +130,7 @@ pub fn benchmarkSignature(comptime Signature: anytype, comptime signatures_count { var i: usize = 0; while (i < signatures_count) : (i += 1) { - const sig = try Signature.sign(&msg, key_pair, null); + const sig = try key_pair.sign(&msg, null); mem.doNotOptimizeAway(&sig); } } @@ -147,14 +147,14 @@ const signature_verifications = [_]Crypto{Crypto{ .ty = crypto.sign.Ed25519, .na pub fn benchmarkSignatureVerification(comptime Signature: anytype, comptime signatures_count: comptime_int) !u64 { const msg = [_]u8{0} ** 64; const key_pair = try Signature.KeyPair.create(null); - const sig = try Signature.sign(&msg, key_pair, null); + const sig = try key_pair.sign(&msg, null); var timer = try Timer.start(); const start = timer.lap(); { var i: usize = 0; while (i < signatures_count) : (i += 1) { - try Signature.verify(sig, &msg, key_pair.public_key); + try sig.verify(&msg, key_pair.public_key); mem.doNotOptimizeAway(&sig); } } @@ -171,7 +171,7 @@ const batch_signature_verifications = [_]Crypto{Crypto{ .ty = crypto.sign.Ed2551 pub fn benchmarkBatchSignatureVerification(comptime Signature: anytype, comptime signatures_count: comptime_int) !u64 { const msg = [_]u8{0} ** 64; const key_pair = try Signature.KeyPair.create(null); - const sig = try Signature.sign(&msg, key_pair, null); + const sig = try key_pair.sign(&msg, null); var batch: [64]Signature.BatchElement = undefined; for (batch) |*element| { @@ -301,9 +301,13 @@ const CryptoPwhash = struct { params: *const anyopaque, name: []const u8, }; -const bcrypt_params = crypto.pwhash.bcrypt.Params{ .rounds_log = 12 }; +const bcrypt_params = crypto.pwhash.bcrypt.Params{ .rounds_log = 8 }; const pwhashes = [_]CryptoPwhash{ - .{ .ty = crypto.pwhash.bcrypt, .params = &bcrypt_params, .name = "bcrypt" }, + .{ + .ty = crypto.pwhash.bcrypt, + .params = &bcrypt_params, + .name = "bcrypt", + }, .{ .ty = crypto.pwhash.scrypt, .params = &crypto.pwhash.scrypt.Params.interactive, @@ -323,7 +327,11 @@ fn benchmarkPwhash( comptime count: comptime_int, ) !f64 { const password = "testpass" ** 2; - const opts = .{ .allocator = allocator, .params = @ptrCast(*const ty.Params, params).*, .encoding = .phc }; + const opts = .{ + .allocator = allocator, + .params = @ptrCast(*const ty.Params, @alignCast(std.meta.alignment(ty.Params), params)).*, + .encoding = .phc, + }; var buf: [256]u8 = undefined; var timer = try Timer.start(); diff --git a/lib/std/crypto/ecdsa.zig b/lib/std/crypto/ecdsa.zig index 3360d7bb87615d20d7b27703df4e347227abaa73..a0faa3da540c5f9fb7472c739d59e2a8b34e4b42 100644 --- a/lib/std/crypto/ecdsa.zig +++ b/lib/std/crypto/ecdsa.zig @@ -84,33 +84,18 @@ pub fn Ecdsa(comptime Curve: type, comptime Hash: type) type { /// The S component of an ECDSA signature. s: Curve.scalar.CompressedScalar, + /// Create a Verifier for incremental verification of a signature. + pub fn verifier(self: Signature, public_key: PublicKey) (NonCanonicalError || EncodingError || IdentityElementError)!Verifier { + return Verifier.init(self, public_key); + } + /// Verify the signature against a message and public key. /// Return IdentityElement or NonCanonical if the public key or signature are not in the expected range, /// or SignatureVerificationError if the signature is invalid for the given message and key. pub fn verify(self: Signature, msg: []const u8, public_key: PublicKey) (IdentityElementError || NonCanonicalError || SignatureVerificationError)!void { - const r = try Curve.scalar.Scalar.fromBytes(self.r, .Big); - const s = try Curve.scalar.Scalar.fromBytes(self.s, .Big); - if (r.isZero() or s.isZero()) return error.IdentityElement; - - var h: [Hash.digest_length]u8 = undefined; - Hash.hash(msg, &h, .{}); - - const ht = Curve.scalar.encoded_length; - const z = reduceToScalar(ht, h[0..ht].*); - if (z.isZero()) { - return error.SignatureVerificationFailed; - } - - const s_inv = s.invert(); - const v1 = z.mul(s_inv).toBytes(.Little); - const v2 = r.mul(s_inv).toBytes(.Little); - const v1g = try Curve.basePoint.mulPublic(v1, .Little); - const v2pk = try public_key.p.mulPublic(v2, .Little); - const vxs = v1g.add(v2pk).affineCoordinates().x.toBytes(.Big); - const vr = reduceToScalar(Curve.Fe.encoded_length, vxs); - if (!r.equivalent(vr)) { - return error.SignatureVerificationFailed; - } + var st = try Verifier.init(self, public_key); + st.update(msg); + return st.verify(); } /// Return the raw signature (r, s) in big-endian format. @@ -190,6 +175,104 @@ pub fn Ecdsa(comptime Curve: type, comptime Hash: type) type { } }; + /// A Signer is used to incrementally compute a signature. + /// It can be obtained from a `KeyPair`, using the `signer()` function. + pub const Signer = struct { + h: Hash, + secret_key: SecretKey, + noise: ?[noise_length]u8, + + fn init(secret_key: SecretKey, noise: ?[noise_length]u8) !Signer { + return Signer{ + .h = Hash.init(.{}), + .secret_key = secret_key, + .noise = noise, + }; + } + + /// Add new data to the message being signed. + pub fn update(self: *Signer, data: []const u8) void { + self.h.update(data); + } + + /// Compute a signature over the entire message. + pub fn finalize(self: *Signer) (IdentityElementError || NonCanonicalError)!Signature { + const scalar_encoded_length = Curve.scalar.encoded_length; + const h_len = @max(Hash.digest_length, scalar_encoded_length); + var h: [h_len]u8 = [_]u8{0} ** h_len; + var h_slice = h[h_len - Hash.digest_length .. h_len]; + self.h.final(h_slice); + + std.debug.assert(h.len >= scalar_encoded_length); + const z = reduceToScalar(scalar_encoded_length, h[0..scalar_encoded_length].*); + + const k = deterministicScalar(h_slice.*, self.secret_key.bytes, self.noise); + + const p = try Curve.basePoint.mul(k.toBytes(.Big), .Big); + const xs = p.affineCoordinates().x.toBytes(.Big); + const r = reduceToScalar(Curve.Fe.encoded_length, xs); + if (r.isZero()) return error.IdentityElement; + + const k_inv = k.invert(); + const zrs = z.add(r.mul(try Curve.scalar.Scalar.fromBytes(self.secret_key.bytes, .Big))); + const s = k_inv.mul(zrs); + if (s.isZero()) return error.IdentityElement; + + return Signature{ .r = r.toBytes(.Big), .s = s.toBytes(.Big) }; + } + }; + + /// A Verifier is used to incrementally verify a signature. + /// It can be obtained from a `Signature`, using the `verifier()` function. + pub const Verifier = struct { + h: Hash, + r: Curve.scalar.Scalar, + s: Curve.scalar.Scalar, + public_key: PublicKey, + + fn init(sig: Signature, public_key: PublicKey) (IdentityElementError || NonCanonicalError)!Verifier { + const r = try Curve.scalar.Scalar.fromBytes(sig.r, .Big); + const s = try Curve.scalar.Scalar.fromBytes(sig.s, .Big); + if (r.isZero() or s.isZero()) return error.IdentityElement; + + return Verifier{ + .h = Hash.init(.{}), + .r = r, + .s = s, + .public_key = public_key, + }; + } + + /// Add new content to the message to be verified. + pub fn update(self: *Verifier, data: []const u8) void { + self.h.update(data); + } + + /// Verify that the signature is valid for the entire message. + pub fn verify(self: *Verifier) (IdentityElementError || SignatureVerificationError)!void { + const ht = Curve.scalar.encoded_length; + const h_len = @max(Hash.digest_length, ht); + var h: [h_len]u8 = [_]u8{0} ** h_len; + self.h.final(h[h_len - Hash.digest_length .. h_len]); + + const z = reduceToScalar(ht, h[0..ht].*); + if (z.isZero()) { + return error.SignatureVerificationFailed; + } + + const s_inv = self.s.invert(); + const v1 = z.mul(s_inv).toBytes(.Little); + const v2 = self.r.mul(s_inv).toBytes(.Little); + const v1g = try Curve.basePoint.mulPublic(v1, .Little); + const v2pk = try self.public_key.p.mulPublic(v2, .Little); + const vxs = v1g.add(v2pk).affineCoordinates().x.toBytes(.Big); + const vr = reduceToScalar(Curve.Fe.encoded_length, vxs); + if (!self.r.equivalent(vr)) { + return error.SignatureVerificationFailed; + } + } + }; + /// An ECDSA key pair. pub const KeyPair = struct { /// Length (in bytes) of a seed required to create a key pair. @@ -226,28 +309,14 @@ pub fn Ecdsa(comptime Curve: type, comptime Hash: type) type { /// If deterministic signatures are not required, the noise should be randomly generated instead. /// This helps defend against fault attacks. pub fn sign(key_pair: KeyPair, msg: []const u8, noise: ?[noise_length]u8) (IdentityElementError || NonCanonicalError)!Signature { - const secret_key = key_pair.secret_key; - - var h: [Hash.digest_length]u8 = undefined; - Hash.hash(msg, &h, .{}); - - const scalar_encoded_length = Curve.scalar.encoded_length; - std.debug.assert(h.len >= scalar_encoded_length); - const z = reduceToScalar(scalar_encoded_length, h[0..scalar_encoded_length].*); - - const k = deterministicScalar(h, secret_key.bytes, noise); - - const p = try Curve.basePoint.mul(k.toBytes(.Big), .Big); - const xs = p.affineCoordinates().x.toBytes(.Big); - const r = reduceToScalar(Curve.Fe.encoded_length, xs); - if (r.isZero()) return error.IdentityElement; - - const k_inv = k.invert(); - const zrs = z.add(r.mul(try Curve.scalar.Scalar.fromBytes(secret_key.bytes, .Big))); - const s = k_inv.mul(zrs); - if (s.isZero()) return error.IdentityElement; - - return Signature{ .r = r.toBytes(.Big), .s = s.toBytes(.Big) }; + var st = try key_pair.signer(noise); + st.update(msg); + return st.finalize(); + } + + /// Create a Signer, that can be used for incremental signature verification. + pub fn signer(key_pair: KeyPair, noise: ?[noise_length]u8) !Signer { + return Signer.init(key_pair.secret_key, noise); } }; @@ -268,6 +337,7 @@ pub fn Ecdsa(comptime Curve: type, comptime Hash: type) type { fn deterministicScalar(h: [Hash.digest_length]u8, secret_key: Curve.scalar.CompressedScalar, noise: ?[noise_length]u8) Curve.scalar.Scalar { var k = [_]u8{0x00} ** h.len; var m = [_]u8{0x00} ** (h.len + 1 + noise_length + secret_key.len + h.len); + var t = [_]u8{0x00} ** Curve.scalar.encoded_length; const m_v = m[0..h.len]; const m_i = &m[m_v.len]; const m_z = m[m_v.len + 1 ..][0..noise_length]; @@ -286,8 +356,13 @@ pub fn Ecdsa(comptime Curve: type, comptime Hash: type) type { Hmac.create(&k, &m, &k); Hmac.create(m_v, m_v, &k); while (true) { - Hmac.create(m_v, m_v, &k); - if (Curve.scalar.Scalar.fromBytes(m_v[0..Curve.scalar.encoded_length].*, .Big)) |s| return s else |_| {} + var t_off: usize = 0; + while (t_off < t.len) : (t_off += m_v.len) { + const t_end = @min(t_off + m_v.len, t.len); + Hmac.create(m_v, m_v, &k); + std.mem.copy(u8, t[t_off..t_end], m_v[0 .. t_end - t_off]); + } + if (Curve.scalar.Scalar.fromBytes(t, .Big)) |s| return s else |_| {} mem.copy(u8, m_v, m_v); m_i.* = 0x00; Hmac.create(&k, m[0 .. m_v.len + 1], &k); @@ -325,6 +400,55 @@ test "ECDSA - Basic operations over Secp256k1" { try sig2.verify(msg, kp.public_key); } +test "ECDSA - Basic operations over EcdsaP384Sha256" { + const Scheme = Ecdsa(crypto.ecc.P384, crypto.hash.sha2.Sha256); + const kp = try Scheme.KeyPair.create(null); + const msg = "test"; + + var noise: [Scheme.noise_length]u8 = undefined; + crypto.random.bytes(&noise); + const sig = try kp.sign(msg, noise); + try sig.verify(msg, kp.public_key); + + const sig2 = try kp.sign(msg, null); + try sig2.verify(msg, kp.public_key); +} + +test "ECDSA - Verifying a existing signature with EcdsaP384Sha256" { + const Scheme = Ecdsa(crypto.ecc.P384, crypto.hash.sha2.Sha256); + // zig fmt: off + const sk_bytes = [_]u8{ + 0x6a, 0x53, 0x9c, 0x83, 0x0f, 0x06, 0x86, 0xd9, 0xef, 0xf1, 0xe7, 0x5c, 0xae, + 0x93, 0xd9, 0x5b, 0x16, 0x1e, 0x96, 0x7c, 0xb0, 0x86, 0x35, 0xc9, 0xea, 0x20, + 0xdc, 0x2b, 0x02, 0x37, 0x6d, 0xd2, 0x89, 0x72, 0x0a, 0x37, 0xf6, 0x5d, 0x4f, + 0x4d, 0xf7, 0x97, 0xcb, 0x8b, 0x03, 0x63, 0xc3, 0x2d + }; + const msg = [_]u8{ + 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x69, 0x6e, 0x67, 0x0a + }; + const sig_ans_bytes = [_]u8{ + 0x30, 0x64, 0x02, 0x30, 0x7a, 0x31, 0xd8, 0xe0, 0xf8, 0x40, 0x7d, 0x6a, 0xf3, + 0x1a, 0x5d, 0x02, 0xe5, 0xcb, 0x24, 0x29, 0x1a, 0xac, 0x15, 0x94, 0xd1, 0x5b, + 0xcd, 0x75, 0x2f, 0x45, 0x79, 0x98, 0xf7, 0x60, 0x9a, 0xd5, 0xca, 0x80, 0x15, + 0x87, 0x9b, 0x0c, 0x27, 0xe3, 0x01, 0x8b, 0x73, 0x4e, 0x57, 0xa3, 0xd2, 0x9a, + 0x02, 0x30, 0x33, 0xe0, 0x04, 0x5e, 0x76, 0x1f, 0xc8, 0xcf, 0xda, 0xbe, 0x64, + 0x95, 0x0a, 0xd4, 0x85, 0x34, 0x33, 0x08, 0x7a, 0x81, 0xf2, 0xf6, 0xb6, 0x94, + 0x68, 0xc3, 0x8c, 0x5f, 0x88, 0x92, 0x27, 0x5e, 0x4e, 0x84, 0x96, 0x48, 0x42, + 0x84, 0x28, 0xac, 0x37, 0x93, 0x07, 0xd3, 0x50, 0x32, 0x71, 0xb0 + }; + // zig fmt: on + + const sk = try Scheme.SecretKey.fromBytes(sk_bytes); + const kp = try Scheme.KeyPair.fromSecretKey(sk); + + const sig_ans = try Scheme.Signature.fromDer(&sig_ans_bytes); + try sig_ans.verify(&msg, kp.public_key); + + const sig = try kp.sign(&msg, null); + try sig.verify(&msg, kp.public_key); +} + const TestVector = struct { key: []const u8, msg: []const u8, diff --git a/lib/std/crypto/sha2.zig b/lib/std/crypto/sha2.zig index b7a78c4b44e56950df0f76ffb292130cf39ce5c6..9cdf8edcf180289c560d5c391a47575830abe842 100644 --- a/lib/std/crypto/sha2.zig +++ b/lib/std/crypto/sha2.zig @@ -1,4 +1,5 @@ const std = @import("../std.zig"); +const builtin = @import("builtin"); const mem = std.mem; const math = std.math; const htest = @import("test.zig"); @@ -16,10 +17,9 @@ const RoundParam256 = struct { g: usize, h: usize, i: usize, - k: u32, }; -fn roundParam256(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, g: usize, h: usize, i: usize, k: u32) RoundParam256 { +fn roundParam256(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, g: usize, h: usize, i: usize) RoundParam256 { return RoundParam256{ .a = a, .b = b, @@ -30,7 +30,6 @@ fn roundParam256(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, g: .g = g, .h = h, .i = i, - .k = k, }; } @@ -70,6 +69,14 @@ const Sha256Params = Sha2Params32{ .digest_bits = 256, }; +const v4u32 = @Vector(4, u32); + +// TODO: Remove once https://github.com/ziglang/zig/issues/868 is resolved. +fn isComptime() bool { + var a: u8 = 0; + return @typeInfo(@TypeOf(.{a})).Struct.fields[0].is_comptime; +} + /// SHA-224 pub const Sha224 = Sha2x32(Sha224Params); @@ -83,7 +90,7 @@ fn Sha2x32(comptime params: Sha2Params32) type { pub const digest_length = params.digest_bits / 8; pub const Options = struct {}; - s: [8]u32, + s: [8]u32 align(16), // Streaming Cache buf: [64]u8 = undefined, buf_len: u8 = 0, @@ -168,17 +175,116 @@ fn Sha2x32(comptime params: Sha2Params32) type { } } + const W = [64]u32{ + 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, + 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, + 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, + 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, + 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, + 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, + 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, + 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2, + }; + fn round(d: *Self, b: *const [64]u8) void { - var s: [64]u32 = undefined; - - var i: usize = 0; - while (i < 16) : (i += 1) { - s[i] = 0; - s[i] |= @as(u32, b[i * 4 + 0]) << 24; - s[i] |= @as(u32, b[i * 4 + 1]) << 16; - s[i] |= @as(u32, b[i * 4 + 2]) << 8; - s[i] |= @as(u32, b[i * 4 + 3]) << 0; + var s: [64]u32 align(16) = undefined; + for (@ptrCast(*align(1) const [16]u32, b)) |*elem, i| { + s[i] = mem.readIntBig(u32, mem.asBytes(elem)); } + + if (!isComptime()) { + switch (builtin.cpu.arch) { + .aarch64 => if (comptime std.Target.aarch64.featureSetHas(builtin.cpu.features, .sha2)) { + var x: v4u32 = d.s[0..4].*; + var y: v4u32 = d.s[4..8].*; + const s_v = @ptrCast(*[16]v4u32, &s); + + comptime var k: u8 = 0; + inline while (k < 16) : (k += 1) { + if (k > 3) { + s_v[k] = asm ( + \\sha256su0.4s %[w0_3], %[w4_7] + \\sha256su1.4s %[w0_3], %[w8_11], %[w12_15] + : [w0_3] "=w" (-> v4u32), + : [_] "0" (s_v[k - 4]), + [w4_7] "w" (s_v[k - 3]), + [w8_11] "w" (s_v[k - 2]), + [w12_15] "w" (s_v[k - 1]), + ); + } + + const w: v4u32 = s_v[k] +% @as(v4u32, W[4 * k ..][0..4].*); + asm volatile ( + \\mov.4s v0, %[x] + \\sha256h.4s %[x], %[y], %[w] + \\sha256h2.4s %[y], v0, %[w] + : [x] "=w" (x), + [y] "=w" (y), + : [_] "0" (x), + [_] "1" (y), + [w] "w" (w), + : "v0" + ); + } + + d.s[0..4].* = x +% @as(v4u32, d.s[0..4].*); + d.s[4..8].* = y +% @as(v4u32, d.s[4..8].*); + return; + }, + .x86_64 => if (comptime std.Target.x86.featureSetHas(builtin.cpu.features, .sha)) { + var x: v4u32 = [_]u32{ d.s[5], d.s[4], d.s[1], d.s[0] }; + var y: v4u32 = [_]u32{ d.s[7], d.s[6], d.s[3], d.s[2] }; + const s_v = @ptrCast(*[16]v4u32, &s); + + comptime var k: u8 = 0; + inline while (k < 16) : (k += 1) { + if (k < 12) { + var tmp = s_v[k]; + s_v[k + 4] = asm ( + \\ sha256msg1 %[w4_7], %[tmp] + \\ vpalignr $0x4, %[w8_11], %[w12_15], %[result] + \\ paddd %[tmp], %[result] + \\ sha256msg2 %[w12_15], %[result] + : [tmp] "=&x" (tmp), + [result] "=&x" (-> v4u32), + : [_] "0" (tmp), + [w4_7] "x" (s_v[k + 1]), + [w8_11] "x" (s_v[k + 2]), + [w12_15] "x" (s_v[k + 3]), + ); + } + + const w: v4u32 = s_v[k] +% @as(v4u32, W[4 * k ..][0..4].*); + y = asm ("sha256rnds2 %[x], %[y]" + : [y] "=x" (-> v4u32), + : [_] "0" (y), + [x] "x" (x), + [_] "{xmm0}" (w), + ); + + x = asm ("sha256rnds2 %[y], %[x]" + : [x] "=x" (-> v4u32), + : [_] "0" (x), + [y] "x" (y), + [_] "{xmm0}" (@bitCast(v4u32, @bitCast(u128, w) >> 64)), + ); + } + + d.s[0] +%= x[3]; + d.s[1] +%= x[2]; + d.s[4] +%= x[1]; + d.s[5] +%= x[0]; + d.s[2] +%= y[3]; + d.s[3] +%= y[2]; + d.s[6] +%= y[1]; + d.s[7] +%= y[0]; + return; + }, + else => {}, + } + } + + var i: usize = 16; while (i < 64) : (i += 1) { s[i] = s[i - 16] +% s[i - 7] +% (math.rotr(u32, s[i - 15], @as(u32, 7)) ^ math.rotr(u32, s[i - 15], @as(u32, 18)) ^ (s[i - 15] >> 3)) +% (math.rotr(u32, s[i - 2], @as(u32, 17)) ^ math.rotr(u32, s[i - 2], @as(u32, 19)) ^ (s[i - 2] >> 10)); } @@ -195,73 +301,73 @@ fn Sha2x32(comptime params: Sha2Params32) type { }; const round0 = comptime [_]RoundParam256{ - roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 0, 0x428A2F98), - roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 1, 0x71374491), - roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 2, 0xB5C0FBCF), - roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 3, 0xE9B5DBA5), - roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 4, 0x3956C25B), - roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 5, 0x59F111F1), - roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 6, 0x923F82A4), - roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 7, 0xAB1C5ED5), - roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 8, 0xD807AA98), - roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 9, 0x12835B01), - roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 10, 0x243185BE), - roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 11, 0x550C7DC3), - roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 12, 0x72BE5D74), - roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 13, 0x80DEB1FE), - roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 14, 0x9BDC06A7), - roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 15, 0xC19BF174), - roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 16, 0xE49B69C1), - roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 17, 0xEFBE4786), - roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 18, 0x0FC19DC6), - roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 19, 0x240CA1CC), - roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 20, 0x2DE92C6F), - roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 21, 0x4A7484AA), - roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 22, 0x5CB0A9DC), - roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 23, 0x76F988DA), - roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 24, 0x983E5152), - roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 25, 0xA831C66D), - roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 26, 0xB00327C8), - roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 27, 0xBF597FC7), - roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 28, 0xC6E00BF3), - roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 29, 0xD5A79147), - roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 30, 0x06CA6351), - roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 31, 0x14292967), - roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 32, 0x27B70A85), - roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 33, 0x2E1B2138), - roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 34, 0x4D2C6DFC), - roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 35, 0x53380D13), - roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 36, 0x650A7354), - roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 37, 0x766A0ABB), - roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 38, 0x81C2C92E), - roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 39, 0x92722C85), - roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 40, 0xA2BFE8A1), - roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 41, 0xA81A664B), - roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 42, 0xC24B8B70), - roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 43, 0xC76C51A3), - roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 44, 0xD192E819), - roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 45, 0xD6990624), - roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 46, 0xF40E3585), - roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 47, 0x106AA070), - roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 48, 0x19A4C116), - roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 49, 0x1E376C08), - roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 50, 0x2748774C), - roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 51, 0x34B0BCB5), - roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 52, 0x391C0CB3), - roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 53, 0x4ED8AA4A), - roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 54, 0x5B9CCA4F), - roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 55, 0x682E6FF3), - roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 56, 0x748F82EE), - roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 57, 0x78A5636F), - roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 58, 0x84C87814), - roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 59, 0x8CC70208), - roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 60, 0x90BEFFFA), - roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 61, 0xA4506CEB), - roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 62, 0xBEF9A3F7), - roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 63, 0xC67178F2), + roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 0), + roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 1), + roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 2), + roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 3), + roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 4), + roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 5), + roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 6), + roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 7), + roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 8), + roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 9), + roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 10), + roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 11), + roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 12), + roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 13), + roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 14), + roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 15), + roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 16), + roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 17), + roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 18), + roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 19), + roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 20), + roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 21), + roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 22), + roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 23), + roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 24), + roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 25), + roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 26), + roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 27), + roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 28), + roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 29), + roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 30), + roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 31), + roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 32), + roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 33), + roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 34), + roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 35), + roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 36), + roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 37), + roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 38), + roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 39), + roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 40), + roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 41), + roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 42), + roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 43), + roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 44), + roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 45), + roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 46), + roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 47), + roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 48), + roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 49), + roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 50), + roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 51), + roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 52), + roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 53), + roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 54), + roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 55), + roundParam256(0, 1, 2, 3, 4, 5, 6, 7, 56), + roundParam256(7, 0, 1, 2, 3, 4, 5, 6, 57), + roundParam256(6, 7, 0, 1, 2, 3, 4, 5, 58), + roundParam256(5, 6, 7, 0, 1, 2, 3, 4, 59), + roundParam256(4, 5, 6, 7, 0, 1, 2, 3, 60), + roundParam256(3, 4, 5, 6, 7, 0, 1, 2, 61), + roundParam256(2, 3, 4, 5, 6, 7, 0, 1, 62), + roundParam256(1, 2, 3, 4, 5, 6, 7, 0, 63), }; inline for (round0) |r| { - v[r.h] = v[r.h] +% (math.rotr(u32, v[r.e], @as(u32, 6)) ^ math.rotr(u32, v[r.e], @as(u32, 11)) ^ math.rotr(u32, v[r.e], @as(u32, 25))) +% (v[r.g] ^ (v[r.e] & (v[r.f] ^ v[r.g]))) +% r.k +% s[r.i]; + v[r.h] = v[r.h] +% (math.rotr(u32, v[r.e], @as(u32, 6)) ^ math.rotr(u32, v[r.e], @as(u32, 11)) ^ math.rotr(u32, v[r.e], @as(u32, 25))) +% (v[r.g] ^ (v[r.e] & (v[r.f] ^ v[r.g]))) +% W[r.i] +% s[r.i]; v[r.d] = v[r.d] +% v[r.h]; diff --git a/lib/std/fs/wasi.zig b/lib/std/fs/wasi.zig index 81a43062dcf405a30e01b813d08495314c346e72..522731ef02eedf2557cbf3a8c952b8304b1d0dbf 100644 --- a/lib/std/fs/wasi.zig +++ b/lib/std/fs/wasi.zig @@ -201,7 +201,7 @@ pub const PreopenList = struct { // If we were provided a CWD root to resolve against, we try to treat Preopen dirs as // POSIX paths, relative to "/" or `cwd_root` depending on whether they start with "." const path = if (cwd_root) |cwd| blk: { - const resolve_paths: [][]const u8 = if (raw_path[0] == '.') &.{ cwd, raw_path } else &.{ "/", raw_path }; + const resolve_paths: []const []const u8 = if (raw_path[0] == '.') &.{ cwd, raw_path } else &.{ "/", raw_path }; break :blk fs.path.resolve(self.buffer.allocator, resolve_paths) catch |err| switch (err) { error.CurrentWorkingDirectoryUnlinked => unreachable, // root is absolute, so CWD not queried else => |e| return e, diff --git a/lib/std/math/big/int.zig b/lib/std/math/big/int.zig index b875f73b2e35dfd42c6f17249fb3fc54b827b43e..ac2f089ea1d822553de64125e010f95b5263b686 100644 --- a/lib/std/math/big/int.zig +++ b/lib/std/math/big/int.zig @@ -1762,16 +1762,32 @@ pub const Mutable = struct { } /// Read the value of `x` from `buffer` - /// Asserts that `buffer`, `abi_size`, and `bit_count` are large enough to store the value. + /// Asserts that `buffer` is large enough to contain a value of bit-size `bit_count`. /// /// The contents of `buffer` are interpreted as if they were the contents of - /// @ptrCast(*[abi_size]const u8, &x). Byte ordering is determined by `endian` + /// @ptrCast(*[buffer.len]const u8, &x). Byte ordering is determined by `endian` /// and any required padding bits are expected on the MSB end. pub fn readTwosComplement( x: *Mutable, buffer: []const u8, bit_count: usize, - abi_size: usize, + endian: Endian, + signedness: Signedness, + ) void { + return readPackedTwosComplement(x, buffer, 0, bit_count, endian, signedness); + } + + /// Read the value of `x` from a packed memory `buffer`. + /// Asserts that `buffer` is large enough to contain a value of bit-size `bit_count` + /// at offset `bit_offset`. + /// + /// This is equivalent to loading the value of an integer with `bit_count` bits as + /// if it were a field in packed memory at the provided bit offset. + pub fn readPackedTwosComplement( + x: *Mutable, + bytes: []const u8, + bit_offset: usize, + bit_count: usize, endian: Endian, signedness: Signedness, ) void { @@ -1782,75 +1798,54 @@ pub const Mutable = struct { return; } - // byte_count is our total read size: it cannot exceed abi_size, - // but may be less as long as it includes the required bits - const limb_count = calcTwosCompLimbCount(bit_count); - const byte_count = std.math.min(abi_size, @sizeOf(Limb) * limb_count); - assert(8 * byte_count >= bit_count); - // Check whether the input is negative var positive = true; if (signedness == .signed) { + const total_bits = bit_offset + bit_count; var last_byte = switch (endian) { - .Little => ((bit_count + 7) / 8) - 1, - .Big => abi_size - ((bit_count + 7) / 8), + .Little => ((total_bits + 7) / 8) - 1, + .Big => bytes.len - ((total_bits + 7) / 8), }; - const sign_bit = @as(u8, 1) << @intCast(u3, (bit_count - 1) % 8); - positive = ((buffer[last_byte] & sign_bit) == 0); + const sign_bit = @as(u8, 1) << @intCast(u3, (total_bits - 1) % 8); + positive = ((bytes[last_byte] & sign_bit) == 0); } // Copy all complete limbs - var carry: u1 = if (positive) 0 else 1; + var carry: u1 = 1; var limb_index: usize = 0; + var bit_index: usize = 0; while (limb_index < bit_count / @bitSizeOf(Limb)) : (limb_index += 1) { - var buf_index = switch (endian) { - .Little => @sizeOf(Limb) * limb_index, - .Big => abi_size - (limb_index + 1) * @sizeOf(Limb), - }; - - const limb_buf = @ptrCast(*const [@sizeOf(Limb)]u8, buffer[buf_index..]); - var limb = mem.readInt(Limb, limb_buf, endian); + // Read one Limb of bits + var limb = mem.readPackedInt(Limb, bytes, bit_index + bit_offset, endian); + bit_index += @bitSizeOf(Limb); // 2's complement (bitwise not, then add carry bit) if (!positive) carry = @boolToInt(@addWithOverflow(Limb, ~limb, carry, &limb)); x.limbs[limb_index] = limb; } - // Copy the remaining N bytes (N <= @sizeOf(Limb)) - var bytes_read = limb_index * @sizeOf(Limb); - if (bytes_read != byte_count) { - var limb: Limb = 0; - - while (bytes_read != byte_count) { - const read_size = std.math.floorPowerOfTwo(usize, byte_count - bytes_read); - var int_buffer = switch (endian) { - .Little => buffer[bytes_read..], - .Big => buffer[(abi_size - bytes_read - read_size)..], - }; - limb |= @intCast(Limb, switch (read_size) { - 1 => mem.readInt(u8, int_buffer[0..1], endian), - 2 => mem.readInt(u16, int_buffer[0..2], endian), - 4 => mem.readInt(u32, int_buffer[0..4], endian), - 8 => mem.readInt(u64, int_buffer[0..8], endian), - 16 => mem.readInt(u128, int_buffer[0..16], endian), - else => unreachable, - }) << @intCast(Log2Limb, 8 * (bytes_read % @sizeOf(Limb))); - bytes_read += read_size; - } + // Copy the remaining bits + if (bit_count != bit_index) { + // Read all remaining bits + var limb = switch (signedness) { + .unsigned => mem.readVarPackedInt(Limb, bytes, bit_index + bit_offset, bit_count - bit_index, endian, .unsigned), + .signed => b: { + const SLimb = std.meta.Int(.signed, @bitSizeOf(Limb)); + const limb = mem.readVarPackedInt(SLimb, bytes, bit_index + bit_offset, bit_count - bit_index, endian, .signed); + break :b @bitCast(Limb, limb); + }, + }; // 2's complement (bitwise not, then add carry bit) - if (!positive) _ = @addWithOverflow(Limb, ~limb, carry, &limb); + if (!positive) assert(!@addWithOverflow(Limb, ~limb, carry, &limb)); + x.limbs[limb_index] = limb; - // Mask off any unused bits - const valid_bits = @intCast(Log2Limb, bit_count % @bitSizeOf(Limb)); - const mask = (@as(Limb, 1) << valid_bits) -% 1; // 0b0..01..1 with (valid_bits_in_limb) trailing ones - limb &= mask; - - x.limbs[limb_count - 1] = limb; + limb_index += 1; } + x.positive = positive; - x.len = limb_count; + x.len = limb_index; x.normalize(x.len); } @@ -2212,66 +2207,48 @@ pub const Const = struct { } /// Write the value of `x` into `buffer` - /// Asserts that `buffer`, `abi_size`, and `bit_count` are large enough to store the value. + /// Asserts that `buffer` is large enough to store the value. /// /// `buffer` is filled so that its contents match what would be observed via - /// @ptrCast(*[abi_size]const u8, &x). Byte ordering is determined by `endian`, + /// @ptrCast(*[buffer.len]const u8, &x). Byte ordering is determined by `endian`, /// and any required padding bits are added on the MSB end. - pub fn writeTwosComplement(x: Const, buffer: []u8, bit_count: usize, abi_size: usize, endian: Endian) void { + pub fn writeTwosComplement(x: Const, buffer: []u8, endian: Endian) void { + return writePackedTwosComplement(x, buffer, 0, 8 * buffer.len, endian); + } - // byte_count is our total write size - const byte_count = abi_size; - assert(8 * byte_count >= bit_count); - assert(buffer.len >= byte_count); + /// Write the value of `x` to a packed memory `buffer`. + /// Asserts that `buffer` is large enough to contain a value of bit-size `bit_count` + /// at offset `bit_offset`. + /// + /// This is equivalent to storing the value of an integer with `bit_count` bits as + /// if it were a field in packed memory at the provided bit offset. + pub fn writePackedTwosComplement(x: Const, bytes: []u8, bit_offset: usize, bit_count: usize, endian: Endian) void { assert(x.fitsInTwosComp(if (x.positive) .unsigned else .signed, bit_count)); // Copy all complete limbs - var carry: u1 = if (x.positive) 0 else 1; + var carry: u1 = 1; var limb_index: usize = 0; - while (limb_index < byte_count / @sizeOf(Limb)) : (limb_index += 1) { - var buf_index = switch (endian) { - .Little => @sizeOf(Limb) * limb_index, - .Big => abi_size - (limb_index + 1) * @sizeOf(Limb), - }; - + var bit_index: usize = 0; + while (limb_index < bit_count / @bitSizeOf(Limb)) : (limb_index += 1) { var limb: Limb = if (limb_index < x.limbs.len) x.limbs[limb_index] else 0; + // 2's complement (bitwise not, then add carry bit) if (!x.positive) carry = @boolToInt(@addWithOverflow(Limb, ~limb, carry, &limb)); - var limb_buf = @ptrCast(*[@sizeOf(Limb)]u8, buffer[buf_index..]); - mem.writeInt(Limb, limb_buf, limb, endian); + // Write one Limb of bits + mem.writePackedInt(Limb, bytes, bit_index + bit_offset, limb, endian); + bit_index += @bitSizeOf(Limb); } - // Copy the remaining N bytes (N < @sizeOf(Limb)) - var bytes_written = limb_index * @sizeOf(Limb); - if (bytes_written != byte_count) { + // Copy the remaining bits + if (bit_count != bit_index) { var limb: Limb = if (limb_index < x.limbs.len) x.limbs[limb_index] else 0; + // 2's complement (bitwise not, then add carry bit) if (!x.positive) _ = @addWithOverflow(Limb, ~limb, carry, &limb); - while (bytes_written != byte_count) { - const write_size = std.math.floorPowerOfTwo(usize, byte_count - bytes_written); - var int_buffer = switch (endian) { - .Little => buffer[bytes_written..], - .Big => buffer[(abi_size - bytes_written - write_size)..], - }; - - if (write_size == 1) { - mem.writeInt(u8, int_buffer[0..1], @truncate(u8, limb), endian); - } else if (@sizeOf(Limb) >= 2 and write_size == 2) { - mem.writeInt(u16, int_buffer[0..2], @truncate(u16, limb), endian); - } else if (@sizeOf(Limb) >= 4 and write_size == 4) { - mem.writeInt(u32, int_buffer[0..4], @truncate(u32, limb), endian); - } else if (@sizeOf(Limb) >= 8 and write_size == 8) { - mem.writeInt(u64, int_buffer[0..8], @truncate(u64, limb), endian); - } else if (@sizeOf(Limb) >= 16 and write_size == 16) { - mem.writeInt(u128, int_buffer[0..16], @truncate(u128, limb), endian); - } else if (@sizeOf(Limb) >= 32) { - @compileError("@sizeOf(Limb) exceeded supported range"); - } else unreachable; - limb >>= @intCast(Log2Limb, 8 * write_size); - bytes_written += write_size; - } + // Write all remaining bits + mem.writeVarPackedInt(bytes, bit_index + bit_offset, bit_count - bit_index, limb, endian); } } diff --git a/lib/std/math/big/int_test.zig b/lib/std/math/big/int_test.zig index 5685a38d41735558b55dfcb939383a541010a6f5..97de06bfcc50c9eec81b8abf7d9197b6b2e664fe 100644 --- a/lib/std/math/big/int_test.zig +++ b/lib/std/math/big/int_test.zig @@ -2603,13 +2603,13 @@ test "big int conversion read/write twos complement" { for (endians) |endian| { // Writing to buffer and back should not change anything - a.toConst().writeTwosComplement(buffer1, 493, abi_size, endian); - m.readTwosComplement(buffer1, 493, abi_size, endian, .unsigned); + a.toConst().writeTwosComplement(buffer1[0..abi_size], endian); + m.readTwosComplement(buffer1[0..abi_size], 493, endian, .unsigned); try testing.expect(m.toConst().order(a.toConst()) == .eq); // Equivalent to @bitCast(i493, @as(u493, intMax(u493)) - a.toConst().writeTwosComplement(buffer1, 493, abi_size, endian); - m.readTwosComplement(buffer1, 493, abi_size, endian, .signed); + a.toConst().writeTwosComplement(buffer1[0..abi_size], endian); + m.readTwosComplement(buffer1[0..abi_size], 493, endian, .signed); try testing.expect(m.toConst().orderAgainstScalar(-1) == .eq); } } @@ -2628,26 +2628,26 @@ test "big int conversion read twos complement with padding" { // (3) should sign-extend any bits from bit_count to 8 * abi_size var bit_count: usize = 12 * 8 + 1; - a.toConst().writeTwosComplement(buffer1, bit_count, 13, .Little); + a.toConst().writeTwosComplement(buffer1[0..13], .Little); try testing.expect(std.mem.eql(u8, buffer1, &[_]u8{ 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0xaa, 0xaa, 0xaa })); - a.toConst().writeTwosComplement(buffer1, bit_count, 13, .Big); + a.toConst().writeTwosComplement(buffer1[0..13], .Big); try testing.expect(std.mem.eql(u8, buffer1, &[_]u8{ 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xaa, 0xaa, 0xaa })); - a.toConst().writeTwosComplement(buffer1, bit_count, 16, .Little); + a.toConst().writeTwosComplement(buffer1[0..16], .Little); try testing.expect(std.mem.eql(u8, buffer1, &[_]u8{ 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0 })); - a.toConst().writeTwosComplement(buffer1, bit_count, 16, .Big); + a.toConst().writeTwosComplement(buffer1[0..16], .Big); try testing.expect(std.mem.eql(u8, buffer1, &[_]u8{ 0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd })); @memset(buffer1.ptr, 0xaa, buffer1.len); try a.set(-0x01_02030405_06070809_0a0b0c0d); bit_count = 12 * 8 + 2; - a.toConst().writeTwosComplement(buffer1, bit_count, 13, .Little); + a.toConst().writeTwosComplement(buffer1[0..13], .Little); try testing.expect(std.mem.eql(u8, buffer1, &[_]u8{ 0xf3, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xaa, 0xaa, 0xaa })); - a.toConst().writeTwosComplement(buffer1, bit_count, 13, .Big); + a.toConst().writeTwosComplement(buffer1[0..13], .Big); try testing.expect(std.mem.eql(u8, buffer1, &[_]u8{ 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf3, 0xaa, 0xaa, 0xaa })); - a.toConst().writeTwosComplement(buffer1, bit_count, 16, .Little); + a.toConst().writeTwosComplement(buffer1[0..16], .Little); try testing.expect(std.mem.eql(u8, buffer1, &[_]u8{ 0xf3, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0xff, 0xff })); - a.toConst().writeTwosComplement(buffer1, bit_count, 16, .Big); + a.toConst().writeTwosComplement(buffer1[0..16], .Big); try testing.expect(std.mem.eql(u8, buffer1, &[_]u8{ 0xff, 0xff, 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf3 })); } @@ -2660,17 +2660,15 @@ test "big int write twos complement +/- zero" { defer testing.allocator.free(buffer1); @memset(buffer1.ptr, 0xaa, buffer1.len); - var bit_count: usize = 0; - // Test zero - m.toConst().writeTwosComplement(buffer1, bit_count, 13, .Little); + m.toConst().writeTwosComplement(buffer1[0..13], .Little); try testing.expect(std.mem.eql(u8, buffer1, &(([_]u8{0} ** 13) ++ ([_]u8{0xaa} ** 3)))); - m.toConst().writeTwosComplement(buffer1, bit_count, 13, .Big); + m.toConst().writeTwosComplement(buffer1[0..13], .Big); try testing.expect(std.mem.eql(u8, buffer1, &(([_]u8{0} ** 13) ++ ([_]u8{0xaa} ** 3)))); - m.toConst().writeTwosComplement(buffer1, bit_count, 16, .Little); + m.toConst().writeTwosComplement(buffer1[0..16], .Little); try testing.expect(std.mem.eql(u8, buffer1, &(([_]u8{0} ** 16)))); - m.toConst().writeTwosComplement(buffer1, bit_count, 16, .Big); + m.toConst().writeTwosComplement(buffer1[0..16], .Big); try testing.expect(std.mem.eql(u8, buffer1, &(([_]u8{0} ** 16)))); @memset(buffer1.ptr, 0xaa, buffer1.len); @@ -2678,13 +2676,13 @@ test "big int write twos complement +/- zero" { // Test negative zero - m.toConst().writeTwosComplement(buffer1, bit_count, 13, .Little); + m.toConst().writeTwosComplement(buffer1[0..13], .Little); try testing.expect(std.mem.eql(u8, buffer1, &(([_]u8{0} ** 13) ++ ([_]u8{0xaa} ** 3)))); - m.toConst().writeTwosComplement(buffer1, bit_count, 13, .Big); + m.toConst().writeTwosComplement(buffer1[0..13], .Big); try testing.expect(std.mem.eql(u8, buffer1, &(([_]u8{0} ** 13) ++ ([_]u8{0xaa} ** 3)))); - m.toConst().writeTwosComplement(buffer1, bit_count, 16, .Little); + m.toConst().writeTwosComplement(buffer1[0..16], .Little); try testing.expect(std.mem.eql(u8, buffer1, &(([_]u8{0} ** 16)))); - m.toConst().writeTwosComplement(buffer1, bit_count, 16, .Big); + m.toConst().writeTwosComplement(buffer1[0..16], .Big); try testing.expect(std.mem.eql(u8, buffer1, &(([_]u8{0} ** 16)))); } @@ -2705,62 +2703,82 @@ test "big int conversion write twos complement with padding" { // Test 0x01_02030405_06070809_0a0b0c0d buffer = &[_]u8{ 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0xb }; - m.readTwosComplement(buffer, bit_count, 13, .Little, .unsigned); + m.readTwosComplement(buffer[0..13], bit_count, .Little, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x01_02030405_06070809_0a0b0c0d) == .eq); buffer = &[_]u8{ 0xb, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd }; - m.readTwosComplement(buffer, bit_count, 13, .Big, .unsigned); + m.readTwosComplement(buffer[0..13], bit_count, .Big, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x01_02030405_06070809_0a0b0c0d) == .eq); buffer = &[_]u8{ 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0xab, 0xaa, 0xaa, 0xaa }; - m.readTwosComplement(buffer, bit_count, 16, .Little, .unsigned); + m.readTwosComplement(buffer[0..16], bit_count, .Little, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x01_02030405_06070809_0a0b0c0d) == .eq); buffer = &[_]u8{ 0xaa, 0xaa, 0xaa, 0xab, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd }; - m.readTwosComplement(buffer, bit_count, 16, .Big, .unsigned); + m.readTwosComplement(buffer[0..16], bit_count, .Big, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x01_02030405_06070809_0a0b0c0d) == .eq); + bit_count = @sizeOf(Limb) * 8; + + // Test 0x0a0a0a0a_02030405_06070809_0a0b0c0d + + buffer = &[_]u8{ 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0xaa }; + m.readTwosComplement(buffer[0..13], bit_count, .Little, .unsigned); + try testing.expect(m.toConst().orderAgainstScalar(@truncate(Limb, 0xaa_02030405_06070809_0a0b0c0d)) == .eq); + + buffer = &[_]u8{ 0xaa, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd }; + m.readTwosComplement(buffer[0..13], bit_count, .Big, .unsigned); + try testing.expect(m.toConst().orderAgainstScalar(@truncate(Limb, 0xaa_02030405_06070809_0a0b0c0d)) == .eq); + + buffer = &[_]u8{ 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0xaa, 0xaa, 0xaa, 0xaa }; + m.readTwosComplement(buffer[0..16], bit_count, .Little, .unsigned); + try testing.expect(m.toConst().orderAgainstScalar(@truncate(Limb, 0xaaaaaaaa_02030405_06070809_0a0b0c0d)) == .eq); + + buffer = &[_]u8{ 0xaa, 0xaa, 0xaa, 0xaa, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd }; + m.readTwosComplement(buffer[0..16], bit_count, .Big, .unsigned); + try testing.expect(m.toConst().orderAgainstScalar(@truncate(Limb, 0xaaaaaaaa_02030405_06070809_0a0b0c0d)) == .eq); + bit_count = 12 * 8 + 2; // Test -0x01_02030405_06070809_0a0b0c0d buffer = &[_]u8{ 0xf3, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x02 }; - m.readTwosComplement(buffer, bit_count, 13, .Little, .signed); + m.readTwosComplement(buffer[0..13], bit_count, .Little, .signed); try testing.expect(m.toConst().orderAgainstScalar(-0x01_02030405_06070809_0a0b0c0d) == .eq); buffer = &[_]u8{ 0x02, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf3 }; - m.readTwosComplement(buffer, bit_count, 13, .Big, .signed); + m.readTwosComplement(buffer[0..13], bit_count, .Big, .signed); try testing.expect(m.toConst().orderAgainstScalar(-0x01_02030405_06070809_0a0b0c0d) == .eq); buffer = &[_]u8{ 0xf3, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x02, 0xaa, 0xaa, 0xaa }; - m.readTwosComplement(buffer, bit_count, 16, .Little, .signed); + m.readTwosComplement(buffer[0..16], bit_count, .Little, .signed); try testing.expect(m.toConst().orderAgainstScalar(-0x01_02030405_06070809_0a0b0c0d) == .eq); buffer = &[_]u8{ 0xaa, 0xaa, 0xaa, 0x02, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf3 }; - m.readTwosComplement(buffer, bit_count, 16, .Big, .signed); + m.readTwosComplement(buffer[0..16], bit_count, .Big, .signed); try testing.expect(m.toConst().orderAgainstScalar(-0x01_02030405_06070809_0a0b0c0d) == .eq); // Test 0 buffer = &([_]u8{0} ** 16); - m.readTwosComplement(buffer, bit_count, 13, .Little, .unsigned); + m.readTwosComplement(buffer[0..13], bit_count, .Little, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); - m.readTwosComplement(buffer, bit_count, 13, .Big, .unsigned); + m.readTwosComplement(buffer[0..13], bit_count, .Big, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); - m.readTwosComplement(buffer, bit_count, 16, .Little, .unsigned); + m.readTwosComplement(buffer[0..16], bit_count, .Little, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); - m.readTwosComplement(buffer, bit_count, 16, .Big, .unsigned); + m.readTwosComplement(buffer[0..16], bit_count, .Big, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); bit_count = 0; buffer = &([_]u8{0xaa} ** 16); - m.readTwosComplement(buffer, bit_count, 13, .Little, .unsigned); + m.readTwosComplement(buffer[0..13], bit_count, .Little, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); - m.readTwosComplement(buffer, bit_count, 13, .Big, .unsigned); + m.readTwosComplement(buffer[0..13], bit_count, .Big, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); - m.readTwosComplement(buffer, bit_count, 16, .Little, .unsigned); + m.readTwosComplement(buffer[0..16], bit_count, .Little, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); - m.readTwosComplement(buffer, bit_count, 16, .Big, .unsigned); + m.readTwosComplement(buffer[0..16], bit_count, .Big, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); } @@ -2779,15 +2797,15 @@ test "big int conversion write twos complement zero" { var buffer: []const u8 = undefined; buffer = &([_]u8{0} ** 13); - m.readTwosComplement(buffer, bit_count, 13, .Little, .unsigned); + m.readTwosComplement(buffer[0..13], bit_count, .Little, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); - m.readTwosComplement(buffer, bit_count, 13, .Big, .unsigned); + m.readTwosComplement(buffer[0..13], bit_count, .Big, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); buffer = &([_]u8{0} ** 16); - m.readTwosComplement(buffer, bit_count, 16, .Little, .unsigned); + m.readTwosComplement(buffer[0..16], bit_count, .Little, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); - m.readTwosComplement(buffer, bit_count, 16, .Big, .unsigned); + m.readTwosComplement(buffer[0..16], bit_count, .Big, .unsigned); try testing.expect(m.toConst().orderAgainstScalar(0x0) == .eq); } diff --git a/lib/std/mem.zig b/lib/std/mem.zig index 4000030fc0b509ab9524ea925a60e467e0f2ef12..93dd54bdb593bf72667b017db4ba12e11157aad3 100644 --- a/lib/std/mem.zig +++ b/lib/std/mem.zig @@ -1083,7 +1083,7 @@ fn boyerMooreHorspoolPreprocessReverse(pattern: []const u8, table: *[256]usize) var i: usize = pattern.len - 1; // The first item is intentionally ignored and the skip size will be pattern.len. - // This is the standard way boyer-moore-horspool is implemented. + // This is the standard way Boyer-Moore-Horspool is implemented. while (i > 0) : (i -= 1) { table[pattern[i]] = i; } @@ -1096,14 +1096,15 @@ fn boyerMooreHorspoolPreprocess(pattern: []const u8, table: *[256]usize) void { var i: usize = 0; // The last item is intentionally ignored and the skip size will be pattern.len. - // This is the standard way boyer-moore-horspool is implemented. + // This is the standard way Boyer-Moore-Horspool is implemented. while (i < pattern.len - 1) : (i += 1) { table[pattern[i]] = pattern.len - 1 - i; } } + /// Find the index in a slice of a sub-slice, searching from the end backwards. /// To start looking at a different index, slice the haystack first. -/// Uses the Reverse boyer-moore-horspool algorithm on large inputs; +/// Uses the Reverse Boyer-Moore-Horspool algorithm on large inputs; /// `lastIndexOfLinear` on small inputs. pub fn lastIndexOf(comptime T: type, haystack: []const T, needle: []const T) ?usize { if (needle.len > haystack.len) return null; @@ -1131,7 +1132,7 @@ pub fn lastIndexOf(comptime T: type, haystack: []const T, needle: []const T) ?us return null; } -/// Uses Boyer-moore-horspool algorithm on large inputs; `indexOfPosLinear` on small inputs. +/// Uses Boyer-Moore-Horspool algorithm on large inputs; `indexOfPosLinear` on small inputs. pub fn indexOfPos(comptime T: type, haystack: []const T, start_index: usize, needle: []const T) ?usize { if (needle.len > haystack.len) return null; if (needle.len == 0) return start_index; @@ -1183,7 +1184,7 @@ test "indexOf" { test "indexOf multibyte" { { - // make haystack and needle long enough to trigger boyer-moore-horspool algorithm + // make haystack and needle long enough to trigger Boyer-Moore-Horspool algorithm const haystack = [1]u16{0} ** 100 ++ [_]u16{ 0xbbaa, 0xccbb, 0xddcc, 0xeedd, 0xffee, 0x00ff }; const needle = [_]u16{ 0xbbaa, 0xccbb, 0xddcc, 0xeedd, 0xffee }; try testing.expectEqual(indexOfPos(u16, &haystack, 0, &needle), 100); @@ -1196,7 +1197,7 @@ test "indexOf multibyte" { } { - // make haystack and needle long enough to trigger boyer-moore-horspool algorithm + // make haystack and needle long enough to trigger Boyer-Moore-Horspool algorithm const haystack = [_]u16{ 0xbbaa, 0xccbb, 0xddcc, 0xeedd, 0xffee, 0x00ff } ++ [1]u16{0} ** 100; const needle = [_]u16{ 0xbbaa, 0xccbb, 0xddcc, 0xeedd, 0xffee }; try testing.expectEqual(lastIndexOf(u16, &haystack, &needle), 0); @@ -1298,6 +1299,76 @@ pub fn readVarInt(comptime ReturnType: type, bytes: []const u8, endian: Endian) return result; } +/// Loads an integer from packed memory with provided bit_count, bit_offset, and signedness. +/// Asserts that T is large enough to store the read value. +/// +/// Example: +/// const T = packed struct(u16){ a: u3, b: u7, c: u6 }; +/// var st = T{ .a = 1, .b = 2, .c = 4 }; +/// const b_field = readVarPackedInt(u64, std.mem.asBytes(&st), @bitOffsetOf(T, "b"), 7, builtin.cpu.arch.endian(), .unsigned); +/// +pub fn readVarPackedInt( + comptime T: type, + bytes: []const u8, + bit_offset: usize, + bit_count: usize, + endian: std.builtin.Endian, + signedness: std.builtin.Signedness, +) T { + const uN = std.meta.Int(.unsigned, @bitSizeOf(T)); + const iN = std.meta.Int(.signed, @bitSizeOf(T)); + const Log2N = std.math.Log2Int(T); + + const read_size = (bit_count + (bit_offset % 8) + 7) / 8; + const bit_shift = @intCast(u3, bit_offset % 8); + const pad = @intCast(Log2N, @bitSizeOf(T) - bit_count); + + const lowest_byte = switch (endian) { + .Big => bytes.len - (bit_offset / 8) - read_size, + .Little => bit_offset / 8, + }; + const read_bytes = bytes[lowest_byte..][0..read_size]; + + if (@bitSizeOf(T) <= 8) { + // These are the same shifts/masks we perform below, but adds `@truncate`/`@intCast` + // where needed since int is smaller than a byte. + const value = if (read_size == 1) b: { + break :b @truncate(uN, read_bytes[0] >> bit_shift); + } else b: { + const i: u1 = @boolToInt(endian == .Big); + const head = @truncate(uN, read_bytes[i] >> bit_shift); + const tail_shift = @intCast(Log2N, @as(u4, 8) - bit_shift); + const tail = @truncate(uN, read_bytes[1 - i]); + break :b (tail << tail_shift) | head; + }; + switch (signedness) { + .signed => return @intCast(T, (@bitCast(iN, value) << pad) >> pad), + .unsigned => return @intCast(T, (@bitCast(uN, value) << pad) >> pad), + } + } + + // Copy the value out (respecting endianness), accounting for bit_shift + var int: uN = 0; + switch (endian) { + .Big => { + for (read_bytes[0 .. read_size - 1]) |elem| { + int = elem | (int << 8); + } + int = (read_bytes[read_size - 1] >> bit_shift) | (int << (@as(u4, 8) - bit_shift)); + }, + .Little => { + int = read_bytes[0] >> bit_shift; + for (read_bytes[1..]) |elem, i| { + int |= (@as(uN, elem) << @intCast(Log2N, (8 * (i + 1) - bit_shift))); + } + }, + } + switch (signedness) { + .signed => return @intCast(T, (@bitCast(iN, int) << pad) >> pad), + .unsigned => return @intCast(T, (@bitCast(uN, int) << pad) >> pad), + } +} + /// Reads an integer from memory with bit count specified by T. /// The bit count of T must be evenly divisible by 8. /// This function cannot fail and cannot cause undefined behavior. @@ -1365,6 +1436,84 @@ pub fn readInt(comptime T: type, bytes: *const [@divExact(@typeInfo(T).Int.bits, } } +fn readPackedIntLittle(comptime T: type, bytes: []const u8, bit_offset: usize) T { + const uN = std.meta.Int(.unsigned, @bitSizeOf(T)); + const Log2N = std.math.Log2Int(T); + + const bit_count = @as(usize, @bitSizeOf(T)); + const bit_shift = @intCast(u3, bit_offset % 8); + + const load_size = (bit_count + 7) / 8; + const load_tail_bits = @intCast(u3, (load_size * 8) - bit_count); + const LoadInt = std.meta.Int(.unsigned, load_size * 8); + + if (bit_count == 0) + return 0; + + // Read by loading a LoadInt, and then follow it up with a 1-byte read + // of the tail if bit_offset pushed us over a byte boundary. + const read_bytes = bytes[bit_offset / 8 ..]; + const val = @truncate(uN, readIntLittle(LoadInt, read_bytes[0..load_size]) >> bit_shift); + if (bit_shift > load_tail_bits) { + const tail_bits = @intCast(Log2N, bit_shift - load_tail_bits); + const tail_byte = read_bytes[load_size]; + const tail_truncated = if (bit_count < 8) @truncate(uN, tail_byte) else @as(uN, tail_byte); + return @bitCast(T, val | (tail_truncated << (@truncate(Log2N, bit_count) -% tail_bits))); + } else return @bitCast(T, val); +} + +fn readPackedIntBig(comptime T: type, bytes: []const u8, bit_offset: usize) T { + const uN = std.meta.Int(.unsigned, @bitSizeOf(T)); + const Log2N = std.math.Log2Int(T); + + const bit_count = @as(usize, @bitSizeOf(T)); + const bit_shift = @intCast(u3, bit_offset % 8); + const byte_count = (@as(usize, bit_shift) + bit_count + 7) / 8; + + const load_size = (bit_count + 7) / 8; + const load_tail_bits = @intCast(u3, (load_size * 8) - bit_count); + const LoadInt = std.meta.Int(.unsigned, load_size * 8); + + if (bit_count == 0) + return 0; + + // Read by loading a LoadInt, and then follow it up with a 1-byte read + // of the tail if bit_offset pushed us over a byte boundary. + const end = bytes.len - (bit_offset / 8); + const read_bytes = bytes[(end - byte_count)..end]; + const val = @truncate(uN, readIntBig(LoadInt, bytes[(end - load_size)..end][0..load_size]) >> bit_shift); + if (bit_shift > load_tail_bits) { + const tail_bits = @intCast(Log2N, bit_shift - load_tail_bits); + const tail_byte = if (bit_count < 8) @truncate(uN, read_bytes[0]) else @as(uN, read_bytes[0]); + return @bitCast(T, val | (tail_byte << (@truncate(Log2N, bit_count) -% tail_bits))); + } else return @bitCast(T, val); +} + +pub const readPackedIntNative = switch (native_endian) { + .Little => readPackedIntLittle, + .Big => readPackedIntBig, +}; + +pub const readPackedIntForeign = switch (native_endian) { + .Little => readPackedIntBig, + .Big => readPackedIntLittle, +}; + +/// Loads an integer from packed memory. +/// Asserts that buffer contains at least bit_offset + @bitSizeOf(T) bits. +/// +/// Example: +/// const T = packed struct(u16){ a: u3, b: u7, c: u6 }; +/// var st = T{ .a = 1, .b = 2, .c = 4 }; +/// const b_field = readPackedInt(u7, std.mem.asBytes(&st), @bitOffsetOf(T, "b"), builtin.cpu.arch.endian()); +/// +pub fn readPackedInt(comptime T: type, bytes: []const u8, bit_offset: usize, endian: Endian) T { + switch (endian) { + .Little => return readPackedIntLittle(T, bytes, bit_offset), + .Big => return readPackedIntBig(T, bytes, bit_offset), + } +} + /// Asserts that bytes.len >= @typeInfo(T).Int.bits / 8. Reads the integer starting from index 0 /// and ignores extra bytes. /// The bit count of T must be evenly divisible by 8. @@ -1447,6 +1596,100 @@ pub fn writeInt(comptime T: type, buffer: *[@divExact(@typeInfo(T).Int.bits, 8)] } } +pub fn writePackedIntLittle(comptime T: type, bytes: []u8, bit_offset: usize, value: T) void { + const uN = std.meta.Int(.unsigned, @bitSizeOf(T)); + const Log2N = std.math.Log2Int(T); + + const bit_count = @as(usize, @bitSizeOf(T)); + const bit_shift = @intCast(u3, bit_offset % 8); + + const store_size = (@bitSizeOf(T) + 7) / 8; + const store_tail_bits = @intCast(u3, (store_size * 8) - bit_count); + const StoreInt = std.meta.Int(.unsigned, store_size * 8); + + if (bit_count == 0) + return; + + // Write by storing a StoreInt, and then follow it up with a 1-byte tail + // if bit_offset pushed us over a byte boundary. + const write_bytes = bytes[bit_offset / 8 ..]; + const head = write_bytes[0] & ((@as(u8, 1) << bit_shift) - 1); + + var write_value = (@as(StoreInt, @bitCast(uN, value)) << bit_shift) | @intCast(StoreInt, head); + if (bit_shift > store_tail_bits) { + const tail_len = @intCast(Log2N, bit_shift - store_tail_bits); + write_bytes[store_size] &= ~((@as(u8, 1) << @intCast(u3, tail_len)) - 1); + write_bytes[store_size] |= @intCast(u8, (@bitCast(uN, value) >> (@truncate(Log2N, bit_count) -% tail_len))); + } else if (bit_shift < store_tail_bits) { + const tail_len = store_tail_bits - bit_shift; + const tail = write_bytes[store_size - 1] & (@as(u8, 0xfe) << (7 - tail_len)); + write_value |= @as(StoreInt, tail) << (8 * (store_size - 1)); + } + + writeIntLittle(StoreInt, write_bytes[0..store_size], write_value); +} + +pub fn writePackedIntBig(comptime T: type, bytes: []u8, bit_offset: usize, value: T) void { + const uN = std.meta.Int(.unsigned, @bitSizeOf(T)); + const Log2N = std.math.Log2Int(T); + + const bit_count = @as(usize, @bitSizeOf(T)); + const bit_shift = @intCast(u3, bit_offset % 8); + const byte_count = (bit_shift + bit_count + 7) / 8; + + const store_size = (@bitSizeOf(T) + 7) / 8; + const store_tail_bits = @intCast(u3, (store_size * 8) - bit_count); + const StoreInt = std.meta.Int(.unsigned, store_size * 8); + + if (bit_count == 0) + return; + + // Write by storing a StoreInt, and then follow it up with a 1-byte tail + // if bit_offset pushed us over a byte boundary. + const end = bytes.len - (bit_offset / 8); + const write_bytes = bytes[(end - byte_count)..end]; + const head = write_bytes[byte_count - 1] & ((@as(u8, 1) << bit_shift) - 1); + + var write_value = (@as(StoreInt, @bitCast(uN, value)) << bit_shift) | @intCast(StoreInt, head); + if (bit_shift > store_tail_bits) { + const tail_len = @intCast(Log2N, bit_shift - store_tail_bits); + write_bytes[0] &= ~((@as(u8, 1) << @intCast(u3, tail_len)) - 1); + write_bytes[0] |= @intCast(u8, (@bitCast(uN, value) >> (@truncate(Log2N, bit_count) -% tail_len))); + } else if (bit_shift < store_tail_bits) { + const tail_len = store_tail_bits - bit_shift; + const tail = write_bytes[0] & (@as(u8, 0xfe) << (7 - tail_len)); + write_value |= @as(StoreInt, tail) << (8 * (store_size - 1)); + } + + writeIntBig(StoreInt, write_bytes[(byte_count - store_size)..][0..store_size], write_value); +} + +pub const writePackedIntNative = switch (native_endian) { + .Little => writePackedIntLittle, + .Big => writePackedIntBig, +}; + +pub const writePackedIntForeign = switch (native_endian) { + .Little => writePackedIntBig, + .Big => writePackedIntLittle, +}; + +/// Stores an integer to packed memory. +/// Asserts that buffer contains at least bit_offset + @bitSizeOf(T) bits. +/// +/// Example: +/// const T = packed struct(u16){ a: u3, b: u7, c: u6 }; +/// var st = T{ .a = 1, .b = 2, .c = 4 }; +/// // st.b = 0x7f; +/// writePackedInt(u7, std.mem.asBytes(&st), @bitOffsetOf(T, "b"), 0x7f, builtin.cpu.arch.endian()); +/// +pub fn writePackedInt(comptime T: type, bytes: []u8, bit_offset: usize, value: T, endian: Endian) void { + switch (endian) { + .Little => writePackedIntLittle(T, bytes, bit_offset, value), + .Big => writePackedIntBig(T, bytes, bit_offset, value), + } +} + /// Writes a twos-complement little-endian integer to memory. /// Asserts that buf.len >= @typeInfo(T).Int.bits / 8. /// The bit count of T must be divisible by 8. @@ -1523,6 +1766,69 @@ pub fn writeIntSlice(comptime T: type, buffer: []u8, value: T, endian: Endian) v }; } +/// Stores an integer to packed memory with provided bit_count, bit_offset, and signedness. +/// If negative, the written value is sign-extended. +/// +/// Example: +/// const T = packed struct(u16){ a: u3, b: u7, c: u6 }; +/// var st = T{ .a = 1, .b = 2, .c = 4 }; +/// // st.b = 0x7f; +/// var value: u64 = 0x7f; +/// writeVarPackedInt(std.mem.asBytes(&st), @bitOffsetOf(T, "b"), 7, value, builtin.cpu.arch.endian()); +/// +pub fn writeVarPackedInt(bytes: []u8, bit_offset: usize, bit_count: usize, value: anytype, endian: std.builtin.Endian) void { + const T = @TypeOf(value); + const uN = std.meta.Int(.unsigned, @bitSizeOf(T)); + const Log2N = std.math.Log2Int(T); + + const bit_shift = @intCast(u3, bit_offset % 8); + const write_size = (bit_count + bit_shift + 7) / 8; + const lowest_byte = switch (endian) { + .Big => bytes.len - (bit_offset / 8) - write_size, + .Little => bit_offset / 8, + }; + const write_bytes = bytes[lowest_byte..][0..write_size]; + + if (write_size == 1) { + // Single byte writes are handled specially, since we need to mask bits + // on both ends of the byte. + const mask = (@as(u8, 0xff) >> @intCast(u3, 8 - bit_count)); + const new_bits = @intCast(u8, @bitCast(uN, value) & mask) << bit_shift; + write_bytes[0] = (write_bytes[0] & ~(mask << bit_shift)) | new_bits; + return; + } + + var remaining: T = value; + + // Iterate bytes forward for Little-endian, backward for Big-endian + const delta: i2 = if (endian == .Big) -1 else 1; + const start = if (endian == .Big) @intCast(isize, write_bytes.len - 1) else 0; + + var i: isize = start; // isize for signed index arithmetic + + // Write first byte, using a mask to protects bits preceding bit_offset + const head_mask = @as(u8, 0xff) >> bit_shift; + write_bytes[@intCast(usize, i)] &= ~(head_mask << bit_shift); + write_bytes[@intCast(usize, i)] |= @intCast(u8, @bitCast(uN, remaining) & head_mask) << bit_shift; + remaining >>= @intCast(Log2N, @as(u4, 8) - bit_shift); + i += delta; + + // Write bytes[1..bytes.len - 1] + if (@bitSizeOf(T) > 8) { + const loop_end = start + delta * (@intCast(isize, write_size) - 1); + while (i != loop_end) : (i += delta) { + write_bytes[@intCast(usize, i)] = @truncate(u8, @bitCast(uN, remaining)); + remaining >>= 8; + } + } + + // Write last byte, using a mask to protect bits following bit_offset + bit_count + const following_bits = -%@truncate(u3, bit_shift + bit_count); + const tail_mask = (@as(u8, 0xff) << following_bits) >> following_bits; + write_bytes[@intCast(usize, i)] &= ~tail_mask; + write_bytes[@intCast(usize, i)] |= @intCast(u8, @bitCast(uN, remaining) & tail_mask); +} + test "writeIntBig and writeIntLittle" { var buf0: [0]u8 = undefined; var buf1: [1]u8 = undefined; @@ -3393,3 +3699,165 @@ pub fn alignInSlice(slice: anytype, comptime new_alignment: usize) ?AlignedSlice const aligned_slice = bytesAsSlice(Element, aligned_bytes[0..slice_length_bytes]); return @alignCast(new_alignment, aligned_slice); } + +test "read/write(Var)PackedInt" { + switch (builtin.cpu.arch) { + // This test generates too much code to execute on WASI. + // LLVM backend fails with "too many locals: locals exceed maximum" + .wasm32, .wasm64 => return error.SkipZigTest, + else => {}, + } + + const foreign_endian: Endian = if (native_endian == .Big) .Little else .Big; + const expect = std.testing.expect; + var prng = std.rand.DefaultPrng.init(1234); + const random = prng.random(); + + @setEvalBranchQuota(10_000); + inline for ([_]type{ u8, u16, u32, u128 }) |BackingType| { + for ([_]BackingType{ + @as(BackingType, 0), // all zeros + -%@as(BackingType, 1), // all ones + random.int(BackingType), // random + random.int(BackingType), // random + random.int(BackingType), // random + }) |init_value| { + const uTs = [_]type{ u1, u3, u7, u8, u9, u10, u15, u16, u86 }; + const iTs = [_]type{ i1, i3, i7, i8, i9, i10, i15, i16, i86 }; + inline for (uTs ++ iTs) |PackedType| { + if (@bitSizeOf(PackedType) > @bitSizeOf(BackingType)) + continue; + + const iPackedType = std.meta.Int(.signed, @bitSizeOf(PackedType)); + const uPackedType = std.meta.Int(.unsigned, @bitSizeOf(PackedType)); + const Log2T = std.math.Log2Int(BackingType); + + const offset_at_end = @bitSizeOf(BackingType) - @bitSizeOf(PackedType); + for ([_]usize{ 0, 1, 7, 8, 9, 10, 15, 16, 86, offset_at_end }) |offset| { + if (offset > offset_at_end or offset == @bitSizeOf(BackingType)) + continue; + + for ([_]PackedType{ + ~@as(PackedType, 0), // all ones: -1 iN / maxInt uN + @as(PackedType, 0), // all zeros: 0 iN / 0 uN + @bitCast(PackedType, @as(iPackedType, math.maxInt(iPackedType))), // maxInt iN + @bitCast(PackedType, @as(iPackedType, math.minInt(iPackedType))), // maxInt iN + random.int(PackedType), // random + random.int(PackedType), // random + }) |write_value| { + { // Fixed-size Read/Write (Native-endian) + + // Initialize Value + var value: BackingType = init_value; + + // Read + const read_value1 = readPackedInt(PackedType, asBytes(&value), offset, native_endian); + try expect(read_value1 == @bitCast(PackedType, @truncate(uPackedType, value >> @intCast(Log2T, offset)))); + + // Write + writePackedInt(PackedType, asBytes(&value), offset, write_value, native_endian); + try expect(write_value == @bitCast(PackedType, @truncate(uPackedType, value >> @intCast(Log2T, offset)))); + + // Read again + const read_value2 = readPackedInt(PackedType, asBytes(&value), offset, native_endian); + try expect(read_value2 == write_value); + + // Verify bits outside of the target integer are unmodified + const diff_bits = init_value ^ value; + if (offset != offset_at_end) + try expect(diff_bits >> @intCast(Log2T, offset + @bitSizeOf(PackedType)) == 0); + if (offset != 0) + try expect(diff_bits << @intCast(Log2T, @bitSizeOf(BackingType) - offset) == 0); + } + + { // Fixed-size Read/Write (Foreign-endian) + + // Initialize Value + var value: BackingType = @byteSwap(init_value); + + // Read + const read_value1 = readPackedInt(PackedType, asBytes(&value), offset, foreign_endian); + try expect(read_value1 == @bitCast(PackedType, @truncate(uPackedType, @byteSwap(value) >> @intCast(Log2T, offset)))); + + // Write + writePackedInt(PackedType, asBytes(&value), offset, write_value, foreign_endian); + try expect(write_value == @bitCast(PackedType, @truncate(uPackedType, @byteSwap(value) >> @intCast(Log2T, offset)))); + + // Read again + const read_value2 = readPackedInt(PackedType, asBytes(&value), offset, foreign_endian); + try expect(read_value2 == write_value); + + // Verify bits outside of the target integer are unmodified + const diff_bits = init_value ^ @byteSwap(value); + if (offset != offset_at_end) + try expect(diff_bits >> @intCast(Log2T, offset + @bitSizeOf(PackedType)) == 0); + if (offset != 0) + try expect(diff_bits << @intCast(Log2T, @bitSizeOf(BackingType) - offset) == 0); + } + + const signedness = @typeInfo(PackedType).Int.signedness; + const NextPowerOfTwoInt = std.meta.Int(signedness, comptime try std.math.ceilPowerOfTwo(u16, @bitSizeOf(PackedType))); + const ui64 = std.meta.Int(signedness, 64); + inline for ([_]type{ PackedType, NextPowerOfTwoInt, ui64 }) |U| { + { // Variable-size Read/Write (Native-endian) + + if (@bitSizeOf(U) < @bitSizeOf(PackedType)) + continue; + + // Initialize Value + var value: BackingType = init_value; + + // Read + const read_value1 = readVarPackedInt(U, asBytes(&value), offset, @bitSizeOf(PackedType), native_endian, signedness); + try expect(read_value1 == @bitCast(PackedType, @truncate(uPackedType, value >> @intCast(Log2T, offset)))); + + // Write + writeVarPackedInt(asBytes(&value), offset, @bitSizeOf(PackedType), @as(U, write_value), native_endian); + try expect(write_value == @bitCast(PackedType, @truncate(uPackedType, value >> @intCast(Log2T, offset)))); + + // Read again + const read_value2 = readVarPackedInt(U, asBytes(&value), offset, @bitSizeOf(PackedType), native_endian, signedness); + try expect(read_value2 == write_value); + + // Verify bits outside of the target integer are unmodified + const diff_bits = init_value ^ value; + if (offset != offset_at_end) + try expect(diff_bits >> @intCast(Log2T, offset + @bitSizeOf(PackedType)) == 0); + if (offset != 0) + try expect(diff_bits << @intCast(Log2T, @bitSizeOf(BackingType) - offset) == 0); + } + + { // Variable-size Read/Write (Foreign-endian) + + if (@bitSizeOf(U) < @bitSizeOf(PackedType)) + continue; + + // Initialize Value + var value: BackingType = @byteSwap(init_value); + + // Read + const read_value1 = readVarPackedInt(U, asBytes(&value), offset, @bitSizeOf(PackedType), foreign_endian, signedness); + try expect(read_value1 == @bitCast(PackedType, @truncate(uPackedType, @byteSwap(value) >> @intCast(Log2T, offset)))); + + // Write + writeVarPackedInt(asBytes(&value), offset, @bitSizeOf(PackedType), @as(U, write_value), foreign_endian); + try expect(write_value == @bitCast(PackedType, @truncate(uPackedType, @byteSwap(value) >> @intCast(Log2T, offset)))); + + // Read again + const read_value2 = readVarPackedInt(U, asBytes(&value), offset, @bitSizeOf(PackedType), foreign_endian, signedness); + try expect(read_value2 == write_value); + + // Verify bits outside of the target integer are unmodified + const diff_bits = init_value ^ @byteSwap(value); + if (offset != offset_at_end) + try expect(diff_bits >> @intCast(Log2T, offset + @bitSizeOf(PackedType)) == 0); + if (offset != 0) + try expect(diff_bits << @intCast(Log2T, @bitSizeOf(BackingType) - offset) == 0); + } + } + } + } + } + } + } +} diff --git a/lib/std/mem/Allocator.zig b/lib/std/mem/Allocator.zig index 5997a06b9f53fef6f4b7773b02c5091b9b0c70c7..a574f8f37dd053fec13fcb2623082a7dd200afa9 100644 --- a/lib/std/mem/Allocator.zig +++ b/lib/std/mem/Allocator.zig @@ -286,7 +286,8 @@ pub fn allocAdvancedWithRetAddr( } else @alignOf(T); if (n == 0) { - return @as([*]align(a) T, undefined)[0..0]; + const ptr = comptime std.mem.alignBackward(std.math.maxInt(usize), a); + return @intToPtr([*]align(a) T, ptr)[0..0]; } const byte_count = math.mul(usize, @sizeOf(T), n) catch return Error.OutOfMemory; @@ -383,7 +384,8 @@ pub fn reallocAdvancedWithRetAddr( } if (new_n == 0) { self.free(old_mem); - return @as([*]align(new_alignment) T, undefined)[0..0]; + const ptr = comptime std.mem.alignBackward(std.math.maxInt(usize), new_alignment); + return @intToPtr([*]align(new_alignment) T, ptr)[0..0]; } const old_byte_slice = mem.sliceAsBytes(old_mem); @@ -462,7 +464,8 @@ pub fn alignedShrinkWithRetAddr( return old_mem; if (new_n == 0) { self.free(old_mem); - return @as([*]align(new_alignment) T, undefined)[0..0]; + const ptr = comptime std.mem.alignBackward(std.math.maxInt(usize), new_alignment); + return @intToPtr([*]align(new_alignment) T, ptr)[0..0]; } assert(new_n < old_mem.len); diff --git a/lib/std/os.zig b/lib/std/os.zig index 74ffd4de12294d884e072e2302e03c1314a2f51d..e69a2a79436ceb2cbafaeeb2088c8464ff223a88 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -366,6 +366,56 @@ pub fn fchown(fd: fd_t, owner: ?uid_t, group: ?gid_t) FChownError!void { } } +pub const RebootError = error{ + PermissionDenied, +} || UnexpectedError; + +pub const RebootCommand = switch (builtin.os.tag) { + .linux => union(linux.LINUX_REBOOT.CMD) { + RESTART: void, + HALT: void, + CAD_ON: void, + CAD_OFF: void, + POWER_OFF: void, + RESTART2: [*:0]const u8, + SW_SUSPEND: void, + KEXEC: void, + }, + else => @compileError("Unsupported OS"), +}; + +pub fn reboot(cmd: RebootCommand) RebootError!void { + switch (builtin.os.tag) { + .linux => { + switch (system.getErrno(linux.reboot( + .MAGIC1, + .MAGIC2, + @as(linux.LINUX_REBOOT.CMD, cmd), + switch (cmd) { + .RESTART2 => |s| s, + else => null, + }, + ))) { + .SUCCESS => {}, + .PERM => return error.PermissionDenied, + else => |err| return std.os.unexpectedErrno(err), + } + switch (cmd) { + .CAD_OFF => {}, + .CAD_ON => {}, + .SW_SUSPEND => {}, + + .HALT => unreachable, + .KEXEC => unreachable, + .POWER_OFF => unreachable, + .RESTART => unreachable, + .RESTART2 => unreachable, + } + }, + else => @compileError("Unsupported OS"), + } +} + pub const GetRandomError = OpenError; /// Obtain a series of random bytes. These bytes can be used to seed user-space diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 8ca20bc330fa4c4a8efdd44b1c8ece4cc696b542..da9ea7432744163187492f35e0933b2b24c3a86d 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -804,6 +804,63 @@ pub fn exit_group(status: i32) noreturn { unreachable; } +/// flags for the `reboot' system call. +pub const LINUX_REBOOT = struct { + /// First magic value required to use _reboot() system call. + pub const MAGIC1 = enum(u32) { + MAGIC1 = 0xfee1dead, + _, + }; + + /// Second magic value required to use _reboot() system call. + pub const MAGIC2 = enum(u32) { + MAGIC2 = 672274793, + MAGIC2A = 85072278, + MAGIC2B = 369367448, + MAGIC2C = 537993216, + _, + }; + + /// Commands accepted by the _reboot() system call. + pub const CMD = enum(u32) { + /// Restart system using default command and mode. + RESTART = 0x01234567, + + /// Stop OS and give system control to ROM monitor, if any. + HALT = 0xCDEF0123, + + /// Ctrl-Alt-Del sequence causes RESTART command. + CAD_ON = 0x89ABCDEF, + + /// Ctrl-Alt-Del sequence sends SIGINT to init task. + CAD_OFF = 0x00000000, + + /// Stop OS and remove all power from system, if possible. + POWER_OFF = 0x4321FEDC, + + /// Restart system using given command string. + RESTART2 = 0xA1B2C3D4, + + /// Suspend system using software suspend if compiled in. + SW_SUSPEND = 0xD000FCE2, + + /// Restart system using a previously loaded Linux kernel + KEXEC = 0x45584543, + + _, + }; +}; + +pub fn reboot(magic: LINUX_REBOOT.MAGIC1, magic2: LINUX_REBOOT.MAGIC2, cmd: LINUX_REBOOT.CMD, arg: ?*const anyopaque) usize { + return std.os.linux.syscall4( + .reboot, + @enumToInt(magic), + @enumToInt(magic2), + @enumToInt(cmd), + @ptrToInt(arg), + ); +} + pub fn getrandom(buf: [*]u8, count: usize, flags: u32) usize { return syscall3(.getrandom, @ptrToInt(buf), count, flags); } @@ -3208,6 +3265,21 @@ pub const sockaddr = extern struct { queue_id: u32, shared_umem_fd: u32, }; + + /// Address structure for vSockets + pub const vm = extern struct { + family: sa_family_t = AF.VSOCK, + reserved1: u16 = 0, + port: u32, + cid: u32, + flags: u8, + + /// The total size of this structure should be exactly the same as that of struct sockaddr. + zero: [3]u8 = [_]u8{0} ** 3, + comptime { + std.debug.assert(@sizeOf(vm) == @sizeOf(sockaddr)); + } + }; }; pub const mmsghdr = extern struct { diff --git a/lib/std/target.zig b/lib/std/target.zig index d791e3b0350ab19bf762b8d52f08730015b41876..342e535c2747aedc6899a97cc6c28a5cb51aaa50 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -276,14 +276,14 @@ pub const Target = struct { .macos => return switch (arch) { .aarch64 => VersionRange{ .semver = .{ - .min = .{ .major = 11, .minor = 6, .patch = 6 }, - .max = .{ .major = 12, .minor = 4 }, + .min = .{ .major = 11, .minor = 7, .patch = 1 }, + .max = .{ .major = 13, .minor = 0 }, }, }, .x86_64 => VersionRange{ .semver = .{ - .min = .{ .major = 10, .minor = 15, .patch = 7 }, - .max = .{ .major = 12, .minor = 4 }, + .min = .{ .major = 11, .minor = 7, .patch = 1 }, + .max = .{ .major = 13, .minor = 0 }, }, }, else => unreachable, @@ -1780,71 +1780,6 @@ pub const Target = struct { }; } - pub inline fn longDoubleIs(target: Target, comptime F: type) bool { - if (target.abi == .msvc or (target.abi == .android and target.cpu.arch == .i386)) { - return F == f64; - } - return switch (F) { - f128 => switch (target.cpu.arch) { - .aarch64 => { - // According to Apple's official guide: - // > The long double type is a double precision IEEE754 binary floating-point type, - // > which makes it identical to the double type. This behavior contrasts to the - // > standard specification, in which a long double is a quad-precision, IEEE754 - // > binary, floating-point type. - // https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms - return !target.isDarwin(); - }, - - .riscv64, - .aarch64_be, - .aarch64_32, - .s390x, - .mips64, - .mips64el, - .sparc, - .sparc64, - .sparcel, - .powerpc, - .powerpcle, - .powerpc64, - .powerpc64le, - .wasm32, - .wasm64, - => true, - - else => false, - }, - f80 => switch (target.cpu.arch) { - .x86_64, .i386 => true, - else => false, - }, - f64 => switch (target.cpu.arch) { - .aarch64 => target.isDarwin(), - - .x86_64, - .i386, - .riscv64, - .aarch64_be, - .aarch64_32, - .s390x, - .mips64, - .mips64el, - .sparc, - .sparc64, - .sparcel, - .powerpc, - .powerpcle, - .powerpc64, - .powerpc64le, - => false, - - else => true, - }, - else => false, - }; - } - pub inline fn maxIntAlignment(target: Target) u16 { return switch (target.cpu.arch) { .avr => 1, @@ -1872,7 +1807,7 @@ pub const Target = struct { => 8, .i386 => return switch (target.os.tag) { - .windows => 8, + .windows, .uefi => 8, else => 4, }, diff --git a/lib/std/x/net/bpf.zig b/lib/std/x/net/bpf.zig index e8db9a3e0ecbf9ff958183bd5d5c0b3bd3fff665..8fd318b03bbbbb3e77024e4f299ce1a8d47d4a99 100644 --- a/lib/std/x/net/bpf.zig +++ b/lib/std/x/net/bpf.zig @@ -691,14 +691,14 @@ test "tcpdump filter" { ); } -fn expectPass(data: anytype, filter: []Insn) !void { +fn expectPass(data: anytype, filter: []const Insn) !void { try expectEqual( @as(u32, 0), try simulate(mem.asBytes(data), filter, .Big), ); } -fn expectFail(expected_error: anyerror, data: anytype, filter: []Insn) !void { +fn expectFail(expected_error: anyerror, data: anytype, filter: []const Insn) !void { try expectError( expected_error, simulate(mem.asBytes(data), filter, native_endian), diff --git a/lib/std/zig/c_translation.zig b/lib/std/zig/c_translation.zig index 6bc664f04cf71c4e12fc69805efd754d9dd97471..664cb09ae49e04856e2da49815db49b03ed1dffa 100644 --- a/lib/std/zig/c_translation.zig +++ b/lib/std/zig/c_translation.zig @@ -40,6 +40,17 @@ pub fn cast(comptime DestType: type, target: anytype) DestType { .Fn => { return castInt(DestType, @ptrToInt(&target)); }, + .Bool => { + return @boolToInt(target); + }, + else => {}, + } + }, + .Float => { + switch (@typeInfo(SourceType)) { + .Int => return @intToFloat(DestType, target), + .Float => return @floatCast(DestType, target), + .Bool => return @intToFloat(DestType, @boolToInt(target)), else => {}, } }, @@ -446,6 +457,121 @@ pub const Macros = struct { } }; +/// Integer promotion described in C11 6.3.1.1.2 +fn PromotedIntType(comptime T: type) type { + return switch (T) { + bool, u8, i8, c_short => c_int, + c_ushort => if (@sizeOf(c_ushort) == @sizeOf(c_int)) c_uint else c_int, + c_int, c_uint, c_long, c_ulong, c_longlong, c_ulonglong => T, + else => if (T == comptime_int) { + @compileError("Cannot promote `" ++ @typeName(T) ++ "`; a fixed-size number type is required"); + } else if (@typeInfo(T) == .Int) { + @compileError("Cannot promote `" ++ @typeName(T) ++ "`; a C ABI type is required"); + } else { + @compileError("Attempted to promote invalid type `" ++ @typeName(T) ++ "`"); + }, + }; +} + +/// C11 6.3.1.1.1 +fn integerRank(comptime T: type) u8 { + return switch (T) { + bool => 0, + u8, i8 => 1, + c_short, c_ushort => 2, + c_int, c_uint => 3, + c_long, c_ulong => 4, + c_longlong, c_ulonglong => 5, + else => @compileError("integer rank not supported for `" ++ @typeName(T) ++ "`"), + }; +} + +fn ToUnsigned(comptime T: type) type { + return switch (T) { + c_int => c_uint, + c_long => c_ulong, + c_longlong => c_ulonglong, + else => @compileError("Cannot convert `" ++ @typeName(T) ++ "` to unsigned"), + }; +} + +/// "Usual arithmetic conversions" from C11 standard 6.3.1.8 +fn ArithmeticConversion(comptime A: type, comptime B: type) type { + if (A == c_longdouble or B == c_longdouble) return c_longdouble; + if (A == f80 or B == f80) return f80; + if (A == f64 or B == f64) return f64; + if (A == f32 or B == f32) return f32; + + const A_Promoted = PromotedIntType(A); + const B_Promoted = PromotedIntType(B); + comptime { + std.debug.assert(integerRank(A_Promoted) >= integerRank(c_int)); + std.debug.assert(integerRank(B_Promoted) >= integerRank(c_int)); + } + + if (A_Promoted == B_Promoted) return A_Promoted; + + const a_signed = @typeInfo(A_Promoted).Int.signedness == .signed; + const b_signed = @typeInfo(B_Promoted).Int.signedness == .signed; + + if (a_signed == b_signed) { + return if (integerRank(A_Promoted) > integerRank(B_Promoted)) A_Promoted else B_Promoted; + } + + const SignedType = if (a_signed) A_Promoted else B_Promoted; + const UnsignedType = if (!a_signed) A_Promoted else B_Promoted; + + if (integerRank(UnsignedType) >= integerRank(SignedType)) return UnsignedType; + + if (std.math.maxInt(SignedType) >= std.math.maxInt(UnsignedType)) return SignedType; + + return ToUnsigned(SignedType); +} + +test "ArithmeticConversion" { + // Promotions not necessarily the same for other platforms + if (builtin.target.cpu.arch != .x86_64 or builtin.target.os.tag != .linux) return error.SkipZigTest; + + const Test = struct { + /// Order of operands should not matter for arithmetic conversions + fn checkPromotion(comptime A: type, comptime B: type, comptime Expected: type) !void { + try std.testing.expect(ArithmeticConversion(A, B) == Expected); + try std.testing.expect(ArithmeticConversion(B, A) == Expected); + } + }; + + try Test.checkPromotion(c_longdouble, c_int, c_longdouble); + try Test.checkPromotion(c_int, f64, f64); + try Test.checkPromotion(f32, bool, f32); + + try Test.checkPromotion(bool, c_short, c_int); + try Test.checkPromotion(c_int, c_int, c_int); + try Test.checkPromotion(c_short, c_int, c_int); + + try Test.checkPromotion(c_int, c_long, c_long); + + try Test.checkPromotion(c_ulonglong, c_uint, c_ulonglong); + + try Test.checkPromotion(c_uint, c_int, c_uint); + + try Test.checkPromotion(c_uint, c_long, c_long); + + try Test.checkPromotion(c_ulong, c_longlong, c_ulonglong); +} + +pub const MacroArithmetic = struct { + pub fn div(a: anytype, b: anytype) ArithmeticConversion(@TypeOf(a), @TypeOf(b)) { + const ResType = ArithmeticConversion(@TypeOf(a), @TypeOf(b)); + const a_casted = cast(ResType, a); + const b_casted = cast(ResType, b); + switch (@typeInfo(ResType)) { + .Float => return a_casted / b_casted, + .Int => return @divTrunc(a_casted, b_casted), + else => unreachable, + } + } +}; + test "Macro suffix functions" { try testing.expect(@TypeOf(Macros.F_SUFFIX(1)) == f32); diff --git a/lib/std/zig/system/NativeTargetInfo.zig b/lib/std/zig/system/NativeTargetInfo.zig index 7a31dfa44fa84783c16ac4422711a05d983ca2ac..c7b3f73f89626ead5524bc1f84fa0ddf5a03ca04 100644 --- a/lib/std/zig/system/NativeTargetInfo.zig +++ b/lib/std/zig/system/NativeTargetInfo.zig @@ -20,7 +20,6 @@ dynamic_linker: DynamicLinker = DynamicLinker{}, pub const DynamicLinker = Target.DynamicLinker; pub const DetectError = error{ - OutOfMemory, FileSystem, SystemResources, SymLinkLoop, diff --git a/src/AstGen.zig b/src/AstGen.zig index 07a972eaab9b3bef9528db146fe08ef566e81816..48e6a480f347bb934c94805b554c89082faecfb8 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -9709,7 +9709,7 @@ fn rvalue( const result_index = refToIndex(result) orelse return gz.addUnTok(.ref, result, src_token); const zir_tags = gz.astgen.instructions.items(.tag); - if (zir_tags[result_index].isParam()) + if (zir_tags[result_index].isParam() or astgen.isInferred(result)) return gz.addUnTok(.ref, result, src_token); const gop = try astgen.ref_table.getOrPut(astgen.gpa, result_index); if (!gop.found_existing) { @@ -12196,6 +12196,13 @@ fn isInferred(astgen: *AstGen, ref: Zir.Inst.Ref) bool { .alloc_inferred_comptime_mut, => true, + .extended => { + const zir_data = astgen.instructions.items(.data); + if (zir_data[inst].extended.opcode != .alloc) return false; + const small = @bitCast(Zir.Inst.AllocExtended.Small, zir_data[inst].extended.small); + return !small.has_type; + }, + else => false, }; } diff --git a/src/Compilation.zig b/src/Compilation.zig index 99332e5d2bb662740779db4d0cf5ed5e4caa8d10..81aa6ec5961ce86822ee6fa1428cf66cd628d887 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -7,6 +7,9 @@ const Allocator = std.mem.Allocator; const assert = std.debug.assert; const log = std.log.scoped(.compilation); const Target = std.Target; +const ArrayList = std.ArrayList; +const Sha256 = std.crypto.hash.sha2.Sha256; +const fs = std.fs; const Value = @import("value.zig").Value; const Type = @import("type.zig").Type; @@ -1106,6 +1109,7 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation { const root_name = try arena.dupeZ(u8, options.root_name); const use_stage1 = options.use_stage1 orelse false; + if (use_stage1 and !build_options.have_stage1) return error.ZigCompilerBuiltWithoutStage1; // Make a decision on whether to use LLVM or our own backend. const use_llvm = build_options.have_llvm and blk: { @@ -3918,6 +3922,70 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: *std.P } } + // Windows has an argument length limit of 32,766 characters, macOS 262,144 and Linux + // 2,097,152. If our args exceed 30 KiB, we instead write them to a "response file" and + // pass that to zig, e.g. via 'zig build-lib @args.rsp' + // See @file syntax here: https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html + var args_length: usize = 0; + for (argv.items) |arg| { + args_length += arg.len + 1; // +1 to account for null terminator + } + if (args_length >= 30 * 1024) { + const allocator = comp.gpa; + const input_args = argv.items[2..]; + const output_dir = comp.local_cache_directory; + + var args_arena = std.heap.ArenaAllocator.init(allocator); + defer args_arena.deinit(); + + const args_to_escape = input_args; + var escaped_args = try ArrayList([]const u8).initCapacity(args_arena.allocator(), args_to_escape.len); + + arg_blk: for (args_to_escape) |arg| { + for (arg) |c, arg_idx| { + if (c == '\\' or c == '"') { + // Slow path for arguments that need to be escaped. We'll need to allocate and copy + var escaped = try ArrayList(u8).initCapacity(args_arena.allocator(), arg.len + 1); + const writer = escaped.writer(); + writer.writeAll(arg[0..arg_idx]) catch unreachable; + for (arg[arg_idx..]) |to_escape| { + if (to_escape == '\\' or to_escape == '"') try writer.writeByte('\\'); + try writer.writeByte(to_escape); + } + escaped_args.appendAssumeCapacity(escaped.items); + continue :arg_blk; + } + } + escaped_args.appendAssumeCapacity(arg); // no escaping needed so just use original argument + } + + const partially_quoted = try std.mem.join(allocator, "\" \"", escaped_args.items); + const args = try std.mem.concat(allocator, u8, &[_][]const u8{ "\"", partially_quoted, "\"" }); + + // Write the args to zig-cache/args/ to avoid conflicts with + // other zig build commands running in parallel. + + var args_hash: [Sha256.digest_length]u8 = undefined; + Sha256.hash(args, &args_hash, .{}); + var args_hex_hash: [Sha256.digest_length * 2]u8 = undefined; + _ = try std.fmt.bufPrint( + &args_hex_hash, + "{s}", + .{std.fmt.fmtSliceHexLower(&args_hash)}, + ); + + const args_dir = "args"; + try output_dir.handle.makePath(args_dir); + const args_file = try fs.path.join(allocator, &[_][]const u8{ + args_dir, args_hex_hash[0..], + }); + try output_dir.handle.writeFile(args_file, args); + const args_file_path = try output_dir.handle.realpathAlloc(allocator, args_file); + + argv.shrinkRetainingCapacity(2); + try argv.append(try std.mem.concat(allocator, u8, &[_][]const u8{ "@", args_file_path })); + } + if (comp.verbose_cc) { dump_argv(argv.items); } diff --git a/src/Module.zig b/src/Module.zig index 4f150b01487f5e6848de23779a65642c0aa92615..a8ea63ffc9a0614ec561cfe9f6e70a608de88a4f 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -3367,6 +3367,8 @@ pub fn deinit(mod: *Module) void { for (mod.import_table.keys()) |key| { gpa.free(key); } + var failed_decls = mod.failed_decls; + mod.failed_decls = .{}; for (mod.import_table.values()) |value| { value.destroy(mod); } @@ -3406,10 +3408,10 @@ pub fn deinit(mod: *Module) void { mod.local_zir_cache.handle.close(); mod.global_zir_cache.handle.close(); - for (mod.failed_decls.values()) |value| { + for (failed_decls.values()) |value| { value.destroy(gpa); } - mod.failed_decls.deinit(gpa); + failed_decls.deinit(gpa); if (mod.emit_h) |emit_h| { for (emit_h.failed_decls.values()) |value| { @@ -3482,6 +3484,14 @@ pub fn deinit(mod: *Module) void { pub fn destroyDecl(mod: *Module, decl_index: Decl.Index) void { const gpa = mod.gpa; { + if (mod.failed_decls.contains(decl_index)) { + blk: { + const errs = mod.comp.getAllErrorsAlloc() catch break :blk; + for (errs.list) |err| Compilation.AllErrors.Message.renderToStdErr(err, .no_color); + } + // TODO restore test case triggering this panic + @panic("Zig compiler bug: attempted to destroy declaration with an attached error"); + } const decl = mod.declPtr(decl_index); log.debug("destroy {*} ({s})", .{ decl, decl.name }); _ = mod.test_functions.swapRemove(decl_index); diff --git a/src/Sema.zig b/src/Sema.zig index 4c2f72034e3d8fa088c40c640501972d0cd4a518..a73c1eedcbe870dd1251cd1e10d0979f38e2a932 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -151,6 +151,8 @@ pub const Block = struct { runtime_index: Value.RuntimeIndex = .zero, inline_block: Zir.Inst.Index = 0, + comptime_reason: ?*const ComptimeReason = null, + // TODO is_comptime and comptime_reason should probably be merged together. is_comptime: bool, is_typeof: bool = false, is_coerce_result_ptr: bool = false, @@ -173,6 +175,49 @@ pub const Block = struct { /// Value for switch_capture in an inline case inline_case_capture: Air.Inst.Ref = .none, + const ComptimeReason = union(enum) { + c_import: struct { + block: *Block, + src: LazySrcLoc, + }, + comptime_ret_ty: struct { + block: *Block, + func: Air.Inst.Ref, + func_src: LazySrcLoc, + return_ty: Type, + }, + + fn explain(cr: ComptimeReason, sema: *Sema, msg: ?*Module.ErrorMsg) !void { + const parent = msg orelse return; + const prefix = "expression is evaluated at comptime because "; + switch (cr) { + .c_import => |ci| { + try sema.errNote(ci.block, ci.src, parent, prefix ++ "it is inside a @cImport", .{}); + }, + .comptime_ret_ty => |rt| { + const src_loc = if (try sema.funcDeclSrc(rt.block, rt.func_src, rt.func)) |capture| blk: { + var src_loc = capture; + src_loc.lazy = .{ .node_offset_fn_type_ret_ty = 0 }; + break :blk src_loc; + } else blk: { + const src_decl = sema.mod.declPtr(rt.block.src_decl); + break :blk rt.func_src.toSrcLoc(src_decl); + }; + if (rt.return_ty.tag() == .generic_poison) { + return sema.mod.errNoteNonLazy(src_loc, parent, prefix ++ "the generic function was instantiated with a comptime-only return type", .{}); + } + try sema.mod.errNoteNonLazy( + src_loc, + parent, + prefix ++ "the function returns a comptime-only type '{}'", + .{rt.return_ty.fmt(sema.mod)}, + ); + try sema.explainWhyTypeIsComptime(rt.block, rt.func_src, parent, src_loc, rt.return_ty); + }, + } + } + }; + const Param = struct { /// `noreturn` means `anytype`. ty: Type, @@ -224,6 +269,7 @@ pub const Block = struct { .label = null, .inlining = parent.inlining, .is_comptime = parent.is_comptime, + .comptime_reason = parent.comptime_reason, .is_typeof = parent.is_typeof, .runtime_cond = parent.runtime_cond, .runtime_loop = parent.runtime_loop, @@ -1420,7 +1466,10 @@ fn analyzeBodyInner( const extra = sema.code.extraData(Zir.Inst.CondBr, inst_data.payload_index); const then_body = sema.code.extra[extra.end..][0..extra.data.then_body_len]; const else_body = sema.code.extra[extra.end + then_body.len ..][0..extra.data.else_body_len]; - const cond = try sema.resolveInstConst(block, cond_src, extra.data.condition, "condition in comptime branch must be comptime-known"); + const cond = sema.resolveInstConst(block, cond_src, extra.data.condition, "condition in comptime branch must be comptime-known") catch |err| { + if (err == error.AnalysisFail and block.comptime_reason != null) try block.comptime_reason.?.explain(sema, sema.err); + return err; + }; const inline_body = if (cond.val.toBool()) then_body else else_body; try sema.maybeErrorUnwrapCondbr(block, inline_body, extra.data.condition, cond_src); @@ -1438,7 +1487,10 @@ fn analyzeBodyInner( const extra = sema.code.extraData(Zir.Inst.CondBr, inst_data.payload_index); const then_body = sema.code.extra[extra.end..][0..extra.data.then_body_len]; const else_body = sema.code.extra[extra.end + then_body.len ..][0..extra.data.else_body_len]; - const cond = try sema.resolveInstConst(block, cond_src, extra.data.condition, "condition in comptime branch must be comptime-known"); + const cond = sema.resolveInstConst(block, cond_src, extra.data.condition, "condition in comptime branch must be comptime-known") catch |err| { + if (err == error.AnalysisFail and block.comptime_reason != null) try block.comptime_reason.?.explain(sema, sema.err); + return err; + }; const inline_body = if (cond.val.toBool()) then_body else else_body; const old_runtime_index = block.runtime_index; defer block.runtime_index = old_runtime_index; @@ -1460,7 +1512,10 @@ fn analyzeBodyInner( const err_union = try sema.resolveInst(extra.data.operand); const is_non_err = try sema.analyzeIsNonErrComptimeOnly(block, operand_src, err_union); assert(is_non_err != .none); - const is_non_err_tv = try sema.resolveInstConst(block, operand_src, is_non_err, "try operand inside comptime block must be comptime-known"); + const is_non_err_tv = sema.resolveInstConst(block, operand_src, is_non_err, "try operand inside comptime block must be comptime-known") catch |err| { + if (err == error.AnalysisFail and block.comptime_reason != null) try block.comptime_reason.?.explain(sema, sema.err); + return err; + }; if (is_non_err_tv.val.toBool()) { const err_union_ty = sema.typeOf(err_union); break :blk try sema.analyzeErrUnionPayload(block, src, err_union_ty, err_union, operand_src, false); @@ -1516,7 +1571,10 @@ fn analyzeBodyInner( const err_union = try sema.analyzeLoad(block, src, operand, operand_src); const is_non_err = try sema.analyzeIsNonErrComptimeOnly(block, operand_src, err_union); assert(is_non_err != .none); - const is_non_err_tv = try sema.resolveInstConst(block, operand_src, is_non_err, "try operand inside comptime block must be comptime-known"); + const is_non_err_tv = sema.resolveInstConst(block, operand_src, is_non_err, "try operand inside comptime block must be comptime-known") catch |err| { + if (err == error.AnalysisFail and block.comptime_reason != null) try block.comptime_reason.?.explain(sema, sema.err); + return err; + }; if (is_non_err_tv.val.toBool()) { break :blk try sema.analyzeErrUnionPayloadPtr(block, src, operand, false, false); } @@ -1675,8 +1733,8 @@ pub fn setupErrorReturnTrace(sema: *Sema, block: *Block, last_arg_index: usize) return; } + assert(!block.is_comptime); var err_trace_block = block.makeSubBlock(); - err_trace_block.is_comptime = false; defer err_trace_block.instructions.deinit(sema.gpa); const src: LazySrcLoc = .unneeded; @@ -1827,6 +1885,22 @@ fn resolveMaybeUndefValAllowVariables( block: *Block, src: LazySrcLoc, inst: Air.Inst.Ref, +) CompileError!?Value { + var make_runtime = false; + if (try sema.resolveMaybeUndefValAllowVariablesMaybeRuntime(block, src, inst, &make_runtime)) |val| { + if (make_runtime) return null; + return val; + } + return null; +} + +/// Returns all Value tags including `variable`, `undef` and `runtime_value`. +fn resolveMaybeUndefValAllowVariablesMaybeRuntime( + sema: *Sema, + block: *Block, + src: LazySrcLoc, + inst: Air.Inst.Ref, + make_runtime: *bool, ) CompileError!?Value { // First section of indexes correspond to a set number of constant values. var i: usize = @enumToInt(inst); @@ -1843,7 +1917,7 @@ fn resolveMaybeUndefValAllowVariables( .constant => { const ty_pl = sema.air_instructions.items(.data)[i].ty_pl; const val = sema.air_values.items[ty_pl.payload]; - if (val.tag() == .runtime_int) return null; + if (val.tag() == .runtime_value) make_runtime.* = true; return val; }, .const_ty => { @@ -3896,6 +3970,7 @@ fn validateUnionInit( var first_block_index = block.instructions.items.len; var block_index = block.instructions.items.len - 1; var init_val: ?Value = null; + var make_runtime = false; while (block_index > 0) : (block_index -= 1) { const store_inst = block.instructions.items[block_index]; if (store_inst == field_ptr_air_inst) break; @@ -3920,7 +3995,7 @@ fn validateUnionInit( } else { first_block_index = @min(first_block_index, block_index); } - init_val = try sema.resolveMaybeUndefValAllowVariables(block, init_src, bin_op.rhs); + init_val = try sema.resolveMaybeUndefValAllowVariablesMaybeRuntime(block, init_src, bin_op.rhs, &make_runtime); break; } @@ -3933,10 +4008,11 @@ fn validateUnionInit( // instead a single `store` to the result ptr with a comptime union value. block.instructions.shrinkRetainingCapacity(first_block_index); - const union_val = try Value.Tag.@"union".create(sema.arena, .{ + var union_val = try Value.Tag.@"union".create(sema.arena, .{ .tag = tag_val, .val = val, }); + if (make_runtime) union_val = try Value.Tag.runtime_value.create(sema.arena, union_val); const union_init = try sema.addConstant(union_ty, union_val); try sema.storePtr2(block, init_src, union_ptr, init_src, union_init, init_src, .store); return; @@ -4054,6 +4130,7 @@ fn validateStructInit( var struct_is_comptime = true; var first_block_index = block.instructions.items.len; + var make_runtime = false; const air_tags = sema.air_instructions.items(.tag); const air_datas = sema.air_instructions.items(.data); @@ -4130,7 +4207,7 @@ fn validateStructInit( } else { first_block_index = @min(first_block_index, block_index); } - if (try sema.resolveMaybeUndefValAllowVariables(block, field_src, bin_op.rhs)) |val| { + if (try sema.resolveMaybeUndefValAllowVariablesMaybeRuntime(block, field_src, bin_op.rhs, &make_runtime)) |val| { field_values[i] = val; } else { struct_is_comptime = false; @@ -4185,7 +4262,8 @@ fn validateStructInit( // instead a single `store` to the struct_ptr with a comptime struct value. block.instructions.shrinkRetainingCapacity(first_block_index); - const struct_val = try Value.Tag.aggregate.create(sema.arena, field_values); + var struct_val = try Value.Tag.aggregate.create(sema.arena, field_values); + if (make_runtime) struct_val = try Value.Tag.runtime_value.create(sema.arena, struct_val); const struct_init = try sema.addConstant(struct_ty, struct_val); try sema.storePtr2(block, init_src, struct_ptr, init_src, struct_init, init_src, .store); return; @@ -4265,6 +4343,7 @@ fn zirValidateArrayInit( var array_is_comptime = true; var first_block_index = block.instructions.items.len; + var make_runtime = false; // Collect the comptime element values in case the array literal ends up // being comptime-known. @@ -4326,7 +4405,7 @@ fn zirValidateArrayInit( array_is_comptime = false; continue; } - if (try sema.resolveMaybeUndefValAllowVariables(block, elem_src, bin_op.rhs)) |val| { + if (try sema.resolveMaybeUndefValAllowVariablesMaybeRuntime(block, elem_src, bin_op.rhs, &make_runtime)) |val| { element_vals[i] = val; } else { array_is_comptime = false; @@ -4352,7 +4431,7 @@ fn zirValidateArrayInit( array_is_comptime = false; continue; } - if (try sema.resolveMaybeUndefValAllowVariables(block, elem_src, bin_op.rhs)) |val| { + if (try sema.resolveMaybeUndefValAllowVariablesMaybeRuntime(block, elem_src, bin_op.rhs, &make_runtime)) |val| { element_vals[i] = val; } else { array_is_comptime = false; @@ -4383,7 +4462,8 @@ fn zirValidateArrayInit( block.instructions.shrinkRetainingCapacity(first_block_index); - const array_val = try Value.Tag.aggregate.create(sema.arena, element_vals); + var array_val = try Value.Tag.aggregate.create(sema.arena, element_vals); + if (make_runtime) array_val = try Value.Tag.runtime_value.create(sema.arena, array_val); const array_init = try sema.addConstant(array_ty, array_val); try sema.storePtr2(block, init_src, array_ptr, init_src, array_init, init_src, .store); } @@ -4922,6 +5002,10 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr var c_import_buf = std.ArrayList(u8).init(sema.gpa); defer c_import_buf.deinit(); + var comptime_reason = .{ .c_import = .{ + .block = parent_block, + .src = src, + } }; var child_block: Block = .{ .parent = parent_block, .sema = sema, @@ -4930,7 +5014,8 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr .wip_capture_scope = parent_block.wip_capture_scope, .instructions = .{}, .inlining = parent_block.inlining, - .is_comptime = parent_block.is_comptime, + .is_comptime = true, + .comptime_reason = &comptime_reason, .c_import_buf = &c_import_buf, .runtime_cond = parent_block.runtime_cond, .runtime_loop = parent_block.runtime_loop, @@ -5031,6 +5116,8 @@ fn zirBlock(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileErro .label = &label, .inlining = parent_block.inlining, .is_comptime = parent_block.is_comptime, + .comptime_reason = parent_block.comptime_reason, + .is_typeof = parent_block.is_typeof, .want_safety = parent_block.want_safety, .float_mode = parent_block.float_mode, .runtime_cond = parent_block.runtime_cond, @@ -5903,6 +5990,7 @@ fn zirCall( defer block.is_comptime = parent_comptime; if (arg_index < fn_params_len and func_ty_info.comptime_params[arg_index]) { block.is_comptime = true; + // TODO set comptime_reason } const param_ty_inst = try sema.addType(param_ty); @@ -5923,7 +6011,7 @@ fn zirCall( const backend_supports_error_return_tracing = sema.mod.comp.bin_file.options.use_llvm; if (backend_supports_error_return_tracing and sema.mod.comp.bin_file.options.error_return_tracing and - !block.is_comptime and (input_is_error or pop_error_return_trace)) + !block.is_comptime and !block.is_typeof and (input_is_error or pop_error_return_trace)) { const call_inst: Air.Inst.Ref = if (modifier == .always_tail) undefined else b: { break :b try sema.analyzeCall(block, func, func_src, call_src, modifier, ensure_result_used, resolved_args, bound_arg_src); @@ -6033,37 +6121,6 @@ const GenericCallAdapter = struct { } }; -fn addComptimeReturnTypeNote( - sema: *Sema, - block: *Block, - func: Air.Inst.Ref, - func_src: LazySrcLoc, - return_ty: Type, - parent: *Module.ErrorMsg, - requires_comptime: bool, -) !void { - if (!requires_comptime) return; - - const src_loc = if (try sema.funcDeclSrc(block, func_src, func)) |capture| blk: { - var src_loc = capture; - src_loc.lazy = .{ .node_offset_fn_type_ret_ty = 0 }; - break :blk src_loc; - } else blk: { - const src_decl = sema.mod.declPtr(block.src_decl); - break :blk func_src.toSrcLoc(src_decl); - }; - if (return_ty.tag() == .generic_poison) { - return sema.mod.errNoteNonLazy(src_loc, parent, "generic function is instantiated with a comptime-only return type", .{}); - } - try sema.mod.errNoteNonLazy( - src_loc, - parent, - "function is being called at comptime because it returns a comptime-only type '{}'", - .{return_ty.fmt(sema.mod)}, - ); - try sema.explainWhyTypeIsComptime(block, func_src, parent, src_loc, return_ty); -} - fn analyzeCall( sema: *Sema, block: *Block, @@ -6154,11 +6211,21 @@ fn analyzeCall( var is_generic_call = func_ty_info.is_generic; var is_comptime_call = block.is_comptime or modifier == .compile_time; - var comptime_only_ret_ty = false; + var comptime_reason_buf: Block.ComptimeReason = undefined; + var comptime_reason: ?*const Block.ComptimeReason = null; if (!is_comptime_call) { if (sema.typeRequiresComptime(func_ty_info.return_type)) |ct| { is_comptime_call = ct; - comptime_only_ret_ty = ct; + if (ct) { + // stage1 can't handle doing this directly + comptime_reason_buf = .{ .comptime_ret_ty = .{ + .block = block, + .func = func, + .func_src = func_src, + .return_ty = func_ty_info.return_type, + } }; + comptime_reason = &comptime_reason_buf; + } } else |err| switch (err) { error.GenericPoison => is_generic_call = true, else => |e| return e, @@ -6187,7 +6254,14 @@ fn analyzeCall( error.ComptimeReturn => { is_inline_call = true; is_comptime_call = true; - comptime_only_ret_ty = true; + // stage1 can't handle doing this directly + comptime_reason_buf = .{ .comptime_ret_ty = .{ + .block = block, + .func = func, + .func_src = func_src, + .return_ty = func_ty_info.return_type, + } }; + comptime_reason = &comptime_reason_buf; }, else => |e| return e, } @@ -6199,9 +6273,7 @@ fn analyzeCall( const result: Air.Inst.Ref = if (is_inline_call) res: { const func_val = sema.resolveConstValue(block, func_src, func, "function being called at comptime must be comptime-known") catch |err| { - if (err == error.AnalysisFail and sema.err != null) { - try sema.addComptimeReturnTypeNote(block, func, func_src, func_ty_info.return_type, sema.err.?, comptime_only_ret_ty); - } + if (err == error.AnalysisFail and comptime_reason != null) try comptime_reason.?.explain(sema, sema.err); return err; }; const module_fn = switch (func_val.tag()) { @@ -6269,6 +6341,7 @@ fn analyzeCall( .label = null, .inlining = &inlining, .is_comptime = is_comptime_call, + .comptime_reason = comptime_reason, .error_return_trace_index = block.error_return_trace_index, }; @@ -6321,11 +6394,6 @@ fn analyzeCall( is_comptime_call, &should_memoize, memoized_call_key, - // last 4 arguments are only used when reporting errors - undefined, - undefined, - undefined, - undefined, ) catch |err| switch (err) { error.NeededSourceLocation => { _ = sema.inst_map.remove(inst); @@ -6341,10 +6409,6 @@ fn analyzeCall( is_comptime_call, &should_memoize, memoized_call_key, - func, - func_src, - func_ty_info.return_type, - comptime_only_ret_ty, ); return error.AnalysisFail; }, @@ -6403,7 +6467,7 @@ fn analyzeCall( } const new_func_resolved_ty = try Type.Tag.function.create(sema.arena, new_fn_info); - if (!is_comptime_call) { + if (!is_comptime_call and !block.is_typeof) { try sema.emitDbgInline(block, parent_func.?, module_fn, new_func_resolved_ty, .dbg_inline_begin); const zir_tags = sema.code.instructions.items(.tag); @@ -6441,7 +6505,7 @@ fn analyzeCall( break :result try sema.analyzeBlockBody(block, call_src, &child_block, merges); }; - if (!is_comptime_call and sema.typeOf(result).zigTypeTag() != .NoReturn) { + if (!is_comptime_call and !block.is_typeof and sema.typeOf(result).zigTypeTag() != .NoReturn) { try sema.emitDbgInline( block, module_fn, @@ -6581,10 +6645,6 @@ fn analyzeInlineCallArg( is_comptime_call: bool, should_memoize: *bool, memoized_call_key: Module.MemoizedCall.Key, - func: Air.Inst.Ref, - func_src: LazySrcLoc, - ret_ty: Type, - comptime_only_ret_ty: bool, ) !void { const zir_tags = sema.code.instructions.items(.tag); switch (zir_tags[inst]) { @@ -6601,9 +6661,7 @@ fn analyzeInlineCallArg( const uncasted_arg = uncasted_args[arg_i.*]; if (try sema.typeRequiresComptime(param_ty)) { _ = sema.resolveConstMaybeUndefVal(arg_block, arg_src, uncasted_arg, "argument to parameter with comptime-only type must be comptime-known") catch |err| { - if (err == error.AnalysisFail and sema.err != null) { - try sema.addComptimeReturnTypeNote(arg_block, func, func_src, ret_ty, sema.err.?, comptime_only_ret_ty); - } + if (err == error.AnalysisFail and param_block.comptime_reason != null) try param_block.comptime_reason.?.explain(sema, sema.err); return err; }; } @@ -6612,9 +6670,7 @@ fn analyzeInlineCallArg( if (is_comptime_call) { try sema.inst_map.putNoClobber(sema.gpa, inst, casted_arg); const arg_val = sema.resolveConstMaybeUndefVal(arg_block, arg_src, casted_arg, "argument to function being called at comptime must be comptime-known") catch |err| { - if (err == error.AnalysisFail and sema.err != null) { - try sema.addComptimeReturnTypeNote(arg_block, func, func_src, ret_ty, sema.err.?, comptime_only_ret_ty); - } + if (err == error.AnalysisFail and param_block.comptime_reason != null) try param_block.comptime_reason.?.explain(sema, sema.err); return err; }; switch (arg_val.tag()) { @@ -6635,20 +6691,14 @@ fn analyzeInlineCallArg( .ty = param_ty, .val = arg_val, }; - } else if (((try sema.resolveMaybeUndefVal(arg_block, arg_src, casted_arg)) == null) or - try sema.typeRequiresComptime(param_ty) or zir_tags[inst] == .param_comptime) - { + } else if (zir_tags[inst] == .param_comptime or try sema.typeRequiresComptime(param_ty)) { try sema.inst_map.putNoClobber(sema.gpa, inst, casted_arg); - } else { + } else if (try sema.resolveMaybeUndefVal(arg_block, arg_src, casted_arg)) |val| { // We have a comptime value but we need a runtime value to preserve inlining semantics, - const ptr_type = try Type.ptr(sema.arena, sema.mod, .{ - .pointee_type = param_ty, - .@"addrspace" = target_util.defaultAddressSpace(sema.mod.getTarget(), .local), - }); - const alloc = try arg_block.addTy(.alloc, ptr_type); - _ = try arg_block.addBinOp(.store, alloc, casted_arg); - const loaded = try arg_block.addTyOp(.load, param_ty, alloc); - try sema.inst_map.putNoClobber(sema.gpa, inst, loaded); + const wrapped = try sema.addConstant(param_ty, try Value.Tag.runtime_value.create(sema.arena, val)); + try sema.inst_map.putNoClobber(sema.gpa, inst, wrapped); + } else { + try sema.inst_map.putNoClobber(sema.gpa, inst, casted_arg); } arg_i.* += 1; @@ -6662,9 +6712,7 @@ fn analyzeInlineCallArg( if (is_comptime_call) { try sema.inst_map.putNoClobber(sema.gpa, inst, uncasted_arg); const arg_val = sema.resolveConstMaybeUndefVal(arg_block, arg_src, uncasted_arg, "argument to function being called at comptime must be comptime-known") catch |err| { - if (err == error.AnalysisFail and sema.err != null) { - try sema.addComptimeReturnTypeNote(arg_block, func, func_src, ret_ty, sema.err.?, comptime_only_ret_ty); - } + if (err == error.AnalysisFail and param_block.comptime_reason != null) try param_block.comptime_reason.?.explain(sema, sema.err); return err; }; switch (arg_val.tag()) { @@ -6685,20 +6733,14 @@ fn analyzeInlineCallArg( .ty = sema.typeOf(uncasted_arg), .val = arg_val, }; - } else if ((try sema.resolveMaybeUndefVal(arg_block, arg_src, uncasted_arg)) == null or - try sema.typeRequiresComptime(param_ty) or zir_tags[inst] == .param_anytype_comptime) - { + } else if (zir_tags[inst] == .param_anytype_comptime or try sema.typeRequiresComptime(param_ty)) { try sema.inst_map.putNoClobber(sema.gpa, inst, uncasted_arg); - } else { + } else if (try sema.resolveMaybeUndefVal(arg_block, arg_src, uncasted_arg)) |val| { // We have a comptime value but we need a runtime value to preserve inlining semantics, - const ptr_type = try Type.ptr(sema.arena, sema.mod, .{ - .pointee_type = param_ty, - .@"addrspace" = target_util.defaultAddressSpace(sema.mod.getTarget(), .local), - }); - const alloc = try arg_block.addTy(.alloc, ptr_type); - _ = try arg_block.addBinOp(.store, alloc, uncasted_arg); - const loaded = try arg_block.addTyOp(.load, param_ty, alloc); - try sema.inst_map.putNoClobber(sema.gpa, inst, loaded); + const wrapped = try sema.addConstant(param_ty, try Value.Tag.runtime_value.create(sema.arena, val)); + try sema.inst_map.putNoClobber(sema.gpa, inst, wrapped); + } else { + try sema.inst_map.putNoClobber(sema.gpa, inst, uncasted_arg); } arg_i.* += 1; @@ -6737,6 +6779,8 @@ fn analyzeGenericCallArg( try sema.queueFullTypeResolution(param_ty); runtime_args[runtime_i.*] = casted_arg; runtime_i.* += 1; + } else if (try sema.typeHasOnePossibleValue(block, arg_src, comptime_arg.ty)) |_| { + _ = try sema.coerce(block, comptime_arg.ty, uncasted_arg, arg_src); } } @@ -10210,6 +10254,8 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError .label = &label, .inlining = block.inlining, .is_comptime = block.is_comptime, + .comptime_reason = block.comptime_reason, + .is_typeof = block.is_typeof, .switch_else_err_ty = else_error_ty, .runtime_cond = block.runtime_cond, .runtime_loop = block.runtime_loop, @@ -10319,7 +10365,13 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError return sema.resolveBlockBody(block, src, &child_block, special.body, inst, merges); } - try sema.requireRuntimeBlock(block, src, operand_src); + if (child_block.is_comptime) { + _ = sema.resolveConstValue(&child_block, operand_src, operand, "condition in comptime switch must be comptime-known") catch |err| { + if (err == error.AnalysisFail and child_block.comptime_reason != null) try child_block.comptime_reason.?.explain(sema, sema.err); + return err; + }; + unreachable; + } const estimated_cases_extra = (scalar_cases_len + multi_cases_len) * @typeInfo(Air.SwitchBr.Case).Struct.fields.len + 2; @@ -14826,7 +14878,7 @@ fn zirBuiltinSrc( // fn_name: [:0]const u8, field_values[1] = func_name_val; // line: u32 - field_values[2] = try Value.Tag.runtime_int.create(sema.arena, extra.line + 1); + field_values[2] = try Value.Tag.runtime_value.create(sema.arena, try Value.Tag.int_u64.create(sema.arena, extra.line + 1)); // column: u32, field_values[3] = try Value.Tag.int_u64.create(sema.arena, extra.column + 1); @@ -16401,7 +16453,7 @@ fn zirSaveErrRetIndex(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileE if (!ok) return; // This is only relevant at runtime. - if (block.is_comptime) return; + if (block.is_comptime or block.is_typeof) return; // This is only relevant within functions. if (sema.func == null) return; @@ -16421,7 +16473,7 @@ fn zirRestoreErrRetIndex(sema: *Sema, start_block: *Block, inst: Zir.Inst.Index) const src = sema.src; // TODO // This is only relevant at runtime. - if (start_block.is_comptime) return; + if (start_block.is_comptime or start_block.is_typeof) return; const backend_supports_error_return_tracing = sema.mod.comp.bin_file.options.use_llvm; const ok = sema.owner_func.?.calls_or_awaits_errorable_fn and @@ -18198,7 +18250,7 @@ fn zirReify(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData, in return sema.analyzeDeclVal(block, src, new_decl_index); }, .Fn => { - const struct_val = union_val.val.castTag(.aggregate).?.data; + const struct_val: []const Value = union_val.val.castTag(.aggregate).?.data; // TODO use reflection instead of magic numbers here // calling_convention: CallingConvention, const cc = struct_val[0].toEnum(std.builtin.CallingConvention); @@ -18232,12 +18284,17 @@ fn zirReify(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData, in break :alignment alignment; } }; + const return_type = return_type_val.optionalValue() orelse + return sema.fail(block, src, "Type.Fn.return_type must be non-null for @Type", .{}); + var buf: Value.ToTypeBuffer = undefined; const args_slice_val = args_val.castTag(.slice).?.data; const args_len = try sema.usizeCast(block, src, args_slice_val.len.toUnsignedInt(mod.getTarget())); - var param_types = try sema.arena.alloc(Type, args_len); - var comptime_params = try sema.arena.alloc(bool, args_len); + + const param_types = try sema.arena.alloc(Type, args_len); + const comptime_params = try sema.arena.alloc(bool, args_len); + var noalias_bits: u32 = 0; var i: usize = 0; while (i < args_len) : (i += 1) { @@ -18265,11 +18322,9 @@ fn zirReify(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData, in return sema.fail(block, src, "Type.Fn.Param.arg_type must be non-null for @Type", .{}); param_types[i] = try param_type.toType(&buf).copy(sema.arena); + comptime_params[i] = false; } - const return_type = return_type_val.optionalValue() orelse - return sema.fail(block, src, "Type.Fn.return_type must be non-null for @Type", .{}); - var fn_info = Type.Payload.Function.Data{ .param_types = param_types, .comptime_params = comptime_params.ptr, @@ -21452,6 +21507,9 @@ fn requireRuntimeBlock(sema: *Sema, block: *Block, src: LazySrcLoc, runtime_src: if (runtime_src) |some| { try sema.errNote(block, some, msg, "operation is runtime due to this operand", .{}); } + if (block.comptime_reason) |some| { + try some.explain(sema, msg); + } break :msg msg; }; return sema.failWithOwnedErrorMsg(msg); @@ -21923,6 +21981,7 @@ fn addSafetyCheck( panic_id: PanicId, ) !void { const gpa = sema.gpa; + assert(!parent_block.is_comptime); var fail_block: Block = .{ .parent = parent_block, @@ -21932,7 +21991,7 @@ fn addSafetyCheck( .wip_capture_scope = parent_block.wip_capture_scope, .instructions = .{}, .inlining = parent_block.inlining, - .is_comptime = parent_block.is_comptime, + .is_comptime = false, }; defer fail_block.instructions.deinit(gpa); @@ -22044,6 +22103,7 @@ fn panicUnwrapError( unwrap_err_tag: Air.Inst.Tag, is_non_err_tag: Air.Inst.Tag, ) !void { + assert(!parent_block.is_comptime); const ok = try parent_block.addUnOp(is_non_err_tag, operand); const gpa = sema.gpa; @@ -22055,7 +22115,7 @@ fn panicUnwrapError( .wip_capture_scope = parent_block.wip_capture_scope, .instructions = .{}, .inlining = parent_block.inlining, - .is_comptime = parent_block.is_comptime, + .is_comptime = false, }; defer fail_block.instructions.deinit(gpa); @@ -22087,6 +22147,7 @@ fn panicIndexOutOfBounds( len: Air.Inst.Ref, cmp_op: Air.Inst.Tag, ) !void { + assert(!parent_block.is_comptime); const ok = try parent_block.addBinOp(cmp_op, index, len); const gpa = sema.gpa; @@ -22098,7 +22159,7 @@ fn panicIndexOutOfBounds( .wip_capture_scope = parent_block.wip_capture_scope, .instructions = .{}, .inlining = parent_block.inlining, - .is_comptime = parent_block.is_comptime, + .is_comptime = false, }; defer fail_block.instructions.deinit(gpa); @@ -22129,6 +22190,7 @@ fn panicSentinelMismatch( ptr: Air.Inst.Ref, sentinel_index: Air.Inst.Ref, ) !void { + assert(!parent_block.is_comptime); const expected_sentinel_val = maybe_sentinel orelse return; const expected_sentinel = try sema.addConstant(sentinel_ty, expected_sentinel_val); @@ -22169,7 +22231,7 @@ fn panicSentinelMismatch( .wip_capture_scope = parent_block.wip_capture_scope, .instructions = .{}, .inlining = parent_block.inlining, - .is_comptime = parent_block.is_comptime, + .is_comptime = false, }; defer fail_block.instructions.deinit(gpa); @@ -24065,20 +24127,23 @@ fn coerceExtra( }, else => {}, }, - .Slice => { - // pointer to tuple to slice - if (inst_ty.isSinglePointer() and inst_ty.childType().isTuple() and dest_info.size == .Slice and - sema.checkPtrAttributes(dest_ty, inst_ty, &in_memory_result)) - { - return sema.coerceTupleToSlicePtrs(block, dest_ty, dest_ty_src, inst, inst_src); + .Slice => to_slice: { + if (inst_ty.zigTypeTag() == .Array) { + return sema.fail( + block, + inst_src, + "array literal requires address-of operator (&) to coerce to slice type '{}'", + .{dest_ty.fmt(sema.mod)}, + ); } + if (!inst_ty.isSinglePointer()) break :to_slice; + const inst_child_ty = inst_ty.childType(); + if (!inst_child_ty.isTuple()) break :to_slice; + // empty tuple to zero-length slice // note that this allows coercing to a mutable slice. - if (inst_ty.isSinglePointer() and - inst_ty.childType().tag() == .empty_struct_literal and - dest_info.size == .Slice) - { + if (inst_child_ty.tupleFields().types.len == 0) { const slice_val = try Value.Tag.slice.create(sema.arena, .{ .ptr = Value.undef, .len = Value.zero, @@ -24086,14 +24151,17 @@ fn coerceExtra( return sema.addConstant(dest_ty, slice_val); } - if (inst_ty.zigTypeTag() == .Array) { - return sema.fail( - block, - inst_src, - "array literal requires address-of operator (&) to coerce to slice type '{}'", - .{dest_ty.fmt(sema.mod)}, - ); + // pointer to tuple to slice + if (dest_info.mutable) { + const err_msg = err_msg: { + const err_msg = try sema.errMsg(block, inst_src, "cannot cast pointer to tuple to '{}'", .{dest_ty.fmt(sema.mod)}); + errdefer err_msg.deinit(sema.gpa); + try sema.errNote(block, dest_ty_src, err_msg, "pointers to tuples can only coerce to constant pointers", .{}); + break :err_msg err_msg; + }; + return sema.failWithOwnedErrorMsg(err_msg); } + return sema.coerceTupleToSlicePtrs(block, dest_ty, dest_ty_src, inst, inst_src); }, .Many => p: { if (!inst_ty.isSlice()) break :p; @@ -26422,48 +26490,6 @@ fn bitCastVal( const target = sema.mod.getTarget(); if (old_ty.eql(new_ty, sema.mod)) return val; - // Some conversions have a bitwise definition that ignores in-memory layout, - // such as converting between f80 and u80. - - if (old_ty.eql(Type.f80, sema.mod) and new_ty.isAbiInt()) { - const float = val.toFloat(f80); - switch (new_ty.intInfo(target).signedness) { - .signed => { - const int = @bitCast(i80, float); - const limbs = try sema.arena.alloc(std.math.big.Limb, 2); - const big_int = std.math.big.int.Mutable.init(limbs, int); - return Value.fromBigInt(sema.arena, big_int.toConst()); - }, - .unsigned => { - const int = @bitCast(u80, float); - const limbs = try sema.arena.alloc(std.math.big.Limb, 2); - const big_int = std.math.big.int.Mutable.init(limbs, int); - return Value.fromBigInt(sema.arena, big_int.toConst()); - }, - } - } - - if (new_ty.eql(Type.f80, sema.mod) and old_ty.isAbiInt()) { - var bigint_space: Value.BigIntSpace = undefined; - var bigint = try val.toBigIntAdvanced(&bigint_space, target, sema.kit(block, src)); - switch (old_ty.intInfo(target).signedness) { - .signed => { - // This conversion cannot fail because we already checked bit size before - // calling bitCastVal. - const int = bigint.to(i80) catch unreachable; - const float = @bitCast(f80, int); - return Value.Tag.float_80.create(sema.arena, float); - }, - .unsigned => { - // This conversion cannot fail because we already checked bit size before - // calling bitCastVal. - const int = bigint.to(u80) catch unreachable; - const float = @bitCast(f80, int); - return Value.Tag.float_80.create(sema.arena, float); - }, - } - } - // For types with well-defined memory layouts, we serialize them a byte buffer, // then deserialize to the new type. const abi_size = try sema.usizeCast(block, src, old_ty.abiSize(target)); @@ -28338,8 +28364,16 @@ fn resolvePeerTypes( const candidate_ty_tag = try candidate_ty.zigTypeTagOrPoison(); const chosen_ty_tag = try chosen_ty.zigTypeTagOrPoison(); - if (candidate_ty.eql(chosen_ty, sema.mod)) + // If the candidate can coerce into our chosen type, we're done. + // If the chosen type can coerce into the candidate, use that. + if ((try sema.coerceInMemoryAllowed(block, chosen_ty, candidate_ty, false, target, src, src)) == .ok) { continue; + } + if ((try sema.coerceInMemoryAllowed(block, candidate_ty, chosen_ty, false, target, src, src)) == .ok) { + chosen = candidate; + chosen_i = candidate_i + 1; + continue; + } switch (candidate_ty_tag) { .NoReturn, .Undefined => continue, @@ -28739,17 +28773,6 @@ fn resolvePeerTypes( else => {}, } - // If the candidate can coerce into our chosen type, we're done. - // If the chosen type can coerce into the candidate, use that. - if ((try sema.coerceInMemoryAllowed(block, chosen_ty, candidate_ty, false, target, src, src)) == .ok) { - continue; - } - if ((try sema.coerceInMemoryAllowed(block, candidate_ty, chosen_ty, false, target, src, src)) == .ok) { - chosen = candidate; - chosen_i = candidate_i + 1; - continue; - } - // At this point, we hit a compile error. We need to recover // the source locations. const chosen_src = candidate_srcs.resolve( @@ -29073,6 +29096,33 @@ fn semaBackingIntType(mod: *Module, struct_obj: *Module.Struct) CompileError!voi struct_obj.backing_int_ty = try backing_int_ty.copy(decl_arena_allocator); try wip_captures.finalize(); } else { + if (fields_bit_sum > std.math.maxInt(u16)) { + var sema: Sema = .{ + .mod = mod, + .gpa = gpa, + .arena = undefined, + .perm_arena = decl_arena_allocator, + .code = zir, + .owner_decl = decl, + .owner_decl_index = decl_index, + .func = null, + .fn_ret_ty = Type.void, + .owner_func = null, + }; + defer sema.deinit(); + + var block: Block = .{ + .parent = null, + .sema = &sema, + .src_decl = decl_index, + .namespace = &struct_obj.namespace, + .wip_capture_scope = undefined, + .instructions = .{}, + .inlining = null, + .is_comptime = true, + }; + return sema.fail(&block, LazySrcLoc.nodeOffset(0), "size of packed struct '{d}' exceeds maximum bit width of 65535", .{fields_bit_sum}); + } var buf: Type.Payload.Bits = .{ .base = .{ .tag = .int_unsigned }, .data = @intCast(u16, fields_bit_sum), diff --git a/src/TypedValue.zig b/src/TypedValue.zig index ba32e55f1e2920fa7abc92c35312482775670492..619fb003f9a6ebc0b62574aa0d1873a65479fe37 100644 --- a/src/TypedValue.zig +++ b/src/TypedValue.zig @@ -477,6 +477,6 @@ pub fn print( }, .generic_poison_type => return writer.writeAll("(generic poison type)"), .generic_poison => return writer.writeAll("(generic poison)"), - .runtime_int => return writer.writeAll("[runtime value]"), + .runtime_value => return writer.writeAll("[runtime value]"), }; } diff --git a/src/arch/aarch64/CodeGen.zig b/src/arch/aarch64/CodeGen.zig index eb8ca8e8f1203b8ac5845f8bbfc333306dd6a332..3bb5bbe0d300e94c84918b4ca25f27947663d0bc 100644 --- a/src/arch/aarch64/CodeGen.zig +++ b/src/arch/aarch64/CodeGen.zig @@ -5401,7 +5401,11 @@ fn lowerUnnamedConst(self: *Self, tv: TypedValue) InnerError!MCValue { } } -fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { +fn genTypedValue(self: *Self, arg_tv: TypedValue) InnerError!MCValue { + var typed_value = arg_tv; + if (typed_value.val.castTag(.runtime_value)) |rt| { + typed_value.val = rt.data; + } log.debug("genTypedValue: ty = {}, val = {}", .{ typed_value.ty.fmtDebug(), typed_value.val.fmtDebug() }); if (typed_value.val.isUndef()) return MCValue{ .undef = {} }; diff --git a/src/arch/arm/CodeGen.zig b/src/arch/arm/CodeGen.zig index 1ebc348fc21c923afdeddf71d82a3c17b79aa7ed..67cf899dc318e377a3deadc82886f9b798d69044 100644 --- a/src/arch/arm/CodeGen.zig +++ b/src/arch/arm/CodeGen.zig @@ -6047,7 +6047,11 @@ fn lowerUnnamedConst(self: *Self, tv: TypedValue) InnerError!MCValue { } } -fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { +fn genTypedValue(self: *Self, arg_tv: TypedValue) InnerError!MCValue { + var typed_value = arg_tv; + if (typed_value.val.castTag(.runtime_value)) |rt| { + typed_value.val = rt.data; + } log.debug("genTypedValue: ty = {}, val = {}", .{ typed_value.ty.fmtDebug(), typed_value.val.fmtDebug() }); if (typed_value.val.isUndef()) return MCValue{ .undef = {} }; diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig index 538fcb13c10d1e9bbee3a664367069d5c25d941e..69d5e38f6546d45c1816b65253e25bba641cee1b 100644 --- a/src/arch/wasm/CodeGen.zig +++ b/src/arch/wasm/CodeGen.zig @@ -2582,7 +2582,11 @@ fn toTwosComplement(value: anytype, bits: u7) std.meta.Int(.unsigned, @typeInfo( return @intCast(WantedT, result); } -fn lowerConstant(func: *CodeGen, val: Value, ty: Type) InnerError!WValue { +fn lowerConstant(func: *CodeGen, arg_val: Value, ty: Type) InnerError!WValue { + var val = arg_val; + if (val.castTag(.runtime_value)) |rt| { + val = rt.data; + } if (val.isUndefDeep()) return func.emitUndefined(ty); if (val.castTag(.decl_ref)) |decl_ref| { const decl_index = decl_ref.data; diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 5f793aaeb90b4b42364b45e82dc59b73e908e402..965a34251c9470b6101f5e5e81d9f2351a435d30 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -6960,7 +6960,11 @@ fn lowerUnnamedConst(self: *Self, tv: TypedValue) InnerError!MCValue { } } -fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { +fn genTypedValue(self: *Self, arg_tv: TypedValue) InnerError!MCValue { + var typed_value = arg_tv; + if (typed_value.val.castTag(.runtime_value)) |rt| { + typed_value.val = rt.data; + } log.debug("genTypedValue: ty = {}, val = {}", .{ typed_value.ty.fmtDebug(), typed_value.val.fmtDebug() }); if (typed_value.val.isUndef()) return MCValue{ .undef = {} }; diff --git a/src/codegen.zig b/src/codegen.zig index e7f927a2d69fbbac5c0ab87966dc61532eccb9ce..6acea5a509d6923302b5564a8aacc8c4dd79588b 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -149,7 +149,7 @@ fn writeFloat(comptime F: type, f: F, target: Target, endian: std.builtin.Endian pub fn generateSymbol( bin_file: *link.File, src_loc: Module.SrcLoc, - typed_value: TypedValue, + arg_tv: TypedValue, code: *std.ArrayList(u8), debug_output: DebugInfoOutput, reloc_info: RelocInfo, @@ -157,6 +157,11 @@ pub fn generateSymbol( const tracy = trace(@src()); defer tracy.end(); + var typed_value = arg_tv; + if (arg_tv.val.castTag(.runtime_value)) |rt| { + typed_value.val = rt.data; + } + const target = bin_file.options.target; const endian = target.cpu.arch.endian(); @@ -465,7 +470,7 @@ pub fn generateSymbol( const abi_size = math.cast(usize, typed_value.ty.abiSize(target)) orelse return error.Overflow; const start = code.items.len; try code.resize(start + abi_size); - bigint.writeTwosComplement(code.items[start..][0..abi_size], info.bits, abi_size, endian); + bigint.writeTwosComplement(code.items[start..][0..abi_size], endian); return Result{ .appended = {} }; } switch (info.signedness) { diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 098424524f678070e27e1c216f3ea7d90a799488..83debd1af3137acd080af19925140034193e9f0b 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -468,13 +468,10 @@ pub const DeclGen = struct { // // Used for .elem_ptr, .field_ptr, .opt_payload_ptr, .eu_payload_ptr fn renderParentPtr(dg: *DeclGen, writer: anytype, ptr_val: Value, ptr_ty: Type) error{ OutOfMemory, AnalysisFail }!void { - switch (ptr_ty.ptrSize()) { - .Slice => {}, - .Many, .C, .One => { - try writer.writeByte('('); - try dg.renderTypecast(writer, ptr_ty); - try writer.writeByte(')'); - }, + if (!ptr_ty.isSlice()) { + try writer.writeByte('('); + try dg.renderTypecast(writer, ptr_ty); + try writer.writeByte(')'); } switch (ptr_val.tag()) { .decl_ref_mut, .decl_ref, .variable => { @@ -541,13 +538,13 @@ pub const DeclGen = struct { .name = container_ty.unionFields().keys()[index], .ty = container_ty.unionFields().values()[index].ty, }, - .Pointer => switch (container_ty.ptrSize()) { - .Slice => switch (index) { + .Pointer => field_info: { + assert(container_ty.isSlice()); + break :field_info switch (index) { 0 => FieldInfo{ .name = "ptr", .ty = container_ty.childType() }, 1 => FieldInfo{ .name = "len", .ty = Type.usize }, else => unreachable, - }, - else => unreachable, + }; }, else => unreachable, }; @@ -597,9 +594,13 @@ pub const DeclGen = struct { dg: *DeclGen, writer: anytype, ty: Type, - val: Value, + arg_val: Value, location: ValueRenderLocation, ) error{ OutOfMemory, AnalysisFail }!void { + var val = arg_val; + if (val.castTag(.runtime_value)) |rt| { + val = rt.data; + } const target = dg.module.getTarget(); if (val.isUndefDeep()) { switch (ty.zigTypeTag()) { @@ -622,25 +623,22 @@ pub const DeclGen = struct { } return writer.writeByte(')'); }, - .Pointer => switch (ty.ptrSize()) { - .Slice => { - if (location != .Initializer) { - try writer.writeByte('('); - try dg.renderTypecast(writer, ty); - try writer.writeByte(')'); - } - - try writer.writeAll("{("); - var buf: Type.SlicePtrFieldTypeBuffer = undefined; - const ptr_ty = ty.slicePtrFieldType(&buf); - try dg.renderTypecast(writer, ptr_ty); - return writer.print("){x}, {0x}}}", .{try dg.fmtIntLiteral(Type.usize, val)}); - }, - .Many, .C, .One => { - try writer.writeAll("(("); + .Pointer => if (ty.isSlice()) { + if (location != .Initializer) { + try writer.writeByte('('); try dg.renderTypecast(writer, ty); - return writer.print("){x})", .{try dg.fmtIntLiteral(Type.usize, val)}); - }, + try writer.writeByte(')'); + } + + try writer.writeAll("{("); + var buf: Type.SlicePtrFieldTypeBuffer = undefined; + const ptr_ty = ty.slicePtrFieldType(&buf); + try dg.renderTypecast(writer, ptr_ty); + return writer.print("){x}, {0x}}}", .{try dg.fmtIntLiteral(Type.usize, val)}); + } else { + try writer.writeAll("(("); + try dg.renderTypecast(writer, ty); + return writer.print("){x})", .{try dg.fmtIntLiteral(Type.usize, val)}); }, .Optional => { var opt_buf: Type.Payload.ElemType = undefined; @@ -817,7 +815,15 @@ pub const DeclGen = struct { return writer.writeByte(')'); }, .Pointer => switch (val.tag()) { - .null_value, .zero => { + .null_value, .zero => if (ty.isSlice()) { + var slice_pl = Value.Payload.Slice{ + .base = .{ .tag = .slice }, + .data = .{ .ptr = val, .len = Value.undef }, + }; + const slice_val = Value.initPayload(&slice_pl.base); + + return dg.renderValue(writer, ty, slice_val, location); + } else { try writer.writeAll("(("); try dg.renderTypecast(writer, ty); try writer.writeAll(")NULL)"); @@ -827,15 +833,15 @@ pub const DeclGen = struct { return dg.renderDeclValue(writer, ty, val, decl); }, .slice => { + if (location != .Initializer) { + try writer.writeByte('('); + try dg.renderTypecast(writer, ty); + try writer.writeByte(')'); + } + const slice = val.castTag(.slice).?.data; var buf: Type.SlicePtrFieldTypeBuffer = undefined; - if (location != .Initializer) { - try writer.writeByte('('); - try dg.renderTypecast(writer, ty); - try writer.writeByte(')'); - } - try writer.writeByte('{'); try dg.renderValue(writer, ty.slicePtrFieldType(&buf), slice.ptr, .Initializer); try writer.writeAll(", "); @@ -3923,6 +3929,7 @@ fn airIsNull( const optional_ty = if (is_ptr) operand_ty.childType() else operand_ty; var payload_buf: Type.Payload.ElemType = undefined; const payload_ty = optional_ty.optionalChild(&payload_buf); + var slice_ptr_buf: Type.SlicePtrFieldTypeBuffer = undefined; const rhs = if (!payload_ty.hasRuntimeBitsIgnoreComptime()) TypedValue{ .ty = Type.bool, .val = Value.@"true" } @@ -3931,7 +3938,11 @@ fn airIsNull( TypedValue{ .ty = operand_ty, .val = Value.@"null" } else if (payload_ty.zigTypeTag() == .ErrorSet) TypedValue{ .ty = payload_ty, .val = Value.zero } - else rhs: { + else if (payload_ty.isSlice() and optional_ty.optionalReprIsPayload()) rhs: { + try writer.writeAll(".ptr"); + const slice_ptr_ty = payload_ty.slicePtrFieldType(&slice_ptr_buf); + break :rhs TypedValue{ .ty = slice_ptr_ty, .val = Value.@"null" }; + } else rhs: { try writer.writeAll(".is_null"); break :rhs TypedValue{ .ty = Type.bool, .val = Value.@"true" }; }; diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index ffc19cb6f68d64ecec2ea0d4691d70ee54ee7427..d92a444ea45998c5e62e02bdf0839011a666babc 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -1027,7 +1027,9 @@ pub const Object = struct { dg.addArgAttr(llvm_func, llvm_arg_i, "noalias"); } } - dg.addArgAttr(llvm_func, llvm_arg_i, "nonnull"); + if (param_ty.zigTypeTag() != .Optional) { + dg.addArgAttr(llvm_func, llvm_arg_i, "nonnull"); + } if (!ptr_info.mutable) { dg.addArgAttr(llvm_func, llvm_arg_i, "readonly"); } @@ -1916,7 +1918,7 @@ pub const Object = struct { if (ty.castTag(.@"struct")) |payload| { const struct_obj = payload.data; - if (struct_obj.layout == .Packed) { + if (struct_obj.layout == .Packed and struct_obj.haveFieldTypes()) { const info = struct_obj.backing_int_ty.intInfo(target); const dwarf_encoding: c_uint = switch (info.signedness) { .signed => DW.ATE.signed, @@ -3117,7 +3119,11 @@ pub const DeclGen = struct { .slice => { const param_ty = fn_info.param_types[it.zig_index - 1]; var buf: Type.SlicePtrFieldTypeBuffer = undefined; - const ptr_ty = param_ty.slicePtrFieldType(&buf); + var opt_buf: Type.Payload.ElemType = undefined; + const ptr_ty = if (param_ty.zigTypeTag() == .Optional) + param_ty.optionalChild(&opt_buf).slicePtrFieldType(&buf) + else + param_ty.slicePtrFieldType(&buf); const ptr_llvm_ty = try dg.lowerType(ptr_ty); const len_llvm_ty = try dg.lowerType(Type.usize); @@ -3187,7 +3193,11 @@ pub const DeclGen = struct { return llvm_elem_ty; } - fn lowerValue(dg: *DeclGen, tv: TypedValue) Error!*llvm.Value { + fn lowerValue(dg: *DeclGen, arg_tv: TypedValue) Error!*llvm.Value { + var tv = arg_tv; + if (tv.val.castTag(.runtime_value)) |rt| { + tv.val = rt.data; + } if (tv.val.isUndef()) { const llvm_type = try dg.lowerType(tv.ty); return llvm_type.getUndef(); @@ -5434,10 +5444,11 @@ pub const FuncGen = struct { const llvm_usize = try self.dg.lowerType(Type.usize); const len = llvm_usize.constInt(array_ty.arrayLen(), .False); const slice_llvm_ty = try self.dg.lowerType(self.air.typeOfIndex(inst)); + const operand = try self.resolveInst(ty_op.operand); if (!array_ty.hasRuntimeBitsIgnoreComptime()) { - return self.builder.buildInsertValue(slice_llvm_ty.getUndef(), len, 1, ""); + const partial = self.builder.buildInsertValue(slice_llvm_ty.getUndef(), operand, 0, ""); + return self.builder.buildInsertValue(partial, len, 1, ""); } - const operand = try self.resolveInst(ty_op.operand); const indices: [2]*llvm.Value = .{ llvm_usize.constNull(), llvm_usize.constNull(), }; @@ -6316,18 +6327,24 @@ pub const FuncGen = struct { const operand_ty = self.air.typeOf(un_op); const optional_ty = if (operand_is_ptr) operand_ty.childType() else operand_ty; const optional_llvm_ty = try self.dg.lowerType(optional_ty); + var buf: Type.Payload.ElemType = undefined; + const payload_ty = optional_ty.optionalChild(&buf); if (optional_ty.optionalReprIsPayload()) { const loaded = if (operand_is_ptr) self.builder.buildLoad(optional_llvm_ty, operand, "") else operand; + if (payload_ty.isSlice()) { + const slice_ptr = self.builder.buildExtractValue(loaded, 0, ""); + var slice_buf: Type.SlicePtrFieldTypeBuffer = undefined; + const ptr_ty = try self.dg.lowerType(payload_ty.slicePtrFieldType(&slice_buf)); + return self.builder.buildICmp(pred, slice_ptr, ptr_ty.constNull(), ""); + } return self.builder.buildICmp(pred, loaded, optional_llvm_ty.constNull(), ""); } comptime assert(optional_layout_version == 3); - var buf: Type.Payload.ElemType = undefined; - const payload_ty = optional_ty.optionalChild(&buf); if (!payload_ty.hasRuntimeBitsIgnoreComptime()) { const loaded = if (operand_is_ptr) self.builder.buildLoad(optional_llvm_ty, operand, "") @@ -10351,7 +10368,8 @@ const ParamTypeIterator = struct { .Unspecified, .Inline => { it.zig_index += 1; it.llvm_index += 1; - if (ty.isSlice()) { + var buf: Type.Payload.ElemType = undefined; + if (ty.isSlice() or (ty.zigTypeTag() == .Optional and ty.optionalChild(&buf).isSlice())) { return .slice; } else if (isByRef(ty)) { return .byref; @@ -10726,8 +10744,8 @@ fn backendSupportsF128(target: std.Target) bool { fn intrinsicsAllowed(scalar_ty: Type, target: std.Target) bool { return switch (scalar_ty.tag()) { .f16 => backendSupportsF16(target), - .f80 => target.longDoubleIs(f80) and backendSupportsF80(target), - .f128 => target.longDoubleIs(f128) and backendSupportsF128(target), + .f80 => (CType.longdouble.sizeInBits(target) == 80) and backendSupportsF80(target), + .f128 => (CType.longdouble.sizeInBits(target) == 128) and backendSupportsF128(target), else => true, }; } diff --git a/src/libcxx.zig b/src/libcxx.zig index b0261aaed68dc1229da543659d4f7429186d4a1f..850da698c58b02c801eebd288f11bcaa7903a895 100644 --- a/src/libcxx.zig +++ b/src/libcxx.zig @@ -320,7 +320,7 @@ pub fn buildLibCXXABI(comp: *Compilation) !void { } try cflags.append("-D_LIBCXXABI_HAS_NO_THREADS"); try cflags.append("-D_LIBCPP_HAS_NO_THREADS"); - } else { + } else if (target.abi.isGnu()) { try cflags.append("-DHAVE___CXA_THREAD_ATEXIT_IMPL"); } diff --git a/src/link.zig b/src/link.zig index 9d4ac0d55b26313ca955ad450a7d7b7bf6be2668..39f51e90ec701ce5f09efabf003df5c18d284587 100644 --- a/src/link.zig +++ b/src/link.zig @@ -696,6 +696,7 @@ pub const File = struct { GlobalTypeMismatch, InvalidCharacter, InvalidEntryKind, + InvalidFeatureSet, InvalidFormat, InvalidIndex, InvalidMagicByte, diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig index 4c3de84e0114c906a3a00f15b97ddf172bf928bf..b9f2d74bd85eef58f4f25747e01a04478ec9897c 100644 --- a/src/link/Wasm.zig +++ b/src/link/Wasm.zig @@ -651,6 +651,109 @@ fn resolveSymbolsInArchives(wasm: *Wasm) !void { } } +fn validateFeatures( + wasm: *const Wasm, + to_emit: *[@typeInfo(types.Feature.Tag).Enum.fields.len]bool, + emit_features_count: *u32, +) !void { + const cpu_features = wasm.base.options.target.cpu.features; + const infer = cpu_features.isEmpty(); // when the user did not define any features, we infer them from linked objects. + const known_features_count = @typeInfo(types.Feature.Tag).Enum.fields.len; + + var allowed = [_]bool{false} ** known_features_count; + var used = [_]u17{0} ** known_features_count; + var disallowed = [_]u17{0} ** known_features_count; + var required = [_]u17{0} ** known_features_count; + + // when false, we fail linking. We only verify this after a loop to catch all invalid features. + var valid_feature_set = true; + + // When the user has given an explicit list of features to enable, + // we extract them and insert each into the 'allowed' list. + if (!infer) { + inline for (@typeInfo(std.Target.wasm.Feature).Enum.fields) |feature_field| { + if (cpu_features.isEnabled(feature_field.value)) { + allowed[feature_field.value] = true; + emit_features_count.* += 1; + } + } + } + + // extract all the used, disallowed and required features from each + // linked object file so we can test them. + for (wasm.objects.items) |object, object_index| { + for (object.features) |feature| { + const value = @intCast(u16, object_index) << 1 | @as(u1, 1); + switch (feature.prefix) { + .used => { + used[@enumToInt(feature.tag)] = value; + }, + .disallowed => { + disallowed[@enumToInt(feature.tag)] = value; + }, + .required => { + required[@enumToInt(feature.tag)] = value; + used[@enumToInt(feature.tag)] = value; + }, + } + } + } + + // when we infer the features, we allow each feature found in the 'used' set + // and insert it into the 'allowed' set. When features are not inferred, + // we validate that a used feature is allowed. + for (used) |used_set, used_index| { + const is_enabled = @truncate(u1, used_set) != 0; + if (infer) { + allowed[used_index] = is_enabled; + emit_features_count.* += @boolToInt(is_enabled); + } else if (is_enabled and !allowed[used_index]) { + log.err("feature '{s}' not allowed, but used by linked object", .{(@intToEnum(types.Feature.Tag, used_index)).toString()}); + log.err(" defined in '{s}'", .{wasm.objects.items[used_set >> 1].name}); + valid_feature_set = false; + } + } + + if (!valid_feature_set) { + return error.InvalidFeatureSet; + } + + // For each linked object, validate the required and disallowed features + for (wasm.objects.items) |object| { + var object_used_features = [_]bool{false} ** known_features_count; + for (object.features) |feature| { + if (feature.prefix == .disallowed) continue; // already defined in 'disallowed' set. + // from here a feature is always used + const disallowed_feature = disallowed[@enumToInt(feature.tag)]; + if (@truncate(u1, disallowed_feature) != 0) { + log.err("feature '{s}' is disallowed, but used by linked object", .{feature.tag.toString()}); + log.err(" disallowed by '{s}'", .{wasm.objects.items[disallowed_feature >> 1].name}); + log.err(" used in '{s}'", .{object.name}); + valid_feature_set = false; + } + + object_used_features[@enumToInt(feature.tag)] = true; + } + + // validate the linked object file has each required feature + for (required) |required_feature, feature_index| { + const is_required = @truncate(u1, required_feature) != 0; + if (is_required and !object_used_features[feature_index]) { + log.err("feature '{s}' is required but not used in linked object", .{(@intToEnum(types.Feature.Tag, feature_index)).toString()}); + log.err(" required by '{s}'", .{wasm.objects.items[required_feature >> 1].name}); + log.err(" missing in '{s}'", .{object.name}); + valid_feature_set = false; + } + } + } + + if (!valid_feature_set) { + return error.InvalidFeatureSet; + } + + to_emit.* = allowed; +} + fn checkUndefinedSymbols(wasm: *const Wasm) !void { if (wasm.base.options.output_mode == .Obj) return; @@ -2158,6 +2261,9 @@ pub fn flushModule(wasm: *Wasm, comp: *Compilation, prog_node: *std.Progress.Nod try wasm.resolveSymbolsInObject(@intCast(u16, object_index)); } + var emit_features_count: u32 = 0; + var enabled_features: [@typeInfo(types.Feature.Tag).Enum.fields.len]bool = undefined; + try wasm.validateFeatures(&enabled_features, &emit_features_count); try wasm.resolveSymbolsInArchives(); try wasm.checkUndefinedSymbols(); @@ -2603,6 +2709,9 @@ pub fn flushModule(wasm: *Wasm, comp: *Compilation, prog_node: *std.Progress.Nod } try emitProducerSection(&binary_bytes); + if (emit_features_count > 0) { + try emitFeaturesSection(&binary_bytes, &enabled_features, emit_features_count); + } } // Only when writing all sections executed properly we write the magic @@ -2695,6 +2804,32 @@ fn emitProducerSection(binary_bytes: *std.ArrayList(u8)) !void { ); } +fn emitFeaturesSection(binary_bytes: *std.ArrayList(u8), enabled_features: []const bool, features_count: u32) !void { + const header_offset = try reserveCustomSectionHeader(binary_bytes); + + const writer = binary_bytes.writer(); + const target_features = "target_features"; + try leb.writeULEB128(writer, @intCast(u32, target_features.len)); + try writer.writeAll(target_features); + + try leb.writeULEB128(writer, features_count); + for (enabled_features) |enabled, feature_index| { + if (enabled) { + const feature: types.Feature = .{ .prefix = .used, .tag = @intToEnum(types.Feature.Tag, feature_index) }; + try leb.writeULEB128(writer, @enumToInt(feature.prefix)); + const string = feature.tag.toString(); + try leb.writeULEB128(writer, @intCast(u32, string.len)); + try writer.writeAll(string); + } + } + + try writeCustomSectionHeader( + binary_bytes.items, + header_offset, + @intCast(u32, binary_bytes.items.len - header_offset - 6), + ); +} + fn emitNameSection(wasm: *Wasm, binary_bytes: *std.ArrayList(u8), arena: std.mem.Allocator) !void { const Name = struct { index: u32, diff --git a/src/link/Wasm/types.zig b/src/link/Wasm/types.zig index 2006fe1812551ea61380dd5f507095610d3d4718..a46fad4e539aeaf4281eace84a6bae04aaa23e12 100644 --- a/src/link/Wasm/types.zig +++ b/src/link/Wasm/types.zig @@ -183,17 +183,44 @@ pub const Feature = struct { /// Type of the feature, must be unique in the sequence of features. tag: Tag, + /// Unlike `std.Target.wasm.Feature` this also contains linker-features such as shared-mem pub const Tag = enum { atomics, bulk_memory, exception_handling, + extended_const, multivalue, mutable_globals, nontrapping_fptoint, + reference_types, + relaxed_simd, sign_ext, simd128, tail_call, shared_mem, + + /// From a given cpu feature, returns its linker feature + pub fn fromCpuFeature(feature: std.Target.wasm.Feature) Tag { + return @intToEnum(Tag, @enumToInt(feature)); + } + + pub fn toString(tag: Tag) []const u8 { + return switch (tag) { + .atomics => "atomics", + .bulk_memory => "bulk-memory", + .exception_handling => "exception-handling", + .extended_const => "extended-const", + .multivalue => "multivalue", + .mutable_globals => "mutable-globals", + .nontrapping_fptoint => "nontrapping-fptoint", + .reference_types => "reference-types", + .relaxed_simd => "relaxed-simd", + .sign_ext => "sign-ext", + .simd128 => "simd128", + .tail_call => "tail-call", + .shared_mem => "shared-mem", + }; + } }; pub const Prefix = enum(u8) { @@ -202,22 +229,10 @@ pub const Feature = struct { required = '=', }; - pub fn toString(feature: Feature) []const u8 { - return switch (feature.tag) { - .bulk_memory => "bulk-memory", - .exception_handling => "exception-handling", - .mutable_globals => "mutable-globals", - .nontrapping_fptoint => "nontrapping-fptoint", - .sign_ext => "sign-ext", - .tail_call => "tail-call", - else => @tagName(feature), - }; - } - pub fn format(feature: Feature, comptime fmt: []const u8, opt: std.fmt.FormatOptions, writer: anytype) !void { _ = opt; _ = fmt; - try writer.print("{c} {s}", .{ feature.prefix, feature.toString() }); + try writer.print("{c} {s}", .{ feature.prefix, feature.tag.toString() }); } }; @@ -225,9 +240,12 @@ pub const known_features = std.ComptimeStringMap(Feature.Tag, .{ .{ "atomics", .atomics }, .{ "bulk-memory", .bulk_memory }, .{ "exception-handling", .exception_handling }, + .{ "extended-const", .extended_const }, .{ "multivalue", .multivalue }, .{ "mutable-globals", .mutable_globals }, .{ "nontrapping-fptoint", .nontrapping_fptoint }, + .{ "reference-types", .reference_types }, + .{ "relaxed-simd", .relaxed_simd }, .{ "sign-ext", .sign_ext }, .{ "simd128", .simd128 }, .{ "tail-call", .tail_call }, diff --git a/src/target.zig b/src/target.zig index 9e2d26dac652c2c459fb9cecd34ae890c415a99b..079d11516108c4215ea34bf566fa1a6bd3f48c24 100644 --- a/src/target.zig +++ b/src/target.zig @@ -18,6 +18,7 @@ pub const available_libcs = [_]ArchOsAbi{ .{ .arch = .aarch64, .os = .windows, .abi = .gnu }, .{ .arch = .aarch64, .os = .macos, .abi = .none, .os_ver = .{ .major = 11, .minor = 0 } }, .{ .arch = .aarch64, .os = .macos, .abi = .none, .os_ver = .{ .major = 12, .minor = 0 } }, + .{ .arch = .aarch64, .os = .macos, .abi = .none, .os_ver = .{ .major = 13, .minor = 0 } }, .{ .arch = .armeb, .os = .linux, .abi = .gnueabi }, .{ .arch = .armeb, .os = .linux, .abi = .gnueabihf }, .{ .arch = .armeb, .os = .linux, .abi = .musleabi }, @@ -70,9 +71,9 @@ pub const available_libcs = [_]ArchOsAbi{ .{ .arch = .x86_64, .os = .linux, .abi = .gnux32 }, .{ .arch = .x86_64, .os = .linux, .abi = .musl }, .{ .arch = .x86_64, .os = .windows, .abi = .gnu }, - .{ .arch = .x86_64, .os = .macos, .abi = .none, .os_ver = .{ .major = 10, .minor = 0 } }, .{ .arch = .x86_64, .os = .macos, .abi = .none, .os_ver = .{ .major = 11, .minor = 0 } }, .{ .arch = .x86_64, .os = .macos, .abi = .none, .os_ver = .{ .major = 12, .minor = 0 } }, + .{ .arch = .x86_64, .os = .macos, .abi = .none, .os_ver = .{ .major = 13, .minor = 0 } }, }; pub fn libCGenericName(target: std.Target) [:0]const u8 { diff --git a/src/translate_c.zig b/src/translate_c.zig index d71e5f30e2f7f62a6227bda7df1ca65919159d31..693f274e8e32ff7d90381f6a4d91498fed841f03 100644 --- a/src/translate_c.zig +++ b/src/translate_c.zig @@ -224,8 +224,7 @@ const Scope = struct { } } - fn findBlockReturnType(inner: *Scope, c: *Context) clang.QualType { - _ = c; + fn findBlockReturnType(inner: *Scope) clang.QualType { var scope = inner; while (true) { switch (scope.id) { @@ -833,7 +832,7 @@ fn visitVarDecl(c: *Context, var_decl: *const clang.VarDecl, mangled_name: ?[]co if (has_init) trans_init: { if (decl_init) |expr| { const node_or_error = if (expr.getStmtClass() == .StringLiteralClass) - transStringLiteralInitializer(c, scope, @ptrCast(*const clang.StringLiteral, expr), type_node) + transStringLiteralInitializer(c, @ptrCast(*const clang.StringLiteral, expr), type_node) else transExprCoercing(c, scope, expr, .used); init_node = node_or_error catch |err| switch (err) { @@ -1319,10 +1318,10 @@ fn transStmt( .StringLiteralClass => return transStringLiteral(c, scope, @ptrCast(*const clang.StringLiteral, stmt), result_used), .ParenExprClass => { const expr = try transExpr(c, scope, @ptrCast(*const clang.ParenExpr, stmt).getSubExpr(), .used); - return maybeSuppressResult(c, scope, result_used, expr); + return maybeSuppressResult(c, result_used, expr); }, .InitListExprClass => return transInitListExpr(c, scope, @ptrCast(*const clang.InitListExpr, stmt), result_used), - .ImplicitValueInitExprClass => return transImplicitValueInitExpr(c, scope, @ptrCast(*const clang.Expr, stmt), result_used), + .ImplicitValueInitExprClass => return transImplicitValueInitExpr(c, scope, @ptrCast(*const clang.Expr, stmt)), .IfStmtClass => return transIfStmt(c, scope, @ptrCast(*const clang.IfStmt, stmt)), .WhileStmtClass => return transWhileLoop(c, scope, @ptrCast(*const clang.WhileStmt, stmt)), .DoStmtClass => return transDoWhileLoop(c, scope, @ptrCast(*const clang.DoStmt, stmt)), @@ -1332,7 +1331,7 @@ fn transStmt( .ContinueStmtClass => return Tag.@"continue".init(), .BreakStmtClass => return Tag.@"break".init(), .ForStmtClass => return transForLoop(c, scope, @ptrCast(*const clang.ForStmt, stmt)), - .FloatingLiteralClass => return transFloatingLiteral(c, scope, @ptrCast(*const clang.FloatingLiteral, stmt), result_used), + .FloatingLiteralClass => return transFloatingLiteral(c, @ptrCast(*const clang.FloatingLiteral, stmt), result_used), .ConditionalOperatorClass => { return transConditionalOperator(c, scope, @ptrCast(*const clang.ConditionalOperator, stmt), result_used); }, @@ -1356,9 +1355,9 @@ fn transStmt( .OpaqueValueExprClass => { const source_expr = @ptrCast(*const clang.OpaqueValueExpr, stmt).getSourceExpr().?; const expr = try transExpr(c, scope, source_expr, .used); - return maybeSuppressResult(c, scope, result_used, expr); + return maybeSuppressResult(c, result_used, expr); }, - .OffsetOfExprClass => return transOffsetOfExpr(c, scope, @ptrCast(*const clang.OffsetOfExpr, stmt), result_used), + .OffsetOfExprClass => return transOffsetOfExpr(c, @ptrCast(*const clang.OffsetOfExpr, stmt), result_used), .CompoundLiteralExprClass => { const compound_literal = @ptrCast(*const clang.CompoundLiteralExpr, stmt); return transExpr(c, scope, compound_literal.getInitializer(), result_used); @@ -1369,13 +1368,13 @@ fn transStmt( }, .ConvertVectorExprClass => { const conv_vec = @ptrCast(*const clang.ConvertVectorExpr, stmt); - const conv_vec_node = try transConvertVectorExpr(c, scope, stmt.getBeginLoc(), conv_vec); - return maybeSuppressResult(c, scope, result_used, conv_vec_node); + const conv_vec_node = try transConvertVectorExpr(c, scope, conv_vec); + return maybeSuppressResult(c, result_used, conv_vec_node); }, .ShuffleVectorExprClass => { const shuffle_vec_expr = @ptrCast(*const clang.ShuffleVectorExpr, stmt); const shuffle_vec_node = try transShuffleVectorExpr(c, scope, shuffle_vec_expr); - return maybeSuppressResult(c, scope, result_used, shuffle_vec_node); + return maybeSuppressResult(c, result_used, shuffle_vec_node); }, .ChooseExprClass => { const choose_expr = @ptrCast(*const clang.ChooseExpr, stmt); @@ -1402,10 +1401,8 @@ fn transStmt( fn transConvertVectorExpr( c: *Context, scope: *Scope, - source_loc: clang.SourceLocation, expr: *const clang.ConvertVectorExpr, ) TransError!Node { - _ = source_loc; const base_stmt = @ptrCast(*const clang.Stmt, expr); var block_scope = try Scope.Block.init(c, scope, true); @@ -1521,12 +1518,7 @@ fn transShuffleVectorExpr( /// Translate a "simple" offsetof expression containing exactly one component, /// when that component is of kind .Field - e.g. offsetof(mytype, myfield) -fn transSimpleOffsetOfExpr( - c: *Context, - scope: *Scope, - expr: *const clang.OffsetOfExpr, -) TransError!Node { - _ = scope; +fn transSimpleOffsetOfExpr(c: *Context, expr: *const clang.OffsetOfExpr) TransError!Node { assert(expr.getNumComponents() == 1); const component = expr.getComponent(0); if (component.getKind() == .Field) { @@ -1551,13 +1543,12 @@ fn transSimpleOffsetOfExpr( fn transOffsetOfExpr( c: *Context, - scope: *Scope, expr: *const clang.OffsetOfExpr, result_used: ResultUsed, ) TransError!Node { if (expr.getNumComponents() == 1) { - const offsetof_expr = try transSimpleOffsetOfExpr(c, scope, expr); - return maybeSuppressResult(c, scope, result_used, offsetof_expr); + const offsetof_expr = try transSimpleOffsetOfExpr(c, expr); + return maybeSuppressResult(c, result_used, offsetof_expr); } // TODO implement OffsetOfExpr with more than 1 component @@ -1613,7 +1604,6 @@ fn transCreatePointerArithmeticSignedOp( return transCreateNodeInfixOp( c, - scope, if (is_add) .add else .sub, lhs_node, bitcast_node, @@ -1629,7 +1619,7 @@ fn transBinaryOperator( ) TransError!Node { const op = stmt.getOpcode(); const qt = stmt.getType(); - const isPointerDiffExpr = cIsPointerDiffExpr(c, stmt); + const isPointerDiffExpr = cIsPointerDiffExpr(stmt); switch (op) { .Assign => return try transCreateNodeAssign(c, scope, result_used, stmt.getLHS(), stmt.getRHS()), .Comma => { @@ -1646,7 +1636,7 @@ fn transBinaryOperator( }); try block_scope.statements.append(break_node); const block_node = try block_scope.complete(c); - return maybeSuppressResult(c, scope, result_used, block_node); + return maybeSuppressResult(c, result_used, block_node); }, .Div => { if (cIsSignedInteger(qt)) { @@ -1654,7 +1644,7 @@ fn transBinaryOperator( const lhs = try transExpr(c, scope, stmt.getLHS(), .used); const rhs = try transExpr(c, scope, stmt.getRHS(), .used); const div_trunc = try Tag.div_trunc.create(c.arena, .{ .lhs = lhs, .rhs = rhs }); - return maybeSuppressResult(c, scope, result_used, div_trunc); + return maybeSuppressResult(c, result_used, div_trunc); } }, .Rem => { @@ -1663,7 +1653,7 @@ fn transBinaryOperator( const lhs = try transExpr(c, scope, stmt.getLHS(), .used); const rhs = try transExpr(c, scope, stmt.getRHS(), .used); const rem = try Tag.signed_remainder.create(c.arena, .{ .lhs = lhs, .rhs = rhs }); - return maybeSuppressResult(c, scope, result_used, rem); + return maybeSuppressResult(c, result_used, rem); } }, .Shl => { @@ -1764,7 +1754,7 @@ fn transBinaryOperator( else rhs_uncasted; - const infixOpNode = try transCreateNodeInfixOp(c, scope, op_id, lhs, rhs, result_used); + const infixOpNode = try transCreateNodeInfixOp(c, op_id, lhs, rhs, result_used); if (isPointerDiffExpr) { // @divExact(@bitCast(, @ptrToInt(lhs) -% @ptrToInt(rhs)), @sizeOf()) const ptrdiff_type = try transQualTypeIntWidthOf(c, qt, true); @@ -1843,7 +1833,7 @@ fn transCStyleCastExprClass( src_type, sub_expr_node, )); - return maybeSuppressResult(c, scope, result_used, cast_node); + return maybeSuppressResult(c, result_used, cast_node); } /// The alignment of a variable or field @@ -1933,7 +1923,7 @@ fn transDeclStmtOne( var init_node = if (decl_init) |expr| if (expr.getStmtClass() == .StringLiteralClass) - try transStringLiteralInitializer(c, scope, @ptrCast(*const clang.StringLiteral, expr), type_node) + try transStringLiteralInitializer(c, @ptrCast(*const clang.StringLiteral, expr), type_node) else try transExprCoercing(c, scope, expr, .used) else if (is_static_local) @@ -2051,21 +2041,21 @@ fn transImplicitCastExpr( .BitCast, .FloatingCast, .FloatingToIntegral, .IntegralToFloating, .IntegralCast, .PointerToIntegral, .IntegralToPointer => { const sub_expr_node = try transExpr(c, scope, sub_expr, .used); const casted = try transCCast(c, scope, expr.getBeginLoc(), dest_type, src_type, sub_expr_node); - return maybeSuppressResult(c, scope, result_used, casted); + return maybeSuppressResult(c, result_used, casted); }, .LValueToRValue, .NoOp, .FunctionToPointerDecay => { const sub_expr_node = try transExpr(c, scope, sub_expr, .used); - return maybeSuppressResult(c, scope, result_used, sub_expr_node); + return maybeSuppressResult(c, result_used, sub_expr_node); }, .ArrayToPointerDecay => { const sub_expr_node = try transExpr(c, scope, sub_expr, .used); if (exprIsNarrowStringLiteral(sub_expr) or exprIsFlexibleArrayRef(c, sub_expr)) { - return maybeSuppressResult(c, scope, result_used, sub_expr_node); + return maybeSuppressResult(c, result_used, sub_expr_node); } const addr = try Tag.address_of.create(c.arena, sub_expr_node); const casted = try transCPtrCast(c, scope, expr.getBeginLoc(), dest_type, src_type, addr); - return maybeSuppressResult(c, scope, result_used, casted); + return maybeSuppressResult(c, result_used, casted); }, .NullToPointer => { return Tag.null_literal.init(); @@ -2076,18 +2066,18 @@ fn transImplicitCastExpr( const ptr_to_int = try Tag.ptr_to_int.create(c.arena, ptr_node); const ne = try Tag.not_equal.create(c.arena, .{ .lhs = ptr_to_int, .rhs = Tag.zero_literal.init() }); - return maybeSuppressResult(c, scope, result_used, ne); + return maybeSuppressResult(c, result_used, ne); }, .IntegralToBoolean, .FloatingToBoolean => { const sub_expr_node = try transExpr(c, scope, sub_expr, .used); // The expression is already a boolean one, return it as-is if (isBoolRes(sub_expr_node)) - return maybeSuppressResult(c, scope, result_used, sub_expr_node); + return maybeSuppressResult(c, result_used, sub_expr_node); // val != 0 const ne = try Tag.not_equal.create(c.arena, .{ .lhs = sub_expr_node, .rhs = Tag.zero_literal.init() }); - return maybeSuppressResult(c, scope, result_used, ne); + return maybeSuppressResult(c, result_used, ne); }, .BuiltinFnToFnPtr => { return transBuiltinFnExpr(c, scope, sub_expr, result_used); @@ -2140,13 +2130,13 @@ fn transBoolExpr( var res = try transExpr(c, scope, expr, used); if (isBoolRes(res)) { - return maybeSuppressResult(c, scope, used, res); + return maybeSuppressResult(c, used, res); } const ty = getExprQualType(c, expr).getTypePtr(); const node = try finishBoolExpr(c, scope, expr.getBeginLoc(), ty, res, used); - return maybeSuppressResult(c, scope, used, node); + return maybeSuppressResult(c, used, node); } fn exprIsBooleanType(expr: *const clang.Expr) bool { @@ -2299,7 +2289,7 @@ fn transIntegerLiteral( if (suppress_as == .no_as) { const int_lit_node = try transCreateNodeAPInt(c, eval_result.Val.getInt()); - return maybeSuppressResult(c, scope, result_used, int_lit_node); + return maybeSuppressResult(c, result_used, int_lit_node); } // Integer literals in C have types, and this can matter for several reasons. @@ -2317,7 +2307,7 @@ fn transIntegerLiteral( const ty_node = try transQualType(c, scope, expr_base.getType(), expr_base.getBeginLoc()); const rhs = try transCreateNodeAPInt(c, eval_result.Val.getInt()); const as = try Tag.as.create(c.arena, .{ .lhs = ty_node, .rhs = rhs }); - return maybeSuppressResult(c, scope, result_used, as); + return maybeSuppressResult(c, result_used, as); } fn transReturnStmt( @@ -2329,7 +2319,7 @@ fn transReturnStmt( return Tag.return_void.init(); var rhs = try transExprCoercing(c, scope, val_expr, .used); - const return_qt = scope.findBlockReturnType(c); + const return_qt = scope.findBlockReturnType(); if (isBoolRes(rhs) and !qualTypeIsBoolean(return_qt)) { rhs = try Tag.bool_to_int.create(c.arena, rhs); } @@ -2338,7 +2328,6 @@ fn transReturnStmt( fn transNarrowStringLiteral( c: *Context, - scope: *Scope, stmt: *const clang.StringLiteral, result_used: ResultUsed, ) TransError!Node { @@ -2347,7 +2336,7 @@ fn transNarrowStringLiteral( const str = try std.fmt.allocPrint(c.arena, "\"{}\"", .{std.zig.fmtEscapes(bytes_ptr[0..len])}); const node = try Tag.string_literal.create(c.arena, str); - return maybeSuppressResult(c, scope, result_used, node); + return maybeSuppressResult(c, result_used, node); } fn transStringLiteral( @@ -2358,18 +2347,18 @@ fn transStringLiteral( ) TransError!Node { const kind = stmt.getKind(); switch (kind) { - .Ascii, .UTF8 => return transNarrowStringLiteral(c, scope, stmt, result_used), + .Ascii, .UTF8 => return transNarrowStringLiteral(c, stmt, result_used), .UTF16, .UTF32, .Wide => { const str_type = @tagName(stmt.getKind()); const name = try std.fmt.allocPrint(c.arena, "zig.{s}_string_{d}", .{ str_type, c.getMangle() }); const expr_base = @ptrCast(*const clang.Expr, stmt); const array_type = try transQualTypeInitialized(c, scope, expr_base.getType(), expr_base, expr_base.getBeginLoc()); - const lit_array = try transStringLiteralInitializer(c, scope, stmt, array_type); + const lit_array = try transStringLiteralInitializer(c, stmt, array_type); const decl = try Tag.var_simple.create(c.arena, .{ .name = name, .init = lit_array }); try scope.appendNode(decl); const node = try Tag.identifier.create(c.arena, name); - return maybeSuppressResult(c, scope, result_used, node); + return maybeSuppressResult(c, result_used, node); }, } } @@ -2384,7 +2373,6 @@ fn getArrayPayload(array_type: Node) ast.Payload.Array.ArrayTypeInfo { /// the appropriate length, if necessary. fn transStringLiteralInitializer( c: *Context, - scope: *Scope, stmt: *const clang.StringLiteral, array_type: Node, ) TransError!Node { @@ -2403,7 +2391,7 @@ fn transStringLiteralInitializer( const init_node = if (num_inits > 0) blk: { if (is_narrow) { // "string literal".* or string literal"[0..num_inits].* - var str = try transNarrowStringLiteral(c, scope, stmt, .used); + var str = try transNarrowStringLiteral(c, stmt, .used); if (str_length != array_size) str = try Tag.string_slice.create(c.arena, .{ .string = str, .end = num_inits }); break :blk try Tag.deref.create(c.arena, str); } else { @@ -2440,8 +2428,7 @@ fn transStringLiteralInitializer( /// determine whether `stmt` is a "pointer subtraction expression" - a subtraction where /// both operands resolve to addresses. The C standard requires that both operands /// point to elements of the same array object, but we do not verify that here. -fn cIsPointerDiffExpr(c: *Context, stmt: *const clang.BinaryOperator) bool { - _ = c; +fn cIsPointerDiffExpr(stmt: *const clang.BinaryOperator) bool { const lhs = @ptrCast(*const clang.Stmt, stmt.getLHS()); const rhs = @ptrCast(*const clang.Stmt, stmt.getRHS()); return stmt.getOpcode() == .Sub and @@ -2748,9 +2735,7 @@ fn transInitListExprVector( scope: *Scope, loc: clang.SourceLocation, expr: *const clang.InitListExpr, - ty: *const clang.Type, ) TransError!Node { - _ = ty; const qt = getExprQualType(c, @ptrCast(*const clang.Expr, expr)); const vector_ty = @ptrCast(*const clang.VectorType, qualTypeCanon(qt)); @@ -2829,7 +2814,7 @@ fn transInitListExpr( } if (qual_type.isRecordType()) { - return maybeSuppressResult(c, scope, used, try transInitListExprRecord( + return maybeSuppressResult(c, used, try transInitListExprRecord( c, scope, source_loc, @@ -2837,7 +2822,7 @@ fn transInitListExpr( qual_type, )); } else if (qual_type.isArrayType()) { - return maybeSuppressResult(c, scope, used, try transInitListExprArray( + return maybeSuppressResult(c, used, try transInitListExprArray( c, scope, source_loc, @@ -2845,13 +2830,7 @@ fn transInitListExpr( qual_type, )); } else if (qual_type.isVectorType()) { - return maybeSuppressResult(c, scope, used, try transInitListExprVector( - c, - scope, - source_loc, - expr, - qual_type, - )); + return maybeSuppressResult(c, used, try transInitListExprVector(c, scope, source_loc, expr)); } else { const type_name = try c.str(qual_type.getTypeClassName()); return fail(c, error.UnsupportedType, source_loc, "unsupported initlist type: '{s}'", .{type_name}); @@ -2912,9 +2891,7 @@ fn transImplicitValueInitExpr( c: *Context, scope: *Scope, expr: *const clang.Expr, - used: ResultUsed, ) TransError!Node { - _ = used; const source_loc = expr.getBeginLoc(); const qt = getExprQualType(c, expr); const ty = qt.getTypePtr(); @@ -3354,7 +3331,7 @@ fn transConstantExpr(c: *Context, scope: *Scope, expr: *const clang.Expr, used: .lhs = try transQualType(c, scope, expr_base.getType(), expr_base.getBeginLoc()), .rhs = try transCreateNodeAPInt(c, result.Val.getInt()), }); - return maybeSuppressResult(c, scope, used, as_node); + return maybeSuppressResult(c, used, as_node); }, else => |kind| { return fail(c, error.UnsupportedTranslation, expr.getBeginLoc(), "unsupported constant expression kind '{}'", .{kind}); @@ -3391,7 +3368,7 @@ fn transCharLiteral( try transCreateCharLitNode(c, narrow, val); if (suppress_as == .no_as) { - return maybeSuppressResult(c, scope, result_used, int_lit_node); + return maybeSuppressResult(c, result_used, int_lit_node); } // See comment in `transIntegerLiteral` for why this code is here. // @as(T, x) @@ -3400,7 +3377,7 @@ fn transCharLiteral( .lhs = try transQualType(c, scope, expr_base.getType(), expr_base.getBeginLoc()), .rhs = int_lit_node, }); - return maybeSuppressResult(c, scope, result_used, as_node); + return maybeSuppressResult(c, result_used, as_node); } fn transStmtExpr(c: *Context, scope: *Scope, stmt: *const clang.StmtExpr, used: ResultUsed) TransError!Node { @@ -3426,7 +3403,7 @@ fn transStmtExpr(c: *Context, scope: *Scope, stmt: *const clang.StmtExpr, used: }); try block_scope.statements.append(break_node); const res = try block_scope.complete(c); - return maybeSuppressResult(c, scope, used, res); + return maybeSuppressResult(c, used, res); } fn transMemberExpr(c: *Context, scope: *Scope, stmt: *const clang.MemberExpr, result_used: ResultUsed) TransError!Node { @@ -3455,7 +3432,7 @@ fn transMemberExpr(c: *Context, scope: *Scope, stmt: *const clang.MemberExpr, re if (exprIsFlexibleArrayRef(c, @ptrCast(*const clang.Expr, stmt))) { node = try Tag.call.create(c.arena, .{ .lhs = node, .args = &.{} }); } - return maybeSuppressResult(c, scope, result_used, node); + return maybeSuppressResult(c, result_used, node); } /// ptr[subscr] (`subscr` is a signed integer expression, `ptr` a pointer) becomes: @@ -3533,7 +3510,7 @@ fn transSignedArrayAccess( const derefed = try Tag.deref.create(c.arena, block_node); - return maybeSuppressResult(c, &block_scope.base, result_used, derefed); + return maybeSuppressResult(c, result_used, derefed); } fn transArrayAccess(c: *Context, scope: *Scope, stmt: *const clang.ArraySubscriptExpr, result_used: ResultUsed) TransError!Node { @@ -3574,7 +3551,7 @@ fn transArrayAccess(c: *Context, scope: *Scope, stmt: *const clang.ArraySubscrip .lhs = container_node, .rhs = rhs, }); - return maybeSuppressResult(c, scope, result_used, node); + return maybeSuppressResult(c, result_used, node); } /// Check if an expression is ultimately a reference to a function declaration @@ -3665,7 +3642,7 @@ fn transCallExpr(c: *Context, scope: *Scope, stmt: *const clang.CallExpr, result } } - return maybeSuppressResult(c, scope, result_used, node); + return maybeSuppressResult(c, result_used, node); } const ClangFunctionType = union(enum) { @@ -3705,14 +3682,13 @@ fn transUnaryExprOrTypeTraitExpr( stmt: *const clang.UnaryExprOrTypeTraitExpr, result_used: ResultUsed, ) TransError!Node { - _ = result_used; const loc = stmt.getBeginLoc(); const type_node = try transQualType(c, scope, stmt.getTypeOfArgument(), loc); const kind = stmt.getKind(); - switch (kind) { - .SizeOf => return Tag.sizeof.create(c.arena, type_node), - .AlignOf => return Tag.alignof.create(c.arena, type_node), + const node = switch (kind) { + .SizeOf => try Tag.sizeof.create(c.arena, type_node), + .AlignOf => try Tag.alignof.create(c.arena, type_node), .PreferredAlignOf, .VecStep, .OpenMPRequiredSimdAlign, @@ -3723,7 +3699,8 @@ fn transUnaryExprOrTypeTraitExpr( "unsupported type trait kind {}", .{kind}, ), - } + }; + return maybeSuppressResult(c, result_used, node); } fn qualTypeHasWrappingOverflow(qt: clang.QualType) bool { @@ -3812,7 +3789,7 @@ fn transCreatePreCrement( // zig: expr += 1 const lhs = try transExpr(c, scope, op_expr, .used); const rhs = Tag.one_literal.init(); - return transCreateNodeInfixOp(c, scope, op, lhs, rhs, .used); + return transCreateNodeInfixOp(c, op, lhs, rhs, .used); } // worst case // c: ++expr @@ -3832,7 +3809,7 @@ fn transCreatePreCrement( const lhs_node = try Tag.identifier.create(c.arena, ref); const ref_node = try Tag.deref.create(c.arena, lhs_node); - const node = try transCreateNodeInfixOp(c, &block_scope.base, op, ref_node, Tag.one_literal.init(), .used); + const node = try transCreateNodeInfixOp(c, op, ref_node, Tag.one_literal.init(), .used); try block_scope.statements.append(node); const break_node = try Tag.break_val.create(c.arena, .{ @@ -3858,7 +3835,7 @@ fn transCreatePostCrement( // zig: expr += 1 const lhs = try transExpr(c, scope, op_expr, .used); const rhs = Tag.one_literal.init(); - return transCreateNodeInfixOp(c, scope, op, lhs, rhs, .used); + return transCreateNodeInfixOp(c, op, lhs, rhs, .used); } // worst case // c: expr++ @@ -3884,7 +3861,7 @@ fn transCreatePostCrement( const tmp_decl = try Tag.var_simple.create(c.arena, .{ .name = tmp, .init = ref_node }); try block_scope.statements.append(tmp_decl); - const node = try transCreateNodeInfixOp(c, &block_scope.base, op, ref_node, Tag.one_literal.init(), .used); + const node = try transCreateNodeInfixOp(c, op, ref_node, Tag.one_literal.init(), .used); try block_scope.statements.append(node); const break_node = try Tag.break_val.create(c.arena, .{ @@ -3965,7 +3942,7 @@ fn transCreateCompoundAssign( else try Tag.div_trunc.create(c.arena, operands); - return transCreateNodeInfixOp(c, scope, .assign, lhs_node, builtin, .used); + return transCreateNodeInfixOp(c, .assign, lhs_node, builtin, .used); } if (is_shift) { @@ -3974,7 +3951,7 @@ fn transCreateCompoundAssign( } else if (requires_int_cast) { rhs_node = try transCCast(c, scope, loc, lhs_qt, rhs_qt, rhs_node); } - return transCreateNodeInfixOp(c, scope, op, lhs_node, rhs_node, .used); + return transCreateNodeInfixOp(c, op, lhs_node, rhs_node, .used); } // worst case // c: lhs += rhs @@ -4005,7 +3982,7 @@ fn transCreateCompoundAssign( else try Tag.div_trunc.create(c.arena, operands); - const assign = try transCreateNodeInfixOp(c, &block_scope.base, .assign, ref_node, builtin, .used); + const assign = try transCreateNodeInfixOp(c, .assign, ref_node, builtin, .used); try block_scope.statements.append(assign); } else { if (is_shift) { @@ -4015,7 +3992,7 @@ fn transCreateCompoundAssign( rhs_node = try transCCast(c, &block_scope.base, loc, lhs_qt, rhs_qt, rhs_node); } - const assign = try transCreateNodeInfixOp(c, &block_scope.base, op, ref_node, rhs_node, .used); + const assign = try transCreateNodeInfixOp(c, op, ref_node, rhs_node, .used); try block_scope.statements.append(assign); } @@ -4071,7 +4048,7 @@ fn transCPtrCast( } } -fn transFloatingLiteral(c: *Context, scope: *Scope, expr: *const clang.FloatingLiteral, used: ResultUsed) TransError!Node { +fn transFloatingLiteral(c: *Context, expr: *const clang.FloatingLiteral, used: ResultUsed) TransError!Node { switch (expr.getRawSemantics()) { .IEEEhalf, // f16 .IEEEsingle, // f32 @@ -4095,7 +4072,7 @@ fn transFloatingLiteral(c: *Context, scope: *Scope, expr: *const clang.FloatingL try std.fmt.allocPrint(c.arena, "{d}", .{dbl}); var node = try Tag.float_literal.create(c.arena, str); if (is_negative) node = try Tag.negate.create(c.arena, node); - return maybeSuppressResult(c, scope, used, node); + return maybeSuppressResult(c, used, node); } fn transBinaryConditionalOperator(c: *Context, scope: *Scope, stmt: *const clang.BinaryConditionalOperator, used: ResultUsed) TransError!Node { @@ -4151,7 +4128,7 @@ fn transBinaryConditionalOperator(c: *Context, scope: *Scope, stmt: *const clang }); try block_scope.statements.append(break_node); const res = try block_scope.complete(c); - return maybeSuppressResult(c, scope, used, res); + return maybeSuppressResult(c, used, res); } fn transConditionalOperator(c: *Context, scope: *Scope, stmt: *const clang.ConditionalOperator, used: ResultUsed) TransError!Node { @@ -4191,13 +4168,7 @@ fn transConditionalOperator(c: *Context, scope: *Scope, stmt: *const clang.Condi return if_node; } -fn maybeSuppressResult( - c: *Context, - scope: *Scope, - used: ResultUsed, - result: Node, -) TransError!Node { - _ = scope; +fn maybeSuppressResult(c: *Context, used: ResultUsed, result: Node) TransError!Node { if (used == .used) return result; return Tag.discard.create(c.arena, .{ .should_skip = false, .value = result }); } @@ -4551,7 +4522,7 @@ fn transCreateNodeAssign( if (!exprIsBooleanType(lhs) and isBoolRes(rhs_node)) { rhs_node = try Tag.bool_to_int.create(c.arena, rhs_node); } - return transCreateNodeInfixOp(c, scope, .assign, lhs_node, rhs_node, .used); + return transCreateNodeInfixOp(c, .assign, lhs_node, rhs_node, .used); } // worst case @@ -4571,7 +4542,7 @@ fn transCreateNodeAssign( const lhs_node = try transExpr(c, &block_scope.base, lhs, .used); const tmp_ident = try Tag.identifier.create(c.arena, tmp); - const assign = try transCreateNodeInfixOp(c, &block_scope.base, .assign, lhs_node, tmp_ident, .used); + const assign = try transCreateNodeInfixOp(c, .assign, lhs_node, tmp_ident, .used); try block_scope.statements.append(assign); const break_node = try Tag.break_val.create(c.arena, .{ @@ -4584,7 +4555,6 @@ fn transCreateNodeAssign( fn transCreateNodeInfixOp( c: *Context, - scope: *Scope, op: Tag, lhs: Node, rhs: Node, @@ -4598,7 +4568,7 @@ fn transCreateNodeInfixOp( .rhs = rhs, }, }; - return maybeSuppressResult(c, scope, used, Node.initPayload(&payload.base)); + return maybeSuppressResult(c, used, Node.initPayload(&payload.base)); } fn transCreateNodeBoolInfixOp( @@ -4613,7 +4583,7 @@ fn transCreateNodeBoolInfixOp( const lhs = try transBoolExpr(c, scope, stmt.getLHS(), .used); const rhs = try transBoolExpr(c, scope, stmt.getRHS(), .used); - return transCreateNodeInfixOp(c, scope, op, lhs, rhs, used); + return transCreateNodeInfixOp(c, op, lhs, rhs, used); } fn transCreateNodeAPInt(c: *Context, int: *const clang.APSInt) !Node { @@ -4730,7 +4700,7 @@ fn transCreateNodeShiftOp( const rhs = try transExprCoercing(c, scope, rhs_expr, .used); const rhs_casted = try Tag.int_cast.create(c.arena, .{ .lhs = rhs_type, .rhs = rhs }); - return transCreateNodeInfixOp(c, scope, op, lhs, rhs_casted, used); + return transCreateNodeInfixOp(c, op, lhs, rhs_casted, used); } fn transType(c: *Context, scope: *Scope, ty: *const clang.Type, source_loc: clang.SourceLocation) TypeError!Node { @@ -5681,13 +5651,14 @@ const ParseError = Error || error{ParseError}; fn parseCExpr(c: *Context, m: *MacroCtx, scope: *Scope) ParseError!Node { // TODO parseCAssignExpr here - const node = try parseCCondExpr(c, m, scope); + var block_scope = try Scope.Block.init(c, scope, true); + defer block_scope.deinit(); + + const node = try parseCCondExpr(c, m, &block_scope.base); if (m.next().? != .Comma) { m.i -= 1; return node; } - var block_scope = try Scope.Block.init(c, scope, true); - defer block_scope.deinit(); var last = node; while (true) { @@ -6261,7 +6232,7 @@ fn parseCMulExpr(c: *Context, m: *MacroCtx, scope: *Scope) ParseError!Node { .Slash => { const lhs = try macroBoolToInt(c, node); const rhs = try macroBoolToInt(c, try parseCCastExpr(c, m, scope)); - node = try Tag.div.create(c.arena, .{ .lhs = lhs, .rhs = rhs }); + node = try Tag.macro_arithmetic.create(c.arena, .{ .op = .div, .lhs = lhs, .rhs = rhs }); }, .Percent => { const lhs = try macroBoolToInt(c, node); @@ -6298,7 +6269,7 @@ fn parseCCastExpr(c: *Context, m: *MacroCtx, scope: *Scope) ParseError!Node { // allow_fail is set when unsure if we are parsing a type-name fn parseCTypeName(c: *Context, m: *MacroCtx, scope: *Scope, allow_fail: bool) ParseError!?Node { if (try parseCSpecifierQualifierList(c, m, scope, allow_fail)) |node| { - return try parseCAbstractDeclarator(c, m, scope, node); + return try parseCAbstractDeclarator(c, m, node); } else { return null; } @@ -6327,7 +6298,7 @@ fn parseCSpecifierQualifierList(c: *Context, m: *MacroCtx, scope: *Scope, allow_ .Keyword_complex, => { m.i -= 1; - return try parseCNumericType(c, m, scope); + return try parseCNumericType(c, m); }, .Keyword_enum, .Keyword_struct, .Keyword_union => { // struct Foo will be declared as struct_Foo by transRecordDecl @@ -6349,8 +6320,7 @@ fn parseCSpecifierQualifierList(c: *Context, m: *MacroCtx, scope: *Scope, allow_ } } -fn parseCNumericType(c: *Context, m: *MacroCtx, scope: *Scope) ParseError!Node { - _ = scope; +fn parseCNumericType(c: *Context, m: *MacroCtx) ParseError!Node { const KwCounter = struct { double: u8 = 0, long: u8 = 0, @@ -6451,8 +6421,7 @@ fn parseCNumericType(c: *Context, m: *MacroCtx, scope: *Scope) ParseError!Node { return error.ParseError; } -fn parseCAbstractDeclarator(c: *Context, m: *MacroCtx, scope: *Scope, node: Node) ParseError!Node { - _ = scope; +fn parseCAbstractDeclarator(c: *Context, m: *MacroCtx, node: Node) ParseError!Node { switch (m.next().?) { .Asterisk => { // last token of `node` diff --git a/src/translate_c/ast.zig b/src/translate_c/ast.zig index 4dcdbc42509a45bcc64cb27060bdedef880864e4..4a64c13ce779f269db65f0fe08289f82bcaf8dd3 100644 --- a/src/translate_c/ast.zig +++ b/src/translate_c/ast.zig @@ -159,6 +159,9 @@ pub const Node = extern union { /// @shuffle(type, a, b, mask) shuffle, + /// @import("std").zig.c_translation.MacroArithmetic.(lhs, rhs) + macro_arithmetic, + asm_simple, negate, @@ -370,6 +373,7 @@ pub const Node = extern union { .field_access => Payload.FieldAccess, .string_slice => Payload.StringSlice, .shuffle => Payload.Shuffle, + .macro_arithmetic => Payload.MacroArithmetic, }; } @@ -713,6 +717,19 @@ pub const Payload = struct { mask_vector: Node, }, }; + + pub const MacroArithmetic = struct { + base: Payload, + data: struct { + op: Operator, + lhs: Node, + rhs: Node, + }, + + pub const Operator = enum { + div, + }; + }; }; /// Converts the nodes into a Zig Ast. @@ -1408,6 +1425,12 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex { payload.mask_vector, }); }, + .macro_arithmetic => { + const payload = node.castTag(.macro_arithmetic).?.data; + const op = @tagName(payload.op); + const import_node = try renderStdImport(c, &.{ "zig", "c_translation", "MacroArithmetic", op }); + return renderCall(c, import_node, &.{ payload.lhs, payload.rhs }); + }, .alignof => { const payload = node.castTag(.alignof).?.data; return renderBuiltinCall(c, "@alignOf", &.{payload}); @@ -2349,6 +2372,7 @@ fn renderNodeGrouped(c: *Context, node: Node) !NodeIndex { .shuffle, .static_local_var, .mut_str, + .macro_arithmetic, => { // no grouping needed return renderNode(c, node); diff --git a/src/type.zig b/src/type.zig index 5c74f39290d8b79be90f215710d12e111a8d327d..3a072a2f5b7af36cd88b15b18751666bb0498ae2 100644 --- a/src/type.zig +++ b/src/type.zig @@ -2892,41 +2892,24 @@ pub const Type = extern union { .anyframe_T, => return AbiAlignmentAdvanced{ .scalar = @divExact(target.cpu.arch.ptrBitWidth(), 8) }, - .c_short => return AbiAlignmentAdvanced{ .scalar = @divExact(CType.short.sizeInBits(target), 8) }, - .c_ushort => return AbiAlignmentAdvanced{ .scalar = @divExact(CType.ushort.sizeInBits(target), 8) }, - .c_int => return AbiAlignmentAdvanced{ .scalar = @divExact(CType.int.sizeInBits(target), 8) }, - .c_uint => return AbiAlignmentAdvanced{ .scalar = @divExact(CType.uint.sizeInBits(target), 8) }, - .c_long => return AbiAlignmentAdvanced{ .scalar = @divExact(CType.long.sizeInBits(target), 8) }, - .c_ulong => return AbiAlignmentAdvanced{ .scalar = @divExact(CType.ulong.sizeInBits(target), 8) }, - .c_longlong => switch (target.cpu.arch) { - .i386 => switch (target.os.tag) { - .windows, .uefi => return AbiAlignmentAdvanced{ .scalar = 8 }, - else => return AbiAlignmentAdvanced{ .scalar = 4 }, - }, - else => return AbiAlignmentAdvanced{ .scalar = @divExact(CType.longlong.sizeInBits(target), 8) }, - }, - .c_ulonglong => switch (target.cpu.arch) { - .i386 => switch (target.os.tag) { - .windows, .uefi => return AbiAlignmentAdvanced{ .scalar = 8 }, - else => return AbiAlignmentAdvanced{ .scalar = 4 }, - }, - else => return AbiAlignmentAdvanced{ .scalar = @divExact(CType.ulonglong.sizeInBits(target), 8) }, - }, + .c_short => return AbiAlignmentAdvanced{ .scalar = CType.short.alignment(target) }, + .c_ushort => return AbiAlignmentAdvanced{ .scalar = CType.ushort.alignment(target) }, + .c_int => return AbiAlignmentAdvanced{ .scalar = CType.int.alignment(target) }, + .c_uint => return AbiAlignmentAdvanced{ .scalar = CType.uint.alignment(target) }, + .c_long => return AbiAlignmentAdvanced{ .scalar = CType.long.alignment(target) }, + .c_ulong => return AbiAlignmentAdvanced{ .scalar = CType.ulong.alignment(target) }, + .c_longlong => return AbiAlignmentAdvanced{ .scalar = CType.longlong.alignment(target) }, + .c_ulonglong => return AbiAlignmentAdvanced{ .scalar = CType.ulonglong.alignment(target) }, + .c_longdouble => return AbiAlignmentAdvanced{ .scalar = CType.longdouble.alignment(target) }, .f16 => return AbiAlignmentAdvanced{ .scalar = 2 }, - .f32 => return AbiAlignmentAdvanced{ .scalar = 4 }, - .f64 => switch (target.cpu.arch) { - .i386 => switch (target.os.tag) { - .windows, .uefi => return AbiAlignmentAdvanced{ .scalar = 8 }, - else => return AbiAlignmentAdvanced{ .scalar = 4 }, - }, + .f32 => return AbiAlignmentAdvanced{ .scalar = CType.float.alignment(target) }, + .f64 => switch (CType.double.sizeInBits(target)) { + 64 => return AbiAlignmentAdvanced{ .scalar = CType.double.alignment(target) }, else => return AbiAlignmentAdvanced{ .scalar = 8 }, }, - .f128 => return AbiAlignmentAdvanced{ .scalar = 16 }, - - .f80 => switch (target.cpu.arch) { - .i386 => return AbiAlignmentAdvanced{ .scalar = 4 }, - .x86_64 => return AbiAlignmentAdvanced{ .scalar = 16 }, + .f80 => switch (CType.longdouble.sizeInBits(target)) { + 80 => return AbiAlignmentAdvanced{ .scalar = CType.longdouble.alignment(target) }, else => { var payload: Payload.Bits = .{ .base = .{ .tag = .int_unsigned }, @@ -2936,17 +2919,7 @@ pub const Type = extern union { return AbiAlignmentAdvanced{ .scalar = abiAlignment(u80_ty, target) }; }, }, - .c_longdouble => switch (CType.longdouble.sizeInBits(target)) { - 16 => return AbiAlignmentAdvanced{ .scalar = abiAlignment(Type.f16, target) }, - 32 => return AbiAlignmentAdvanced{ .scalar = abiAlignment(Type.f32, target) }, - 64 => return AbiAlignmentAdvanced{ .scalar = abiAlignment(Type.f64, target) }, - 80 => if (target.cpu.arch == .i386 and target.isMinGW()) - return AbiAlignmentAdvanced{ .scalar = 4 } - else - return AbiAlignmentAdvanced{ .scalar = abiAlignment(Type.f80, target) }, - 128 => return AbiAlignmentAdvanced{ .scalar = abiAlignment(Type.f128, target) }, - else => unreachable, - }, + .f128 => return AbiAlignmentAdvanced{ .scalar = 16 }, // TODO revisit this when we have the concept of the error tag type .anyerror_void_error_union, @@ -3411,16 +3384,8 @@ pub const Type = extern union { .f32 => return AbiSizeAdvanced{ .scalar = 4 }, .f64 => return AbiSizeAdvanced{ .scalar = 8 }, .f128 => return AbiSizeAdvanced{ .scalar = 16 }, - - .f80 => switch (target.cpu.arch) { - .i386 => switch (target.os.tag) { - .windows => switch (target.abi) { - .msvc => return AbiSizeAdvanced{ .scalar = 16 }, - else => return AbiSizeAdvanced{ .scalar = 12 }, - }, - else => return AbiSizeAdvanced{ .scalar = 12 }, - }, - .x86_64 => return AbiSizeAdvanced{ .scalar = 16 }, + .f80 => switch (CType.longdouble.sizeInBits(target)) { + 80 => return AbiSizeAdvanced{ .scalar = std.mem.alignForward(10, CType.longdouble.alignment(target)) }, else => { var payload: Payload.Bits = .{ .base = .{ .tag = .int_unsigned }, @@ -3469,20 +3434,8 @@ pub const Type = extern union { if (!child_type.hasRuntimeBits()) return AbiSizeAdvanced{ .scalar = 1 }; - switch (child_type.zigTypeTag()) { - .Pointer => { - const ptr_info = child_type.ptrInfo().data; - const has_null = switch (ptr_info.size) { - .Slice, .C => true, - else => ptr_info.@"allowzero", - }; - if (!has_null) { - const ptr_size_bytes = @divExact(target.cpu.arch.ptrBitWidth(), 8); - return AbiSizeAdvanced{ .scalar = ptr_size_bytes }; - } - }, - .ErrorSet => return abiSizeAdvanced(Type.anyerror, target, strat), - else => {}, + if (ty.optionalReprIsPayload()) { + return abiSizeAdvanced(child_type, target, strat); } const payload_size = switch (try child_type.abiSizeAdvanced(target, strat)) { @@ -3747,28 +3700,10 @@ pub const Type = extern union { .int_signed, .int_unsigned => return ty.cast(Payload.Bits).?.data, - .optional => { - var buf: Payload.ElemType = undefined; - const child_type = ty.optionalChild(&buf); - if (!child_type.hasRuntimeBits()) return 8; - - if (child_type.zigTypeTag() == .Pointer and !child_type.isCPtr() and !child_type.isSlice()) - return target.cpu.arch.ptrBitWidth(); - - // Optional types are represented as a struct with the child type as the first - // field and a boolean as the second. Since the child type's abi alignment is - // guaranteed to be >= that of bool's (1 byte) the added size is exactly equal - // to the child type's ABI alignment. - const child_bit_size = try bitSizeAdvanced(child_type, target, sema_kit); - return child_bit_size + 1; - }, - - .error_union => { - const payload = ty.castTag(.error_union).?.data; - if (!payload.payload.hasRuntimeBits()) { - return payload.error_set.bitSizeAdvanced(target, sema_kit); - } - @panic("TODO bitSize error union"); + .optional, .error_union => { + // Optionals and error unions are not packed so their bitsize + // includes padding bits. + return (try abiSizeAdvanced(ty, target, if (sema_kit) |sk| .{ .sema_kit = sk } else .eager)).scalar * 8; }, .atomic_order, @@ -4045,8 +3980,8 @@ pub const Type = extern union { .Pointer => { const info = child_ty.ptrInfo().data; switch (info.size) { - .Slice, .C => return false, - .Many, .One => return !info.@"allowzero", + .C => return false, + .Slice, .Many, .One => return !info.@"allowzero", } }, .ErrorSet => return true, @@ -6668,45 +6603,80 @@ pub const CType = enum { ulonglong, longdouble, + // We don't have a `c_float`/`c_double` type in Zig, but these + // are useful for querying target-correct alignment and checking + // whether C's double is f64 or f32 + float, + double, + pub fn sizeInBits(self: CType, target: Target) u16 { switch (target.os.tag) { .freestanding, .other => switch (target.cpu.arch) { .msp430 => switch (self) { .short, .ushort, .int, .uint => return 16, - .long, .ulong => return 32, - .longlong, .ulonglong, .longdouble => return 64, + .float, .long, .ulong => return 32, + .longlong, .ulonglong, .double, .longdouble => return 64, }, .avr => switch (self) { .short, .ushort, .int, .uint => return 16, - .long, .ulong, .longdouble => return 32, + .long, .ulong, .float, .double, .longdouble => return 32, .longlong, .ulonglong => return 64, }, + .tce, .tcele => switch (self) { + .short, .ushort => return 16, + .int, .uint, .long, .ulong, .longlong, .ulonglong => return 32, + .float, .double, .longdouble => return 32, + }, + .mips64, .mips64el => switch (self) { + .short, .ushort => return 16, + .int, .uint, .float => return 32, + .long, .ulong => return if (target.abi != .gnuabin32) 64 else 32, + .longlong, .ulonglong, .double => return 64, + .longdouble => return 128, + }, + .x86_64 => switch (self) { + .short, .ushort => return 16, + .int, .uint, .float => return 32, + .long, .ulong => switch (target.abi) { + .gnux32, .muslx32 => return 32, + else => return 64, + }, + .longlong, .ulonglong, .double => return 64, + .longdouble => return 80, + }, else => switch (self) { .short, .ushort => return 16, - .int, .uint => return 32, + .int, .uint, .float => return 32, .long, .ulong => return target.cpu.arch.ptrBitWidth(), - .longlong, .ulonglong => return 64, + .longlong, .ulonglong, .double => return 64, .longdouble => switch (target.cpu.arch) { .i386 => switch (target.abi) { .android => return 64, else => return 80, }, - .x86_64 => return 80, + .powerpc, + .powerpcle, + .powerpc64, + .powerpc64le, + => switch (target.abi) { + .musl, + .musleabi, + .musleabihf, + .muslx32, + => return 64, + else => return 128, + }, + + .riscv32, .riscv64, .aarch64, .aarch64_be, .aarch64_32, .s390x, - .mips64, - .mips64el, .sparc, .sparc64, .sparcel, - .powerpc, - .powerpcle, - .powerpc64, - .powerpc64le, .wasm32, .wasm64, => return 128, @@ -6730,23 +6700,78 @@ pub const CType = enum { .fuchsia, .minix, => switch (target.cpu.arch) { + .msp430 => switch (self) { + .short, .ushort, .int, .uint => return 16, + .long, .ulong, .float => return 32, + .longlong, .ulonglong, .double, .longdouble => return 64, + }, .avr => switch (self) { .short, .ushort, .int, .uint => return 16, - .long, .ulong, .longdouble => return 32, + .long, .ulong, .float, .double, .longdouble => return 32, .longlong, .ulonglong => return 64, }, + .tce, .tcele => switch (self) { + .short, .ushort => return 16, + .int, .uint, .long, .ulong, .longlong, .ulonglong => return 32, + .float, .double, .longdouble => return 32, + }, + .mips64, .mips64el => switch (self) { + .short, .ushort => return 16, + .int, .uint, .float => return 32, + .long, .ulong => return if (target.abi != .gnuabin32) 64 else 32, + .longlong, .ulonglong, .double => return 64, + .longdouble => if (target.os.tag == .freebsd) return 64 else return 128, + }, + .x86_64 => switch (self) { + .short, .ushort => return 16, + .int, .uint, .float => return 32, + .long, .ulong => switch (target.abi) { + .gnux32, .muslx32 => return 32, + else => return 64, + }, + .longlong, .ulonglong, .double => return 64, + .longdouble => return 80, + }, else => switch (self) { .short, .ushort => return 16, - .int, .uint => return 32, + .int, .uint, .float => return 32, .long, .ulong => return target.cpu.arch.ptrBitWidth(), - .longlong, .ulonglong => return 64, + .longlong, .ulonglong, .double => return 64, .longdouble => switch (target.cpu.arch) { .i386 => switch (target.abi) { .android => return 64, else => return 80, }, - .x86_64 => return 80, + .powerpc, + .powerpcle, + => switch (target.abi) { + .musl, + .musleabi, + .musleabihf, + .muslx32, + => return 64, + else => switch (target.os.tag) { + .freebsd, .netbsd, .openbsd => return 64, + else => return 128, + }, + }, + + .powerpc64, + .powerpc64le, + => switch (target.abi) { + .musl, + .musleabi, + .musleabihf, + .muslx32, + => return 64, + else => switch (target.os.tag) { + .freebsd, .openbsd => return 64, + else => return 128, + }, + }, + + .riscv32, .riscv64, .aarch64, .aarch64_be, @@ -6757,10 +6782,6 @@ pub const CType = enum { .sparc, .sparc64, .sparcel, - .powerpc, - .powerpcle, - .powerpc64, - .powerpc64le, .wasm32, .wasm64, => return 128, @@ -6770,37 +6791,77 @@ pub const CType = enum { }, }, - .windows, .uefi => switch (self) { - .short, .ushort => return 16, - .int, .uint, .long, .ulong => return 32, - .longlong, .ulonglong => return 64, - .longdouble => switch (target.cpu.arch) { - .i386 => switch (target.abi) { - .gnu => return 80, + .windows, .uefi => switch (target.cpu.arch) { + .i386 => switch (self) { + .short, .ushort => return 16, + .int, .uint, .float => return 32, + .long, .ulong => return 32, + .longlong, .ulonglong, .double => return 64, + .longdouble => switch (target.abi) { + .gnu, .gnuilp32, .cygnus => return 80, else => return 64, }, - .x86_64 => switch (target.abi) { - .gnu => return 80, + }, + .x86_64 => switch (self) { + .short, .ushort => return 16, + .int, .uint, .float => return 32, + .long, .ulong => switch (target.abi) { + .cygnus => return 64, + else => return 32, + }, + .longlong, .ulonglong, .double => return 64, + .longdouble => switch (target.abi) { + .gnu, .gnuilp32, .cygnus => return 80, else => return 64, }, - else => return 64, + }, + else => switch (self) { + .short, .ushort => return 16, + .int, .uint, .float => return 32, + .long, .ulong => return 32, + .longlong, .ulonglong, .double => return 64, + .longdouble => return 64, }, }, .macos, .ios, .tvos, .watchos => switch (self) { .short, .ushort => return 16, - .int, .uint => return 32, - .long, .ulong, .longlong, .ulonglong => return 64, + .int, .uint, .float => return 32, + .long, .ulong => switch (target.cpu.arch) { + .i386, .arm, .aarch64_32 => return 32, + .x86_64 => switch (target.abi) { + .gnux32, .muslx32 => return 32, + else => return 64, + }, + else => return 64, + }, + .longlong, .ulonglong, .double => return 64, .longdouble => switch (target.cpu.arch) { - .i386, .x86_64 => return 80, + .i386 => switch (target.abi) { + .android => return 64, + else => return 80, + }, + .x86_64 => return 80, else => return 64, }, }, + .nvcl, .cuda => switch (self) { + .short, .ushort => return 16, + .int, .uint, .float => return 32, + .long, .ulong => switch (target.cpu.arch) { + .nvptx => return 32, + .nvptx64 => return 64, + else => return 64, + }, + .longlong, .ulonglong, .double => return 64, + .longdouble => return 64, + }, + .amdhsa, .amdpal => switch (self) { .short, .ushort => return 16, - .int, .uint => return 32, - .long, .ulong, .longlong, .ulonglong => return 64, + .int, .uint, .float => return 32, + .long, .ulong, .longlong, .ulonglong, .double => return 64, .longdouble => return 128, }, @@ -6811,8 +6872,6 @@ pub const CType = enum { .rtems, .nacl, .aix, - .cuda, - .nvcl, .ps4, .ps5, .elfiamcu, @@ -6828,4 +6887,240 @@ pub const CType = enum { => @panic("TODO specify the C integer and float type sizes for this OS"), } } + + pub fn alignment(self: CType, target: Target) u16 { + + // Overrides for unusual alignments + switch (target.cpu.arch) { + .avr => switch (self) { + .short, .ushort => return 2, + else => return 1, + }, + .i386 => switch (target.os.tag) { + .windows, .uefi => switch (self) { + .longlong, .ulonglong, .double => return 8, + .longdouble => switch (target.abi) { + .gnu, .gnuilp32, .cygnus => return 4, + else => return 8, + }, + else => {}, + }, + else => {}, + }, + else => {}, + } + + // Next-power-of-two-aligned, up to a maximum. + return @min( + std.math.ceilPowerOfTwoAssert(u16, (self.sizeInBits(target) + 7) / 8), + switch (target.cpu.arch) { + .arm, .armeb, .thumb, .thumbeb => switch (target.os.tag) { + .netbsd => switch (target.abi) { + .gnueabi, + .gnueabihf, + .eabi, + .eabihf, + .android, + .musleabi, + .musleabihf, + => 8, + + else => @as(u16, 4), + }, + .ios, .tvos, .watchos => 4, + else => 8, + }, + + .msp430, + .avr, + => 2, + + .arc, + .csky, + .i386, + .xcore, + .dxil, + .loongarch32, + .tce, + .tcele, + .le32, + .amdil, + .hsail, + .spir, + .spirv32, + .kalimba, + .shave, + .renderscript32, + .ve, + .spu_2, + => 4, + + .aarch64_32, + .amdgcn, + .amdil64, + .bpfel, + .bpfeb, + .hexagon, + .hsail64, + .loongarch64, + .m68k, + .mips, + .mipsel, + .sparc, + .sparcel, + .sparc64, + .lanai, + .le64, + .nvptx, + .nvptx64, + .r600, + .s390x, + .spir64, + .spirv64, + .renderscript64, + => 8, + + .aarch64, + .aarch64_be, + .mips64, + .mips64el, + .powerpc, + .powerpcle, + .powerpc64, + .powerpc64le, + .riscv32, + .riscv64, + .x86_64, + .wasm32, + .wasm64, + => 16, + }, + ); + } + + pub fn preferredAlignment(self: CType, target: Target) u16 { + + // Overrides for unusual alignments + switch (target.cpu.arch) { + .arm, .armeb, .thumb, .thumbeb => switch (target.os.tag) { + .netbsd => switch (target.abi) { + .gnueabi, + .gnueabihf, + .eabi, + .eabihf, + .android, + .musleabi, + .musleabihf, + => {}, + + else => switch (self) { + .longdouble => return 4, + else => {}, + }, + }, + .ios, .tvos, .watchos => switch (self) { + .longdouble => return 4, + else => {}, + }, + else => {}, + }, + .arc => switch (self) { + .longdouble => return 4, + else => {}, + }, + .avr => switch (self) { + .int, .uint, .long, .ulong, .float, .longdouble => return 1, + .short, .ushort => return 2, + .double => return 4, + .longlong, .ulonglong => return 8, + }, + .i386 => switch (target.os.tag) { + .windows, .uefi => switch (self) { + .longdouble => switch (target.abi) { + .gnu, .gnuilp32, .cygnus => return 4, + else => return 8, + }, + else => {}, + }, + else => switch (self) { + .longdouble => return 4, + else => {}, + }, + }, + else => {}, + } + + // Next-power-of-two-aligned, up to a maximum. + return @min( + std.math.ceilPowerOfTwoAssert(u16, (self.sizeInBits(target) + 7) / 8), + switch (target.cpu.arch) { + .msp430 => @as(u16, 2), + + .csky, + .xcore, + .dxil, + .loongarch32, + .tce, + .tcele, + .le32, + .amdil, + .hsail, + .spir, + .spirv32, + .kalimba, + .shave, + .renderscript32, + .ve, + .spu_2, + => 4, + + .arc, + .arm, + .armeb, + .avr, + .thumb, + .thumbeb, + .aarch64_32, + .amdgcn, + .amdil64, + .bpfel, + .bpfeb, + .hexagon, + .hsail64, + .i386, + .loongarch64, + .m68k, + .mips, + .mipsel, + .sparc, + .sparcel, + .sparc64, + .lanai, + .le64, + .nvptx, + .nvptx64, + .r600, + .s390x, + .spir64, + .spirv64, + .renderscript64, + => 8, + + .aarch64, + .aarch64_be, + .mips64, + .mips64el, + .powerpc, + .powerpcle, + .powerpc64, + .powerpc64le, + .riscv32, + .riscv64, + .x86_64, + .wasm32, + .wasm64, + => 16, + }, + ); + } }; diff --git a/src/value.zig b/src/value.zig index d24c5a1c17622b4205bd25be8ec91e13ec9fae1e..a727df5d22540780128bbae8bfbfe14e6b39afcc 100644 --- a/src/value.zig +++ b/src/value.zig @@ -111,10 +111,12 @@ pub const Value = extern union { int_i64, int_big_positive, int_big_negative, - runtime_int, function, extern_fn, variable, + /// A wrapper for values which are comptime-known but should + /// semantically be runtime-known. + runtime_value, /// Represents a pointer to a Decl. /// When machine codegen backend sees this, it must set the Decl's `alive` field to true. decl_ref, @@ -282,6 +284,7 @@ pub const Value = extern union { .eu_payload, .opt_payload, .empty_array_sentinel, + .runtime_value, => Payload.SubValue, .eu_payload_ptr, @@ -305,7 +308,6 @@ pub const Value = extern union { .int_type => Payload.IntType, .int_u64 => Payload.U64, .int_i64 => Payload.I64, - .runtime_int => Payload.U64, .function => Payload.Function, .variable => Payload.Variable, .decl_ref_mut => Payload.DeclRefMut, @@ -485,7 +487,6 @@ pub const Value = extern union { }, .int_type => return self.copyPayloadShallow(arena, Payload.IntType), .int_u64 => return self.copyPayloadShallow(arena, Payload.U64), - .runtime_int => return self.copyPayloadShallow(arena, Payload.U64), .int_i64 => return self.copyPayloadShallow(arena, Payload.I64), .int_big_positive, .int_big_negative => { const old_payload = self.cast(Payload.BigInt).?; @@ -567,6 +568,7 @@ pub const Value = extern union { .eu_payload, .opt_payload, .empty_array_sentinel, + .runtime_value, => { const payload = self.cast(Payload.SubValue).?; const new_payload = try arena.create(Payload.SubValue); @@ -765,7 +767,7 @@ pub const Value = extern union { .int_i64 => return std.fmt.formatIntValue(val.castTag(.int_i64).?.data, "", options, out_stream), .int_big_positive => return out_stream.print("{}", .{val.castTag(.int_big_positive).?.asBigInt()}), .int_big_negative => return out_stream.print("{}", .{val.castTag(.int_big_negative).?.asBigInt()}), - .runtime_int => return out_stream.writeAll("[runtime value]"), + .runtime_value => return out_stream.writeAll("[runtime value]"), .function => return out_stream.print("(function decl={d})", .{val.castTag(.function).?.data.owner_decl}), .extern_fn => return out_stream.writeAll("(extern function)"), .variable => return out_stream.writeAll("(variable)"), @@ -1081,8 +1083,6 @@ pub const Value = extern union { .int_big_positive => return val.castTag(.int_big_positive).?.asBigInt(), .int_big_negative => return val.castTag(.int_big_negative).?.asBigInt(), - .runtime_int => return BigIntMutable.init(&space.limbs, val.castTag(.runtime_int).?.data).toConst(), - .undef => unreachable, .lazy_align => { @@ -1138,8 +1138,6 @@ pub const Value = extern union { .int_big_positive => return val.castTag(.int_big_positive).?.asBigInt().to(u64) catch null, .int_big_negative => return val.castTag(.int_big_negative).?.asBigInt().to(u64) catch null, - .runtime_int => return val.castTag(.runtime_int).?.data, - .undef => unreachable, .lazy_align => { @@ -1208,8 +1206,13 @@ pub const Value = extern union { }; } + /// Write a Value's contents to `buffer`. + /// + /// Asserts that buffer.len >= ty.abiSize(). The buffer is allowed to extend past + /// the end of the value in memory. pub fn writeToMemory(val: Value, ty: Type, mod: *Module, buffer: []u8) void { const target = mod.getTarget(); + const endian = target.cpu.arch.endian(); if (val.isUndef()) { const size = @intCast(usize, ty.abiSize(target)); std.mem.set(u8, buffer[0..size], 0xaa); @@ -1220,31 +1223,41 @@ pub const Value = extern union { .Bool => { buffer[0] = @boolToInt(val.toBool()); }, - .Int => { - var bigint_buffer: BigIntSpace = undefined; - const bigint = val.toBigInt(&bigint_buffer, target); - const bits = ty.intInfo(target).bits; - const abi_size = @intCast(usize, ty.abiSize(target)); - bigint.writeTwosComplement(buffer, bits, abi_size, target.cpu.arch.endian()); - }, - .Enum => { + .Int, .Enum => { + const int_info = ty.intInfo(target); + const bits = int_info.bits; + const byte_count = (bits + 7) / 8; + var enum_buffer: Payload.U64 = undefined; const int_val = val.enumToInt(ty, &enum_buffer); - var bigint_buffer: BigIntSpace = undefined; - const bigint = int_val.toBigInt(&bigint_buffer, target); - const bits = ty.intInfo(target).bits; - const abi_size = @intCast(usize, ty.abiSize(target)); - bigint.writeTwosComplement(buffer, bits, abi_size, target.cpu.arch.endian()); + + if (byte_count <= @sizeOf(u64)) { + const int: u64 = switch (int_val.tag()) { + .zero => 0, + .one => 1, + .int_u64 => int_val.castTag(.int_u64).?.data, + .int_i64 => @bitCast(u64, int_val.castTag(.int_i64).?.data), + else => unreachable, + }; + for (buffer[0..byte_count]) |_, i| switch (endian) { + .Little => buffer[i] = @truncate(u8, (int >> @intCast(u6, (8 * i)))), + .Big => buffer[byte_count - i - 1] = @truncate(u8, (int >> @intCast(u6, (8 * i)))), + }; + } else { + var bigint_buffer: BigIntSpace = undefined; + const bigint = int_val.toBigInt(&bigint_buffer, target); + bigint.writeTwosComplement(buffer[0..byte_count], endian); + } }, .Float => switch (ty.floatBits(target)) { - 16 => return floatWriteToMemory(f16, val.toFloat(f16), target, buffer), - 32 => return floatWriteToMemory(f32, val.toFloat(f32), target, buffer), - 64 => return floatWriteToMemory(f64, val.toFloat(f64), target, buffer), - 80 => return floatWriteToMemory(f80, val.toFloat(f80), target, buffer), - 128 => return floatWriteToMemory(f128, val.toFloat(f128), target, buffer), + 16 => std.mem.writeInt(u16, buffer[0..2], @bitCast(u16, val.toFloat(f16)), endian), + 32 => std.mem.writeInt(u32, buffer[0..4], @bitCast(u32, val.toFloat(f32)), endian), + 64 => std.mem.writeInt(u64, buffer[0..8], @bitCast(u64, val.toFloat(f64)), endian), + 80 => std.mem.writeInt(u80, buffer[0..10], @bitCast(u80, val.toFloat(f80)), endian), + 128 => std.mem.writeInt(u128, buffer[0..16], @bitCast(u128, val.toFloat(f128)), endian), else => unreachable, }, - .Array, .Vector => { + .Array => { const len = ty.arrayLen(); const elem_ty = ty.childType(); const elem_size = @intCast(usize, elem_ty.abiSize(target)); @@ -1253,10 +1266,16 @@ pub const Value = extern union { var buf_off: usize = 0; while (elem_i < len) : (elem_i += 1) { const elem_val = val.elemValueBuffer(mod, elem_i, &elem_value_buf); - writeToMemory(elem_val, elem_ty, mod, buffer[buf_off..]); + elem_val.writeToMemory(elem_ty, mod, buffer[buf_off..]); buf_off += elem_size; } }, + .Vector => { + // We use byte_count instead of abi_size here, so that any padding bytes + // follow the data bytes, on both big- and little-endian systems. + const byte_count = (@intCast(usize, ty.bitSize(target)) + 7) / 8; + writeToPackedMemory(val, ty, mod, buffer[0..byte_count], 0); + }, .Struct => switch (ty.containerLayout()) { .Auto => unreachable, // Sema is supposed to have emitted a compile error already .Extern => { @@ -1268,122 +1287,113 @@ pub const Value = extern union { } }, .Packed => { - // TODO allocate enough heap space instead of using this buffer - // on the stack. - var buf: [16]std.math.big.Limb = undefined; - const host_int = packedStructToInt(val, ty, target, &buf); - const abi_size = @intCast(usize, ty.abiSize(target)); - const bit_size = @intCast(usize, ty.bitSize(target)); - host_int.writeTwosComplement(buffer, bit_size, abi_size, target.cpu.arch.endian()); + const byte_count = (@intCast(usize, ty.bitSize(target)) + 7) / 8; + writeToPackedMemory(val, ty, mod, buffer[0..byte_count], 0); }, }, .ErrorSet => { // TODO revisit this when we have the concept of the error tag type const Int = u16; const int = mod.global_error_set.get(val.castTag(.@"error").?.data.name).?; - std.mem.writeInt(Int, buffer[0..@sizeOf(Int)], @intCast(Int, int), target.cpu.arch.endian()); + std.mem.writeInt(Int, buffer[0..@sizeOf(Int)], @intCast(Int, int), endian); }, else => @panic("TODO implement writeToMemory for more types"), } } - fn packedStructToInt(val: Value, ty: Type, target: Target, buf: []std.math.big.Limb) BigIntConst { - var bigint = BigIntMutable.init(buf, 0); - const fields = ty.structFields().values(); - const field_vals = val.castTag(.aggregate).?.data; - var bits: u16 = 0; - // TODO allocate enough heap space instead of using this buffer - // on the stack. - var field_buf: [16]std.math.big.Limb = undefined; - var field_space: BigIntSpace = undefined; - var field_buf2: [16]std.math.big.Limb = undefined; - for (fields) |field, i| { - const field_val = field_vals[i]; - const field_bigint_const = switch (field.ty.zigTypeTag()) { - .Void => continue, - .Float => floatToBigInt(field_val, field.ty, target, &field_buf), - .Int, .Bool => intOrBoolToBigInt(field_val, field.ty, target, &field_buf, &field_space), - .Struct => switch (field.ty.containerLayout()) { - .Auto, .Extern => unreachable, // Sema should have error'd before this. - .Packed => packedStructToInt(field_val, field.ty, target, &field_buf), - }, - .Vector => vectorToBigInt(field_val, field.ty, target, &field_buf), - .Enum => enumToBigInt(field_val, field.ty, target, &field_space), - .Union => unreachable, // TODO: packed structs support packed unions - else => unreachable, - }; - var field_bigint = BigIntMutable.init(&field_buf2, 0); - field_bigint.shiftLeft(field_bigint_const, bits); - bits += @intCast(u16, field.ty.bitSize(target)); - bigint.bitOr(bigint.toConst(), field_bigint.toConst()); - } - return bigint.toConst(); - } - - fn intOrBoolToBigInt(val: Value, ty: Type, target: Target, buf: []std.math.big.Limb, space: *BigIntSpace) BigIntConst { - const big_int_const = val.toBigInt(space, target); - if (big_int_const.positive) return big_int_const; - - var big_int = BigIntMutable.init(buf, 0); - big_int.bitNotWrap(big_int_const.negate(), .unsigned, @intCast(u32, ty.bitSize(target))); - big_int.addScalar(big_int.toConst(), 1); - return big_int.toConst(); - } - - fn vectorToBigInt(val: Value, ty: Type, target: Target, buf: []std.math.big.Limb) BigIntConst { + /// Write a Value's contents to `buffer`. + /// + /// Both the start and the end of the provided buffer must be tight, since + /// big-endian packed memory layouts start at the end of the buffer. + pub fn writeToPackedMemory(val: Value, ty: Type, mod: *Module, buffer: []u8, bit_offset: usize) void { + const target = mod.getTarget(); const endian = target.cpu.arch.endian(); - var vec_bitint = BigIntMutable.init(buf, 0); - const vec_len = @intCast(usize, ty.arrayLen()); - const elem_ty = ty.childType(); - const elem_size = @intCast(usize, elem_ty.bitSize(target)); - - var elem_buf: [16]std.math.big.Limb = undefined; - var elem_space: BigIntSpace = undefined; - var elem_buf2: [16]std.math.big.Limb = undefined; - - var elem_i: usize = 0; - while (elem_i < vec_len) : (elem_i += 1) { - const elem_i_target = if (endian == .Big) vec_len - elem_i - 1 else elem_i; - const elem_val = val.indexVectorlike(elem_i_target); - const elem_bigint_const = switch (elem_ty.zigTypeTag()) { - .Int, .Bool => intOrBoolToBigInt(elem_val, elem_ty, target, &elem_buf, &elem_space), - .Float => floatToBigInt(elem_val, elem_ty, target, &elem_buf), - .Pointer => unreachable, // TODO - else => unreachable, // Sema should not let this happen - }; - var elem_bitint = BigIntMutable.init(&elem_buf2, 0); - elem_bitint.shiftLeft(elem_bigint_const, elem_size * elem_i); - vec_bitint.bitOr(vec_bitint.toConst(), elem_bitint.toConst()); + if (val.isUndef()) { + const bit_size = @intCast(usize, ty.bitSize(target)); + std.mem.writeVarPackedInt(buffer, bit_offset, bit_size, @as(u1, 0), endian); + return; } - return vec_bitint.toConst(); - } + switch (ty.zigTypeTag()) { + .Void => {}, + .Bool => { + const byte_index = switch (endian) { + .Little => bit_offset / 8, + .Big => buffer.len - bit_offset / 8 - 1, + }; + if (val.toBool()) { + buffer[byte_index] |= (@as(u8, 1) << @intCast(u3, bit_offset % 8)); + } else { + buffer[byte_index] &= ~(@as(u8, 1) << @intCast(u3, bit_offset % 8)); + } + }, + .Int, .Enum => { + const bits = ty.intInfo(target).bits; + const abi_size = @intCast(usize, ty.abiSize(target)); - fn enumToBigInt(val: Value, ty: Type, target: Target, space: *BigIntSpace) BigIntConst { - var enum_buf: Payload.U64 = undefined; - const int_val = val.enumToInt(ty, &enum_buf); - return int_val.toBigInt(space, target); - } + var enum_buffer: Payload.U64 = undefined; + const int_val = val.enumToInt(ty, &enum_buffer); - fn floatToBigInt(val: Value, ty: Type, target: Target, buf: []std.math.big.Limb) BigIntConst { - return switch (ty.floatBits(target)) { - 16 => bitcastFloatToBigInt(f16, val.toFloat(f16), buf), - 32 => bitcastFloatToBigInt(f32, val.toFloat(f32), buf), - 64 => bitcastFloatToBigInt(f64, val.toFloat(f64), buf), - 80 => bitcastFloatToBigInt(f80, val.toFloat(f80), buf), - 128 => bitcastFloatToBigInt(f128, val.toFloat(f128), buf), - else => unreachable, - }; - } + if (abi_size <= @sizeOf(u64)) { + const int: u64 = switch (int_val.tag()) { + .zero => 0, + .one => 1, + .int_u64 => int_val.castTag(.int_u64).?.data, + .int_i64 => @bitCast(u64, int_val.castTag(.int_i64).?.data), + else => unreachable, + }; + std.mem.writeVarPackedInt(buffer, bit_offset, bits, int, endian); + } else { + var bigint_buffer: BigIntSpace = undefined; + const bigint = int_val.toBigInt(&bigint_buffer, target); + bigint.writePackedTwosComplement(buffer, bit_offset, bits, endian); + } + }, + .Float => switch (ty.floatBits(target)) { + 16 => std.mem.writePackedInt(u16, buffer, bit_offset, @bitCast(u16, val.toFloat(f16)), endian), + 32 => std.mem.writePackedInt(u32, buffer, bit_offset, @bitCast(u32, val.toFloat(f32)), endian), + 64 => std.mem.writePackedInt(u64, buffer, bit_offset, @bitCast(u64, val.toFloat(f64)), endian), + 80 => std.mem.writePackedInt(u80, buffer, bit_offset, @bitCast(u80, val.toFloat(f80)), endian), + 128 => std.mem.writePackedInt(u128, buffer, bit_offset, @bitCast(u128, val.toFloat(f128)), endian), + else => unreachable, + }, + .Vector => { + const elem_ty = ty.childType(); + const elem_bit_size = @intCast(u16, elem_ty.bitSize(target)); + const len = @intCast(usize, ty.arrayLen()); - fn bitcastFloatToBigInt(comptime F: type, f: F, buf: []std.math.big.Limb) BigIntConst { - const Int = @Type(.{ .Int = .{ - .signedness = .unsigned, - .bits = @typeInfo(F).Float.bits, - } }); - const int = @bitCast(Int, f); - return BigIntMutable.init(buf, int).toConst(); + var bits: u16 = 0; + var elem_i: usize = 0; + var elem_value_buf: ElemValueBuffer = undefined; + while (elem_i < len) : (elem_i += 1) { + // On big-endian systems, LLVM reverses the element order of vectors by default + const tgt_elem_i = if (endian == .Big) len - elem_i - 1 else elem_i; + const elem_val = val.elemValueBuffer(mod, tgt_elem_i, &elem_value_buf); + elem_val.writeToPackedMemory(elem_ty, mod, buffer, bit_offset + bits); + bits += elem_bit_size; + } + }, + .Struct => switch (ty.containerLayout()) { + .Auto => unreachable, // Sema is supposed to have emitted a compile error already + .Extern => unreachable, // Handled in non-packed writeToMemory + .Packed => { + var bits: u16 = 0; + const fields = ty.structFields().values(); + const field_vals = val.castTag(.aggregate).?.data; + for (fields) |field, i| { + const field_bits = @intCast(u16, field.ty.bitSize(target)); + field_vals[i].writeToPackedMemory(field.ty, mod, buffer, bit_offset + bits); + bits += field_bits; + } + }, + }, + else => @panic("TODO implement writeToPackedMemory for more types"), + } } + /// Load a Value from the contents of `buffer`. + /// + /// Asserts that buffer.len >= ty.abiSize(). The buffer is allowed to extend past + /// the end of the value in memory. pub fn readFromMemory( ty: Type, mod: *Module, @@ -1391,6 +1401,7 @@ pub const Value = extern union { arena: Allocator, ) Allocator.Error!Value { const target = mod.getTarget(); + const endian = target.cpu.arch.endian(); switch (ty.zigTypeTag()) { .Void => return Value.@"void", .Bool => { @@ -1400,27 +1411,40 @@ pub const Value = extern union { return Value.@"true"; } }, - .Int => { - if (buffer.len == 0) return Value.zero; + .Int, .Enum => { const int_info = ty.intInfo(target); - const endian = target.cpu.arch.endian(); - const Limb = std.math.big.Limb; - const limb_count = (buffer.len + @sizeOf(Limb) - 1) / @sizeOf(Limb); - const limbs_buffer = try arena.alloc(Limb, limb_count); - const abi_size = @intCast(usize, ty.abiSize(target)); - var bigint = BigIntMutable.init(limbs_buffer, 0); - bigint.readTwosComplement(buffer, int_info.bits, abi_size, endian, int_info.signedness); - return fromBigInt(arena, bigint.toConst()); + const bits = int_info.bits; + const byte_count = (bits + 7) / 8; + if (bits == 0 or buffer.len == 0) return Value.zero; + + if (bits <= 64) switch (int_info.signedness) { // Fast path for integers <= u64 + .signed => { + const val = std.mem.readVarInt(i64, buffer[0..byte_count], endian); + return Value.Tag.int_i64.create(arena, (val << @intCast(u6, 64 - bits)) >> @intCast(u6, 64 - bits)); + }, + .unsigned => { + const val = std.mem.readVarInt(u64, buffer[0..byte_count], endian); + return Value.Tag.int_u64.create(arena, (val << @intCast(u6, 64 - bits)) >> @intCast(u6, 64 - bits)); + }, + } else { // Slow path, we have to construct a big-int + const Limb = std.math.big.Limb; + const limb_count = (byte_count + @sizeOf(Limb) - 1) / @sizeOf(Limb); + const limbs_buffer = try arena.alloc(Limb, limb_count); + + var bigint = BigIntMutable.init(limbs_buffer, 0); + bigint.readTwosComplement(buffer[0..byte_count], bits, endian, int_info.signedness); + return fromBigInt(arena, bigint.toConst()); + } }, .Float => switch (ty.floatBits(target)) { - 16 => return Value.Tag.float_16.create(arena, floatReadFromMemory(f16, target, buffer)), - 32 => return Value.Tag.float_32.create(arena, floatReadFromMemory(f32, target, buffer)), - 64 => return Value.Tag.float_64.create(arena, floatReadFromMemory(f64, target, buffer)), - 80 => return Value.Tag.float_80.create(arena, floatReadFromMemory(f80, target, buffer)), - 128 => return Value.Tag.float_128.create(arena, floatReadFromMemory(f128, target, buffer)), + 16 => return Value.Tag.float_16.create(arena, @bitCast(f16, std.mem.readInt(u16, buffer[0..2], endian))), + 32 => return Value.Tag.float_32.create(arena, @bitCast(f32, std.mem.readInt(u32, buffer[0..4], endian))), + 64 => return Value.Tag.float_64.create(arena, @bitCast(f64, std.mem.readInt(u64, buffer[0..8], endian))), + 80 => return Value.Tag.float_80.create(arena, @bitCast(f80, std.mem.readInt(u80, buffer[0..10], endian))), + 128 => return Value.Tag.float_128.create(arena, @bitCast(f128, std.mem.readInt(u128, buffer[0..16], endian))), else => unreachable, }, - .Array, .Vector => { + .Array => { const elem_ty = ty.childType(); const elem_size = elem_ty.abiSize(target); const elems = try arena.alloc(Value, @intCast(usize, ty.arrayLen())); @@ -1431,6 +1455,12 @@ pub const Value = extern union { } return Tag.aggregate.create(arena, elems); }, + .Vector => { + // We use byte_count instead of abi_size here, so that any padding bytes + // follow the data bytes, on both big- and little-endian systems. + const byte_count = (@intCast(usize, ty.bitSize(target)) + 7) / 8; + return readFromPackedMemory(ty, mod, buffer[0..byte_count], 0, arena); + }, .Struct => switch (ty.containerLayout()) { .Auto => unreachable, // Sema is supposed to have emitted a compile error already .Extern => { @@ -1438,26 +1468,20 @@ pub const Value = extern union { const field_vals = try arena.alloc(Value, fields.len); for (fields) |field, i| { const off = @intCast(usize, ty.structFieldOffset(i, target)); - field_vals[i] = try readFromMemory(field.ty, mod, buffer[off..], arena); + const sz = @intCast(usize, ty.structFieldType(i).abiSize(target)); + field_vals[i] = try readFromMemory(field.ty, mod, buffer[off..(off + sz)], arena); } return Tag.aggregate.create(arena, field_vals); }, .Packed => { - const endian = target.cpu.arch.endian(); - const Limb = std.math.big.Limb; - const abi_size = @intCast(usize, ty.abiSize(target)); - const bit_size = @intCast(usize, ty.bitSize(target)); - const limb_count = (buffer.len + @sizeOf(Limb) - 1) / @sizeOf(Limb); - const limbs_buffer = try arena.alloc(Limb, limb_count); - var bigint = BigIntMutable.init(limbs_buffer, 0); - bigint.readTwosComplement(buffer, bit_size, abi_size, endian, .unsigned); - return intToPackedStruct(ty, target, bigint.toConst(), arena); + const byte_count = (@intCast(usize, ty.bitSize(target)) + 7) / 8; + return readFromPackedMemory(ty, mod, buffer[0..byte_count], 0, arena); }, }, .ErrorSet => { // TODO revisit this when we have the concept of the error tag type const Int = u16; - const int = std.mem.readInt(Int, buffer[0..@sizeOf(Int)], target.cpu.arch.endian()); + const int = std.mem.readInt(Int, buffer[0..@sizeOf(Int)], endian); const payload = try arena.create(Value.Payload.Error); payload.* = .{ @@ -1470,115 +1494,90 @@ pub const Value = extern union { } } - fn intToPackedStruct( + /// Load a Value from the contents of `buffer`. + /// + /// Both the start and the end of the provided buffer must be tight, since + /// big-endian packed memory layouts start at the end of the buffer. + pub fn readFromPackedMemory( ty: Type, - target: Target, - bigint: BigIntConst, + mod: *Module, + buffer: []const u8, + bit_offset: usize, arena: Allocator, ) Allocator.Error!Value { - const limbs_buffer = try arena.alloc(std.math.big.Limb, bigint.limbs.len); - var bigint_mut = bigint.toMutable(limbs_buffer); - const fields = ty.structFields().values(); - const field_vals = try arena.alloc(Value, fields.len); - var bits: u16 = 0; - for (fields) |field, i| { - const field_bits = @intCast(u16, field.ty.bitSize(target)); - bigint_mut.shiftRight(bigint, bits); - bigint_mut.truncate(bigint_mut.toConst(), .unsigned, field_bits); - bits += field_bits; - const field_bigint = bigint_mut.toConst(); + const target = mod.getTarget(); + const endian = target.cpu.arch.endian(); + switch (ty.zigTypeTag()) { + .Void => return Value.@"void", + .Bool => { + const byte = switch (endian) { + .Big => buffer[buffer.len - bit_offset / 8 - 1], + .Little => buffer[bit_offset / 8], + }; + if (((byte >> @intCast(u3, bit_offset % 8)) & 1) == 0) { + return Value.@"false"; + } else { + return Value.@"true"; + } + }, + .Int, .Enum => { + if (buffer.len == 0) return Value.zero; + const int_info = ty.intInfo(target); + const abi_size = @intCast(usize, ty.abiSize(target)); - field_vals[i] = switch (field.ty.zigTypeTag()) { - .Float => switch (field.ty.floatBits(target)) { - 16 => try bitCastBigIntToFloat(f16, .float_16, field_bigint, arena), - 32 => try bitCastBigIntToFloat(f32, .float_32, field_bigint, arena), - 64 => try bitCastBigIntToFloat(f64, .float_64, field_bigint, arena), - 80 => try bitCastBigIntToFloat(f80, .float_80, field_bigint, arena), - 128 => try bitCastBigIntToFloat(f128, .float_128, field_bigint, arena), - else => unreachable, - }, - .Bool => makeBool(!field_bigint.eqZero()), - .Int => try Tag.int_big_positive.create( - arena, - try arena.dupe(std.math.big.Limb, field_bigint.limbs), - ), - .Struct => try intToPackedStruct(field.ty, target, field_bigint, arena), + const bits = int_info.bits; + if (bits <= 64) switch (int_info.signedness) { // Fast path for integers <= u64 + .signed => return Value.Tag.int_i64.create(arena, std.mem.readVarPackedInt(i64, buffer, bit_offset, bits, endian, .signed)), + .unsigned => return Value.Tag.int_u64.create(arena, std.mem.readVarPackedInt(u64, buffer, bit_offset, bits, endian, .unsigned)), + } else { // Slow path, we have to construct a big-int + const Limb = std.math.big.Limb; + const limb_count = (abi_size + @sizeOf(Limb) - 1) / @sizeOf(Limb); + const limbs_buffer = try arena.alloc(Limb, limb_count); + + var bigint = BigIntMutable.init(limbs_buffer, 0); + bigint.readPackedTwosComplement(buffer, bit_offset, bits, endian, int_info.signedness); + return fromBigInt(arena, bigint.toConst()); + } + }, + .Float => switch (ty.floatBits(target)) { + 16 => return Value.Tag.float_16.create(arena, @bitCast(f16, std.mem.readPackedInt(u16, buffer, bit_offset, endian))), + 32 => return Value.Tag.float_32.create(arena, @bitCast(f32, std.mem.readPackedInt(u32, buffer, bit_offset, endian))), + 64 => return Value.Tag.float_64.create(arena, @bitCast(f64, std.mem.readPackedInt(u64, buffer, bit_offset, endian))), + 80 => return Value.Tag.float_80.create(arena, @bitCast(f80, std.mem.readPackedInt(u80, buffer, bit_offset, endian))), + 128 => return Value.Tag.float_128.create(arena, @bitCast(f128, std.mem.readPackedInt(u128, buffer, bit_offset, endian))), else => unreachable, - }; - } - return Tag.aggregate.create(arena, field_vals); - } - - fn bitCastBigIntToFloat( - comptime F: type, - comptime float_tag: Tag, - bigint: BigIntConst, - arena: Allocator, - ) !Value { - const Int = @Type(.{ .Int = .{ - .signedness = .unsigned, - .bits = @typeInfo(F).Float.bits, - } }); - const int = bigint.to(Int) catch |err| switch (err) { - error.NegativeIntoUnsigned => unreachable, - error.TargetTooSmall => unreachable, - }; - const f = @bitCast(F, int); - return float_tag.create(arena, f); - } - - fn floatWriteToMemory(comptime F: type, f: F, target: Target, buffer: []u8) void { - const endian = target.cpu.arch.endian(); - if (F == f80) { - const repr = std.math.break_f80(f); - std.mem.writeInt(u64, buffer[0..8], repr.fraction, endian); - std.mem.writeInt(u16, buffer[8..10], repr.exp, endian); - std.mem.set(u8, buffer[10..], 0); - return; - } - const Int = @Type(.{ .Int = .{ - .signedness = .unsigned, - .bits = @typeInfo(F).Float.bits, - } }); - const int = @bitCast(Int, f); - std.mem.writeInt(Int, buffer[0..@sizeOf(Int)], int, endian); - } - - fn floatReadFromMemory(comptime F: type, target: Target, buffer: []const u8) F { - const endian = target.cpu.arch.endian(); - if (F == f80) { - return std.math.make_f80(.{ - .fraction = readInt(u64, buffer[0..8], endian), - .exp = readInt(u16, buffer[8..10], endian), - }); - } - const Int = @Type(.{ .Int = .{ - .signedness = .unsigned, - .bits = @typeInfo(F).Float.bits, - } }); - const int = readInt(Int, buffer[0..@sizeOf(Int)], endian); - return @bitCast(F, int); - } + }, + .Vector => { + const elem_ty = ty.childType(); + const elems = try arena.alloc(Value, @intCast(usize, ty.arrayLen())); - fn readInt(comptime Int: type, buffer: *const [@sizeOf(Int)]u8, endian: std.builtin.Endian) Int { - var result: Int = 0; - switch (endian) { - .Big => { - for (buffer) |byte| { - result <<= 8; - result |= byte; + var bits: u16 = 0; + const elem_bit_size = @intCast(u16, elem_ty.bitSize(target)); + for (elems) |_, i| { + // On big-endian systems, LLVM reverses the element order of vectors by default + const tgt_elem_i = if (endian == .Big) elems.len - i - 1 else i; + elems[tgt_elem_i] = try readFromPackedMemory(elem_ty, mod, buffer, bit_offset + bits, arena); + bits += elem_bit_size; } + return Tag.aggregate.create(arena, elems); }, - .Little => { - var i: usize = buffer.len; - while (i != 0) { - i -= 1; - result <<= 8; - result |= buffer[i]; - } + .Struct => switch (ty.containerLayout()) { + .Auto => unreachable, // Sema is supposed to have emitted a compile error already + .Extern => unreachable, // Handled by non-packed readFromMemory + .Packed => { + var bits: u16 = 0; + const fields = ty.structFields().values(); + const field_vals = try arena.alloc(Value, fields.len); + for (fields) |field, i| { + const field_bits = @intCast(u16, field.ty.bitSize(target)); + field_vals[i] = try readFromPackedMemory(field.ty, mod, buffer, bit_offset + bits, arena); + bits += field_bits; + } + return Tag.aggregate.create(arena, field_vals); + }, }, + else => @panic("TODO implement readFromPackedMemory for more types"), } - return result; } /// Asserts that the value is a float or an integer. @@ -2357,6 +2356,8 @@ pub const Value = extern union { const zig_ty_tag = ty.zigTypeTag(); std.hash.autoHash(hasher, zig_ty_tag); if (val.isUndef()) return; + // The value is runtime-known and shouldn't affect the hash. + if (val.tag() == .runtime_value) return; switch (zig_ty_tag) { .BoundFn => unreachable, // TODO remove this from the language @@ -2621,6 +2622,7 @@ pub const Value = extern union { .zero, .one, + .null_value, .int_u64, .int_i64, .int_big_positive, @@ -2632,9 +2634,6 @@ pub const Value = extern union { .lazy_size, => return hashInt(ptr_val, hasher, target), - // The value is runtime-known and shouldn't affect the hash. - .runtime_int => {}, - else => unreachable, } } diff --git a/test/behavior.zig b/test/behavior.zig index 3e4a45c9926cb260bcdaa34e420dfe9f6486f694..1112f1a661f572b80cd5982384c2a530cbb98f59 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -108,7 +108,9 @@ test { _ = @import("behavior/bugs/13112.zig"); _ = @import("behavior/bugs/13128.zig"); _ = @import("behavior/bugs/13164.zig"); + _ = @import("behavior/bugs/13159.zig"); _ = @import("behavior/bugs/13171.zig"); + _ = @import("behavior/bugs/13285.zig"); _ = @import("behavior/byteswap.zig"); _ = @import("behavior/byval_arg_var.zig"); _ = @import("behavior/call.zig"); diff --git a/test/behavior/bitcast.zig b/test/behavior/bitcast.zig index f5db19789d280a3492937f2b2ff73f6b6bff05a7..8dbd765cb52a4e1a8e346bde8493af755919fc43 100644 --- a/test/behavior/bitcast.zig +++ b/test/behavior/bitcast.zig @@ -63,6 +63,10 @@ fn testBitCast(comptime N: usize) !void { try expect(conv_iN(N, 0) == 0); try expect(conv_iN(N, -0) == 0); + + if (N > 24) { + try expect(conv_uN(N, 0xf23456) == 0xf23456); + } } fn conv_iN(comptime N: usize, x: std.meta.Int(.signed, N)) std.meta.Int(.unsigned, N) { @@ -73,6 +77,55 @@ fn conv_uN(comptime N: usize, x: std.meta.Int(.unsigned, N)) std.meta.Int(.signe return @bitCast(std.meta.Int(.signed, N), x); } +test "bitcast uX to bytes" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + + const bit_values = [_]usize{ 1, 48, 27, 512, 493, 293, 125, 204, 112 }; + inline for (bit_values) |bits| { + try testBitCast(bits); + comptime try testBitCast(bits); + } +} + +fn testBitCastuXToBytes(comptime N: usize) !void { + + // The location of padding bits in these layouts are technically not defined + // by LLVM, but we currently allow exotic integers to be cast (at comptime) + // to types that expose their padding bits anyway. + // + // This test at least makes sure those bits are matched by the runtime behavior + // on the platforms we target. If the above behavior is restricted after all, + // this test should be deleted. + + const T = std.meta.Int(.unsigned, N); + for ([_]T{ 0, ~@as(T, 0) }) |init_value| { + var x: T = init_value; + const bytes = std.mem.asBytes(&x); + + const byte_count = (N + 7) / 8; + switch (builtin.cpu.arch.endian()) { + .Little => { + var byte_i = 0; + while (byte_i < (byte_count - 1)) : (byte_i += 1) { + try expect(bytes[byte_i] == 0xff); + } + try expect(((bytes[byte_i] ^ 0xff) << -%@truncate(u3, N)) == 0); + }, + .Big => { + var byte_i = byte_count - 1; + while (byte_i > 0) : (byte_i -= 1) { + try expect(bytes[byte_i] == 0xff); + } + try expect(((bytes[byte_i] ^ 0xff) << -%@truncate(u3, N)) == 0); + }, + } + } +} + test "nested bitcast" { const S = struct { fn moo(x: isize) !void { @@ -275,7 +328,8 @@ test "@bitCast packed struct of floats" { comptime try S.doTheTest(); } -test "comptime @bitCast packed struct to int" { +test "comptime @bitCast packed struct to int and back" { + if (builtin.zig_backend == .stage1) return error.SkipZigTest; if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; @@ -296,6 +350,44 @@ test "comptime @bitCast packed struct to int" { vectorf: @Vector(2, f16) = .{ 3.14, 2.71 }, }; const Int = @typeInfo(S).Struct.backing_integer.?; + + // S -> Int var s: S = .{}; try expectEqual(@bitCast(Int, s), comptime @bitCast(Int, S{})); + + // Int -> S + var i: Int = 0; + const rt_cast = @bitCast(S, i); + const ct_cast = comptime @bitCast(S, @as(Int, 0)); + inline for (@typeInfo(S).Struct.fields) |field| { + if (@typeInfo(field.field_type) == .Vector) + continue; //TODO: https://github.com/ziglang/zig/issues/13201 + + try expectEqual(@field(rt_cast, field.name), @field(ct_cast, field.name)); + } +} + +test "comptime bitcast with fields following f80" { + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + + const FloatT = extern struct { f: f80, x: u128 align(16) }; + const x: FloatT = .{ .f = 0.5, .x = 123 }; + var x_as_uint: u256 = comptime @bitCast(u256, x); + + try expect(x.f == @bitCast(FloatT, x_as_uint).f); + try expect(x.x == @bitCast(FloatT, x_as_uint).x); +} + +test "bitcast vector to integer and back" { + if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO: https://github.com/ziglang/zig/issues/13220 + if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 gets the comptime cast wrong + + const arr: [16]bool = [_]bool{ true, false } ++ [_]bool{true} ** 14; + var x = @splat(16, true); + x[1] = false; + try expect(@bitCast(u16, x) == comptime @bitCast(u16, @as(@Vector(16, bool), arr))); } diff --git a/test/behavior/bugs/13159.zig b/test/behavior/bugs/13159.zig new file mode 100644 index 0000000000000000000000000000000000000000..6119c498a9887f04a99114858119d2cdb430adef --- /dev/null +++ b/test/behavior/bugs/13159.zig @@ -0,0 +1,14 @@ +const std = @import("std"); +const expect = std.testing.expect; + +const Bar = packed struct { + const Baz = enum { + fizz, + buzz, + }; +}; + +test { + var foo = Bar.Baz.fizz; + try expect(foo == .fizz); +} diff --git a/test/behavior/bugs/13164.zig b/test/behavior/bugs/13164.zig index ee9fe1c120a1a03e55183c32ee9195a0d2244e09..37f5bdf8058f856239d53e4dd9338aa530593884 100644 --- a/test/behavior/bugs/13164.zig +++ b/test/behavior/bugs/13164.zig @@ -10,6 +10,7 @@ inline fn setLimits(min: ?u32, max: ?u32) !void { test { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO var x: u32 = 42; try setLimits(x, null); diff --git a/test/behavior/bugs/13285.zig b/test/behavior/bugs/13285.zig new file mode 100644 index 0000000000000000000000000000000000000000..ad37f9876afec6e1e1f86c8ea1fdb7c03431d2c5 --- /dev/null +++ b/test/behavior/bugs/13285.zig @@ -0,0 +1,11 @@ +const Crasher = struct { + lets_crash: u64 = 0, +}; + +test { + var a: Crasher = undefined; + var crasher_ptr = &a; + var crasher_local = crasher_ptr.*; + const crasher_local_ptr = &crasher_local; + crasher_local_ptr.lets_crash = 1; +} diff --git a/test/behavior/bugs/920.zig b/test/behavior/bugs/920.zig index 7dae996dac1e708f1dbf03b90b86d06a83ac620d..36895c7282786613ee013900e759c47e16b12bd0 100644 --- a/test/behavior/bugs/920.zig +++ b/test/behavior/bugs/920.zig @@ -67,7 +67,6 @@ const NormalDist = blk: { test "bug 920 fixed" { if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO diff --git a/test/behavior/cast.zig b/test/behavior/cast.zig index 2cbfdd1d4a2335482131fc305de476f3c74bd10f..b1f9e86c05b4c684a34c073e0b8ed1d857bed477 100644 --- a/test/behavior/cast.zig +++ b/test/behavior/cast.zig @@ -1144,6 +1144,7 @@ fn peerTypeEmptyArrayAndSlice(a: bool, slice: []const u8) []const u8 { test "implicitly cast from [N]T to ?[]const T" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO try expect(mem.eql(u8, castToOptionalSlice().?, "hi")); comptime try expect(mem.eql(u8, castToOptionalSlice().?, "hi")); @@ -1224,6 +1225,7 @@ test "cast from array reference to fn: runtime fn ptr" { test "*const [N]null u8 to ?[]const u8" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO const S = struct { fn doTheTest() !void { @@ -1358,6 +1360,7 @@ test "cast i8 fn call peers to i32 result" { test "cast compatible optional types" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO var a: ?[:0]const u8 = null; var b: ?[]const u8 = a; @@ -1402,3 +1405,10 @@ test "coerce between pointers of compatible differently-named floats" { f2.* += 1; try expect(f1 == @as(F, 12.34) + 1); } + +test "peer type resolution of const and non-const pointer to array" { + const a = @intToPtr(*[1024]u8, 42); + const b = @intToPtr(*const [1024]u8, 42); + try std.testing.expect(@TypeOf(a, b) == *const [1024]u8); + try std.testing.expect(a == b); +} diff --git a/test/behavior/generics.zig b/test/behavior/generics.zig index b7904fb7f998bc14a2e18ba548bf57b87eff2e0a..02070cb933481e6c689c515354fe951545323d88 100644 --- a/test/behavior/generics.zig +++ b/test/behavior/generics.zig @@ -396,3 +396,12 @@ test "slice as parameter type" { try expect(S.internComptimeString(source_a[1..2]) == S.internComptimeString(source_a[1..2])); try expect(S.internComptimeString(source_a[2..4]) != S.internComptimeString(source_a[5..7])); } + +test "null sentinel pointer passed as generic argument" { + const S = struct { + fn doTheTest(a: anytype) !void { + try std.testing.expect(@ptrToInt(a) == 8); + } + }; + try S.doTheTest((@intToPtr([*:null]const [*c]const u8, 8))); +} diff --git a/test/behavior/optional.zig b/test/behavior/optional.zig index 67b29c68853ec87cd6aac8de449da0507e95ad05..cf618259b12e418266d4551778a2bb474bdc5fd7 100644 --- a/test/behavior/optional.zig +++ b/test/behavior/optional.zig @@ -3,6 +3,7 @@ const std = @import("std"); const testing = std.testing; const expect = testing.expect; const expectEqual = testing.expectEqual; +const expectEqualStrings = std.testing.expectEqualStrings; test "passing an optional integer as a parameter" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; @@ -425,3 +426,18 @@ test "alignment of wrapping an optional payload" { }; try expect(S.foo().?.x == 1234); } + +test "Optional slice size is optimized" { + if (builtin.zig_backend == .stage1) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; + + try expect(@sizeOf(?[]u8) == @sizeOf([]u8)); + var a: ?[]const u8 = null; + try expect(a == null); + a = "hello"; + try expectEqualStrings(a.?, "hello"); +} diff --git a/test/behavior/packed-struct.zig b/test/behavior/packed-struct.zig index 552a5fedf32983a289e3f6b7ca845ce1b5596615..76ce4e9acd7bebd133788bc372f7e629ab9fa573 100644 --- a/test/behavior/packed-struct.zig +++ b/test/behavior/packed-struct.zig @@ -392,7 +392,6 @@ test "byte-aligned field pointer offsets" { test "load pointer from packed struct" { if (builtin.zig_backend == .stage1) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; @@ -406,7 +405,7 @@ test "load pointer from packed struct" { y: u32, }; var a: A = .{ .index = 123 }; - var b_list: []B = &.{.{ .x = &a, .y = 99 }}; + var b_list: []const B = &.{.{ .x = &a, .y = 99 }}; for (b_list) |b| { var i = b.x.index; try expect(i == 123); diff --git a/test/behavior/translate_c_macros.h b/test/behavior/translate_c_macros.h index 439577fecc4888d3e17c4aaf3aa50a645320de59..fc9aaaaf520e627f624514b4246a7e575c10b57b 100644 --- a/test/behavior/translate_c_macros.h +++ b/test/behavior/translate_c_macros.h @@ -40,6 +40,7 @@ union U { #define CAST_OR_CALL_WITH_PARENS(type_or_fn, val) ((type_or_fn)(val)) #define NESTED_COMMA_OPERATOR (1, (2, 3)) +#define NESTED_COMMA_OPERATOR_LHS (1, 2), 3 #include #if !defined(__UINTPTR_MAX__) @@ -52,3 +53,6 @@ typedef _Bool uintptr_t; #define LARGE_INT 18446744073709550592 #define EMBEDDED_TAB "hello " + +#define DIVIDE_CONSTANT(version) (version / 1000) +#define DIVIDE_ARGS(A, B) (A / B) diff --git a/test/behavior/translate_c_macros.zig b/test/behavior/translate_c_macros.zig index 07d8442844a8a2aa24ef33338438991c4da8536f..3328b657a1ef89ac8fa3c8a7b68b52083dfe86bb 100644 --- a/test/behavior/translate_c_macros.zig +++ b/test/behavior/translate_c_macros.zig @@ -95,6 +95,7 @@ test "nested comma operator" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO try expectEqual(@as(c_int, 3), h.NESTED_COMMA_OPERATOR); + try expectEqual(@as(c_int, 3), h.NESTED_COMMA_OPERATOR_LHS); } test "cast functions" { @@ -139,3 +140,36 @@ test "string and char literals that are not UTF-8 encoded. Issue #12784" { try expectEqual(@as(u8, '\xA9'), latin1.UNPRINTABLE_CHAR); try expectEqualStrings("\xA9\xA9\xA9", latin1.UNPRINTABLE_STRING); } + +test "Macro that uses division operator. Issue #13162" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + + try expectEqual(@as(c_int, 42), h.DIVIDE_CONSTANT(@as(c_int, 42_000))); + try expectEqual(@as(c_uint, 42), h.DIVIDE_CONSTANT(@as(c_uint, 42_000))); + + try expectEqual( + @as(f64, 42.0), + h.DIVIDE_ARGS( + @as(f64, 42.0), + true, + ), + ); + try expectEqual( + @as(c_int, 21), + h.DIVIDE_ARGS( + @as(i8, 42), + @as(i8, 2), + ), + ); + + try expectEqual( + @as(c_int, 21), + h.DIVIDE_ARGS( + @as(c_ushort, 42), + @as(c_ushort, 2), + ), + ); +} diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig index 581d68dcb6c2d0ff8508a124012450cd9935bdb3..93299498f3215d868ca2f983a20896836fbdf3a7 100644 --- a/test/behavior/vector.zig +++ b/test/behavior/vector.zig @@ -1134,3 +1134,39 @@ test "array of vectors is copied" { points2[0..points.len].* = points; try std.testing.expectEqual(points2[6], Vec3{ -345, -311, 381 }); } + +test "byte vector initialized in inline function" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + + const S = struct { + inline fn boolx4(e0: bool, e1: bool, e2: bool, e3: bool) @Vector(4, bool) { + return .{ e0, e1, e2, e3 }; + } + + fn all(vb: @Vector(4, bool)) bool { + return @reduce(.And, vb); + } + }; + + try expect(S.all(S.boolx4(true, true, true, true))); +} + +test "byte vector initialized in inline function" { + // TODO https://github.com/ziglang/zig/issues/13279 + if (true) return error.SkipZigTest; + + const S = struct { + fn boolx4(e0: bool, e1: bool, e2: bool, e3: bool) @Vector(4, bool) { + return .{ e0, e1, e2, e3 }; + } + + fn all(vb: @Vector(4, bool)) bool { + return @reduce(.And, vb); + } + }; + + try expect(S.all(S.boolx4(true, true, true, true))); +} diff --git a/test/cases/compile_errors/condition_comptime_reason_explained.zig b/test/cases/compile_errors/condition_comptime_reason_explained.zig new file mode 100644 index 0000000000000000000000000000000000000000..332ae8afc8c4eba6bce58d31720a3a96c779dc0c --- /dev/null +++ b/test/cases/compile_errors/condition_comptime_reason_explained.zig @@ -0,0 +1,48 @@ +const S = struct { + fnPtr: fn () void, +}; +fn bar() void {} +fn baz() void {} +var runtime: bool = true; +fn ifExpr() S { + if (runtime) { + return .{ + .fnPtr = bar, + }; + } else { + return .{ + .fnPtr = baz, + }; + } +} +pub export fn entry1() void { + _ = ifExpr(); +} +fn switchExpr() S { + switch (runtime) { + true => return .{ + .fnPtr = bar, + }, + false => return .{ + .fnPtr = baz, + }, + } +} +pub export fn entry2() void { + _ = switchExpr(); +} + +// error +// backend=stage2 +// target=native +// +// :8:9: error: unable to resolve comptime value +// :8:9: note: condition in comptime branch must be comptime-known +// :7:13: note: expression is evaluated at comptime because the function returns a comptime-only type 'tmp.S' +// :2:12: note: struct requires comptime because of this field +// :2:12: note: use '*const fn() void' for a function pointer type +// :19:15: note: called from here +// :22:13: error: unable to resolve comptime value +// :22:13: note: condition in comptime switch must be comptime-known +// :21:17: note: expression is evaluated at comptime because the function returns a comptime-only type 'tmp.S' +// :32:19: note: called from here diff --git a/test/cases/compile_errors/explain_why_fn_is_called_at_comptime.zig b/test/cases/compile_errors/explain_why_fn_is_called_at_comptime.zig index d19ab3161713f10984f88c38c680b89180dda205..83d5d7e33fe7206424f5e350752e8d78da931bd2 100644 --- a/test/cases/compile_errors/explain_why_fn_is_called_at_comptime.zig +++ b/test/cases/compile_errors/explain_why_fn_is_called_at_comptime.zig @@ -18,6 +18,6 @@ pub export fn entry() void { // // :12:13: error: unable to resolve comptime value // :12:13: note: argument to function being called at comptime must be comptime-known -// :7:25: note: function is being called at comptime because it returns a comptime-only type 'tmp.S' +// :7:25: note: expression is evaluated at comptime because the function returns a comptime-only type 'tmp.S' // :2:12: note: struct requires comptime because of this field // :2:12: note: use '*const fn() void' for a function pointer type diff --git a/test/cases/compile_errors/explain_why_generic_fn_is_called_at_comptime.zig b/test/cases/compile_errors/explain_why_generic_fn_is_called_at_comptime.zig index 36aeb404792d6e0853b49da4d021176737add33a..701241a403b1eedabbcf6e59594fb433b8a9f9e0 100644 --- a/test/cases/compile_errors/explain_why_generic_fn_is_called_at_comptime.zig +++ b/test/cases/compile_errors/explain_why_generic_fn_is_called_at_comptime.zig @@ -19,4 +19,4 @@ pub export fn entry() void { // // :14:13: error: unable to resolve comptime value // :14:13: note: argument to function being called at comptime must be comptime-known -// :9:38: note: generic function is instantiated with a comptime-only return type +// :9:38: note: expression is evaluated at comptime because the generic function was instantiated with a comptime-only return type diff --git a/test/cases/compile_errors/generic_funciton_instantiation_inherits_parent_branch_quota.zig b/test/cases/compile_errors/generic_funciton_instantiation_inherits_parent_branch_quota.zig deleted file mode 100644 index 1d45ce86db159010a3e89006528e8914981b720a..0000000000000000000000000000000000000000 --- a/test/cases/compile_errors/generic_funciton_instantiation_inherits_parent_branch_quota.zig +++ /dev/null @@ -1,30 +0,0 @@ -pub export fn entry1() void { - @setEvalBranchQuota(1001); - // Return type evaluation should inherit both the - // parent's branch quota and count meaning - // at least 2002 backwards branches are required. - comptime var i = 0; - inline while (i < 1000) : (i += 1) {} - _ = simple(10); -} -pub export fn entry2() void { - @setEvalBranchQuota(2001); - comptime var i = 0; - inline while (i < 1000) : (i += 1) {} - _ = simple(10); -} -fn simple(comptime n: usize) Type(n) { - return n; -} -fn Type(comptime n: usize) type { - if (n <= 1) return usize; - return Type(n - 1); -} - -// error -// backend=stage2 -// target=native -// -// :21:16: error: evaluation exceeded 1001 backwards branches -// :21:16: note: use @setEvalBranchQuota() to raise the branch limit from 1001 -// :16:34: note: called from here diff --git a/test/cases/compile_errors/stage2/tuple_ptr_to_mut_slice.zig b/test/cases/compile_errors/stage2/tuple_ptr_to_mut_slice.zig new file mode 100644 index 0000000000000000000000000000000000000000..24e4753563aa0d067c94c47fb5ea5260f5ff747c --- /dev/null +++ b/test/cases/compile_errors/stage2/tuple_ptr_to_mut_slice.zig @@ -0,0 +1,32 @@ +export fn entry1() void { + var a = .{ 1, 2, 3 }; + _ = @as([]u8, &a); +} +export fn entry2() void { + var a = .{ @as(u8, 1), @as(u8, 2), @as(u8, 3) }; + _ = @as([]u8, &a); +} + +// runtime values +var vals = [_]u7{ 4, 5, 6 }; +export fn entry3() void { + var a = .{ vals[0], vals[1], vals[2] }; + _ = @as([]u8, &a); +} +export fn entry4() void { + var a = .{ @as(u8, vals[0]), @as(u8, vals[1]), @as(u8, vals[2]) }; + _ = @as([]u8, &a); +} + +// error +// backend=stage2 +// target=native +// +// :3:19: error: cannot cast pointer to tuple to '[]u8' +// :3:19: note: pointers to tuples can only coerce to constant pointers +// :7:19: error: cannot cast pointer to tuple to '[]u8' +// :7:19: note: pointers to tuples can only coerce to constant pointers +// :14:19: error: cannot cast pointer to tuple to '[]u8' +// :14:19: note: pointers to tuples can only coerce to constant pointers +// :18:19: error: cannot cast pointer to tuple to '[]u8' +// :18:19: note: pointers to tuples can only coerce to constant pointers diff --git a/test/cases/compile_errors/too_big_packed_struct.zig b/test/cases/compile_errors/too_big_packed_struct.zig new file mode 100644 index 0000000000000000000000000000000000000000..bedc4a72a65fcef47c6a77186b0c2ff74fd4b19a --- /dev/null +++ b/test/cases/compile_errors/too_big_packed_struct.zig @@ -0,0 +1,13 @@ +pub export fn entry() void { + const T = packed struct { + a: u65535, + b: u65535, + }; + @compileLog(@sizeOf(T)); +} + +// error +// backend=stage2 +// target=native +// +// :2:22: error: size of packed struct '131070' exceeds maximum bit width of 65535 diff --git a/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig b/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig new file mode 100644 index 0000000000000000000000000000000000000000..9460a58993037d74f4d32270b42a751a16313510 --- /dev/null +++ b/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig @@ -0,0 +1,15 @@ +const c = @cImport({ + _ = 1 + foo; +}); +extern var foo: i32; +export fn entry() void { + _ = c; +} + +// error +// backend=llvm +// target=native +// +// :2:11: error: unable to evaluate comptime expression +// :2:13: note: operation is runtime due to this operand +// :1:11: note: expression is evaluated at comptime because it is inside a @cImport diff --git a/test/cases/compile_errors/zero-bit_generic_args_are_coerced_to_param_type.zig b/test/cases/compile_errors/zero-bit_generic_args_are_coerced_to_param_type.zig new file mode 100644 index 0000000000000000000000000000000000000000..02889790843b0b045e1b5c991aebb0a28c22fd37 --- /dev/null +++ b/test/cases/compile_errors/zero-bit_generic_args_are_coerced_to_param_type.zig @@ -0,0 +1,10 @@ +fn bar(a: anytype, _: @TypeOf(a)) void {} +pub export fn entry() void { + bar(@as(u0, 0), "fooo"); +} + +// error +// backend=stage2 +// target=native +// +// :3:21: error: expected type 'u0', found '*const [4:0]u8' diff --git a/test/compile_errors.zig b/test/compile_errors.zig index e9b08565cec7409b84e0a473caca84ba685d730e..5454124df86e0ca0c0274e5ebb96499f1a7ab379 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -204,7 +204,7 @@ pub fn addCases(ctx: *TestContext) !void { , &[_][]const u8{ ":3:12: error: unable to resolve comptime value", ":3:12: note: argument to function being called at comptime must be comptime-known", - ":2:55: note: generic function is instantiated with a comptime-only return type", + ":2:55: note: expression is evaluated at comptime because the generic function was instantiated with a comptime-only return type", }); } diff --git a/test/link.zig b/test/link.zig index df397cd5d29c6af633269678373e013819b9c014..40635b86a0c89cd14491af44a59951c4fece841a 100644 --- a/test/link.zig +++ b/test/link.zig @@ -33,6 +33,10 @@ fn addWasmCases(cases: *tests.StandaloneContext) void { .requires_stage2 = true, }); + cases.addBuildFile("test/link/wasm/basic-features/build.zig", .{ + .requires_stage2 = true, + }); + cases.addBuildFile("test/link/wasm/bss/build.zig", .{ .build_modes = false, .requires_stage2 = true, @@ -44,6 +48,10 @@ fn addWasmCases(cases: *tests.StandaloneContext) void { .use_emulation = true, }); + cases.addBuildFile("test/link/wasm/infer-features/build.zig", .{ + .requires_stage2 = true, + }); + cases.addBuildFile("test/link/wasm/producers/build.zig", .{ .build_modes = true, .requires_stage2 = true, diff --git a/test/link/wasm/basic-features/build.zig b/test/link/wasm/basic-features/build.zig new file mode 100644 index 0000000000000000000000000000000000000000..2c565f92633066baecdf4ad89917fd30fef0e18a --- /dev/null +++ b/test/link/wasm/basic-features/build.zig @@ -0,0 +1,23 @@ +const std = @import("std"); + +pub fn build(b: *std.build.Builder) void { + const mode = b.standardReleaseOptions(); + + // Library with explicitly set cpu features + const lib = b.addSharedLibrary("lib", "main.zig", .unversioned); + lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }); + lib.target.cpu_model = .{ .explicit = &std.Target.wasm.cpu.mvp }; + lib.target.cpu_features_add.addFeature(0); // index 0 == atomics (see std.Target.wasm.Features) + lib.setBuildMode(mode); + lib.use_llvm = false; + lib.use_lld = false; + + // Verify the result contains the features explicitly set on the target for the library. + const check = lib.checkObject(.wasm); + check.checkStart("name target_features"); + check.checkNext("features 1"); + check.checkNext("+ atomics"); + + const test_step = b.step("test", "Run linker test"); + test_step.dependOn(&check.step); +} diff --git a/test/link/wasm/basic-features/main.zig b/test/link/wasm/basic-features/main.zig new file mode 100644 index 0000000000000000000000000000000000000000..0e416dbf18dc0717439c83a7ebc25b8581b86a6e --- /dev/null +++ b/test/link/wasm/basic-features/main.zig @@ -0,0 +1 @@ +export fn foo() void {} diff --git a/test/link/wasm/infer-features/build.zig b/test/link/wasm/infer-features/build.zig new file mode 100644 index 0000000000000000000000000000000000000000..b50caf7264ff693e96b3a9a6f1e7b480bed67fe4 --- /dev/null +++ b/test/link/wasm/infer-features/build.zig @@ -0,0 +1,37 @@ +const std = @import("std"); + +pub fn build(b: *std.build.Builder) void { + const mode = b.standardReleaseOptions(); + + // Wasm Object file which we will use to infer the features from + const c_obj = b.addObject("c_obj", null); + c_obj.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }); + c_obj.target.cpu_model = .{ .explicit = &std.Target.wasm.cpu.bleeding_edge }; + c_obj.addCSourceFile("foo.c", &.{}); + c_obj.setBuildMode(mode); + + // Wasm library that doesn't have any features specified. This will + // infer its featureset from other linked object files. + const lib = b.addSharedLibrary("lib", "main.zig", .unversioned); + lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }); + lib.target.cpu_model = .{ .explicit = &std.Target.wasm.cpu.mvp }; + lib.setBuildMode(mode); + lib.use_llvm = false; + lib.use_lld = false; + lib.addObject(c_obj); + + // Verify the result contains the features from the C Object file. + const check = lib.checkObject(.wasm); + check.checkStart("name target_features"); + check.checkNext("features 7"); + check.checkNext("+ atomics"); + check.checkNext("+ bulk-memory"); + check.checkNext("+ mutable-globals"); + check.checkNext("+ nontrapping-fptoint"); + check.checkNext("+ sign-ext"); + check.checkNext("+ simd128"); + check.checkNext("+ tail-call"); + + const test_step = b.step("test", "Run linker test"); + test_step.dependOn(&check.step); +} diff --git a/test/link/wasm/infer-features/foo.c b/test/link/wasm/infer-features/foo.c new file mode 100644 index 0000000000000000000000000000000000000000..1faba969834e2dfb49e06b1f0dd03f454c235078 --- /dev/null +++ b/test/link/wasm/infer-features/foo.c @@ -0,0 +1,3 @@ +int foo() { + return 5; +} diff --git a/test/link/wasm/infer-features/main.zig b/test/link/wasm/infer-features/main.zig new file mode 100644 index 0000000000000000000000000000000000000000..576faf61b6ce9393e45ec597fadce713eecc1594 --- /dev/null +++ b/test/link/wasm/infer-features/main.zig @@ -0,0 +1 @@ +extern fn foo() c_int; diff --git a/test/standalone.zig b/test/standalone.zig index f0567943b652a67ed7fe2a61b3881327f5259897..c945fe6bb6928eca8f451f0ad4f8fc41abb14875 100644 --- a/test/standalone.zig +++ b/test/standalone.zig @@ -37,10 +37,7 @@ pub fn addCases(cases: *tests.StandaloneContext) void { if (builtin.zig_backend == .stage1) { // https://github.com/ziglang/zig/issues/12194 cases.addBuildFile("test/standalone/issue_9812/build.zig", .{}); } - if (builtin.os.tag != .windows) { - // https://github.com/ziglang/zig/issues/12419 - cases.addBuildFile("test/standalone/issue_11595/build.zig", .{}); - } + cases.addBuildFile("test/standalone/issue_11595/build.zig", .{}); if (builtin.os.tag != .wasi) { cases.addBuildFile("test/standalone/load_dynamic_library/build.zig", .{}); } diff --git a/test/translate_c.zig b/test/translate_c.zig index d6b6bcbbba4d4916eb75ccd0e3c4592cb22e3b68..81d1308c952486b6b08aa89d70644e925899fe2d 100644 --- a/test/translate_c.zig +++ b/test/translate_c.zig @@ -499,20 +499,20 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\int baz(int x, int y) { return 0; } \\#define bar(x) (&x, +3, 4 == 4, 5 * 6, baz(1, 2), 2 % 2, baz(1,2)) , &[_][]const u8{ - \\pub const foo = blk: { + \\pub const foo = blk_1: { \\ _ = @TypeOf(foo); - \\ break :blk bar; + \\ break :blk_1 bar; \\}; , \\pub inline fn bar(x: anytype) @TypeOf(baz(@as(c_int, 1), @as(c_int, 2))) { - \\ return blk: { + \\ return blk_1: { \\ _ = &x; \\ _ = @as(c_int, 3); \\ _ = @as(c_int, 4) == @as(c_int, 4); \\ _ = @as(c_int, 5) * @as(c_int, 6); \\ _ = baz(@as(c_int, 1), @as(c_int, 2)); \\ _ = @as(c_int, 2) % @as(c_int, 2); - \\ break :blk baz(@as(c_int, 1), @as(c_int, 2)); + \\ break :blk_1 baz(@as(c_int, 1), @as(c_int, 2)); \\ }; \\} });